[openlayers] 09/41: Imported Upstream version 2.11+ds1

Bas Couwenberg sebastic at xs4all.nl
Fri Dec 26 02:41:35 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch master
in repository openlayers.

commit 2a52aec2200fd0ed1ee067ba7decdfb5b6163522
Author: David Paleino <dapal at debian.org>
Date:   Tue Sep 13 15:35:36 2011 +0200

    Imported Upstream version 2.11+ds1
---
 apidoc_config/Data/ClassHierarchy.nd               |  Bin 30562 -> 37616 bytes
 apidoc_config/Data/ConfigFileInfo.nd               |  Bin 26 -> 26 bytes
 apidoc_config/Data/FileInfo.nd                     |  604 ++--
 apidoc_config/Data/ImageFileInfo.nd                |  Bin 216 -> 252 bytes
 apidoc_config/Data/ImageReferenceTable.nd          |  Bin 252 -> 494 bytes
 apidoc_config/Data/IndexInfo.nd                    |  Bin 267 -> 267 bytes
 apidoc_config/Data/PreviousMenuState.nd            |  Bin 23434 -> 29654 bytes
 apidoc_config/Data/PreviousSettings.nd             |  Bin 115 -> 139 bytes
 apidoc_config/Data/SymbolTable.nd                  |  Bin 502126 -> 605942 bytes
 apidoc_config/Languages.txt                        |    2 +-
 apidoc_config/Menu.txt                             |  308 ++-
 apidoc_config/Topics.txt                           |    2 +-
 build/OpenLayers.js                                | 2885 ++++++++++++++++++++
 build/README.txt                                   |   43 +-
 build/build.py                                     |   68 +-
 build/full.cfg                                     |   25 +-
 build/library.cfg                                  |   28 +-
 build/license.txt                                  |   35 +-
 build/lite.cfg                                     |    5 -
 build/mobile.cfg                                   |   36 +
 build/tests.cfg                                    |   10 +
 doc/apidocs/files/OpenLayers-js.html               |    8 +-
 doc/apidocs/files/OpenLayers/Ajax-js.html          |   28 +-
 doc/apidocs/files/OpenLayers/BaseTypes-js.html     |   68 +-
 .../files/OpenLayers/BaseTypes/Bounds-js.html      |   62 +-
 .../files/OpenLayers/BaseTypes/Class-js.html       |   20 +-
 .../files/OpenLayers/BaseTypes/Date-js.html        |   45 +
 .../files/OpenLayers/BaseTypes/Element-js.html     |   28 +-
 .../files/OpenLayers/BaseTypes/LonLat-js.html      |   26 +-
 .../files/OpenLayers/BaseTypes/Pixel-js.html       |   24 +-
 .../files/OpenLayers/BaseTypes/Size-js.html        |   14 +-
 doc/apidocs/files/OpenLayers/Console-js.html       |   46 +-
 doc/apidocs/files/OpenLayers/Control-js.html       |   42 +-
 .../files/OpenLayers/Control/ArgParser-js.html     |   12 +-
 .../files/OpenLayers/Control/Attribution-js.html   |   12 +-
 .../files/OpenLayers/Control/Button-js.html        |   10 +-
 .../files/OpenLayers/Control/DragFeature-js.html   |   24 +-
 .../files/OpenLayers/Control/DragPan-js.html       |   14 +-
 .../files/OpenLayers/Control/DrawFeature-js.html   |   32 +-
 .../OpenLayers/Control/EditingToolbar-js.html      |   12 +-
 .../files/OpenLayers/Control/Geolocate-js.html     |   59 +
 .../files/OpenLayers/Control/GetFeature-js.html    |   12 +-
 .../files/OpenLayers/Control/Graticule-js.html     |   20 +-
 .../OpenLayers/Control/KeyboardDefaults-js.html    |   18 +-
 .../files/OpenLayers/Control/LayerSwitcher-js.html |   16 +-
 .../files/OpenLayers/Control/Measure-js.html       |   26 +-
 .../files/OpenLayers/Control/ModifyFeature-js.html |   28 +-
 .../files/OpenLayers/Control/MouseDefaults-js.html |   16 +-
 .../files/OpenLayers/Control/MousePosition-js.html |   18 +-
 .../files/OpenLayers/Control/MouseToolbar-js.html  |   16 +-
 .../files/OpenLayers/Control/NavToolbar-js.html    |   12 +-
 .../files/OpenLayers/Control/Navigation-js.html    |   16 +-
 .../OpenLayers/Control/NavigationHistory-js.html   |   24 +-
 .../files/OpenLayers/Control/OverviewMap-js.html   |   18 +-
 doc/apidocs/files/OpenLayers/Control/Pan-js.html   |   18 +-
 .../files/OpenLayers/Control/PanPanel-js.html      |   20 +-
 .../files/OpenLayers/Control/PanZoom-js.html       |   16 +-
 .../files/OpenLayers/Control/PanZoomBar-js.html    |   18 +-
 doc/apidocs/files/OpenLayers/Control/Panel-js.html |   32 +-
 .../files/OpenLayers/Control/Permalink-js.html     |   20 +-
 .../files/OpenLayers/Control/PinchZoom-js.html     |   53 +
 .../files/OpenLayers/Control/SLDSelect-js.html     |   28 +-
 doc/apidocs/files/OpenLayers/Control/Scale-js.html |   12 +-
 .../files/OpenLayers/Control/ScaleLine-js.html     |   12 +-
 .../files/OpenLayers/Control/SelectFeature-js.html |   18 +-
 .../files/OpenLayers/Control/Snapping-js.html      |   22 +-
 doc/apidocs/files/OpenLayers/Control/Split-js.html |   22 +-
 .../OpenLayers/Control/TouchNavigation-js.html     |   55 +
 .../OpenLayers/Control/TransformFeature-js.html    |   38 +-
 .../OpenLayers/Control/WMSGetFeatureInfo-js.html   |   16 +-
 .../OpenLayers/Control/WMTSGetFeatureInfo-js.html  |   14 +-
 .../files/OpenLayers/Control/ZoomBox-js.html       |   10 +-
 .../files/OpenLayers/Control/ZoomIn-js.html        |   10 +-
 .../files/OpenLayers/Control/ZoomOut-js.html       |   10 +-
 .../files/OpenLayers/Control/ZoomPanel-js.html     |   14 +-
 .../OpenLayers/Control/ZoomToMaxExtent-js.html     |   10 +-
 doc/apidocs/files/OpenLayers/Events-js.html        |   42 +-
 doc/apidocs/files/OpenLayers/Feature-js.html       |   12 +-
 .../files/OpenLayers/Feature/Vector-js.html        |   24 +-
 doc/apidocs/files/OpenLayers/Feature/WFS-js.html   |   12 +-
 doc/apidocs/files/OpenLayers/Filter-js.html        |   20 +-
 .../files/OpenLayers/Filter/Comparison-js.html     |   20 +-
 .../files/OpenLayers/Filter/FeatureId-js.html      |   18 +-
 .../files/OpenLayers/Filter/Function-js.html       |   49 +
 .../files/OpenLayers/Filter/Logical-js.html        |   20 +-
 .../files/OpenLayers/Filter/Spatial-js.html        |   16 +-
 doc/apidocs/files/OpenLayers/Format-js.html        |   16 +-
 doc/apidocs/files/OpenLayers/Format/ArcXML-js.html |   20 +-
 .../OpenLayers/Format/ArcXML/Features-js.html      |   16 +-
 doc/apidocs/files/OpenLayers/Format/Atom-js.html   |   16 +-
 doc/apidocs/files/OpenLayers/Format/CQL-js.html    |   39 +
 .../files/OpenLayers/Format/CSWGetDomain-js.html   |   16 +-
 .../OpenLayers/Format/CSWGetDomain/v2_0_2-js.html  |   18 +-
 .../files/OpenLayers/Format/CSWGetRecords-js.html  |   16 +-
 .../OpenLayers/Format/CSWGetRecords/v2_0_2-js.html |   16 +-
 .../files/OpenLayers/Format/Context-js.html        |   24 +-
 doc/apidocs/files/OpenLayers/Format/Filter-js.html |   22 +-
 .../files/OpenLayers/Format/Filter/v1-js.html      |   12 +-
 .../files/OpenLayers/Format/Filter/v1_0_0-js.html  |   12 +-
 .../files/OpenLayers/Format/Filter/v1_1_0-js.html  |   12 +-
 doc/apidocs/files/OpenLayers/Format/GML-js.html    |   20 +-
 .../files/OpenLayers/Format/GML/Base-js.html       |   16 +-
 doc/apidocs/files/OpenLayers/Format/GML/v2-js.html |   12 +-
 doc/apidocs/files/OpenLayers/Format/GML/v3-js.html |   12 +-
 doc/apidocs/files/OpenLayers/Format/GPX-js.html    |   16 +-
 .../files/OpenLayers/Format/GeoJSON-js.html        |   18 +-
 doc/apidocs/files/OpenLayers/Format/GeoRSS-js.html |   18 +-
 doc/apidocs/files/OpenLayers/Format/JSON-js.html   |   18 +-
 doc/apidocs/files/OpenLayers/Format/KML-js.html    |   18 +-
 .../OpenLayers/Format/OGCExceptionReport-js.html   |   47 +
 doc/apidocs/files/OpenLayers/Format/OSM-js.html    |   16 +-
 .../files/OpenLayers/Format/OWSCommon-js.html      |   51 +
 .../files/OpenLayers/Format/OWSCommon/v1-js.html   |   10 +-
 .../OpenLayers/Format/OWSCommon/v1_0_0-js.html     |   10 +-
 .../OpenLayers/Format/OWSCommon/v1_1_0-js.html     |   10 +-
 .../files/OpenLayers/Format/OWSContext-js.html     |   14 +-
 .../OpenLayers/Format/OWSContext/v0_3_1-js.html    |   18 +-
 .../OpenLayers/Format/QueryStringFilter-js.html    |   47 +
 doc/apidocs/files/OpenLayers/Format/SLD-js.html    |   22 +-
 doc/apidocs/files/OpenLayers/Format/SLD/v1-js.html |   12 +-
 .../files/OpenLayers/Format/SLD/v1_0_0-js.html     |   12 +-
 .../OpenLayers/Format/SOSCapabilities-js.html      |   18 +-
 .../Format/SOSCapabilities/v1_0_0-js.html          |   16 +-
 .../Format/SOSGetFeatureOfInterest-js.html         |   16 +-
 .../OpenLayers/Format/SOSGetObservation-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Format/Text-js.html   |   16 +-
 .../files/OpenLayers/Format/WCSGetCoverage-js.html |   47 +
 doc/apidocs/files/OpenLayers/Format/WFS-js.html    |   16 +-
 .../OpenLayers/Format/WFSCapabilities-js.html      |   18 +-
 .../OpenLayers/Format/WFSCapabilities/v1-js.html   |   16 +-
 .../Format/WFSCapabilities/v1_0_0-js.html          |   12 +-
 .../Format/WFSCapabilities/v1_1_0-js.html          |   12 +-
 .../Format/WFSDescribeFeatureType-js.html          |   10 +-
 doc/apidocs/files/OpenLayers/Format/WFST-js.html   |   10 +-
 .../files/OpenLayers/Format/WFST/v1-js.html        |   16 +-
 .../files/OpenLayers/Format/WFST/v1_0_0-js.html    |   12 +-
 .../files/OpenLayers/Format/WFST/v1_1_0-js.html    |   14 +-
 doc/apidocs/files/OpenLayers/Format/WKT-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Format/WMC-js.html    |   14 +-
 doc/apidocs/files/OpenLayers/Format/WMC/v1-js.html |   12 +-
 .../files/OpenLayers/Format/WMC/v1_0_0-js.html     |   12 +-
 .../files/OpenLayers/Format/WMC/v1_1_0-js.html     |   12 +-
 .../OpenLayers/Format/WMSCapabilities-js.html      |   18 +-
 .../OpenLayers/Format/WMSCapabilities/v1-js.html   |   16 +-
 .../OpenLayers/Format/WMSCapabilities/v1_1-js.html |   10 +-
 .../Format/WMSCapabilities/v1_1_0-js.html          |   12 +-
 .../Format/WMSCapabilities/v1_1_1-js.html          |   12 +-
 .../Format/WMSCapabilities/v1_1_1_WMSC-js.html     |   43 +
 .../OpenLayers/Format/WMSCapabilities/v1_3-js.html |   10 +-
 .../Format/WMSCapabilities/v1_3_0-js.html          |   10 +-
 .../OpenLayers/Format/WMSDescribeLayer-js.html     |   18 +-
 .../Format/WMSDescribeLayer/v1_1-js.html           |   16 +-
 .../OpenLayers/Format/WMSGetFeatureInfo-js.html    |   16 +-
 .../OpenLayers/Format/WMTSCapabilities-js.html     |   20 +-
 .../Format/WMTSCapabilities/v1_0_0-js.html         |   16 +-
 .../OpenLayers/Format/WPSCapabilities-js.html      |   51 +
 .../Format/WPSCapabilities/v1_0_0-js.html          |   47 +
 .../OpenLayers/Format/WPSDescribeProcess-js.html   |   51 +
 .../files/OpenLayers/Format/WPSExecute-js.html     |   47 +
 doc/apidocs/files/OpenLayers/Format/XLS-js.html    |   55 +
 doc/apidocs/files/OpenLayers/Format/XLS/v1-js.html |   47 +
 .../files/OpenLayers/Format/XLS/v1_1_0-js.html     |   47 +
 doc/apidocs/files/OpenLayers/Format/XML-js.html    |   48 +-
 .../OpenLayers/Format/XML/VersionedOGC-js.html     |   61 +
 doc/apidocs/files/OpenLayers/Geometry-js.html      |   26 +-
 .../files/OpenLayers/Geometry/Collection-js.html   |   50 +-
 .../files/OpenLayers/Geometry/Curve-js.html        |   18 +-
 .../files/OpenLayers/Geometry/LineString-js.html   |   24 +-
 .../files/OpenLayers/Geometry/LinearRing-js.html   |   36 +-
 .../OpenLayers/Geometry/MultiLineString-js.html    |   12 +-
 .../files/OpenLayers/Geometry/MultiPoint-js.html   |   18 +-
 .../files/OpenLayers/Geometry/MultiPolygon-js.html |   12 +-
 .../files/OpenLayers/Geometry/Point-js.html        |   34 +-
 .../files/OpenLayers/Geometry/Polygon-js.html      |   24 +-
 .../files/OpenLayers/Geometry/Rectangle-js.html    |   18 +-
 doc/apidocs/files/OpenLayers/Handler-js.html       |   28 +-
 doc/apidocs/files/OpenLayers/Handler/Box-js.html   |   12 +-
 doc/apidocs/files/OpenLayers/Handler/Click-js.html |   20 +-
 doc/apidocs/files/OpenLayers/Handler/Drag-js.html  |   12 +-
 .../files/OpenLayers/Handler/Feature-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Handler/Hover-js.html |   16 +-
 .../files/OpenLayers/Handler/Keyboard-js.html      |   12 +-
 .../files/OpenLayers/Handler/MouseWheel-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Handler/Path-js.html  |   22 +-
 doc/apidocs/files/OpenLayers/Handler/Pinch-js.html |   43 +
 doc/apidocs/files/OpenLayers/Handler/Point-js.html |   24 +-
 .../files/OpenLayers/Handler/Polygon-js.html       |   22 +-
 .../OpenLayers/Handler/RegularPolygon-js.html      |   24 +-
 doc/apidocs/files/OpenLayers/Icon-js.html          |   12 +-
 doc/apidocs/files/OpenLayers/Kinetic-js.html       |   39 +
 doc/apidocs/files/OpenLayers/Lang-js.html          |   16 +-
 doc/apidocs/files/OpenLayers/Lang/ar-js.html       |   12 +-
 .../files/OpenLayers/Lang/be-tarask-js.html        |   12 +-
 doc/apidocs/files/OpenLayers/Lang/bg-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/br-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/ca-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/cs-CZ-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Lang/da-DK-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Lang/de-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/el-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/en-CA-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Lang/en-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/es-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/fi-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/fr-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/fur-js.html      |   12 +-
 doc/apidocs/files/OpenLayers/Lang/gl-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/gsw-js.html      |   12 +-
 doc/apidocs/files/OpenLayers/Lang/hr-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/hsb-js.html      |   12 +-
 doc/apidocs/files/OpenLayers/Lang/hu-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/ia-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/id-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/io-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/is-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/it-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/ja-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/km-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/ksh-js.html      |   12 +-
 doc/apidocs/files/OpenLayers/Lang/lt-js.html       |   39 +
 doc/apidocs/files/OpenLayers/Lang/nb-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/nds-js.html      |   12 +-
 doc/apidocs/files/OpenLayers/Lang/nl-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/nn-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/oc-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/pt-BR-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Lang/pt-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/ru-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/sk-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/sv-SE-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Lang/te-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/vi-js.html       |   12 +-
 doc/apidocs/files/OpenLayers/Lang/zh-CN-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Lang/zh-TW-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Layer-js.html         |   56 +-
 .../files/OpenLayers/Layer/ArcGIS93Rest-js.html    |   16 +-
 .../files/OpenLayers/Layer/ArcGISCache-js.html     |   63 +
 doc/apidocs/files/OpenLayers/Layer/ArcIMS-js.html  |   12 +-
 doc/apidocs/files/OpenLayers/Layer/Bing-js.html    |   57 +
 doc/apidocs/files/OpenLayers/Layer/Boxes-js.html   |   16 +-
 .../files/OpenLayers/Layer/EventPane-js.html       |   18 +-
 .../files/OpenLayers/Layer/FixedZoomLevels-js.html |   18 +-
 doc/apidocs/files/OpenLayers/Layer/GML-js.html     |   16 +-
 doc/apidocs/files/OpenLayers/Layer/GeoRSS-js.html  |   12 +-
 doc/apidocs/files/OpenLayers/Layer/Google-js.html  |   60 +-
 .../files/OpenLayers/Layer/Google/v3-js.html       |   48 +-
 doc/apidocs/files/OpenLayers/Layer/Grid-js.html    |   36 +-
 .../files/OpenLayers/Layer/HTTPRequest-js.html     |   26 +-
 doc/apidocs/files/OpenLayers/Layer/Image-js.html   |   20 +-
 doc/apidocs/files/OpenLayers/Layer/KaMap-js.html   |   18 +-
 .../files/OpenLayers/Layer/KaMapCache-js.html      |   12 +-
 .../files/OpenLayers/Layer/MapGuide-js.html        |   16 +-
 .../files/OpenLayers/Layer/MapServer-js.html       |   12 +-
 .../OpenLayers/Layer/MapServer/Untiled-js.html     |   12 +-
 doc/apidocs/files/OpenLayers/Layer/Markers-js.html |   24 +-
 .../files/OpenLayers/Layer/MultiMap-js.html        |   38 +-
 .../files/OpenLayers/Layer/PointGrid-js.html       |   75 +
 .../files/OpenLayers/Layer/PointTrack-js.html      |   22 +-
 .../OpenLayers/Layer/SphericalMercator-js.html     |   18 +-
 doc/apidocs/files/OpenLayers/Layer/TMS-js.html     |   43 +-
 doc/apidocs/files/OpenLayers/Layer/Text-js.html    |   18 +-
 .../files/OpenLayers/Layer/TileCache-js.html       |   16 +-
 doc/apidocs/files/OpenLayers/Layer/Vector-js.html  |   52 +-
 .../OpenLayers/Layer/Vector/RootContainer-js.html  |   12 +-
 .../files/OpenLayers/Layer/VirtualEarth-js.html    |   51 +-
 doc/apidocs/files/OpenLayers/Layer/WFS-js.html     |   32 +-
 doc/apidocs/files/OpenLayers/Layer/WMS-js.html     |   30 +-
 .../files/OpenLayers/Layer/WMS/Post-js.html        |   16 +-
 .../files/OpenLayers/Layer/WMS/Untiled-js.html     |   12 +-
 doc/apidocs/files/OpenLayers/Layer/WMTS-js.html    |   28 +-
 .../files/OpenLayers/Layer/WorldWind-js.html       |   18 +-
 doc/apidocs/files/OpenLayers/Layer/XYZ-js.html     |   26 +-
 doc/apidocs/files/OpenLayers/Layer/Yahoo-js.html   |   48 +-
 doc/apidocs/files/OpenLayers/Layer/Zoomify-js.html |   18 +-
 doc/apidocs/files/OpenLayers/Map-js.html           |  132 +-
 doc/apidocs/files/OpenLayers/Marker-js.html        |   20 +-
 doc/apidocs/files/OpenLayers/Marker/Box-js.html    |   12 +-
 doc/apidocs/files/OpenLayers/Popup-js.html         |   20 +-
 .../files/OpenLayers/Popup/Anchored-js.html        |   20 +-
 .../files/OpenLayers/Popup/AnchoredBubble-js.html  |   20 +-
 doc/apidocs/files/OpenLayers/Popup/Framed-js.html  |   22 +-
 .../files/OpenLayers/Popup/FramedCloud-js.html     |   16 +-
 doc/apidocs/files/OpenLayers/Projection-js.html    |   31 +-
 doc/apidocs/files/OpenLayers/Protocol-js.html      |   30 +-
 doc/apidocs/files/OpenLayers/Protocol/HTTP-js.html |   34 +-
 doc/apidocs/files/OpenLayers/Protocol/SOS-js.html  |   10 +-
 .../files/OpenLayers/Protocol/SOS/v1_0_0-js.html   |   18 +-
 doc/apidocs/files/OpenLayers/Protocol/SQL-js.html  |   18 +-
 .../files/OpenLayers/Protocol/SQL/Gears-js.html    |   28 +-
 .../files/OpenLayers/Protocol/Script-js.html       |   71 +
 doc/apidocs/files/OpenLayers/Protocol/WFS-js.html  |   22 +-
 .../files/OpenLayers/Protocol/WFS/v1-js.html       |   34 +-
 .../files/OpenLayers/Protocol/WFS/v1_0_0-js.html   |   12 +-
 .../files/OpenLayers/Protocol/WFS/v1_1_0-js.html   |   14 +-
 doc/apidocs/files/OpenLayers/Renderer-js.html      |   20 +-
 .../files/OpenLayers/Renderer/Canvas-js.html       |   26 +-
 .../files/OpenLayers/Renderer/Elements-js.html     |   40 +-
 doc/apidocs/files/OpenLayers/Renderer/NG-js.html   |   47 +
 doc/apidocs/files/OpenLayers/Renderer/SVG-js.html  |   24 +-
 doc/apidocs/files/OpenLayers/Renderer/SVG2-js.html |   59 +
 doc/apidocs/files/OpenLayers/Renderer/VML-js.html  |   20 +-
 doc/apidocs/files/OpenLayers/Request-js.html       |   28 +-
 .../OpenLayers/Request/XMLHttpRequest-js.html      |   10 +-
 doc/apidocs/files/OpenLayers/Rule-js.html          |   16 +-
 doc/apidocs/files/OpenLayers/SingleFile-js.html    |   45 +
 doc/apidocs/files/OpenLayers/Strategy-js.html      |   16 +-
 doc/apidocs/files/OpenLayers/Strategy/BBOX-js.html |   12 +-
 .../files/OpenLayers/Strategy/Cluster-js.html      |   18 +-
 .../files/OpenLayers/Strategy/Filter-js.html       |   20 +-
 .../files/OpenLayers/Strategy/Fixed-js.html        |   18 +-
 .../files/OpenLayers/Strategy/Paging-js.html       |   28 +-
 .../files/OpenLayers/Strategy/Refresh-js.html      |   20 +-
 doc/apidocs/files/OpenLayers/Strategy/Save-js.html |   22 +-
 doc/apidocs/files/OpenLayers/Style-js.html         |   24 +-
 doc/apidocs/files/OpenLayers/Style2-js.html        |   18 +-
 doc/apidocs/files/OpenLayers/StyleMap-js.html      |   12 +-
 doc/apidocs/files/OpenLayers/Symbolizer-js.html    |   16 +-
 .../files/OpenLayers/Symbolizer/Line-js.html       |   20 +-
 .../files/OpenLayers/Symbolizer/Point-js.html      |   42 +-
 .../files/OpenLayers/Symbolizer/Polygon-js.html    |   24 +-
 .../files/OpenLayers/Symbolizer/Raster-js.html     |   12 +-
 .../files/OpenLayers/Symbolizer/Text-js.html       |   20 +-
 doc/apidocs/files/OpenLayers/Tile-js.html          |   12 +-
 doc/apidocs/files/OpenLayers/Tile/Image-js.html    |   18 +-
 .../files/OpenLayers/Tile/Image/IFrame-js.html     |   16 +-
 doc/apidocs/files/OpenLayers/Tile/WFS-js.html      |   14 +-
 doc/apidocs/files/OpenLayers/Tween-js.html         |   26 +-
 doc/apidocs/files/OpenLayers/Util-js.html          |   26 +-
 doc/apidocs/index/Classes.html                     |   12 +-
 doc/apidocs/index/Classes2.html                    |    8 +-
 doc/apidocs/index/Constants.html                   |   46 +-
 doc/apidocs/index/Constructor.html                 |   40 +-
 doc/apidocs/index/Constructor2.html                |   20 +-
 doc/apidocs/index/Constructor3.html                |   16 +-
 doc/apidocs/index/Files.html                       |   14 +-
 doc/apidocs/index/Functions.html                   |   14 +-
 doc/apidocs/index/Functions2.html                  |   12 +-
 doc/apidocs/index/Functions3.html                  |   12 +-
 doc/apidocs/index/Functions4.html                  |   14 +-
 doc/apidocs/index/Functions5.html                  |   12 +-
 doc/apidocs/index/Functions6.html                  |   26 +-
 doc/apidocs/index/Functions7.html                  |   12 +-
 doc/apidocs/index/Functions8.html                  |   20 +-
 doc/apidocs/index/General.html                     |   12 +-
 doc/apidocs/index/General10.html                   |   14 +-
 doc/apidocs/index/General11.html                   |   12 +-
 doc/apidocs/index/General12.html                   |   12 +-
 doc/apidocs/index/General13.html                   |   12 +-
 doc/apidocs/index/General14.html                   |   12 +-
 doc/apidocs/index/General15.html                   |   12 +-
 doc/apidocs/index/General16.html                   |   14 +-
 doc/apidocs/index/General17.html                   |   12 +-
 doc/apidocs/index/General18.html                   |   18 +-
 doc/apidocs/index/General2.html                    |   12 +-
 doc/apidocs/index/General3.html                    |   12 +-
 doc/apidocs/index/General4.html                    |   12 +-
 doc/apidocs/index/General5.html                    |   12 +-
 doc/apidocs/index/General6.html                    |   12 +-
 doc/apidocs/index/General7.html                    |   12 +-
 doc/apidocs/index/General8.html                    |   20 +-
 doc/apidocs/index/General9.html                    |   16 +-
 doc/apidocs/index/Properties.html                  |   18 +-
 doc/apidocs/index/Properties2.html                 |   18 +-
 doc/apidocs/index/Properties3.html                 |   18 +-
 doc/apidocs/index/Properties4.html                 |   20 +-
 doc/apidocs/index/Properties5.html                 |   22 +-
 doc/apidocs/index/Properties6.html                 |   26 +-
 doc/apidocs/javascript/main.js                     |   12 +-
 doc/apidocs/javascript/prettify.js                 | 1526 +++++++++++
 doc/apidocs/javascript/searchdata.js               |    2 +-
 doc/apidocs/search/ClassesO.html                   |    6 +-
 doc/apidocs/search/ClassesU.html                   |    4 +-
 doc/apidocs/search/ConstantsB.html                 |    6 +-
 doc/apidocs/search/ConstantsC.html                 |    6 +-
 doc/apidocs/search/ConstantsD.html                 |    6 +-
 doc/apidocs/search/ConstantsE.html                 |    6 +-
 doc/apidocs/search/ConstantsF.html                 |    6 +-
 doc/apidocs/search/ConstantsI.html                 |    6 +-
 doc/apidocs/search/ConstantsK.html                 |    6 +-
 doc/apidocs/search/ConstantsL.html                 |    6 +-
 doc/apidocs/search/ConstantsM.html                 |    6 +-
 doc/apidocs/search/ConstantsO.html                 |    6 +-
 doc/apidocs/search/ConstantsR.html                 |    6 +-
 doc/apidocs/search/ConstantsS.html                 |    6 +-
 doc/apidocs/search/ConstantsT.html                 |    6 +-
 doc/apidocs/search/ConstantsU.html                 |    6 +-
 doc/apidocs/search/ConstantsV.html                 |    6 +-
 doc/apidocs/search/ConstantsX.html                 |    6 +-
 doc/apidocs/search/ConstantsY.html                 |    6 +-
 doc/apidocs/search/ConstantsZ.html                 |    4 +-
 doc/apidocs/search/ConstructorA.html               |    6 +-
 doc/apidocs/search/ConstructorB.html               |    6 +-
 doc/apidocs/search/ConstructorC.html               |    6 +-
 doc/apidocs/search/ConstructorD.html               |    6 +-
 doc/apidocs/search/ConstructorE.html               |    6 +-
 doc/apidocs/search/ConstructorF.html               |    6 +-
 doc/apidocs/search/ConstructorG.html               |    6 +-
 doc/apidocs/search/ConstructorH.html               |    6 +-
 doc/apidocs/search/ConstructorI.html               |    6 +-
 doc/apidocs/search/ConstructorJ.html               |    6 +-
 doc/apidocs/search/ConstructorK.html               |    6 +-
 doc/apidocs/search/ConstructorL.html               |    6 +-
 doc/apidocs/search/ConstructorM.html               |    6 +-
 doc/apidocs/search/ConstructorN.html               |    6 +-
 doc/apidocs/search/ConstructorO.html               |    6 +-
 doc/apidocs/search/ConstructorP.html               |    6 +-
 doc/apidocs/search/ConstructorR.html               |    6 +-
 doc/apidocs/search/ConstructorS.html               |    6 +-
 doc/apidocs/search/ConstructorT.html               |    6 +-
 doc/apidocs/search/ConstructorU.html               |    6 +-
 doc/apidocs/search/ConstructorV.html               |    6 +-
 doc/apidocs/search/ConstructorW.html               |    6 +-
 doc/apidocs/search/ConstructorX.html               |    6 +-
 doc/apidocs/search/ConstructorY.html               |    6 +-
 doc/apidocs/search/ConstructorZ.html               |    6 +-
 doc/apidocs/search/FilesA.html                     |    6 +-
 doc/apidocs/search/FilesC.html                     |    4 +-
 doc/apidocs/search/FilesO.html                     |    4 +-
 doc/apidocs/search/FilesS.html                     |   20 +
 doc/apidocs/search/FilesV.html                     |    4 +-
 doc/apidocs/search/FunctionsA.html                 |    6 +-
 doc/apidocs/search/FunctionsB.html                 |    6 +-
 doc/apidocs/search/FunctionsC.html                 |    6 +-
 doc/apidocs/search/FunctionsD.html                 |    6 +-
 doc/apidocs/search/FunctionsE.html                 |    6 +-
 doc/apidocs/search/FunctionsF.html                 |    6 +-
 doc/apidocs/search/FunctionsG.html                 |    6 +-
 doc/apidocs/search/FunctionsH.html                 |    6 +-
 doc/apidocs/search/FunctionsI.html                 |    6 +-
 doc/apidocs/search/FunctionsL.html                 |    6 +-
 doc/apidocs/search/FunctionsM.html                 |    6 +-
 doc/apidocs/search/FunctionsN.html                 |    6 +-
 doc/apidocs/search/FunctionsO.html                 |    6 +-
 doc/apidocs/search/FunctionsP.html                 |    6 +-
 doc/apidocs/search/FunctionsR.html                 |    6 +-
 doc/apidocs/search/FunctionsS.html                 |    6 +-
 doc/apidocs/search/FunctionsT.html                 |    6 +-
 doc/apidocs/search/FunctionsU.html                 |    6 +-
 doc/apidocs/search/FunctionsV.html                 |    6 +-
 doc/apidocs/search/FunctionsW.html                 |    6 +-
 doc/apidocs/search/FunctionsZ.html                 |    6 +-
 doc/apidocs/search/GeneralA.html                   |    6 +-
 doc/apidocs/search/GeneralB.html                   |    6 +-
 doc/apidocs/search/GeneralC.html                   |    6 +-
 doc/apidocs/search/GeneralD.html                   |    6 +-
 doc/apidocs/search/GeneralE.html                   |    6 +-
 doc/apidocs/search/GeneralF.html                   |    6 +-
 doc/apidocs/search/GeneralG.html                   |    6 +-
 doc/apidocs/search/GeneralH.html                   |    6 +-
 doc/apidocs/search/GeneralI.html                   |    6 +-
 doc/apidocs/search/GeneralJ.html                   |    6 +-
 doc/apidocs/search/GeneralK.html                   |    6 +-
 doc/apidocs/search/GeneralL.html                   |    6 +-
 doc/apidocs/search/GeneralM.html                   |    6 +-
 doc/apidocs/search/GeneralN.html                   |    6 +-
 doc/apidocs/search/GeneralO.html                   |    6 +-
 doc/apidocs/search/GeneralP.html                   |    6 +-
 doc/apidocs/search/GeneralQ.html                   |    6 +-
 doc/apidocs/search/GeneralR.html                   |    6 +-
 doc/apidocs/search/GeneralS.html                   |    6 +-
 doc/apidocs/search/GeneralT.html                   |    6 +-
 doc/apidocs/search/GeneralU.html                   |    6 +-
 doc/apidocs/search/GeneralV.html                   |    6 +-
 doc/apidocs/search/GeneralW.html                   |    6 +-
 doc/apidocs/search/GeneralX.html                   |    6 +-
 doc/apidocs/search/GeneralY.html                   |    6 +-
 doc/apidocs/search/GeneralZ.html                   |    6 +-
 doc/apidocs/search/NoResults.html                  |    4 +-
 doc/apidocs/search/PropertiesA.html                |    6 +-
 doc/apidocs/search/PropertiesB.html                |    6 +-
 doc/apidocs/search/PropertiesC.html                |    6 +-
 doc/apidocs/search/PropertiesD.html                |    6 +-
 doc/apidocs/search/PropertiesE.html                |    6 +-
 doc/apidocs/search/PropertiesF.html                |    6 +-
 doc/apidocs/search/PropertiesG.html                |    6 +-
 doc/apidocs/search/PropertiesH.html                |    6 +-
 doc/apidocs/search/PropertiesI.html                |    6 +-
 doc/apidocs/search/PropertiesK.html                |    6 +-
 doc/apidocs/search/PropertiesL.html                |    6 +-
 doc/apidocs/search/PropertiesM.html                |    6 +-
 doc/apidocs/search/PropertiesN.html                |    6 +-
 doc/apidocs/search/PropertiesO.html                |    6 +-
 doc/apidocs/search/PropertiesP.html                |    6 +-
 doc/apidocs/search/PropertiesQ.html                |    6 +-
 doc/apidocs/search/PropertiesR.html                |    6 +-
 doc/apidocs/search/PropertiesS.html                |    6 +-
 doc/apidocs/search/PropertiesT.html                |    6 +-
 doc/apidocs/search/PropertiesU.html                |    6 +-
 doc/apidocs/search/PropertiesV.html                |    6 +-
 doc/apidocs/search/PropertiesW.html                |    6 +-
 doc/apidocs/search/PropertiesX.html                |    6 +-
 doc/apidocs/search/PropertiesY.html                |    6 +-
 doc/apidocs/search/PropertiesZ.html                |    6 +-
 doc/apidocs/styles/1.css                           |  127 +-
 doc/authors.txt                                    |    6 +
 doc/devdocs/files/OpenLayers-js.html               |   18 +-
 doc/devdocs/files/OpenLayers/Ajax-js.html          |   68 +-
 doc/devdocs/files/OpenLayers/BaseTypes-js.html     |   72 +-
 .../files/OpenLayers/BaseTypes/Bounds-js.html      |   68 +-
 .../files/OpenLayers/BaseTypes/Class-js.html       |   22 +-
 .../files/OpenLayers/BaseTypes/Date-js.html        |   45 +
 .../files/OpenLayers/BaseTypes/Element-js.html     |   36 +-
 .../files/OpenLayers/BaseTypes/LonLat-js.html      |   32 +-
 .../files/OpenLayers/BaseTypes/Pixel-js.html       |   26 +-
 .../files/OpenLayers/BaseTypes/Size-js.html        |   16 +-
 doc/devdocs/files/OpenLayers/Console-js.html       |   46 +-
 doc/devdocs/files/OpenLayers/Control-js.html       |   46 +-
 .../files/OpenLayers/Control/ArgParser-js.html     |   24 +-
 .../files/OpenLayers/Control/Attribution-js.html   |   20 +-
 .../files/OpenLayers/Control/Button-js.html        |   16 +-
 .../files/OpenLayers/Control/DragFeature-js.html   |   56 +-
 .../files/OpenLayers/Control/DragPan-js.html       |   28 +-
 .../files/OpenLayers/Control/DrawFeature-js.html   |   34 +-
 .../OpenLayers/Control/EditingToolbar-js.html      |   16 +-
 .../files/OpenLayers/Control/Geolocate-js.html     |   71 +
 .../files/OpenLayers/Control/GetFeature-js.html    |   42 +-
 .../files/OpenLayers/Control/Graticule-js.html     |   24 +-
 .../OpenLayers/Control/KeyboardDefaults-js.html    |   20 +-
 .../files/OpenLayers/Control/LayerSwitcher-js.html |   44 +-
 .../files/OpenLayers/Control/Measure-js.html       |   46 +-
 .../files/OpenLayers/Control/ModifyFeature-js.html |   54 +-
 .../files/OpenLayers/Control/MouseDefaults-js.html |   42 +-
 .../files/OpenLayers/Control/MousePosition-js.html |   28 +-
 .../files/OpenLayers/Control/MouseToolbar-js.html  |   40 +-
 .../files/OpenLayers/Control/NavToolbar-js.html    |   16 +-
 .../files/OpenLayers/Control/Navigation-js.html    |   56 +-
 .../OpenLayers/Control/NavigationHistory-js.html   |   42 +-
 .../files/OpenLayers/Control/OverviewMap-js.html   |   52 +-
 doc/devdocs/files/OpenLayers/Control/Pan-js.html   |   22 +-
 .../files/OpenLayers/Control/PanPanel-js.html      |   20 +-
 .../files/OpenLayers/Control/PanZoom-js.html       |   28 +-
 .../files/OpenLayers/Control/PanZoomBar-js.html    |   42 +-
 doc/devdocs/files/OpenLayers/Control/Panel-js.html |   50 +-
 .../files/OpenLayers/Control/Permalink-js.html     |   26 +-
 .../files/OpenLayers/Control/PinchZoom-js.html     |   71 +
 .../files/OpenLayers/Control/SLDSelect-js.html     |   44 +-
 doc/devdocs/files/OpenLayers/Control/Scale-js.html |   18 +-
 .../files/OpenLayers/Control/ScaleLine-js.html     |   20 +-
 .../files/OpenLayers/Control/SelectFeature-js.html |   54 +-
 .../files/OpenLayers/Control/Snapping-js.html      |   44 +-
 doc/devdocs/files/OpenLayers/Control/Split-js.html |   36 +-
 .../OpenLayers/Control/TouchNavigation-js.html     |   73 +
 .../OpenLayers/Control/TransformFeature-js.html    |   52 +-
 .../OpenLayers/Control/WMSGetFeatureInfo-js.html   |   56 +-
 .../OpenLayers/Control/WMTSGetFeatureInfo-js.html  |   52 +-
 .../files/OpenLayers/Control/ZoomBox-js.html       |   16 +-
 .../files/OpenLayers/Control/ZoomIn-js.html        |   14 +-
 .../files/OpenLayers/Control/ZoomOut-js.html       |   14 +-
 .../files/OpenLayers/Control/ZoomPanel-js.html     |   14 +-
 .../OpenLayers/Control/ZoomToMaxExtent-js.html     |   14 +-
 doc/devdocs/files/OpenLayers/Events-js.html        |   76 +-
 doc/devdocs/files/OpenLayers/Feature-js.html       |   26 +-
 .../files/OpenLayers/Feature/Vector-js.html        |   46 +-
 doc/devdocs/files/OpenLayers/Feature/WFS-js.html   |   18 +-
 doc/devdocs/files/OpenLayers/Filter-js.html        |   20 +-
 .../files/OpenLayers/Filter/Comparison-js.html     |   22 +-
 .../files/OpenLayers/Filter/FeatureId-js.html      |   20 +-
 .../files/OpenLayers/Filter/Function-js.html       |   49 +
 .../files/OpenLayers/Filter/Logical-js.html        |   20 +-
 .../files/OpenLayers/Filter/Spatial-js.html        |   18 +-
 doc/devdocs/files/OpenLayers/Format-js.html        |   20 +-
 doc/devdocs/files/OpenLayers/Format/ArcXML-js.html |   34 +-
 .../OpenLayers/Format/ArcXML/Features-js.html      |   16 +-
 doc/devdocs/files/OpenLayers/Format/Atom-js.html   |   36 +-
 doc/devdocs/files/OpenLayers/Format/CQL-js.html    |   39 +
 .../files/OpenLayers/Format/CSWGetDomain-js.html   |   18 +-
 .../OpenLayers/Format/CSWGetDomain/v2_0_2-js.html  |   20 +-
 .../files/OpenLayers/Format/CSWGetRecords-js.html  |   18 +-
 .../OpenLayers/Format/CSWGetRecords/v2_0_2-js.html |   20 +-
 .../files/OpenLayers/Format/Context-js.html        |   32 +-
 doc/devdocs/files/OpenLayers/Format/Filter-js.html |   24 +-
 .../files/OpenLayers/Format/Filter/v1-js.html      |   28 +-
 .../files/OpenLayers/Format/Filter/v1_0_0-js.html  |   18 +-
 .../files/OpenLayers/Format/Filter/v1_1_0-js.html  |   18 +-
 doc/devdocs/files/OpenLayers/Format/GML-js.html    |   56 +-
 .../files/OpenLayers/Format/GML/Base-js.html       |   28 +-
 doc/devdocs/files/OpenLayers/Format/GML/v2-js.html |   16 +-
 doc/devdocs/files/OpenLayers/Format/GML/v3-js.html |   18 +-
 doc/devdocs/files/OpenLayers/Format/GPX-js.html    |   20 +-
 .../files/OpenLayers/Format/GeoJSON-js.html        |   56 +-
 doc/devdocs/files/OpenLayers/Format/GeoRSS-js.html |   30 +-
 doc/devdocs/files/OpenLayers/Format/JSON-js.html   |   38 +-
 doc/devdocs/files/OpenLayers/Format/KML-js.html    |   80 +-
 .../OpenLayers/Format/OGCExceptionReport-js.html   |   59 +
 doc/devdocs/files/OpenLayers/Format/OSM-js.html    |   32 +-
 .../files/OpenLayers/Format/OWSCommon-js.html      |   53 +
 .../files/OpenLayers/Format/OWSCommon/v1-js.html   |   16 +-
 .../OpenLayers/Format/OWSCommon/v1_0_0-js.html     |   10 +-
 .../OpenLayers/Format/OWSCommon/v1_1_0-js.html     |   12 +-
 .../files/OpenLayers/Format/OWSContext-js.html     |   20 +-
 .../OpenLayers/Format/OWSContext/v0_3_1-js.html    |   24 +-
 .../OpenLayers/Format/QueryStringFilter-js.html    |   49 +
 doc/devdocs/files/OpenLayers/Format/SLD-js.html    |   24 +-
 doc/devdocs/files/OpenLayers/Format/SLD/v1-js.html |   22 +-
 .../files/OpenLayers/Format/SLD/v1_0_0-js.html     |   14 +-
 .../OpenLayers/Format/SOSCapabilities-js.html      |   20 +-
 .../Format/SOSCapabilities/v1_0_0-js.html          |   16 +-
 .../Format/SOSGetFeatureOfInterest-js.html         |   16 +-
 .../OpenLayers/Format/SOSGetObservation-js.html    |   18 +-
 doc/devdocs/files/OpenLayers/Format/Text-js.html   |   16 +-
 .../files/OpenLayers/Format/WCSGetCoverage-js.html |   65 +
 doc/devdocs/files/OpenLayers/Format/WFS-js.html    |   26 +-
 .../OpenLayers/Format/WFSCapabilities-js.html      |   18 +-
 .../OpenLayers/Format/WFSCapabilities/v1-js.html   |   28 +-
 .../Format/WFSCapabilities/v1_0_0-js.html          |   42 +-
 .../Format/WFSCapabilities/v1_1_0-js.html          |   18 +-
 .../Format/WFSDescribeFeatureType-js.html          |   18 +-
 doc/devdocs/files/OpenLayers/Format/WFST-js.html   |   16 +-
 .../files/OpenLayers/Format/WFST/v1-js.html        |   24 +-
 .../files/OpenLayers/Format/WFST/v1_0_0-js.html    |   18 +-
 .../files/OpenLayers/Format/WFST/v1_1_0-js.html    |   18 +-
 doc/devdocs/files/OpenLayers/Format/WKT-js.html    |   20 +-
 doc/devdocs/files/OpenLayers/Format/WMC-js.html    |   22 +-
 doc/devdocs/files/OpenLayers/Format/WMC/v1-js.html |  160 +-
 .../files/OpenLayers/Format/WMC/v1_0_0-js.html     |   20 +-
 .../files/OpenLayers/Format/WMC/v1_1_0-js.html     |   24 +-
 .../OpenLayers/Format/WMSCapabilities-js.html      |   20 +-
 .../OpenLayers/Format/WMSCapabilities/v1-js.html   |   20 +-
 .../OpenLayers/Format/WMSCapabilities/v1_1-js.html |   10 +-
 .../Format/WMSCapabilities/v1_1_0-js.html          |   12 +-
 .../Format/WMSCapabilities/v1_1_1-js.html          |   12 +-
 .../Format/WMSCapabilities/v1_1_1_WMSC-js.html     |   53 +
 .../OpenLayers/Format/WMSCapabilities/v1_3-js.html |   10 +-
 .../Format/WMSCapabilities/v1_3_0-js.html          |   10 +-
 .../OpenLayers/Format/WMSDescribeLayer-js.html     |   20 +-
 .../Format/WMSDescribeLayer/v1_1-js.html           |   16 +-
 .../OpenLayers/Format/WMSGetFeatureInfo-js.html    |   26 +-
 .../OpenLayers/Format/WMTSCapabilities-js.html     |   22 +-
 .../Format/WMTSCapabilities/v1_0_0-js.html         |   16 +-
 .../OpenLayers/Format/WPSCapabilities-js.html      |   51 +
 .../Format/WPSCapabilities/v1_0_0-js.html          |   57 +
 .../OpenLayers/Format/WPSDescribeProcess-js.html   |   65 +
 .../files/OpenLayers/Format/WPSExecute-js.html     |   65 +
 doc/devdocs/files/OpenLayers/Format/XLS-js.html    |   55 +
 doc/devdocs/files/OpenLayers/Format/XLS/v1-js.html |   65 +
 .../files/OpenLayers/Format/XLS/v1_1_0-js.html     |   51 +
 doc/devdocs/files/OpenLayers/Format/XML-js.html    |   74 +-
 .../OpenLayers/Format/XML/VersionedOGC-js.html     |   69 +
 doc/devdocs/files/OpenLayers/Geometry-js.html      |   46 +-
 .../files/OpenLayers/Geometry/Collection-js.html   |   56 +-
 .../files/OpenLayers/Geometry/Curve-js.html        |   18 +-
 .../files/OpenLayers/Geometry/LineString-js.html   |   32 +-
 .../files/OpenLayers/Geometry/LinearRing-js.html   |   38 +-
 .../OpenLayers/Geometry/MultiLineString-js.html    |   18 +-
 .../files/OpenLayers/Geometry/MultiPoint-js.html   |   18 +-
 .../files/OpenLayers/Geometry/MultiPolygon-js.html |   12 +-
 .../files/OpenLayers/Geometry/Point-js.html        |   38 +-
 .../files/OpenLayers/Geometry/Polygon-js.html      |   26 +-
 .../files/OpenLayers/Geometry/Rectangle-js.html    |   20 +-
 doc/devdocs/files/OpenLayers/Handler-js.html       |   42 +-
 doc/devdocs/files/OpenLayers/Handler/Box-js.html   |   36 +-
 doc/devdocs/files/OpenLayers/Handler/Click-js.html |   68 +-
 doc/devdocs/files/OpenLayers/Handler/Drag-js.html  |   68 +-
 .../files/OpenLayers/Handler/Feature-js.html       |   52 +-
 doc/devdocs/files/OpenLayers/Handler/Hover-js.html |   26 +-
 .../files/OpenLayers/Handler/Keyboard-js.html      |   22 +-
 .../files/OpenLayers/Handler/MouseWheel-js.html    |   26 +-
 doc/devdocs/files/OpenLayers/Handler/Path-js.html  |   70 +-
 doc/devdocs/files/OpenLayers/Handler/Pinch-js.html |   71 +
 doc/devdocs/files/OpenLayers/Handler/Point-js.html |   82 +-
 .../files/OpenLayers/Handler/Polygon-js.html       |   44 +-
 .../OpenLayers/Handler/RegularPolygon-js.html      |   42 +-
 doc/devdocs/files/OpenLayers/Icon-js.html          |   30 +-
 doc/devdocs/files/OpenLayers/Kinetic-js.html       |   69 +
 doc/devdocs/files/OpenLayers/Lang-js.html          |   16 +-
 doc/devdocs/files/OpenLayers/Lang/ar-js.html       |   12 +-
 .../files/OpenLayers/Lang/be-tarask-js.html        |   12 +-
 doc/devdocs/files/OpenLayers/Lang/bg-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/br-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/ca-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/cs-CZ-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Lang/da-DK-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Lang/de-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/el-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/en-CA-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Lang/en-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/es-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/fi-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/fr-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/fur-js.html      |   12 +-
 doc/devdocs/files/OpenLayers/Lang/gl-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/gsw-js.html      |   12 +-
 doc/devdocs/files/OpenLayers/Lang/hr-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/hsb-js.html      |   12 +-
 doc/devdocs/files/OpenLayers/Lang/hu-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/ia-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/id-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/io-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/is-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/it-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/ja-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/km-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/ksh-js.html      |   12 +-
 doc/devdocs/files/OpenLayers/Lang/lt-js.html       |   39 +
 doc/devdocs/files/OpenLayers/Lang/nb-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/nds-js.html      |   12 +-
 doc/devdocs/files/OpenLayers/Lang/nl-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/nn-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/oc-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/pt-BR-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Lang/pt-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/ru-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/sk-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/sv-SE-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Lang/te-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/vi-js.html       |   12 +-
 doc/devdocs/files/OpenLayers/Lang/zh-CN-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Lang/zh-TW-js.html    |   12 +-
 doc/devdocs/files/OpenLayers/Layer-js.html         |  102 +-
 .../files/OpenLayers/Layer/ArcGIS93Rest-js.html    |   28 +-
 .../files/OpenLayers/Layer/ArcGISCache-js.html     |   81 +
 doc/devdocs/files/OpenLayers/Layer/ArcIMS-js.html  |   32 +-
 doc/devdocs/files/OpenLayers/Layer/Bing-js.html    |   77 +
 doc/devdocs/files/OpenLayers/Layer/Boxes-js.html   |   18 +-
 .../files/OpenLayers/Layer/EventPane-js.html       |   44 +-
 .../files/OpenLayers/Layer/FixedZoomLevels-js.html |   26 +-
 doc/devdocs/files/OpenLayers/Layer/GML-js.html     |   26 +-
 doc/devdocs/files/OpenLayers/Layer/GeoRSS-js.html  |   26 +-
 doc/devdocs/files/OpenLayers/Layer/Google-js.html  |   74 +-
 .../files/OpenLayers/Layer/Google/v3-js.html       |   56 +-
 doc/devdocs/files/OpenLayers/Layer/Grid-js.html    |   80 +-
 .../files/OpenLayers/Layer/HTTPRequest-js.html     |   30 +-
 doc/devdocs/files/OpenLayers/Layer/Image-js.html   |   30 +-
 doc/devdocs/files/OpenLayers/Layer/KaMap-js.html   |   24 +-
 .../files/OpenLayers/Layer/KaMapCache-js.html      |   16 +-
 .../files/OpenLayers/Layer/MapGuide-js.html        |   34 +-
 .../files/OpenLayers/Layer/MapServer-js.html       |   22 +-
 .../OpenLayers/Layer/MapServer/Untiled-js.html     |   16 +-
 doc/devdocs/files/OpenLayers/Layer/Markers-js.html |   30 +-
 .../files/OpenLayers/Layer/MultiMap-js.html        |   40 +-
 .../files/OpenLayers/Layer/PointGrid-js.html       |   89 +
 .../files/OpenLayers/Layer/PointTrack-js.html      |   22 +-
 .../OpenLayers/Layer/SphericalMercator-js.html     |   30 +-
 doc/devdocs/files/OpenLayers/Layer/TMS-js.html     |   47 +-
 doc/devdocs/files/OpenLayers/Layer/Text-js.html    |   26 +-
 .../files/OpenLayers/Layer/TileCache-js.html       |   20 +-
 doc/devdocs/files/OpenLayers/Layer/Vector-js.html  |   84 +-
 .../OpenLayers/Layer/Vector/RootContainer-js.html  |   28 +-
 .../files/OpenLayers/Layer/VirtualEarth-js.html    |   55 +-
 doc/devdocs/files/OpenLayers/Layer/WFS-js.html     |   48 +-
 doc/devdocs/files/OpenLayers/Layer/WMS-js.html     |   40 +-
 .../files/OpenLayers/Layer/WMS/Post-js.html        |   22 +-
 .../files/OpenLayers/Layer/WMS/Untiled-js.html     |   16 +-
 doc/devdocs/files/OpenLayers/Layer/WMTS-js.html    |   50 +-
 .../files/OpenLayers/Layer/WorldWind-js.html       |   26 +-
 doc/devdocs/files/OpenLayers/Layer/XYZ-js.html     |   30 +-
 doc/devdocs/files/OpenLayers/Layer/Yahoo-js.html   |   54 +-
 doc/devdocs/files/OpenLayers/Layer/Zoomify-js.html |   36 +-
 doc/devdocs/files/OpenLayers/Map-js.html           |  194 +-
 doc/devdocs/files/OpenLayers/Marker-js.html        |   38 +-
 doc/devdocs/files/OpenLayers/Marker/Box-js.html    |   24 +-
 doc/devdocs/files/OpenLayers/Popup-js.html         |   70 +-
 .../files/OpenLayers/Popup/Anchored-js.html        |   28 +-
 .../files/OpenLayers/Popup/AnchoredBubble-js.html  |   30 +-
 doc/devdocs/files/OpenLayers/Popup/Framed-js.html  |   32 +-
 .../files/OpenLayers/Popup/FramedCloud-js.html     |   16 +-
 doc/devdocs/files/OpenLayers/Projection-js.html    |   41 +-
 doc/devdocs/files/OpenLayers/Protocol-js.html      |   40 +-
 doc/devdocs/files/OpenLayers/Protocol/HTTP-js.html |   54 +-
 doc/devdocs/files/OpenLayers/Protocol/SOS-js.html  |   16 +-
 .../files/OpenLayers/Protocol/SOS/v1_0_0-js.html   |   22 +-
 doc/devdocs/files/OpenLayers/Protocol/SQL-js.html  |   20 +-
 .../files/OpenLayers/Protocol/SQL/Gears-js.html    |   46 +-
 .../files/OpenLayers/Protocol/Script-js.html       |   87 +
 doc/devdocs/files/OpenLayers/Protocol/WFS-js.html  |   28 +-
 .../files/OpenLayers/Protocol/WFS/v1-js.html       |   52 +-
 .../files/OpenLayers/Protocol/WFS/v1_0_0-js.html   |   12 +-
 .../files/OpenLayers/Protocol/WFS/v1_1_0-js.html   |   14 +-
 doc/devdocs/files/OpenLayers/Renderer-js.html      |   48 +-
 .../files/OpenLayers/Renderer/Canvas-js.html       |   66 +-
 .../files/OpenLayers/Renderer/Elements-js.html     |   92 +-
 doc/devdocs/files/OpenLayers/Renderer/NG-js.html   |   57 +
 doc/devdocs/files/OpenLayers/Renderer/SVG-js.html  |   82 +-
 doc/devdocs/files/OpenLayers/Renderer/SVG2-js.html |  113 +
 doc/devdocs/files/OpenLayers/Renderer/VML-js.html  |   66 +-
 doc/devdocs/files/OpenLayers/Request-js.html       |   30 +-
 .../OpenLayers/Request/XMLHttpRequest-js.html      |   10 +-
 doc/devdocs/files/OpenLayers/Rule-js.html          |   18 +-
 doc/devdocs/files/OpenLayers/SingleFile-js.html    |   49 +
 doc/devdocs/files/OpenLayers/Strategy-js.html      |   22 +-
 doc/devdocs/files/OpenLayers/Strategy/BBOX-js.html |   36 +-
 .../files/OpenLayers/Strategy/Cluster-js.html      |   32 +-
 .../files/OpenLayers/Strategy/Filter-js.html       |   24 +-
 .../files/OpenLayers/Strategy/Fixed-js.html        |   24 +-
 .../files/OpenLayers/Strategy/Paging-js.html       |   34 +-
 .../files/OpenLayers/Strategy/Refresh-js.html      |   26 +-
 doc/devdocs/files/OpenLayers/Strategy/Save-js.html |   26 +-
 doc/devdocs/files/OpenLayers/Style-js.html         |   38 +-
 doc/devdocs/files/OpenLayers/Style2-js.html        |   18 +-
 doc/devdocs/files/OpenLayers/StyleMap-js.html      |   20 +-
 doc/devdocs/files/OpenLayers/Symbolizer-js.html    |   16 +-
 .../files/OpenLayers/Symbolizer/Line-js.html       |   22 +-
 .../files/OpenLayers/Symbolizer/Point-js.html      |   44 +-
 .../files/OpenLayers/Symbolizer/Polygon-js.html    |   26 +-
 .../files/OpenLayers/Symbolizer/Raster-js.html     |   12 +-
 .../files/OpenLayers/Symbolizer/Text-js.html       |   22 +-
 doc/devdocs/files/OpenLayers/Tile-js.html          |   30 +-
 doc/devdocs/files/OpenLayers/Tile/Image-js.html    |   44 +-
 .../files/OpenLayers/Tile/Image/IFrame-js.html     |   38 +-
 doc/devdocs/files/OpenLayers/Tile/WFS-js.html      |   26 +-
 doc/devdocs/files/OpenLayers/Tween-js.html         |   46 +-
 doc/devdocs/files/OpenLayers/Util-js.html          |  114 +-
 doc/devdocs/index/Classes.html                     |   12 +-
 doc/devdocs/index/Classes2.html                    |    8 +-
 doc/devdocs/index/Constants.html                   |   46 +-
 doc/devdocs/index/Constructor.html                 |   40 +-
 doc/devdocs/index/Constructor2.html                |   20 +-
 doc/devdocs/index/Constructor3.html                |   16 +-
 doc/devdocs/index/Files.html                       |   18 +-
 doc/devdocs/index/Functions.html                   |   14 +-
 doc/devdocs/index/Functions10.html                 |   12 +-
 doc/devdocs/index/Functions11.html                 |   16 +-
 doc/devdocs/index/Functions12.html                 |   16 +-
 doc/devdocs/index/Functions13.html                 |   12 +-
 doc/devdocs/index/Functions14.html                 |   12 +-
 doc/devdocs/index/Functions15.html                 |   12 +-
 doc/devdocs/index/Functions16.html                 |   16 +-
 doc/devdocs/index/Functions17.html                 |   16 +-
 doc/devdocs/index/Functions18.html                 |   38 +
 doc/devdocs/index/Functions19.html                 |   38 +
 doc/devdocs/index/Functions2.html                  |   12 +-
 doc/devdocs/index/Functions3.html                  |   12 +-
 doc/devdocs/index/Functions4.html                  |   12 +-
 doc/devdocs/index/Functions5.html                  |   12 +-
 doc/devdocs/index/Functions6.html                  |   12 +-
 doc/devdocs/index/Functions7.html                  |   12 +-
 doc/devdocs/index/Functions8.html                  |   12 +-
 doc/devdocs/index/Functions9.html                  |   16 +-
 doc/devdocs/index/General.html                     |   14 +-
 doc/devdocs/index/General10.html                   |   14 +-
 doc/devdocs/index/General11.html                   |   12 +-
 doc/devdocs/index/General12.html                   |   12 +-
 doc/devdocs/index/General13.html                   |   12 +-
 doc/devdocs/index/General14.html                   |   12 +-
 doc/devdocs/index/General15.html                   |   12 +-
 doc/devdocs/index/General16.html                   |   12 +-
 doc/devdocs/index/General17.html                   |   12 +-
 doc/devdocs/index/General18.html                   |   12 +-
 doc/devdocs/index/General19.html                   |   12 +-
 doc/devdocs/index/General2.html                    |   12 +-
 doc/devdocs/index/General20.html                   |   12 +-
 doc/devdocs/index/General21.html                   |   12 +-
 doc/devdocs/index/General22.html                   |   12 +-
 doc/devdocs/index/General23.html                   |   16 +-
 doc/devdocs/index/General3.html                    |   12 +-
 doc/devdocs/index/General4.html                    |   12 +-
 doc/devdocs/index/General5.html                    |   12 +-
 doc/devdocs/index/General6.html                    |   12 +-
 doc/devdocs/index/General7.html                    |   12 +-
 doc/devdocs/index/General8.html                    |   12 +-
 doc/devdocs/index/General9.html                    |   12 +-
 doc/devdocs/index/Properties.html                  |   16 +-
 doc/devdocs/index/Properties10.html                |   18 +-
 doc/devdocs/index/Properties11.html                |   16 +-
 doc/devdocs/index/Properties12.html                |   12 +-
 doc/devdocs/index/Properties13.html                |   16 +-
 doc/devdocs/index/Properties14.html                |   26 +-
 doc/devdocs/index/Properties15.html                |   50 +
 doc/devdocs/index/Properties2.html                 |   12 +-
 doc/devdocs/index/Properties3.html                 |   12 +-
 doc/devdocs/index/Properties4.html                 |   12 +-
 doc/devdocs/index/Properties5.html                 |   12 +-
 doc/devdocs/index/Properties6.html                 |   14 +-
 doc/devdocs/index/Properties7.html                 |   16 +-
 doc/devdocs/index/Properties8.html                 |   12 +-
 doc/devdocs/index/Properties9.html                 |   16 +-
 doc/devdocs/javascript/main.js                     |   12 +-
 doc/devdocs/javascript/prettify.js                 | 1526 +++++++++++
 doc/devdocs/javascript/searchdata.js               |    6 +-
 doc/devdocs/search/ClassesO.html                   |    6 +-
 doc/devdocs/search/ClassesU.html                   |    4 +-
 doc/devdocs/search/ConstantsB.html                 |    6 +-
 doc/devdocs/search/ConstantsC.html                 |    6 +-
 doc/devdocs/search/ConstantsD.html                 |    6 +-
 doc/devdocs/search/ConstantsE.html                 |    6 +-
 doc/devdocs/search/ConstantsF.html                 |    6 +-
 doc/devdocs/search/ConstantsI.html                 |    6 +-
 doc/devdocs/search/ConstantsK.html                 |    6 +-
 doc/devdocs/search/ConstantsL.html                 |    6 +-
 doc/devdocs/search/ConstantsM.html                 |    6 +-
 doc/devdocs/search/ConstantsO.html                 |    6 +-
 doc/devdocs/search/ConstantsR.html                 |    6 +-
 doc/devdocs/search/ConstantsS.html                 |    6 +-
 doc/devdocs/search/ConstantsT.html                 |    6 +-
 doc/devdocs/search/ConstantsU.html                 |    6 +-
 doc/devdocs/search/ConstantsV.html                 |    6 +-
 doc/devdocs/search/ConstantsX.html                 |    6 +-
 doc/devdocs/search/ConstantsY.html                 |    6 +-
 doc/devdocs/search/ConstantsZ.html                 |    4 +-
 doc/devdocs/search/ConstructorA.html               |    6 +-
 doc/devdocs/search/ConstructorB.html               |    6 +-
 doc/devdocs/search/ConstructorC.html               |    6 +-
 doc/devdocs/search/ConstructorD.html               |    6 +-
 doc/devdocs/search/ConstructorE.html               |    6 +-
 doc/devdocs/search/ConstructorF.html               |    6 +-
 doc/devdocs/search/ConstructorG.html               |    6 +-
 doc/devdocs/search/ConstructorH.html               |    6 +-
 doc/devdocs/search/ConstructorI.html               |    6 +-
 doc/devdocs/search/ConstructorJ.html               |    6 +-
 doc/devdocs/search/ConstructorK.html               |    6 +-
 doc/devdocs/search/ConstructorL.html               |    6 +-
 doc/devdocs/search/ConstructorM.html               |    6 +-
 doc/devdocs/search/ConstructorN.html               |    6 +-
 doc/devdocs/search/ConstructorO.html               |    6 +-
 doc/devdocs/search/ConstructorP.html               |    6 +-
 doc/devdocs/search/ConstructorR.html               |    6 +-
 doc/devdocs/search/ConstructorS.html               |    6 +-
 doc/devdocs/search/ConstructorT.html               |    6 +-
 doc/devdocs/search/ConstructorU.html               |    6 +-
 doc/devdocs/search/ConstructorV.html               |    6 +-
 doc/devdocs/search/ConstructorW.html               |    6 +-
 doc/devdocs/search/ConstructorX.html               |    6 +-
 doc/devdocs/search/ConstructorY.html               |    6 +-
 doc/devdocs/search/ConstructorZ.html               |    6 +-
 doc/devdocs/search/FilesA.html                     |    6 +-
 doc/devdocs/search/FilesC.html                     |    6 +-
 doc/devdocs/search/FilesI.html                     |   20 +
 doc/devdocs/search/FilesK.html                     |   20 +
 doc/devdocs/search/FilesO.html                     |    4 +-
 doc/devdocs/search/FilesS.html                     |    6 +-
 doc/devdocs/search/FilesV.html                     |    4 +-
 doc/devdocs/search/FilesW.html                     |    6 +-
 doc/devdocs/search/FunctionsA.html                 |    6 +-
 doc/devdocs/search/FunctionsB.html                 |    6 +-
 doc/devdocs/search/FunctionsC.html                 |    6 +-
 doc/devdocs/search/FunctionsD.html                 |    6 +-
 doc/devdocs/search/FunctionsE.html                 |    6 +-
 doc/devdocs/search/FunctionsF.html                 |    6 +-
 doc/devdocs/search/FunctionsG.html                 |    6 +-
 doc/devdocs/search/FunctionsH.html                 |    6 +-
 doc/devdocs/search/FunctionsI.html                 |    6 +-
 doc/devdocs/search/FunctionsL.html                 |    6 +-
 doc/devdocs/search/FunctionsM.html                 |    6 +-
 doc/devdocs/search/FunctionsN.html                 |    6 +-
 doc/devdocs/search/FunctionsO.html                 |    6 +-
 doc/devdocs/search/FunctionsP.html                 |    6 +-
 doc/devdocs/search/FunctionsQ.html                 |   20 +
 doc/devdocs/search/FunctionsR.html                 |    6 +-
 doc/devdocs/search/FunctionsS.html                 |    6 +-
 doc/devdocs/search/FunctionsSymbols.html           |    6 +-
 doc/devdocs/search/FunctionsT.html                 |    6 +-
 doc/devdocs/search/FunctionsU.html                 |    6 +-
 doc/devdocs/search/FunctionsV.html                 |    6 +-
 doc/devdocs/search/FunctionsW.html                 |    6 +-
 doc/devdocs/search/FunctionsZ.html                 |    6 +-
 doc/devdocs/search/GeneralA.html                   |    6 +-
 doc/devdocs/search/GeneralB.html                   |    6 +-
 doc/devdocs/search/GeneralC.html                   |    6 +-
 doc/devdocs/search/GeneralD.html                   |    6 +-
 doc/devdocs/search/GeneralE.html                   |    6 +-
 doc/devdocs/search/GeneralF.html                   |    6 +-
 doc/devdocs/search/GeneralG.html                   |    6 +-
 doc/devdocs/search/GeneralH.html                   |    6 +-
 doc/devdocs/search/GeneralI.html                   |    6 +-
 doc/devdocs/search/GeneralJ.html                   |    6 +-
 doc/devdocs/search/GeneralK.html                   |    6 +-
 doc/devdocs/search/GeneralL.html                   |    6 +-
 doc/devdocs/search/GeneralM.html                   |    6 +-
 doc/devdocs/search/GeneralN.html                   |    6 +-
 doc/devdocs/search/GeneralO.html                   |    6 +-
 doc/devdocs/search/GeneralP.html                   |    6 +-
 doc/devdocs/search/GeneralQ.html                   |    6 +-
 doc/devdocs/search/GeneralR.html                   |    6 +-
 doc/devdocs/search/GeneralS.html                   |    6 +-
 doc/devdocs/search/GeneralSymbols.html             |    6 +-
 doc/devdocs/search/GeneralT.html                   |    6 +-
 doc/devdocs/search/GeneralU.html                   |    6 +-
 doc/devdocs/search/GeneralV.html                   |    6 +-
 doc/devdocs/search/GeneralW.html                   |    6 +-
 doc/devdocs/search/GeneralX.html                   |    6 +-
 doc/devdocs/search/GeneralY.html                   |    6 +-
 doc/devdocs/search/GeneralZ.html                   |    6 +-
 doc/devdocs/search/NoResults.html                  |    4 +-
 doc/devdocs/search/PropertiesA.html                |    6 +-
 doc/devdocs/search/PropertiesB.html                |    6 +-
 doc/devdocs/search/PropertiesC.html                |    6 +-
 doc/devdocs/search/PropertiesD.html                |    6 +-
 doc/devdocs/search/PropertiesE.html                |    6 +-
 doc/devdocs/search/PropertiesF.html                |    6 +-
 doc/devdocs/search/PropertiesG.html                |    6 +-
 doc/devdocs/search/PropertiesH.html                |    6 +-
 doc/devdocs/search/PropertiesI.html                |    6 +-
 doc/devdocs/search/PropertiesJ.html                |    6 +-
 doc/devdocs/search/PropertiesK.html                |    6 +-
 doc/devdocs/search/PropertiesL.html                |    6 +-
 doc/devdocs/search/PropertiesM.html                |    6 +-
 doc/devdocs/search/PropertiesN.html                |    6 +-
 doc/devdocs/search/PropertiesO.html                |    6 +-
 doc/devdocs/search/PropertiesP.html                |    6 +-
 doc/devdocs/search/PropertiesQ.html                |    6 +-
 doc/devdocs/search/PropertiesR.html                |    6 +-
 doc/devdocs/search/PropertiesS.html                |    6 +-
 doc/devdocs/search/PropertiesSymbols.html          |    6 +-
 doc/devdocs/search/PropertiesT.html                |    6 +-
 doc/devdocs/search/PropertiesU.html                |    6 +-
 doc/devdocs/search/PropertiesV.html                |    6 +-
 doc/devdocs/search/PropertiesW.html                |    6 +-
 doc/devdocs/search/PropertiesX.html                |    6 +-
 doc/devdocs/search/PropertiesY.html                |    6 +-
 doc/devdocs/search/PropertiesZ.html                |    6 +-
 doc/devdocs/styles/1.css                           |  127 +-
 doc_config/Data/ClassHierarchy.nd                  |  Bin 30562 -> 37616 bytes
 doc_config/Data/ConfigFileInfo.nd                  |  Bin 26 -> 26 bytes
 doc_config/Data/FileInfo.nd                        |  604 ++--
 doc_config/Data/ImageFileInfo.nd                   |  Bin 216 -> 252 bytes
 doc_config/Data/ImageReferenceTable.nd             |  Bin 252 -> 494 bytes
 doc_config/Data/IndexInfo.nd                       |  Bin 267 -> 267 bytes
 doc_config/Data/PreviousMenuState.nd               |  Bin 23441 -> 29654 bytes
 doc_config/Data/PreviousSettings.nd                |  Bin 115 -> 139 bytes
 doc_config/Data/SymbolTable.nd                     |  Bin 974754 -> 1164493 bytes
 doc_config/Languages.txt                           |    2 +-
 doc_config/Menu.txt                                |  308 ++-
 doc_config/Topics.txt                              |    2 +-
 examples/GMLParser.html                            |   43 -
 examples/Jugl.js                                   |   86 +-
 examples/KMLParser.html                            |   22 +-
 examples/SLDSelect.html                            |   16 +-
 examples/WMSDescribeLayerParser.html               |   26 +-
 examples/WMSPost.html                              |  175 --
 examples/accelerometer.html                        |  100 +
 examples/accessible.html                           |   17 +-
 examples/all-overlays-google.html                  |    6 +
 examples/all-overlays.html                         |   13 +-
 examples/anchor-permalink.html                     |   29 +
 examples/anchor-permalink.js                       |   13 +
 examples/animated_panning.html                     |   16 +-
 examples/arcgis93rest.html                         |   11 +-
 examples/arcgiscache_ags.html                      |  221 ++
 examples/arcgiscache_direct.html                   |  108 +
 examples/arcgiscache_jsonp.html                    |  110 +
 examples/arcims-thematic.html                      |   11 +-
 examples/arcims.html                               |   11 +-
 examples/attribution.html                          |   24 +-
 examples/baseLayers.html                           |   96 -
 examples/behavior-fixed-http-gml.html              |   17 +-
 examples/bing-tiles-restrictedzoom.html            |   43 +
 examples/bing-tiles-restrictedzoom.js              |   37 +
 examples/bing-tiles.html                           |   39 +
 examples/bing-tiles.js                             |   29 +
 examples/bing.html                                 |   29 +-
 examples/boxes-vector.html                         |   17 +-
 examples/boxes.html                                |   13 +-
 examples/browser-name.html                         |   89 -
 examples/browser.html                              |  152 ++
 examples/browser.js                                |  241 ++
 examples/buffer.html                               |   11 +-
 examples/canvas-hit-detection.html                 |   31 +
 examples/canvas-hit-detection.js                   |   88 +
 examples/canvas-inspector.html                     |   53 +
 examples/canvas-inspector.js                       |   91 +
 examples/canvas.html                               |   13 +-
 examples/canvas.js                                 |    4 +-
 examples/click-handler.html                        |   13 +-
 examples/click.html                                |   22 +-
 examples/controls.html                             |   45 +-
 examples/cql-format.html                           |   54 +
 examples/cql-format.js                             |   61 +
 examples/cross-origin.html                         |   36 +
 examples/cross-origin.js                           |   39 +
 examples/custom-control-point.html                 |   56 -
 examples/custom-control.html                       |   21 +-
 examples/custom-style.html                         |   13 +-
 examples/debug.html                                |   20 +-
 examples/document-drag.html                        |   16 +-
 examples/donut.html                                |   62 +
 examples/donut.js                                  |   44 +
 examples/doubleSetCenter.html                      |   14 +-
 examples/drag-feature.html                         |   22 +-
 examples/draw-feature.html                         |   31 +-
 examples/draw-undo-redo.html                       |   38 +
 examples/draw-undo-redo.js                         |   45 +
 examples/dynamic-text-layer.html                   |   37 +-
 examples/editing-methods.html                      |   58 +
 examples/editing-methods.js                        |   83 +
 examples/editingtoolbar-outside.html               |   18 +-
 examples/editingtoolbar.html                       |   20 +-
 examples/events.html                               |   11 +-
 examples/example-list.html                         |  115 +-
 examples/example-list.js                           |    0
 examples/example.html                              |   78 +-
 examples/example.js                                |   23 +
 examples/filter-strategy.html                      |   10 +-
 examples/filter-strategy.js                        |  101 +-
 examples/filter.html                               |   20 +-
 examples/fractional-zoom.html                      |   13 +-
 examples/fullScreen.html                           |   53 +-
 examples/fullScreen.js                             |   15 +
 examples/game-accel-ball.html                      |   82 +
 examples/geojson.html                              |   21 +-
 examples/geolocation.html                          |   41 +
 examples/geolocation.js                            |  113 +
 examples/georss-flickr.html                        |   28 +-
 examples/georss-markers.html                       |   16 +-
 examples/georss.html                               |   22 +-
 examples/getfeature-wfs.html                       |   23 +-
 examples/getfeatureinfo-control.html               |   16 +-
 examples/getfeatureinfo-popup.html                 |   12 +-
 examples/getfeatureinfo.html                       |   62 -
 examples/gml-layer.html                            |   16 +-
 examples/google-reproject.html                     |   18 +-
 examples/google-v3-alloverlays.html                |    6 +
 examples/google-v3.html                            |   10 +-
 examples/google-v3.js                              |    8 +
 examples/google.html                               |   16 +-
 examples/graphic-name.html                         |  131 +-
 examples/graphic-name.js                           |   62 +
 examples/graticule.html                            |   11 +-
 examples/gutter.html                               |   14 +-
 examples/highlight-feature.html                    |   16 +-
 examples/hover-handler.html                        |   11 +-
 examples/image-layer.html                          |   16 +-
 examples/img/check-round-green.png                 |  Bin 0 -> 895 bytes
 examples/img/check-round-grey.png                  |  Bin 0 -> 1057 bytes
 examples/img/list.png                              |  Bin 0 -> 995 bytes
 examples/img/locate.png                            |  Bin 0 -> 469 bytes
 examples/{ => img}/marker_shadow.png               |  Bin
 examples/img/minus1.png                            |  Bin 0 -> 261 bytes
 examples/img/mobile-layers.png                     |  Bin 0 -> 290 bytes
 examples/img/mobile-loc.png                        |  Bin 0 -> 353 bytes
 examples/img/mobile-zoombar.png                    |  Bin 0 -> 3760 bytes
 examples/img/openlayers.png                        |  Bin 0 -> 679 bytes
 examples/{ => img}/popupMatrix.jpg                 |  Bin
 examples/{ => img}/small.jpg                       |  Bin
 examples/{ => img}/thinlong.jpg                    |  Bin
 examples/{ => img}/widelong.jpg                    |  Bin
 examples/{ => img}/wideshort.jpg                   |  Bin
 examples/intersects.html                           |   24 +-
 examples/kamap.html                                |   14 +-
 examples/kinetic.html                              |   44 +
 examples/kinetic.js                                |   28 +
 examples/kml-layer.html                            |   65 +-
 examples/kml-layer.js                              |   22 +
 examples/kml-pointtrack.html                       |   40 +
 examples/kml-pointtrack.js                         |   51 +
 examples/kml-track.html                            |    6 +
 examples/kml-track.js                              |    2 +-
 examples/label-scale.html                          |   34 +
 examples/label-scale.js                            |   72 +
 examples/late-render.html                          |   18 +-
 examples/layer-opacity.html                        |   14 +-
 examples/layerLoadMonitoring.html                  |   14 +-
 examples/layerswitcher.html                        |   11 +-
 examples/lite.html                                 |   17 +-
 examples/mapguide.html                             |   11 +-
 examples/mapserver.html                            |   16 +-
 examples/mapserver_untiled.html                    |   18 +-
 examples/marker-shadow.html                        |   20 +-
 examples/markerResize.html                         |   19 +-
 examples/markers.html                              |   16 +-
 examples/markersTextLayer.html                     |   13 +-
 examples/measure.html                              |   28 +-
 examples/mm.html                                   |   16 +-
 examples/mobile-base.js                            |  172 ++
 examples/mobile-drawing.html                       |   82 +
 examples/mobile-drawing.js                         |   64 +
 examples/mobile-jq.html                            |   76 +
 examples/mobile-jq.js                              |  152 ++
 examples/mobile-layers.html                        |   98 +
 examples/mobile-layers.js                          |   71 +
 examples/mobile-navigation.html                    |   52 +
 examples/mobile-navigation.js                      |   29 +
 examples/mobile-sencha.html                        |  184 ++
 examples/mobile-sencha.js                          |  198 ++
 examples/mobile.html                               |   86 +
 examples/mobile.js                                 |   39 +
 examples/modify-feature.html                       |   47 +-
 examples/mouse-position.html                       |   17 +-
 examples/mousewheel-interval.html                  |   14 +-
 examples/multimap-mercator.html                    |   16 +-
 examples/multiserver.html                          |   19 +-
 examples/multitouch.html                           |   28 +
 examples/mvs.html                                  |    4 +
 examples/navigation-control.html                   |   20 +-
 examples/navigation-history.html                   |    9 +-
 examples/navtoolbar-alwaysZoom.html                |   19 +-
 examples/navtoolbar-outsidemap.html                |   22 +-
 examples/navtoolbar.html                           |   13 +-
 examples/notile.html                               |   39 -
 examples/openls.html                               |   88 +
 examples/ordering.html                             |   18 +-
 examples/osm-google.html                           |    8 +-
 examples/osm-layer.html                            |   13 +-
 examples/osm.html                                  |   16 +-
 examples/outOfRangeMarkers.html                    |   13 +-
 examples/overviewmap.html                          |    8 +-
 examples/pan-zoom-panels.html                      |   14 +-
 examples/panel.html                                |   13 +-
 examples/point-grid.html                           |   75 +
 examples/point-grid.js                             |   33 +
 examples/point-track-markers.html                  |   16 +-
 examples/popupMatrix.html                          |  191 +-
 examples/popups.html                               |   11 +-
 examples/projected-map.html                        |   11 +-
 examples/protocol-gears.html                       |   14 +-
 examples/proxy.cgi                                 |    4 +-
 examples/regular-polygons.html                     |   13 +-
 examples/resize-features.html                      |   13 +-
 examples/restricted-extent.html                    |   21 +-
 examples/rotate-features.html                      |   15 +-
 examples/select-feature-multilayer.html            |   13 +-
 examples/select-feature-openpopup.html             |   15 +-
 examples/select-feature.html                       |   23 +-
 examples/setextent.html                            |    9 +-
 examples/simplify-linestring.html                  |  103 +
 examples/simplify-linestring.js                    |  599 ++++
 examples/single-tile.html                          |   33 +
 examples/single-tile.js                            |   20 +
 examples/sld-parser.html                           |   11 +-
 examples/sld.html                                  |  117 +-
 examples/sld.js                                    |  102 +
 examples/snap-grid.html                            |   78 +
 examples/snap-grid.js                              |   81 +
 examples/snap-split.html                           |   37 +-
 examples/snapping.html                             |   24 +-
 examples/sos.html                                  |   26 +-
 examples/spherical-mercator.html                   |  218 +-
 examples/split-feature.html                        |   20 +-
 examples/strategy-bbox.html                        |   13 +-
 examples/strategy-cluster-extended.html            |  125 +
 examples/strategy-cluster-extended.js              |  247 ++
 examples/strategy-cluster-threshold.html           |   15 +-
 examples/strategy-cluster.html                     |   16 +-
 examples/strategy-paging.html                      |   15 +-
 examples/style-rules.html                          |   14 +-
 examples/style.css                                 |   53 +
 examples/style.mobile-jq.css                       |   62 +
 examples/style.mobile.css                          |   25 +
 examples/stylemap.html                             |   14 +-
 examples/styles-context.html                       |   30 +-
 examples/styles-rotation.html                      |   13 +-
 examples/styles-unique.html                        |   14 +-
 examples/sundials-spherical-mercator.html          |   41 +-
 examples/sundials.html                             |   19 +-
 examples/symbolizers-fill-stroke-graphic.html      |   17 +-
 examples/tasmania/sld-tasmania.xml                 |    2 +-
 examples/teleportation.html                        |   18 +-
 examples/tile-origin.html                          |   38 +
 examples/tile-origin.js                            |   16 +
 examples/tilecache.html                            |   18 +-
 examples/tms.html                                  |   18 +-
 examples/transform-feature.html                    |   11 +-
 examples/transition.html                           |   11 +-
 examples/urban.html                                |   16 +-
 examples/ve-novibrate.html                         |   18 +-
 examples/ve.html                                   |   16 +-
 examples/vector-features-with-text.html            |   20 +-
 examples/vector-features.html                      |   22 +-
 examples/vector-formats.html                       |   22 +-
 examples/web-mercator.html                         |    8 +-
 examples/wfs-filter.html                           |    6 +
 examples/wfs-protocol-transactions.html            |   27 +-
 examples/wfs-protocol-transactions.js              |   32 +-
 examples/wfs-protocol.html                         |   13 +-
 examples/wfs-reprojection.html                     |   11 +-
 examples/wfs-snap-split.html                       |   60 +-
 examples/wfs-spatial-filter.html                   |   37 +
 examples/wfs-spatial-filter.js                     |   36 +
 examples/wfs-states.html                           |   12 +-
 examples/wfs-states.js                             |    7 +-
 examples/wmc.html                                  |   46 +-
 examples/wms-long-url.html                         |   44 +
 examples/wms-long-url.js                           |   26 +
 examples/wms-untiled.html                          |   11 +-
 examples/wms-v13.html                              |   15 +-
 examples/wms.html                                  |   16 +-
 examples/wmst.html                                 |   18 +-
 examples/wmts-capabilities.html                    |    9 +-
 examples/wmts-getfeatureinfo.html                  |    9 +-
 examples/wmts.html                                 |    9 +-
 examples/worldwind.html                            |   23 +-
 examples/wrapDateLine.html                         |   19 +-
 examples/xhtml.html                                |   10 +-
 examples/xml.html                                  |   22 +-
 examples/xyz-esri.html                             |   17 +-
 examples/xyz-offset.html                           |   11 +-
 examples/yahoo.html                                |   18 +-
 examples/zoomLevels.html                           |   15 +-
 examples/zoomify.html                              |   24 +-
 img/cloud-popup-relative.png                       |  Bin 3177 -> 4067 bytes
 img/drag-rectangle-off.png                         |  Bin 1202 -> 1024 bytes
 img/drag-rectangle-on.png                          |  Bin 1218 -> 1041 bytes
 img/east-mini.png                                  |  Bin 451 -> 342 bytes
 img/layer-switcher-maximize.png                    |  Bin 451 -> 405 bytes
 img/layer-switcher-minimize.png                    |  Bin 249 -> 220 bytes
 img/marker-blue.png                                |  Bin 992 -> 758 bytes
 img/marker-gold.png                                |  Bin 831 -> 703 bytes
 img/marker-green.png                               |  Bin 967 -> 753 bytes
 img/marker.png                                     |  Bin 606 -> 601 bytes
 img/measuring-stick-off.png                        |  Bin 3343 -> 3028 bytes
 img/measuring-stick-on.png                         |  Bin 3816 -> 3725 bytes
 img/north-mini.png                                 |  Bin 484 -> 378 bytes
 img/panning-hand-off.png                           |  Bin 3875 -> 3511 bytes
 img/panning-hand-on.png                            |  Bin 3977 -> 3565 bytes
 img/slider.png                                     |  Bin 285 -> 247 bytes
 img/south-mini.png                                 |  Bin 481 -> 373 bytes
 img/west-mini.png                                  |  Bin 453 -> 360 bytes
 img/zoom-minus-mini.png                            |  Bin 359 -> 291 bytes
 img/zoom-plus-mini.png                             |  Bin 489 -> 386 bytes
 img/zoom-world-mini.png                            |  Bin 1072 -> 882 bytes
 img/zoombar.png                                    |  Bin 463 -> 350 bytes
 lib/Firebug/firebugx.js                            |   17 +-
 lib/OpenLayers.js                                  |  624 +++--
 lib/OpenLayers/Ajax.js                             |    7 +-
 lib/OpenLayers/BaseTypes.js                        |  152 +-
 lib/OpenLayers/BaseTypes/Bounds.js                 |   46 +-
 lib/OpenLayers/BaseTypes/Class.js                  |  161 +-
 lib/OpenLayers/BaseTypes/Date.js                   |  118 +
 lib/OpenLayers/BaseTypes/Element.js                |   19 +-
 lib/OpenLayers/BaseTypes/LonLat.js                 |   29 +-
 lib/OpenLayers/BaseTypes/Pixel.js                  |   22 +-
 lib/OpenLayers/BaseTypes/Size.js                   |    8 +-
 lib/OpenLayers/Console.js                          |    8 +-
 lib/OpenLayers/Control.js                          |   28 +-
 lib/OpenLayers/Control/ArgParser.js                |   26 +-
 lib/OpenLayers/Control/Attribution.js              |    5 +-
 lib/OpenLayers/Control/Button.js                   |    2 +-
 lib/OpenLayers/Control/DragFeature.js              |   67 +-
 lib/OpenLayers/Control/DragPan.js                  |   75 +-
 lib/OpenLayers/Control/DrawFeature.js              |  102 +-
 lib/OpenLayers/Control/EditingToolbar.js           |    6 +-
 lib/OpenLayers/Control/Geolocate.js                |  180 ++
 lib/OpenLayers/Control/GetFeature.js               |    7 +-
 lib/OpenLayers/Control/Graticule.js                |    5 +-
 lib/OpenLayers/Control/KeyboardDefaults.js         |   17 +-
 lib/OpenLayers/Control/LayerSwitcher.js            |   10 +-
 lib/OpenLayers/Control/Measure.js                  |   88 +-
 lib/OpenLayers/Control/ModifyFeature.js            |   57 +-
 lib/OpenLayers/Control/MouseDefaults.js            |    8 +-
 lib/OpenLayers/Control/MousePosition.js            |    5 +-
 lib/OpenLayers/Control/MouseToolbar.js             |    6 +-
 lib/OpenLayers/Control/NavToolbar.js               |    6 +-
 lib/OpenLayers/Control/Navigation.js               |   46 +-
 lib/OpenLayers/Control/NavigationHistory.js        |    2 +-
 lib/OpenLayers/Control/OverviewMap.js              |    6 +-
 lib/OpenLayers/Control/Pan.js                      |   28 +-
 lib/OpenLayers/Control/PanPanel.js                 |   30 +-
 lib/OpenLayers/Control/PanZoom.js                  |    6 +-
 lib/OpenLayers/Control/PanZoomBar.js               |   92 +-
 lib/OpenLayers/Control/Panel.js                    |   87 +-
 lib/OpenLayers/Control/Permalink.js                |   55 +-
 lib/OpenLayers/Control/PinchZoom.js                |  192 ++
 lib/OpenLayers/Control/SLDSelect.js                |   20 +-
 lib/OpenLayers/Control/Scale.js                    |    5 +-
 lib/OpenLayers/Control/ScaleLine.js                |    5 +-
 lib/OpenLayers/Control/SelectFeature.js            |   31 +-
 lib/OpenLayers/Control/Snapping.js                 |   33 +-
 lib/OpenLayers/Control/Split.js                    |    6 +-
 lib/OpenLayers/Control/TouchNavigation.js          |  183 ++
 lib/OpenLayers/Control/TransformFeature.js         |   31 +-
 lib/OpenLayers/Control/WMSGetFeatureInfo.js        |   64 +-
 lib/OpenLayers/Control/WMTSGetFeatureInfo.js       |   45 +-
 lib/OpenLayers/Control/ZoomBox.js                  |    2 +-
 lib/OpenLayers/Control/ZoomIn.js                   |    2 +-
 lib/OpenLayers/Control/ZoomOut.js                  |    2 +-
 lib/OpenLayers/Control/ZoomPanel.js                |    2 +-
 lib/OpenLayers/Control/ZoomToMaxExtent.js          |    2 +-
 lib/OpenLayers/Events.js                           |   97 +-
 lib/OpenLayers/Feature.js                          |   26 +-
 lib/OpenLayers/Feature/Vector.js                   |   51 +-
 lib/OpenLayers/Feature/WFS.js                      |    2 +-
 lib/OpenLayers/Filter.js                           |    9 +-
 lib/OpenLayers/Filter/Comparison.js                |   15 +-
 lib/OpenLayers/Filter/FeatureId.js                 |    8 +-
 lib/OpenLayers/Filter/Function.js                  |   52 +
 lib/OpenLayers/Filter/Logical.js                   |    8 +-
 lib/OpenLayers/Filter/Spatial.js                   |    3 +-
 lib/OpenLayers/Format.js                           |    4 +-
 lib/OpenLayers/Format/ArcXML.js                    |    4 +-
 lib/OpenLayers/Format/ArcXML/Features.js           |    2 +-
 lib/OpenLayers/Format/Atom.js                      |   15 +-
 lib/OpenLayers/Format/CQL.js                       |  438 +++
 lib/OpenLayers/Format/CSWGetDomain.js              |    8 +-
 lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js       |   12 +-
 lib/OpenLayers/Format/CSWGetRecords.js             |    8 +-
 lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js      |   47 +-
 lib/OpenLayers/Format/Context.js                   |   73 +-
 lib/OpenLayers/Format/Filter.js                    |   70 +-
 lib/OpenLayers/Format/Filter/v1.js                 |  108 +-
 lib/OpenLayers/Format/Filter/v1_0_0.js             |   33 +-
 lib/OpenLayers/Format/Filter/v1_1_0.js             |   63 +-
 lib/OpenLayers/Format/GML.js                       |    7 +-
 lib/OpenLayers/Format/GML/Base.js                  |   89 +-
 lib/OpenLayers/Format/GML/v2.js                    |    4 +-
 lib/OpenLayers/Format/GML/v3.js                    |   14 +-
 lib/OpenLayers/Format/GPX.js                       |    8 +-
 lib/OpenLayers/Format/GeoJSON.js                   |   26 +-
 lib/OpenLayers/Format/GeoRSS.js                    |   15 +-
 lib/OpenLayers/Format/JSON.js                      |   53 +-
 lib/OpenLayers/Format/KML.js                       |   40 +-
 lib/OpenLayers/Format/OGCExceptionReport.js        |  108 +
 lib/OpenLayers/Format/OSM.js                       |   16 +-
 lib/OpenLayers/Format/OWSCommon.js                 |   78 +
 lib/OpenLayers/Format/OWSCommon/v1.js              |   51 +-
 lib/OpenLayers/Format/OWSCommon/v1_0_0.js          |   23 +-
 lib/OpenLayers/Format/OWSCommon/v1_1_0.js          |   57 +-
 lib/OpenLayers/Format/OWSContext.js                |   42 +-
 lib/OpenLayers/Format/OWSContext/v0_3_1.js         |   15 +-
 lib/OpenLayers/Format/QueryStringFilter.js         |  180 ++
 lib/OpenLayers/Format/SLD.js                       |   75 +-
 lib/OpenLayers/Format/SLD/v1.js                    |    6 +-
 lib/OpenLayers/Format/SLD/v1_0_0.js                |    2 +-
 lib/OpenLayers/Format/SOSCapabilities.js           |   45 +-
 lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js    |    2 +-
 lib/OpenLayers/Format/SOSGetFeatureOfInterest.js   |    5 +-
 lib/OpenLayers/Format/SOSGetObservation.js         |  556 ++--
 lib/OpenLayers/Format/Text.js                      |    2 +-
 lib/OpenLayers/Format/WCSGetCoverage.js            |  199 ++
 lib/OpenLayers/Format/WFS.js                       |    3 +-
 lib/OpenLayers/Format/WFSCapabilities.js           |   48 +-
 lib/OpenLayers/Format/WFSCapabilities/v1.js        |    2 +-
 lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js    |   16 +-
 lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js    |   14 +-
 lib/OpenLayers/Format/WFSDescribeFeatureType.js    |    7 +-
 lib/OpenLayers/Format/WFST.js                      |    2 +-
 lib/OpenLayers/Format/WFST/v1.js                   |  120 +-
 lib/OpenLayers/Format/WFST/v1_0_0.js               |   30 +-
 lib/OpenLayers/Format/WFST/v1_1_0.js               |   40 +-
 lib/OpenLayers/Format/WKT.js                       |   66 +-
 lib/OpenLayers/Format/WMC.js                       |  104 +-
 lib/OpenLayers/Format/WMC/v1.js                    |  519 +++-
 lib/OpenLayers/Format/WMC/v1_0_0.js                |   30 +-
 lib/OpenLayers/Format/WMC/v1_1_0.js                |   24 +-
 lib/OpenLayers/Format/WMSCapabilities.js           |   48 +-
 lib/OpenLayers/Format/WMSCapabilities/v1.js        |   47 +-
 lib/OpenLayers/Format/WMSCapabilities/v1_1.js      |    2 +-
 lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js    |    2 +-
 lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js    |    2 +-
 .../Format/WMSCapabilities/v1_1_1_WMSC.js          |   90 +
 lib/OpenLayers/Format/WMSCapabilities/v1_3.js      |   10 +-
 lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js    |   10 +-
 lib/OpenLayers/Format/WMSDescribeLayer.js          |   62 +-
 lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js     |    2 +-
 lib/OpenLayers/Format/WMSGetFeatureInfo.js         |   36 +-
 lib/OpenLayers/Format/WMTSCapabilities.js          |   43 +-
 lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js   |   11 +-
 lib/OpenLayers/Format/WPSCapabilities.js           |   48 +
 lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js    |  119 +
 lib/OpenLayers/Format/WPSDescribeProcess.js        |  181 ++
 lib/OpenLayers/Format/WPSExecute.js                |  250 ++
 lib/OpenLayers/Format/XLS.js                       |   68 +
 lib/OpenLayers/Format/XLS/v1.js                    |  307 +++
 lib/OpenLayers/Format/XLS/v1_1_0.js                |   53 +
 lib/OpenLayers/Format/XML.js                       |   32 +-
 lib/OpenLayers/Format/XML/VersionedOGC.js          |  190 ++
 lib/OpenLayers/Geometry.js                         |    5 +-
 lib/OpenLayers/Geometry/Collection.js              |   35 +-
 lib/OpenLayers/Geometry/Curve.js                   |    2 +-
 lib/OpenLayers/Geometry/LineString.js              |  101 +-
 lib/OpenLayers/Geometry/LinearRing.js              |   10 +-
 lib/OpenLayers/Geometry/MultiLineString.js         |    2 +-
 lib/OpenLayers/Geometry/MultiPoint.js              |    2 +-
 lib/OpenLayers/Geometry/MultiPolygon.js            |    2 +-
 lib/OpenLayers/Geometry/Point.js                   |    2 +-
 lib/OpenLayers/Geometry/Polygon.js                 |    2 +-
 lib/OpenLayers/Geometry/Rectangle.js               |    4 +-
 lib/OpenLayers/Geometry/Surface.js                 |    2 +-
 lib/OpenLayers/Handler.js                          |    3 +-
 lib/OpenLayers/Handler/Box.js                      |  156 +-
 lib/OpenLayers/Handler/Click.js                    |  318 ++-
 lib/OpenLayers/Handler/Drag.js                     |  354 ++-
 lib/OpenLayers/Handler/Feature.js                  |   60 +-
 lib/OpenLayers/Handler/Hover.js                    |    4 +-
 lib/OpenLayers/Handler/Keyboard.js                 |    2 +-
 lib/OpenLayers/Handler/MouseWheel.js               |    2 +-
 lib/OpenLayers/Handler/Path.js                     |  323 ++-
 lib/OpenLayers/Handler/Pinch.js                    |  233 ++
 lib/OpenLayers/Handler/Point.js                    |  301 +-
 lib/OpenLayers/Handler/Polygon.js                  |  214 +-
 lib/OpenLayers/Handler/RegularPolygon.js           |    8 +-
 lib/OpenLayers/Icon.js                             |    6 +-
 lib/OpenLayers/Kinetic.js                          |  183 ++
 lib/OpenLayers/Lang.js                             |    7 +-
 lib/OpenLayers/Lang/ar.js                          |    6 +-
 lib/OpenLayers/Lang/be-tarask.js                   |   12 +-
 lib/OpenLayers/Lang/bg.js                          |    6 +-
 lib/OpenLayers/Lang/br.js                          |   12 +-
 lib/OpenLayers/Lang/ca.js                          |   17 +-
 lib/OpenLayers/Lang/cs-CZ.js                       |   14 +-
 lib/OpenLayers/Lang/da-DK.js                       |   15 +-
 lib/OpenLayers/Lang/de.js                          |   12 +-
 lib/OpenLayers/Lang/el.js                          |    2 +-
 lib/OpenLayers/Lang/en.js                          |   20 +-
 lib/OpenLayers/Lang/es.js                          |   17 +-
 lib/OpenLayers/Lang/fi.js                          |    8 +-
 lib/OpenLayers/Lang/fr.js                          |   15 +-
 lib/OpenLayers/Lang/fur.js                         |    8 +-
 lib/OpenLayers/Lang/gl.js                          |   12 +-
 lib/OpenLayers/Lang/gsw.js                         |   12 +-
 lib/OpenLayers/Lang/hr.js                          |   14 +-
 lib/OpenLayers/Lang/hsb.js                         |   12 +-
 lib/OpenLayers/Lang/hu.js                          |   12 +-
 lib/OpenLayers/Lang/ia.js                          |   12 +-
 lib/OpenLayers/Lang/id.js                          |   12 +-
 lib/OpenLayers/Lang/io.js                          |    2 +-
 lib/OpenLayers/Lang/is.js                          |   10 +-
 lib/OpenLayers/Lang/it.js                          |   15 +-
 lib/OpenLayers/Lang/ja.js                          |   12 +-
 lib/OpenLayers/Lang/km.js                          |    6 +-
 lib/OpenLayers/Lang/ksh.js                         |   12 +-
 lib/OpenLayers/Lang/lt.js                          |   75 +
 lib/OpenLayers/Lang/nb.js                          |   15 +-
 lib/OpenLayers/Lang/nds.js                         |   14 +-
 lib/OpenLayers/Lang/nl.js                          |   12 +-
 lib/OpenLayers/Lang/nn.js                          |    2 +-
 lib/OpenLayers/Lang/oc.js                          |   12 +-
 lib/OpenLayers/Lang/pt-BR.js                       |   12 +-
 lib/OpenLayers/Lang/pt.js                          |   12 +-
 lib/OpenLayers/Lang/ru.js                          |   12 +-
 lib/OpenLayers/Lang/sk.js                          |   12 +-
 lib/OpenLayers/Lang/sv-SE.js                       |   12 +-
 lib/OpenLayers/Lang/te.js                          |    2 +-
 lib/OpenLayers/Lang/vi.js                          |   12 +-
 lib/OpenLayers/Lang/zh-CN.js                       |   15 +-
 lib/OpenLayers/Lang/zh-TW.js                       |   15 +-
 lib/OpenLayers/Layer.js                            |  112 +-
 lib/OpenLayers/Layer/ArcGIS93Rest.js               |   19 +-
 lib/OpenLayers/Layer/ArcGISCache.js                |  477 ++++
 lib/OpenLayers/Layer/ArcIMS.js                     |   19 +-
 lib/OpenLayers/Layer/Bing.js                       |  278 ++
 lib/OpenLayers/Layer/Boxes.js                      |    2 +-
 lib/OpenLayers/Layer/EventPane.js                  |   26 +-
 lib/OpenLayers/Layer/FixedZoomLevels.js            |   12 +-
 lib/OpenLayers/Layer/GML.js                        |    3 +-
 lib/OpenLayers/Layer/GeoRSS.js                     |    2 +-
 lib/OpenLayers/Layer/Google.js                     |    3 +-
 lib/OpenLayers/Layer/Google/v3.js                  |   61 +-
 lib/OpenLayers/Layer/Grid.js                       |  191 +-
 lib/OpenLayers/Layer/HTTPRequest.js                |   10 +-
 lib/OpenLayers/Layer/Image.js                      |    2 +-
 lib/OpenLayers/Layer/KaMap.js                      |   22 +-
 lib/OpenLayers/Layer/KaMapCache.js                 |    4 +-
 lib/OpenLayers/Layer/MapGuide.js                   |   38 +-
 lib/OpenLayers/Layer/MapServer.js                  |   22 +-
 lib/OpenLayers/Layer/MapServer/Untiled.js          |    2 +-
 lib/OpenLayers/Layer/Markers.js                    |    2 +-
 lib/OpenLayers/Layer/MultiMap.js                   |    4 +-
 lib/OpenLayers/Layer/PointGrid.js                  |  299 ++
 lib/OpenLayers/Layer/PointTrack.js                 |   48 +-
 lib/OpenLayers/Layer/SphericalMercator.js          |   39 +-
 lib/OpenLayers/Layer/TMS.js                        |   92 +-
 lib/OpenLayers/Layer/Text.js                       |    2 +-
 lib/OpenLayers/Layer/TileCache.js                  |   22 +-
 lib/OpenLayers/Layer/Vector.js                     |  144 +-
 lib/OpenLayers/Layer/Vector/RootContainer.js       |    2 +-
 lib/OpenLayers/Layer/VirtualEarth.js               |   25 +-
 lib/OpenLayers/Layer/WFS.js                        |    3 +-
 lib/OpenLayers/Layer/WMS.js                        |   65 +-
 lib/OpenLayers/Layer/WMS/Post.js                   |   32 +-
 lib/OpenLayers/Layer/WMS/Untiled.js                |    2 +-
 lib/OpenLayers/Layer/WMTS.js                       |   20 +-
 lib/OpenLayers/Layer/WorldWind.js                  |   27 +-
 lib/OpenLayers/Layer/XYZ.js                        |   76 +-
 lib/OpenLayers/Layer/Yahoo.js                      |    3 +-
 lib/OpenLayers/Layer/Zoomify.js                    |   48 +-
 lib/OpenLayers/Map.js                              |  403 ++-
 lib/OpenLayers/Marker.js                           |    3 +-
 lib/OpenLayers/Marker/Box.js                       |    2 +-
 lib/OpenLayers/Popup.js                            |   23 +-
 lib/OpenLayers/Popup/Anchored.js                   |    6 +-
 lib/OpenLayers/Popup/AnchoredBubble.js             |    3 +-
 lib/OpenLayers/Popup/Framed.js                     |    2 +-
 lib/OpenLayers/Popup/FramedCloud.js                |    5 +-
 lib/OpenLayers/Projection.js                       |   54 +-
 lib/OpenLayers/Protocol.js                         |   12 +-
 lib/OpenLayers/Protocol/HTTP.js                    |  185 +-
 lib/OpenLayers/Protocol/SOS.js                     |    2 +-
 lib/OpenLayers/Protocol/SOS/v1_0_0.js              |    2 +-
 lib/OpenLayers/Protocol/SQL.js                     |    2 +-
 lib/OpenLayers/Protocol/SQL/Gears.js               |    6 +-
 lib/OpenLayers/Protocol/Script.js                  |  364 +++
 lib/OpenLayers/Protocol/WFS.js                     |   23 +-
 lib/OpenLayers/Protocol/WFS/v1.js                  |  166 +-
 lib/OpenLayers/Protocol/WFS/v1_0_0.js              |    2 +-
 lib/OpenLayers/Protocol/WFS/v1_1_0.js              |   22 +-
 lib/OpenLayers/Renderer.js                         |   13 +-
 lib/OpenLayers/Renderer/Canvas.js                  |  553 ++--
 lib/OpenLayers/Renderer/Elements.js                |   23 +-
 lib/OpenLayers/Renderer/NG.js                      |  135 +
 lib/OpenLayers/Renderer/SVG.js                     |  171 +-
 lib/OpenLayers/Renderer/SVG2.js                    |  826 ++++++
 lib/OpenLayers/Renderer/VML.js                     |   55 +-
 lib/OpenLayers/Request.js                          |   44 +-
 lib/OpenLayers/Request/XMLHttpRequest.js           |  127 +-
 lib/OpenLayers/Rule.js                             |    3 +-
 lib/OpenLayers/SingleFile.js                       |   39 +-
 lib/OpenLayers/Strategy.js                         |    6 +-
 lib/OpenLayers/Strategy/BBOX.js                    |   44 +-
 lib/OpenLayers/Strategy/Cluster.js                 |    5 +-
 lib/OpenLayers/Strategy/Filter.js                  |   25 +-
 lib/OpenLayers/Strategy/Fixed.js                   |   45 +-
 lib/OpenLayers/Strategy/Paging.js                  |    5 +-
 lib/OpenLayers/Strategy/Refresh.js                 |    5 +-
 lib/OpenLayers/Strategy/Save.js                    |    2 +-
 lib/OpenLayers/Style.js                            |    7 +-
 lib/OpenLayers/Style2.js                           |    3 +-
 lib/OpenLayers/StyleMap.js                         |    3 +-
 lib/OpenLayers/Symbolizer.js                       |    6 +-
 lib/OpenLayers/Symbolizer/Line.js                  |   19 +-
 lib/OpenLayers/Symbolizer/Point.js                 |   50 +-
 lib/OpenLayers/Symbolizer/Polygon.js               |   23 +-
 lib/OpenLayers/Symbolizer/Raster.js                |    2 +-
 lib/OpenLayers/Symbolizer/Text.js                  |   17 +-
 lib/OpenLayers/Tile.js                             |   15 +-
 lib/OpenLayers/Tile/Image.js                       |  277 +-
 lib/OpenLayers/Tile/Image/IFrame.js                |  186 +-
 lib/OpenLayers/Tile/WFS.js                         |    2 +-
 lib/OpenLayers/Tween.js                            |    3 +-
 lib/OpenLayers/Util.js                             |  436 +--
 lib/Rico/Color.js                                  |   12 +-
 lib/Rico/Corner.js                                 |    9 +-
 license.txt                                        |   51 +-
 news.txt                                           |   59 -
 readme.txt                                         |    5 +-
 release-license.txt                                |    2 +-
 tests/Ajax.html                                    |    2 +-
 tests/BaseTypes.html                               |  163 +-
 tests/BaseTypes/Bounds.html                        |   22 +-
 tests/BaseTypes/Class.html                         |  167 +-
 tests/BaseTypes/Date.html                          |  170 ++
 tests/BaseTypes/Element.html                       |    4 +-
 tests/BaseTypes/LonLat.html                        |   51 +-
 tests/BaseTypes/Pixel.html                         |   16 +-
 tests/BaseTypes/Size.html                          |    2 +-
 tests/Console.html                                 |    2 +-
 tests/Control.html                                 |    5 +-
 tests/Control/ArgParser.html                       |   26 +
 tests/Control/Attribution.html                     |    2 +-
 tests/Control/Button.html                          |    2 +-
 tests/Control/DragFeature.html                     |  116 +-
 tests/Control/DragPan.html                         |    2 +-
 tests/Control/DrawFeature.html                     |   56 +-
 tests/Control/EditingToolbar.html                  |   30 +
 tests/Control/Geolocate.html                       |  141 +
 tests/Control/GetFeature.html                      |    2 +-
 tests/Control/Graticule.html                       |    2 +-
 tests/Control/KeyboardDefaults.html                |   14 +-
 tests/Control/LayerSwitcher.html                   |    7 +-
 tests/Control/Measure.html                         |  338 ++-
 tests/Control/ModifyFeature.html                   |   88 +-
 tests/Control/MousePosition.html                   |    2 +-
 tests/Control/MouseToolbar.html                    |    2 +-
 tests/Control/NavToolbar.html                      |   13 +-
 tests/Control/Navigation.html                      |   50 +-
 tests/Control/NavigationHistory.html               |    2 +-
 tests/Control/OverviewMap.html                     |    2 +-
 tests/Control/PanPanel.html                        |   42 +-
 tests/Control/PanZoom.html                         |   74 +-
 tests/Control/PanZoomBar.html                      |  153 +-
 tests/Control/Panel.html                           |  108 +-
 tests/Control/Permalink.html                       |  102 +-
 tests/Control/PinchZoom.html                       |   87 +
 tests/Control/SLDSelect.html                       |   11 +-
 tests/Control/Scale.html                           |    3 +-
 tests/Control/ScaleLine.html                       |    2 +-
 tests/Control/SelectFeature.html                   |  110 +-
 tests/Control/Snapping.html                        |   66 +-
 tests/Control/Split.html                           |   29 +-
 tests/Control/TouchNavigation.html                 |  154 ++
 tests/Control/TransformFeature.html                |   12 +-
 tests/Control/WMSGetFeatureInfo.html               |  117 +-
 tests/Control/WMTSGetFeatureInfo.html              |    2 +-
 tests/Events.html                                  |   18 +-
 tests/Extras.html                                  |    2 +-
 tests/Feature.html                                 |   17 +-
 tests/Feature/Vector.html                          |    2 +-
 tests/Filter.html                                  |    2 +-
 tests/Filter/Comparison.html                       |    2 +-
 tests/Filter/FeatureId.html                        |    2 +-
 tests/Filter/Logical.html                          |    2 +-
 tests/Filter/Spatial.html                          |    2 +-
 tests/Format.html                                  |    2 +-
 tests/Format/ArcXML.html                           |    2 +-
 tests/Format/ArcXML/Features.html                  |    2 +-
 tests/Format/Atom.html                             |    2 +-
 tests/Format/CQL.html                              |  287 ++
 tests/Format/CSWGetDomain.html                     |    2 +-
 tests/Format/CSWGetDomain/v2_0_2.html              |    2 +-
 tests/Format/CSWGetRecords.html                    |    2 +-
 tests/Format/CSWGetRecords/v2_0_2.html             |   10 +-
 tests/Format/CSWGetRecords/v2_0_2.js               |    4 +
 tests/Format/Filter.html                           |    2 +-
 tests/Format/Filter/v1.html                        |   91 +-
 tests/Format/Filter/v1_0_0.html                    |  137 +-
 tests/Format/Filter/v1_1_0.html                    |  194 +-
 tests/Format/GML.html                              |    4 +-
 tests/Format/GML/v2.html                           |   18 +-
 tests/Format/GML/v3.html                           |   35 +-
 tests/Format/GPX.html                              |    2 +-
 tests/Format/GeoJSON.html                          |   54 +-
 tests/Format/GeoRSS.html                           |   19 +-
 tests/Format/JSON.html                             |    2 +-
 tests/Format/KML.html                              |   31 +-
 tests/Format/OGCExceptionReport.html               |  100 +
 tests/Format/OSM.html                              |   14 +-
 tests/Format/OWSCommon/v1_0_0.html                 |   34 +
 tests/Format/OWSCommon/v1_1_0.html                 |   34 +
 tests/Format/OWSContext/v0_3_1.html                |   29 +-
 tests/Format/QueryStringFilter.html                |  306 +++
 tests/Format/SLD.html                              |    2 +-
 tests/Format/SLD/v1_0_0.html                       |    3 +-
 tests/Format/SOSCapabilities/v1_0_0.html           |    2 +-
 tests/Format/SOSGetFeatureOfInterest.html          |    2 +-
 tests/Format/SOSGetObservation.html                |  125 +-
 tests/Format/Text.html                             |    4 +-
 tests/Format/WCSGetCoverage.html                   |   80 +
 tests/Format/WFS.html                              |    2 +-
 tests/Format/WFSCapabilities.html                  |    2 +-
 tests/Format/WFSCapabilities/v1.html               |   24 +-
 tests/Format/WFSDescribeFeatureType.html           |    2 +-
 tests/Format/WFST.html                             |    2 +-
 tests/Format/WFST/v1.html                          |  221 +-
 tests/Format/WFST/v1_0_0.html                      |   13 +-
 tests/Format/WFST/v1_1_0.html                      |  102 +-
 tests/Format/WKT.html                              |   64 +-
 tests/Format/WMC.html                              |  174 +-
 tests/Format/WMC/v1.html                           |   67 +-
 tests/Format/WMC/v1_1_0.html                       |    4 +-
 tests/Format/WMSCapabilities.html                  |    2 +-
 tests/Format/WMSCapabilities/v1_1_1.html           |   83 +-
 tests/Format/WMSCapabilities/v1_1_1_WMSC.html      |  212 ++
 tests/Format/WMSCapabilities/v1_3_0.html           |   40 +-
 tests/Format/WMSDescribeLayer.html                 |    2 +-
 tests/Format/WMSGetFeatureInfo.html                |   47 +-
 tests/Format/WMTSCapabilities.html                 |    2 +-
 tests/Format/WMTSCapabilities/v1_0_0.html          |   21 +-
 tests/Format/WPSCapabilities/v1_0_0.html           |   30 +
 tests/Format/WPSCapabilities/v1_0_0.js             |  112 +
 tests/Format/WPSDescribeProcess.html               |  196 ++
 tests/Format/WPSExecute.html                       |  465 ++++
 tests/Format/XLS/v1_1_0.html                       |   98 +
 tests/Format/XML.html                              |   15 +-
 tests/Format/XML/VersionedOGC.html                 |   51 +
 tests/Geometry.html                                |    2 +-
 tests/Geometry/Collection.html                     |   19 +-
 tests/Geometry/Curve.html                          |    2 +-
 tests/Geometry/LineString.html                     |   64 +-
 tests/Geometry/LinearRing.html                     |   10 +-
 tests/Geometry/MultiLineString.html                |    2 +-
 tests/Geometry/MultiPoint.html                     |    2 +-
 tests/Geometry/MultiPolygon.html                   |    2 +-
 tests/Geometry/Point.html                          |    2 +-
 tests/Geometry/Polygon.html                        |    2 +-
 tests/Geometry/Rectangle.html                      |    2 +-
 tests/Geometry/Surface.html                        |    2 +-
 tests/Handler.html                                 |    2 +-
 tests/Handler/Box.html                             |  106 +
 tests/Handler/Click.html                           |  650 ++++-
 tests/Handler/Drag.html                            |  226 +-
 tests/Handler/Feature.html                         |  194 +-
 tests/Handler/Hover.html                           |    2 +-
 tests/Handler/Keyboard.html                        |    2 +-
 tests/Handler/MouseWheel.html                      |    2 +-
 tests/Handler/Path.html                            | 1233 ++++++++-
 tests/Handler/Pinch.html                           |  264 ++
 tests/Handler/Point.html                           |  466 +++-
 tests/Handler/Polygon.html                         | 1035 ++++++-
 tests/Handler/RegularPolygon.html                  |    2 +-
 tests/Icon.html                                    |    2 +-
 tests/Kinetic.html                                 |  130 +
 tests/Lang.html                                    |   14 +-
 tests/Layer.html                                   |   47 +-
 tests/Layer/ArcGIS93Rest.html                      |    4 +-
 tests/Layer/ArcGISCache.html                       |  253 ++
 tests/Layer/ArcGISCache.json                       |  334 +++
 tests/Layer/ArcIMS.html                            |    2 +-
 tests/Layer/Bing.html                              |  117 +
 tests/Layer/EventPane.html                         |   34 +-
 tests/Layer/FixedZoomLevels.html                   |   32 +-
 tests/Layer/GML.html                               |    6 +-
 tests/Layer/GeoRSS.html                            |    4 +-
 tests/Layer/Google.html                            |    2 +-
 tests/Layer/Google/v3.html                         |   54 +-
 tests/Layer/Grid.html                              |   32 +-
 tests/Layer/HTTPRequest.html                       |    2 +-
 tests/Layer/Image.html                             |    4 +-
 tests/Layer/KaMap.html                             |    6 +-
 tests/Layer/MapGuide.html                          |    4 +-
 tests/Layer/MapServer.html                         |   14 +-
 tests/Layer/Markers.html                           |    2 +-
 tests/Layer/MultiMap.html                          |   33 +-
 tests/Layer/PointGrid.html                         |  231 ++
 tests/Layer/PointTrack.html                        |    2 +-
 tests/Layer/SphericalMercator.html                 |   46 +-
 tests/Layer/TMS.html                               |    4 +-
 tests/Layer/Text.html                              |    8 +-
 tests/Layer/TileCache.html                         |    2 +-
 tests/Layer/Vector.html                            |  149 +-
 tests/Layer/Vector/RootContainer.html              |    2 +-
 tests/Layer/WFS.html                               |    2 +-
 tests/Layer/WMS.html                               |  122 +-
 tests/Layer/WMS/Post.html                          |   39 +-
 tests/Layer/WMTS.html                              |    2 +-
 tests/Layer/WrapDateLine.html                      |   22 +-
 tests/Layer/XYZ.html                               |   42 +-
 tests/Layer/Yahoo.html                             |    2 +-
 tests/Map.html                                     |  304 ++-
 tests/Marker.html                                  |    2 +-
 tests/Marker/Box.html                              |    4 +-
 tests/OLLoader.js                                  |   26 +
 tests/OpenLayers.html                              |   31 -
 tests/OpenLayers1.html                             |   16 +
 tests/OpenLayers2.html                             |   19 +
 tests/OpenLayers3.html                             |   19 +
 tests/OpenLayers4.html                             |   18 +
 tests/OpenLayersJsFiles.html                       |   27 +
 tests/Popup.html                                   |   30 +-
 tests/Popup/Anchored.html                          |    4 +-
 tests/Popup/AnchoredBubble.html                    |    2 +-
 tests/Popup/FramedCloud.html                       |    2 +-
 tests/Projection.html                              |   44 +-
 tests/Protocol.html                                |    2 +-
 tests/Protocol/HTTP.html                           |  351 +--
 tests/Protocol/SOS.html                            |    2 +-
 tests/Protocol/SQL.html                            |    2 +-
 tests/Protocol/SQL/Gears.html                      |    2 +-
 tests/Protocol/Script.html                         |  271 ++
 tests/Protocol/WFS.html                            |  191 +-
 tests/Renderer.html                                |    2 +-
 tests/Renderer/Canvas.html                         |  387 ++-
 tests/Renderer/Elements.html                       |   57 +-
 tests/Renderer/SVG.html                            |   18 +-
 tests/Renderer/SVG2.html                           |  426 +++
 tests/Renderer/VML.html                            |   34 +-
 tests/Request.html                                 |   79 +-
 tests/Request/XMLHttpRequest.html                  |   47 +-
 tests/Rule.html                                    |    2 +-
 tests/Strategy.html                                |    2 +-
 tests/Strategy/BBOX.html                           |   53 +-
 tests/Strategy/Cluster.html                        |    2 +-
 tests/Strategy/Filter.html                         |   57 +-
 tests/Strategy/Fixed.html                          |   56 +-
 tests/Strategy/Paging.html                         |    2 +-
 tests/Strategy/Refresh.html                        |    2 +-
 tests/Strategy/Save.html                           |    2 +-
 tests/Style.html                                   |   61 +-
 tests/Style2.html                                  |    2 +-
 tests/StyleMap.html                                |    2 +-
 tests/Symbolizer.html                              |    2 +-
 tests/Symbolizer/Line.html                         |   12 +-
 tests/Symbolizer/Point.html                        |   22 +-
 tests/Symbolizer/Polygon.html                      |   14 +-
 tests/Symbolizer/Raster.html                       |    2 +-
 tests/Symbolizer/Text.html                         |   12 +-
 tests/Tile.html                                    |    2 +-
 tests/Tile/Image.html                              |   29 +-
 tests/Tile/Image/IFrame.html                       |  119 +-
 tests/Tile/WFS.html                                |    2 +-
 tests/Tween.html                                   |    2 +-
 tests/Util.html                                    |  143 +-
 tests/list-tests.html                              |   34 +-
 tests/manual/alloverlays-mixed.html                |   55 +
 tests/manual/box-quirks.html                       |   52 +
 tests/manual/box-strict.html                       |   46 +
 tests/manual/google-v3-resize.html                 |   54 +
 tests/manual/page-position.html                    |  103 +
 tests/manual/svg2-coordinaterange.html             |   50 +
 tests/manual/vector-features-performance.html      |    9 +-
 tests/node.js/mockdom.js                           |  104 +
 tests/node.js/node-tests.cfg                       |   12 +
 tests/node.js/node.js                              |    1 +
 tests/node.js/run-test.js                          |   26 +
 tests/node.js/run.sh                               |   10 +
 tests/run-tests.html                               |    8 +-
 tests/speed/vector-renderers.html                  |   25 +
 tests/speed/vector-renderers.js                    |   70 +
 theme/default/google.css                           |    7 +
 theme/default/google.tidy.css                      |    1 +
 theme/default/ie6-style.css                        |    3 +
 theme/default/ie6-style.tidy.css                   |    1 +
 theme/default/img/add_point_off.png                |  Bin 1616 -> 1614 bytes
 theme/default/img/drag-rectangle-off.png           |  Bin 1202 -> 1024 bytes
 theme/default/img/drag-rectangle-on.png            |  Bin 1218 -> 1041 bytes
 theme/default/img/draw_line_off.png                |  Bin 1567 -> 1565 bytes
 theme/default/img/draw_line_on.png                 |  Bin 1399 -> 1396 bytes
 theme/default/img/draw_point_off.png               |  Bin 1612 -> 1610 bytes
 theme/default/img/draw_point_on.png                |  Bin 1460 -> 1458 bytes
 theme/default/img/draw_polygon_off.png             |  Bin 1546 -> 1544 bytes
 theme/default/img/draw_polygon_on.png              |  Bin 1407 -> 1405 bytes
 theme/default/img/editing_tool_bar.png             |  Bin 3901 -> 2222 bytes
 theme/default/img/move_feature_off.png             |  Bin 1543 -> 1541 bytes
 theme/default/img/move_feature_on.png              |  Bin 1379 -> 1377 bytes
 theme/default/img/navigation_history.png           |  Bin 7021 -> 6628 bytes
 theme/default/img/pan-panel-NOALPHA.png            |  Bin 566 -> 564 bytes
 theme/default/img/pan-panel.png                    |  Bin 1287 -> 814 bytes
 theme/default/img/pan_on.png                       |  Bin 1568 -> 1566 bytes
 theme/default/img/panning-hand-off.png             |  Bin 3875 -> 3511 bytes
 theme/default/img/panning-hand-on.png              |  Bin 3977 -> 3565 bytes
 theme/default/img/remove_point_on.png              |  Bin 1464 -> 1461 bytes
 theme/default/img/save_features_off.png            |  Bin 357 -> 354 bytes
 theme/default/img/save_features_on.png             |  Bin 364 -> 361 bytes
 theme/default/img/view_next_off.png                |  Bin 1644 -> 1499 bytes
 theme/default/img/view_previous_off.png            |  Bin 1553 -> 1476 bytes
 theme/default/img/zoom-panel.png                   |  Bin 1624 -> 1285 bytes
 theme/default/style.css                            |  222 +-
 theme/default/style.tidy.css                       |    1 +
 tools/branch.sh                                    |    5 +
 tools/closure.py                                   |   22 +
 tools/closure_ws.py                                |   28 +
 tools/mergejs.py                                   |   71 +-
 tools/mkrelease.sh                                 |   28 +
 tools/rc.sh                                        |   13 +
 tools/release.sh                                   |   27 +-
 tools/toposort.py                                  |  291 +-
 1903 files changed, 56204 insertions(+), 17578 deletions(-)

diff --git a/apidoc_config/Data/ClassHierarchy.nd b/apidoc_config/Data/ClassHierarchy.nd
index c2257f2..11ddf9f 100644
Binary files a/apidoc_config/Data/ClassHierarchy.nd and b/apidoc_config/Data/ClassHierarchy.nd differ
diff --git a/apidoc_config/Data/ConfigFileInfo.nd b/apidoc_config/Data/ConfigFileInfo.nd
index 6372818..31585e5 100644
Binary files a/apidoc_config/Data/ConfigFileInfo.nd and b/apidoc_config/Data/ConfigFileInfo.nd differ
diff --git a/apidoc_config/Data/FileInfo.nd b/apidoc_config/Data/FileInfo.nd
index 72e9569..d3fe0b0 100644
--- a/apidoc_config/Data/FileInfo.nd
+++ b/apidoc_config/Data/FileInfo.nd
@@ -1,289 +1,317 @@
-Development Release 12-07-2007 (1.35 base)
+1.52
 JavaScript
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomToMaxExtent.js	1283463805	1	OpenLayers.Control.ZoomToMaxExtent
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tween.js	1283463805	1	OpenLayers.Tween
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Marker/Box.js	1283463805	1	OpenLayers.Marker.Box
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/vi.js	1283463805	1	OpenLayers.Lang["vi"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Box.js	1283463805	1	OpenLayers.Handler.Box
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS/v1_0_0.js	1283463805	1	OpenLayers.Protocol.WFS.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OSM.js	1283463805	1	OpenLayers.Format.OSM
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS.js	1283463805	1	OpenLayers.Protocol.WFS.DEFAULTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/gl.js	1283463805	1	OpenLayers.Lang["gl"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nn.js	1283463805	1	OpenLayers.Lang["nn"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter/v1_1_0.js	1283463805	1	OpenLayers.Format.Filter.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFS.js	1283463805	1	OpenLayers.Format.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js	1283463805	1	OpenLayers.Format.WFSCapabilities/v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/VirtualEarth.js	1283463805	1	OpenLayers.Layer.VirtualEarth
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMS/Post.js	1283463805	1	OpenLayers.Layer.WMS.Post
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomIn.js	1283463805	1	OpenLayers.Control.ZoomIn
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GPX.js	1283463805	1	OpenLayers.Format.GPX
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities.js	1283463805	1	OpenLayers.Format.WMSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter/v1.js	1283463805	1	OpenLayers.Format.Filter.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMS.js	1283463805	1	OpenLayers.Layer.WMS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Boxes.js	1283463805	1	OpenLayers.Layer.Boxes
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Text.js	1283463805	1	OpenLayers.Format.Text
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Scale.js	1283463805	1	OpenLayers.Control.Scale
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Click.js	1283463805	1	OpenLayers.Handler.Click
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js	1283463805	1	OpenLayers.Format.SOSCapabilities.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/MultiPolygon.js	1283463805	1	OpenLayers.Geometry.MultiPolygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes.js	1283463805	1	OpenLayers Base Types
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/FixedZoomLevels.js	1283463805	1	OpenLayers.Layer.FixedZoomLevels
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry.js	1283463805	1	OpenLayers.Geometry
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/FeatureId.js	1283463805	1	OpenLayers.Filter.FeatureId
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter.js	1283463805	1	OpenLayers.Filter
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/RegularPolygon.js	1283463805	1	OpenLayers.Handler.RegularPolygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Panel.js	1283463805	1	OpenLayers.Control.Panel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/MultiLineString.js	1283463805	1	OpenLayers.Geometry.MultiLineString
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ModifyFeature.js	1283463805	1	OpenLayers.Control.ModifyFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Refresh.js	1283463805	1	OpenLayers.Strategy.Refresh
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Attribution.js	1283463805	1	OpenLayers.Control.Attribution
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers.js	1284024673	1	OpenLayers
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/SelectFeature.js	1283463805	1	OpenLayers.Control.SelectFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/es.js	1283463805	1	OpenLayers.Lang["es"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/te.js	1283463805	1	OpenLayers.Lang["te"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/hsb.js	1283463805	1	OpenLayers.Lang["hsb"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Grid.js	1283463805	1	OpenLayers.Layer.Grid
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/da-DK.js	1283463805	1	OpenLayers.Lang["da-DK"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomOut.js	1283463805	1	OpenLayers.Control.ZoomOut
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Polygon.js	1283463805	1	OpenLayers.Geometry.Polygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSCommon/v1_1_0.js	1283463805	1	OpenLayers.Format.OWSCommon.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ar.js	1283463805	1	OpenLayers.Lang["ar"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSCapabilities.js	1283463805	1	OpenLayers.Format.SOSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Style.js	1283463805	1	OpenLayers.Style
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/XYZ.js	1283463805	1	OpenLayers.Layer.XYZ
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/hu.js	1283463805	1	OpenLayers.Lang["hu"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer.js	1283463805	1	OpenLayers.Symbolizer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Feature.js	1283463805	1	OpenLayers.Handler.Feature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ja.js	1283463805	1	OpenLayers.Lang["ja"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/is.js	1283463805	1	OpenLayers.Lang["is"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/Canvas.js	1283463805	1	OpenLayers.Renderer.Canvas
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter/v1_0_0.js	1283463805	1	OpenLayers.Format.Filter.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/TMS.js	1283463805	1	OpenLayers.Layer.TMS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/OverviewMap.js	1283463805	1	OpenLayers.Control.OverviewMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/WMSGetFeatureInfo.js	1283463805	1	OpenLayers.Control.WMSGetFeatureInfo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/hr.js	1283463805	1	OpenLayers.Lang["hr"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/bg.js	1283463805	1	OpenLayers.Lang["bg"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ca.js	1283463805	1	OpenLayers.Lang["ca"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js	1283463805	1	OpenLayers.Format.WFSCapabilities/v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/en-CA.js	1283463805	1	OpenLayers.Lang["en-CA"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/LinearRing.js	1283463805	1	OpenLayers.Geometry.LinearRing
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/MultiPoint.js	1283463805	1	OpenLayers.Geometry.MultiPoint
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Navigation.js	1283463805	1	OpenLayers.Control.Navigation
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSContext/v0_3_1.js	1283463805	1	OpenLayers.Format.OWSContext.v0_3_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MapServer/Untiled.js	1283463805	1	OpenLayers.Layer.MapServer.Untiled
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js	1283463805	1	OpenLayers.Format.WMTSCapabilities.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/license.txt	1181603869	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/license.txt
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Line.js	1283463805	1	OpenLayers.Symbolizer.Line
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/GeoRSS.js	1283463805	1	OpenLayers.Layer.GeoRSS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Events.js	1283463805	1	OpenLayers.Event
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Atom.js	1283463805	1	OpenLayers.Format.Atom
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSGetObservation.js	1283463805	1	OpenLayers.Format.SOSGetObservation
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Cluster.js	1283463805	1	OpenLayers.Strategy.Cluster
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/fur.js	1283463805	1	OpenLayers.Lang["fur"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ksh.js	1283463805	1	OpenLayers.Lang["ksh"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/JSON.js	1283463805	1	OpenLayers.Format.JSON
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebugx.js	1202500315	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebugx.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSCommon/v1.js	1283463805	1	OpenLayers.Format.OWSCommon.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Vector/RootContainer.js	1283463805	1	OpenLayers.Layer.Vector.RootContainer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SOS/v1_0_0.js	1283463805	1	OpenLayers.Protocol.SOS.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SLD/v1.js	1283463805	1	OpenLayers.Format.SLD.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Save.js	1283463805	1	OpenLayers.Strategy.Save
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/PanZoom.js	1283463805	1	OpenLayers.Control.PanZoom
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/VML.js	1283463805	1	OpenLayers.Renderer.VML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Pixel.js	1283463805	1	OpenLayers.Pixel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/be-tarask.js	1283463805	1	OpenLayers.Lang["be-tarask"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML/v2.js	1283463805	1	OpenLayers.Format.GML.v2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/br.js	1283463805	1	OpenLayers.Lang["br"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC/v1.js	1283463805	1	OpenLayers.Format.WMC.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Text.js	1283463805	1	OpenLayers.Symbolizer.Text
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile.js	1283463805	1	OpenLayers.Tile
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/ArcXML.js	1283463805	1	OpenLayers.Format.ArcXML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Rule.js	1283463805	1	OpenLayers.Rule
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/oc.js	1283463805	1	OpenLayers.Lang["oc"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS/v1_1_0.js	1283463805	1	OpenLayers.Protocol.WFS.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SOS.js	1283463805	1	OpenLayers.Protocol.SOS.DEFAULTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/Spatial.js	1283463805	1	OpenLayers.Filter.Spatial
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/zh-TW.js	1283463805	1	OpenLayers.Lang["zh-TW"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST.js	1283463805	1	OpenLayers.Format.WFST.DEFAULTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/GML.js	1283463805	1	OpenLayers.Layer.GML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MultiMap.js	1283463805	1	OpenLayers.Layer.MultiMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format.js	1283463805	1	OpenLayers.Format
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST/v1_0_0.js	1283463805	1	OpenLayers.Format.WFST.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Class.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Class.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer.js	1283463805	1	OpenLayers.Layer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC/v1_1_0.js	1283463805	1	OpenLayers.Format.WMC.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Element.js	1283463805	1	OpenLayers.Element
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/WMTSGetFeatureInfo.js	1283463805	1	OpenLayers.Control.WMTSGetFeatureInfo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC/v1_0_0.js	1283463805	1	OpenLayers.Format.WMC.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Markers.js	1283463805	1	OpenLayers.Layer.Markers
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/LonLat.js	1283463805	1	OpenLayers.LonLat
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Permalink.js	1283463805	1	OpenLayers.Control.Permalink
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/MouseToolbar.js	1283463805	1	OpenLayers.Control.MouseToolbar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/zh-CN.js	1283463805	1	OpenLayers.Lang["zh-CN"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Pan.js	1283463805	1	OpenLayers.Control.Pan
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/EventPane.js	1283463805	1	OpenLayers.Layer.EventPane
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSCommon/v1_0_0.js	1283463805	1	OpenLayers.Format.OWSCommon.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1.js	1283463805	1	OpenLayers.Format.WMSCapabilities.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Yahoo.js	1283463805	1	OpenLayers.Layer.Yahoo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetRecords.js	1283463805	1	OpenLayers.Format.CSWGetRecords.DEFAULTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol.js	1283463805	1	OpenLayers.Protocol
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_1.js	1283463805	1	OpenLayers.Format.WMSCapabilities.v1_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js	1283463805	1	OpenLayers.Format.CSWGetDomain.v2_0_2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebug.js	1202500315	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebug.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Keyboard.js	1283463805	1	OpenLayers.handler.Keyboard
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/km.js	1283463805	1	OpenLayers.Lang["km"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nds.js	1283463805	1	OpenLayers.Lang["nds"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MapGuide.js	1283463805	1	OpenLayers.Layer.MapGuide
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/Framed.js	1283463805	1	OpenLayers.Popup.Framed
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/ArcGIS93Rest.js	1283463805	1	OpenLayers.Layer.ArcGIS93Rest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Curve.js	1283463805	1	OpenLayers.Geometry.Curve
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Raster.js	1283463805	1	OpenLayers.Symbolizer.Raster
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Style2.js	1283463805	1	OpenLayers.Style2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Vector.js	1283463805	1	OpenLayers.Layer.Vector
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities/v1.js	1283463805	1	OpenLayers.Format.WFSCapabilities.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ru.js	1283463805	1	OpenLayers.Lang["ru"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GeoRSS.js	1283463805	1	OpenLayers.Format.GeoRSS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomBox.js	1283463805	1	OpenLayers.Control.ZoomBox
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/ArcXML/Features.js	1283463805	1	OpenLayers.Format.ArcXML.Features
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/gsw.js	1283463805	1	OpenLayers.Lang["gsw"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/io.js	1283463805	1	OpenLayers.Lang["io"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/readme.txt	1181603869	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/readme.txt
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/BBOX.js	1283463805	1	OpenLayers.Strategy.BBOX
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC.js	1283463805	1	OpenLayers.Format.WMC
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js	1283463805	1	OpenLayers.Format.SOSGetFeatureOfInterest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Request.js	1283463805	1	OpenLayers.Request
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WKT.js	1283463805	1	OpenLayers.Format.WKT
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SQL.js	1283463805	1	OpenLayers.Protocol.SQL
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Util.js	1283463805	1	Util
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSGetFeatureInfo.js	1283463805	1	OpenLayers.Format.WMSGetFeatureInfo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSDescribeLayer.js	1283463805	1	OpenLayers.Format.WMSDescribeLayer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GeoJSON.js	1283463805	1	OpenLayers.Format.GeoJSON
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Projection.js	1283463805	1	OpenLayers.Projection
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Ajax.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Ajax.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/MousePosition.js	1283463805	1	OpenLayers.Control.MousePosition
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/it.js	1283463805	1	OpenLayers.Lang["it"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/PanZoomBar.js	1283463805	1	OpenLayers.Control.PanZoomBar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/KeyboardDefaults.js	1283463805	1	OpenLayers.Control.KeyboardDefaults
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/HTTP.js	1283463805	1	OpenLayers.Protocol.HTTP
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/HTTPRequest.js	1283463805	1	OpenLayers.Layer.HTTPRequest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/fr.js	1283463805	1	OpenLayers.Lang["fr"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WFS.js	1283463805	1	OpenLayers.Layer.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Map.js	1283463805	1	OpenLayers.Map
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nl.js	1283463805	1	OpenLayers.Lang["nl"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SLD.js	1283463805	1	OpenLayers.Format.SLD
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SLD/v1_0_0.js	1283463805	1	OpenLayers.Format.SLD.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMS/Untiled.js	1283463805	1	OpenLayers.Layer.WMS.Untiled
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/PointTrack.js	1283463805	1	OpenLayers.Layer.PointTrack
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMTSCapabilities.js	1283463805	1	OpenLayers.Format.WMTSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/fi.js	1283463805	1	OpenLayers.Lang["fi"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Surface.js	1283463805	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Surface.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control.js	1283463805	1	OpenLayers.Control
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST/v1.js	1283463805	1	OpenLayers.Format.WFST.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/TileCache.js	1283463805	1	OpenLayers.Layer.TileCache
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Color.js	1201963564	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Color.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities.js	1283463805	1	OpenLayers.Format.WFSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang.js	1283463805	1	OpenLayers.Lang
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Request/XMLHttpRequest.js	1277709397	1	OpenLayers.Request.XMLHttpRequest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile/Image.js	1283463805	1	OpenLayers.Tile.Image
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetDomain.js	1283463805	1	OpenLayers.Format.CSWGetDomain.DEFAULTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/TransformFeature.js	1283463805	1	OpenLayers.Control.TransformFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSContext.js	1283463805	1	OpenLayers.Format.OWSContext
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Image.js	1283463805	1	OpenLayers.Layer.Image
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/DrawFeature.js	1283463805	1	OpenLayers.Control.DrawFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMTS.js	1283463805	1	OpenLayers.Layer.WMTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Feature/WFS.js	1283463805	1	OpenLayers.Feature.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy.js	1283463805	1	OpenLayers.Strategy
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ArgParser.js	1283463805	1	OpenLayers.Control.ArgParser
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/Comparison.js	1283463805	1	OpenLayers.Filter.Comparison
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/sk.js	1283463805	1	OpenLayers.Lang["sk"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Gears/gears_init.js	1221231425	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Gears/gears_init.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Snapping.js	1283463805	1	OpenLayers.Control.Snapping
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/Elements.js	1283463805	1	OpenLayers.ElementsIndexer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Button.js	1283463805	1	OpenLayers.Control.Button
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/NavToolbar.js	1283463805	1	OpenLayers.Control.NavToolbar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/NavigationHistory.js	1283463805	1	OpenLayers.Control.NavigationHistory
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/KaMap.js	1283463805	1	OpenLayers.Layer.KaMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Collection.js	1283463805	1	OpenLayers.Geometry.Collection
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google/v3.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google/v3.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Zoomify.js	1283463805	1	OpenLayers.Layer.Zoomify
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ScaleLine.js	1283463805	1	OpenLayers.Control.ScaleLine
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/el.js	1283463805	1	OpenLayers.Lang["el"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Console.js	1283463805	1	OpenLayers.Console
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Bounds.js	1283463805	1	OpenLayers.Bounds
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Icon.js	1283463805	1	OpenLayers.Icon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/SVG.js	1283463805	1	OpenLayers.Renderer.SVG
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Hover.js	1283463805	1	OpenLayers.Handler.Hover
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile/Image/IFrame.js	1283463805	1	OpenLayers.Tile.Image.IFrame
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML/Base.js	1283463805	1	OpenLayers.Format.GML.Base
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ia.js	1283463805	1	OpenLayers.Lang["ia"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/DragFeature.js	1283463805	1	OpenLayers.Control.DragFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Filter.js	1283463805	1	OpenLayers.Strategy.Filter
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Text.js	1283463805	1	OpenLayers.Layer.Text
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Context.js	1283463805	1	OpenLayers.Format.Context
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/LayerSwitcher.js	1283463805	1	OpenLayers.Control.LayerSwitcher
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/de.js	1283463805	1	OpenLayers.Lang["de"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Point.js	1283463805	1	OpenLayers.Geometry.Point
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nb.js	1283463805	1	OpenLayers.Lang["nb"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SQL/Gears.js	1283463805	1	OpenLayers.Protocol.SQL.Gears
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/pt-BR.js	1283463805	1	OpenLayers.Lang["pt-br"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/ArcIMS.js	1283463805	1	OpenLayers.Layer.ArcIMS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST/v1_1_0.js	1283463805	1	OpenLayers.Format.WFST.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google.js	1283463805	1	OpenLayers.Layer.Google
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/PanPanel.js	1283463805	1	OpenLayers.Control.PanPanel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML.js	1283463805	1	OpenLayers.Format.GML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/SingleFile.js	1283463805	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/SingleFile.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/SphericalMercator.js	1283463805	1	OpenLayers.Layer.SphericalMercator
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Measure.js	1283463805	1	OpenLayers.Control.Measure
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Split.js	1283463805	1	OpenLayers.Control.Split
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/LineString.js	1283463805	1	OpenLayers.Geometry.LineString
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/id.js	1283463805	1	OpenLayers.Lang["id"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/AnchoredBubble.js	1283463805	1	OpenLayers.Popup.AnchoredBubble
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSDescribeFeatureType.js	1283463805	1	OpenLayers.Format.WFSDescribeFeatureType
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomPanel.js	1283463805	1	OpenLayers.Control.ZoomPanel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile/WFS.js	1283463805	1	OpenLayers.Tile.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_3.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_3
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Size.js	1283463805	1	OpenLayers.Size
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Polygon.js	1283463805	1	OpenLayers.Symbolizer.Polygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_1_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/EditingToolbar.js	1283463805	1	OpenLayers.Control.EditingToolbar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js	1283463805	1	OpenLayers.Format.CSWGetRecords.v2_0_2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/KaMapCache.js	1283463805	1	OpenLayers.Layer.KaMapCache
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/GetFeature.js	1283463805	1	OpenLayers.Control.GetFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/MouseDefaults.js	1283463805	1	OpenLayers.Control.MouseDefaults
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Drag.js	1283463805	1	OpenLayers.Handler.Drag
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_3_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/FramedCloud.js	1283463805	1	OpenLayers.Popup.FramedCloud
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Paging.js	1283463805	1	OpenLayers.Strategy.Paging
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Polygon.js	1283463805	1	OpenLayers.Handler.Polygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Point.js	1283463805	1	OpenLayers.Symbolizer.Point
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Corner.js	1201963564	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Corner.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Feature.js	1283463805	1	OpenLayers.Feature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/en.js	1283463805	1	OpenLayers.Lang["en"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Marker.js	1283463805	1	OpenLayers.Marker
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler.js	1283463805	1	OpenLayers.Handler
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Rectangle.js	1283463805	1	OpenLayers.Geometry.Rectangle
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/sv-SE.js	1283463805	1	OpenLayers.Lang["sv"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/MouseWheel.js	1283463805	1	OpenLayers.Handler.MouseWheel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/cs-CZ.js	1283463805	1	OpenLayers.Lang["cs-CZ"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Fixed.js	1283463805	1	OpenLayers.Strategy.Fixed
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WorldWind.js	1283463805	1	OpenLayers.Layer.WorldWind
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/Anchored.js	1283463805	1	OpenLayers.Popup.Anchored
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup.js	1283463805	1	OpenLayers.Popup
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Point.js	1283463805	1	OpenLayers.Handler.Point
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/StyleMap.js	1283463805	1	OpenLayers.StyleMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/KML.js	1283463805	1	OpenLayers.Format.KML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/Logical.js	1283463805	1	OpenLayers.Filter.Logical
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/XML.js	1283463805	1	OpenLayers.Format.XML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/DragPan.js	1283463805	1	OpenLayers.Control.DragPan
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer.js	1283463805	1	OpenLayers.Renderer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MapServer.js	1283463805	1	OpenLayers.Layer.MapServer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Path.js	1283463805	1	OpenLayers.Handler.Path
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter.js	1283463805	1	OpenLayers.Format.Filter
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/pt.js	1283463805	1	OpenLayers.Lang["pt"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Graticule.js	1283463805	1	OpenLayers.Control.Graticule
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS/v1.js	1283463805	1	OpenLayers.Protocol.WFS.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js	1283463805	1	OpenLayers.Format.WMSDescribeLayer.v1_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Feature/Vector.js	1283463805	1	OpenLayers.Feature.Vector
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/SLDSelect.js	1283463805	1	OpenLayers.Control.SLDSelect
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML/v3.js	1283463805	1	OpenLayers.Format.GML.v3
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js	1308251785	1	OpenLayers.Format.CSWGetRecords.v2_0_2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Vector/RootContainer.js	1294069180	1	OpenLayers.Layer.Vector.RootContainer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Graticule.js	1308946332	1	OpenLayers.Control.Graticule
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/OverviewMap.js	1298622650	1	OpenLayers.Control.OverviewMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Style2.js	1294249365	1	OpenLayers.Style2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Pixel.js	1298640899	1	OpenLayers.Pixel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML/v2.js	1308251785	1	OpenLayers.Format.GML.v2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebug.js	1202500315	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebug.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMS.js	1309678404	1	OpenLayers.Layer.WMS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomBox.js	1294069180	1	OpenLayers.Control.ZoomBox
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Feature/Vector.js	1309774702	1	OpenLayers.Feature.Vector
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Icon.js	1294249365	1	OpenLayers.Icon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/it.js	1312531137	1	OpenLayers.Lang["it"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1_0_0.js	1302127591	1	OpenLayers.Format.WMC.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/MousePosition.js	1299508428	1	OpenLayers.Control.MousePosition
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/ArcXML/Features.js	1294069180	1	OpenLayers.Format.ArcXML.Features
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/SVG.js	1307358131	1	OpenLayers.Renderer.SVG
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Logical.js	1294069180	1	OpenLayers.Filter.Logical
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Color.js	1299496812	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Color.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/FixedZoomLevels.js	1308424314	1	OpenLayers.Layer.FixedZoomLevels
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetRecords.js	1309411359	1	OpenLayers.Format.CSWGetRecords
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes.js	1312381930	1	OpenLayers Base Types
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js	1315064268	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/br.js	1312531137	1	OpenLayers.Lang["br"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XML.js	1308425609	1	OpenLayers.Format.XML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Style.js	1302201931	1	OpenLayers.Style
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomPanel.js	1294069180	1	OpenLayers.Control.ZoomPanel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/GML.js	1294069180	1	OpenLayers.Layer.GML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS.js	1294069180	1	OpenLayers.Protocol.SOS.DEFAULTS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WKT.js	1310056862	1	OpenLayers.Format.WKT
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1.js	1308251785	1	OpenLayers.Format.WMC.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/FeatureId.js	1301424567	1	OpenLayers.Filter.FeatureId
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SQL.js	1294069180	1	OpenLayers.Protocol.SQL
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Button.js	1294069180	1	OpenLayers.Control.Button
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/LonLat.js	1311932195	1	OpenLayers.LonLat
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PanZoomBar.js	1301400326	1	OpenLayers.Control.PanZoomBar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomIn.js	1294069180	1	OpenLayers.Control.ZoomIn
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/VirtualEarth.js	1298644074	1	OpenLayers.Layer.VirtualEarth
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy.js	1294249365	1	OpenLayers.Strategy
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ru.js	1312531137	1	OpenLayers.Lang["ru"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/en.js	1312531137	1	OpenLayers.Lang["en"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter.js	1309858954	1	OpenLayers.Format.Filter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tween.js	1294249365	1	OpenLayers.Tween
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Element.js	1298880356	1	OpenLayers.Element
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Cluster.js	1299509306	1	OpenLayers.Strategy.Cluster
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Polygon.js	1294069180	1	OpenLayers.Symbolizer.Polygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/MouseDefaults.js	1301834834	1	OpenLayers.Control.MouseDefaults
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/SelectFeature.js	1311932729	1	OpenLayers.Control.SelectFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML/v3.js	1310738859	1	OpenLayers.Format.GML.v3
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/AnchoredBubble.js	1294249365	1	OpenLayers.Popup.AnchoredBubble
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1.js	1294069180	1	OpenLayers.Format.WMSCapabilities.v1_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetDomain.js	1309411359	1	OpenLayers.Format.CSWGetDomain
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/TransformFeature.js	1304926617	1	OpenLayers.Control.TransformFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/KeyboardDefaults.js	1299601896	1	OpenLayers.Control.KeyboardDefaults
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CQL.js	1296256510	1	OpenLayers.Format.CQL
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Line.js	1294069180	1	OpenLayers.Symbolizer.Line
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Text.js	1294069180	1	OpenLayers.Symbolizer.Text
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/KML.js	1312811516	1	OpenLayers.Format.KML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/da-DK.js	1312531137	1	OpenLayers.Lang["da-DK"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Kinetic.js	1298463233	1	OpenLayers.Kinetic
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomOut.js	1294069180	1	OpenLayers.Control.ZoomOut
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSExecute.js	1308756001	1	OpenLayers.Format.WPSExecute version 1.0.0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Date.js	1312382120	1	OpenLayers.Date
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/te.js	1308946332	1	OpenLayers.Lang["te"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/vi.js	1312531137	1	OpenLayers.Lang["vi"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/lt.js	1312531137	1	OpenLayers.Lang["lt"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Save.js	1294069180	1	OpenLayers.Strategy.Save
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST.js	1294069180	1	OpenLayers.Format.WFST.DEFAULTS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSGetFeatureInfo.js	1301391847	1	OpenLayers.Format.WMSGetFeatureInfo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1_0_0.js	1309341217	1	OpenLayers.Format.Filter.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/el.js	1308946332	1	OpenLayers.Lang["el"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/NG.js	1310404035	1	OpenLayers.Renderer.NG
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/HTTPRequest.js	1314228754	1	OpenLayers.Layer.HTTPRequest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/es.js	1312531137	1	OpenLayers.Lang["es"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WCSGetCoverage.js	1309883200	1	OpenLayers.Format.WCSGetCoverage version 1.1.0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol.js	1307725942	1	OpenLayers.Protocol
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Point.js	1294069180	1	OpenLayers.Symbolizer.Point
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/id.js	1312531137	1	OpenLayers.Lang["id"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_3.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_3
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSDescribeFeatureType.js	1299507212	1	OpenLayers.Format.WFSDescribeFeatureType
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMTS.js	1308251785	1	OpenLayers.Layer.WMTS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/Image.js	1308251785	1	OpenLayers.Tile.Image
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/fr.js	1312531137	1	OpenLayers.Lang["fr"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Spatial.js	1294069180	1	OpenLayers.Filter.Spatial
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/sk.js	1312531137	1	OpenLayers.Lang["sk"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Point.js	1309812492	1	OpenLayers.Handler.Point
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/EventPane.js	1307100529	1	OpenLayers.Layer.EventPane
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/gsw.js	1312531137	1	OpenLayers.Lang["gsw"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Projection.js	1298881158	1	OpenLayers.Projection
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Atom.js	1308251785	1	OpenLayers.Format.Atom
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML.js	1308251785	1	OpenLayers.Format.GML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang.js	1294249365	1	OpenLayers.Lang
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Curve.js	1294069180	1	OpenLayers.Geometry.Curve
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/TouchNavigation.js	1308724245	1	OpenLayers.Control.TouchNavigation
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js	1299507212	1	OpenLayers.Format.SOSGetFeatureOfInterest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Drag.js	1301834834	1	OpenLayers.Handler.Drag
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/JSON.js	1299507212	1	OpenLayers.Format.JSON
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Markers.js	1312965697	1	OpenLayers.Layer.Markers
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SQL/Gears.js	1308251785	1	OpenLayers.Protocol.SQL.Gears
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Navigation.js	1304929715	1	OpenLayers.Control.Navigation
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1_0_0.js	1309341217	1	OpenLayers.Format.WFST.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Request.js	1300366897	1	OpenLayers.Request
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/fi.js	1312530680	1	OpenLayers.Lang["fi"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer.js	1312965697	1	OpenLayers.Layer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Grid.js	1309811687	1	OpenLayers.Layer.Grid
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/bg.js	1308946332	1	OpenLayers.Lang["bg"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Feature/WFS.js	1294069180	1	OpenLayers.Feature.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js	1298013267	1	OpenLayers.Format.WMTSCapabilities.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcIMS.js	1298880725	1	OpenLayers.Layer.ArcIMS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFS.js	1294069180	1	OpenLayers.Format.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/is.js	1312530680	1	OpenLayers.Lang["is"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers.js	1315754186	1	OpenLayers
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/QueryStringFilter.js	1301426533	1	OpenLayers.Format.QueryStringFilter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Comparison.js	1302031403	1	OpenLayers.Filter.Comparison
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SLD/v1.js	1308251785	1	OpenLayers.Format.SLD.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Rule.js	1294249365	1	OpenLayers.Rule
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/TMS.js	1309390224	1	OpenLayers.Layer.TMS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MapGuide.js	1309678404	1	OpenLayers.Layer.MapGuide
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Events.js	1305100940	1	OpenLayers.Event
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities.js	1309858954	1	OpenLayers.Format.WMSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMS/Post.js	1294069180	1	OpenLayers.Layer.WMS.Post
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1_0_0.js	1294069180	1	OpenLayers.Protocol.WFS.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Polygon.js	1294069180	1	OpenLayers.Geometry.Polygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MultiMap.js	1297862474	1	OpenLayers.Layer.MultiMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/WMSGetFeatureInfo.js	1308251785	1	OpenLayers.Control.WMSGetFeatureInfo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Marker.js	1294249365	1	OpenLayers.Marker
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GeoRSS.js	1308251785	1	OpenLayers.Format.GeoRSS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/HTTP.js	1302158978	1	OpenLayers.Protocol.HTTP
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/gl.js	1312531137	1	OpenLayers.Lang["gl"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/fur.js	1308946332	1	OpenLayers.Lang["fur"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSCapabilities.js	1309858954	1	OpenLayers.Format.SOSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Surface.js	1294069180	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Surface.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/BBOX.js	1308939709	1	OpenLayers.Strategy.BBOX
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XML/VersionedOGC.js	1309858954	1	OpenLayers.Format.XML.VersionedOGC
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nds.js	1312531137	1	OpenLayers.Lang["nds"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSGetObservation.js	1299507212	1	OpenLayers.Format.SOSGetObservation
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nb.js	1312531137	1	OpenLayers.Lang["nb"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/Anchored.js	1294069180	1	OpenLayers.Popup.Anchored
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Image.js	1294069180	1	OpenLayers.Layer.Image
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/Script.js	1314228754	1	OpenLayers.Protocol.Script
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Polygon.js	1308337156	1	OpenLayers.Handler.Polygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/pt-BR.js	1312531137	1	OpenLayers.Lang["pt-br"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Paging.js	1299509306	1	OpenLayers.Strategy.Paging
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Feature.js	1301494633	1	OpenLayers.Feature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/WFS.js	1294069180	1	OpenLayers.Tile.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Bing.js	1308722650	1	OpenLayers.Layer.Bing
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XLS/v1_1_0.js	1301493331	1	OpenLayers.Format.XLS.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiPoint.js	1294069180	1	OpenLayers.Geometry.MultiPoint
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ar.js	1308946332	1	OpenLayers.Lang["ar"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS/v1_0_0.js	1294069180	1	OpenLayers.Protocol.SOS.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/LineString.js	1308337156	1	OpenLayers.Geometry.LineString
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ja.js	1312531137	1	OpenLayers.Lang["ja"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/DrawFeature.js	1308337156	1	OpenLayers.Control.DrawFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/Image/IFrame.js	1308652107	1	OpenLayers.Tile.Image.IFrame
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSCapabilities.js	1309858954	1	OpenLayers.Format.WPSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/readme.txt	1181603869	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/readme.txt
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js	1299601176	1	OpenLayers.Format.WFSCapabilities/v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/Elements.js	1307086062	1	OpenLayers.ElementsIndexer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/hsb.js	1312531137	1	OpenLayers.Lang["hsb"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Refresh.js	1299509306	1	OpenLayers.Strategy.Refresh
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Util.js	1312810994	1	Util
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MapServer.js	1309678404	1	OpenLayers.Layer.MapServer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/VML.js	1307358131	1	OpenLayers.Renderer.VML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GPX.js	1298881158	1	OpenLayers.Format.GPX
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nl.js	1312531137	1	OpenLayers.Lang["nl"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/NavToolbar.js	1305011357	1	OpenLayers.Control.NavToolbar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/km.js	1308946332	1	OpenLayers.Lang["km"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/oc.js	1312531137	1	OpenLayers.Lang["oc"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/SingleFile.js	1315754186	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/SingleFile.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Yahoo.js	1294069180	1	OpenLayers.Layer.Yahoo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js	1294069180	1	OpenLayers.Format.WMSDescribeLayer.v1_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_1_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1_0_0.js	1307725942	1	OpenLayers.Format.OWSCommon.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control.js	1310668608	1	OpenLayers.Control
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js	1312807427	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon.js	1309858954	1	OpenLayers.Format.OWSCommon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Snapping.js	1298881158	1	OpenLayers.Control.Snapping
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomToMaxExtent.js	1294069180	1	OpenLayers.Control.ZoomToMaxExtent
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Geolocate.js	1298623948	1	OpenLayers.Control.Geolocate
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ModifyFeature.js	1314228754	1	OpenLayers.Control.ModifyFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Raster.js	1294069180	1	OpenLayers.Symbolizer.Raster
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Function.js	1300376848	1	OpenLayers.Filter.Function
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Pan.js	1296658857	1	OpenLayers.Control.Pan
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/Canvas.js	1312386426	1	OpenLayers.Renderer.Canvas
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ca.js	1312531137	1	OpenLayers.Lang["ca"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Marker/Box.js	1294069180	1	OpenLayers.Marker.Box
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WFS.js	1312965697	1	OpenLayers.Layer.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiLineString.js	1294069180	1	OpenLayers.Geometry.MultiLineString
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup.js	1311666540	1	OpenLayers.Popup
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiPolygon.js	1294069180	1	OpenLayers.Geometry.MultiPolygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Permalink.js	1308946332	1	OpenLayers.Control.Permalink
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SLD.js	1309858954	1	OpenLayers.Format.SLD
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/LinearRing.js	1308337156	1	OpenLayers.Geometry.LinearRing
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Boxes.js	1294069180	1	OpenLayers.Layer.Boxes
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/GeoRSS.js	1294069180	1	OpenLayers.Layer.GeoRSS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGIS93Rest.js	1298880725	1	OpenLayers.Layer.ArcGIS93Rest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Feature.js	1308722650	1	OpenLayers.Handler.Feature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GeoJSON.js	1308556072	1	OpenLayers.Format.GeoJSON
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry.js	1308251785	1	OpenLayers.Geometry
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Measure.js	1298538049	1	OpenLayers.Control.Measure
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Map.js	1314228754	1	OpenLayers.Map
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1.js	1312809779	1	OpenLayers.Protocol.WFS.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/FramedCloud.js	1294249365	1	OpenLayers.Popup.FramedCloud
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/hu.js	1312531137	1	OpenLayers.Lang["hu"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PanZoom.js	1299474171	1	OpenLayers.Control.PanZoom
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Point.js	1294069180	1	OpenLayers.Geometry.Point
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/KaMap.js	1299623293	1	OpenLayers.Layer.KaMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/ArcXML.js	1308251785	1	OpenLayers.Format.ArcXML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ScaleLine.js	1299508428	1	OpenLayers.Control.ScaleLine
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1_1_0.js	1308736475	1	OpenLayers.Format.OWSCommon.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/DragPan.js	1306760116	1	OpenLayers.Control.DragPan
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Collection.js	1308337156	1	OpenLayers.Geometry.Collection
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/SLDSelect.js	1300797041	1	OpenLayers.Control.SLDSelect
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Vector.js	1311599626	1	OpenLayers.Layer.Vector
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMTSCapabilities.js	1309858954	1	OpenLayers.Format.WMTSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nn.js	1308946332	1	OpenLayers.Lang["nn"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer.js	1308251785	1	OpenLayers.Renderer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSDescribeProcess.js	1314228754	1	OpenLayers.Format.WPSDescribeProcess
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js	1294069180	1	OpenLayers.Format.SOSCapabilities.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Corner.js	1294249365	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Corner.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/zh-CN.js	1312531137	1	OpenLayers.Lang["zh-CN"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Split.js	1298881158	1	OpenLayers.Control.Split
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1_1_0.js	1309341217	1	OpenLayers.Format.Filter.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Path.js	1308337156	1	OpenLayers.Handler.Path
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1_1_0.js	1301937314	1	OpenLayers.Format.WMC.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/TileCache.js	1308251785	1	OpenLayers.Layer.TileCache
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Box.js	1307360630	1	OpenLayers.Handler.Box
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js	1308251785	1	OpenLayers.Format.CSWGetDomain.v2_0_2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1.js	1301649071	1	OpenLayers.Format.Filter.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Panel.js	1308251785	1	OpenLayers.Control.Panel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/MouseToolbar.js	1301834834	1	OpenLayers.Control.MouseToolbar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PanPanel.js	1296658857	1	OpenLayers.Control.PanPanel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Text.js	1294069180	1	OpenLayers.Format.Text
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Text.js	1294069180	1	OpenLayers.Layer.Text
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OGCExceptionReport.js	1309870390	1	OpenLayers.Format.OGCExceptionReport
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Click.js	1311766593	1	OpenLayers.Handler.Click
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/StyleMap.js	1294249365	1	OpenLayers.StyleMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SLD/v1_0_0.js	1294069180	1	OpenLayers.Format.SLD.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js	1314228754	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler.js	1294249365	1	OpenLayers.Handler
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MapServer/Untiled.js	1294069180	1	OpenLayers.Layer.MapServer.Untiled
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/SphericalMercator.js	1297689039	1	OpenLayers.Layer.SphericalMercator
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/DragFeature.js	1311451922	1	OpenLayers.Control.DragFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ArgParser.js	1299508428	1	OpenLayers.Control.ArgParser
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/KaMapCache.js	1308251785	1	OpenLayers.Layer.KaMapCache
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XLS/v1.js	1308251785	1	OpenLayers.Format.XLS.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSDescribeLayer.js	1309858954	1	OpenLayers.Format.WMSDescribeLayer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WorldWind.js	1311948039	1	OpenLayers.Layer.WorldWind
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/GetFeature.js	1308251785	1	OpenLayers.Control.GetFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/EditingToolbar.js	1305011357	1	OpenLayers.Control.EditingToolbar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/cs-CZ.js	1312531137	1	OpenLayers.Lang["cs-CZ"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Bounds.js	1311932195	1	OpenLayers.Bounds
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSContext/v0_3_1.js	1308251785	1	OpenLayers.Format.OWSContext.v0_3_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_3_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Pinch.js	1311766593	1	OpenLayers.Handler.Pinch
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter.js	1294249365	1	OpenLayers.Filter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1.js	1311602460	1	OpenLayers.Format.WFST.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Rectangle.js	1298881158	1	OpenLayers.Geometry.Rectangle
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities.js	1309858954	1	OpenLayers.Format.WFSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile.js	1312788666	1	OpenLayers.Tile
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Ajax.js	1312386914	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Ajax.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Fixed.js	1299509306	1	OpenLayers.Strategy.Fixed
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/pt.js	1312531137	1	OpenLayers.Lang["pt"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Scale.js	1308946332	1	OpenLayers.Control.Scale
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML/Base.js	1310738859	1	OpenLayers.Format.GML.Base
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OSM.js	1308251785	1	OpenLayers.Format.OSM
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js	1304495335	1	OpenLayers.Format.WFSCapabilities/v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/Framed.js	1294069180	1	OpenLayers.Popup.Framed
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/XYZ.js	1308251785	1	OpenLayers.Layer.XYZ
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Gears/gears_init.js	1221231425	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Gears/gears_init.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/en-CA.js	1283310391	1	OpenLayers.Lang["en-CA"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XLS.js	1309858954	1	OpenLayers.Format.XLS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Size.js	1311932282	1	OpenLayers.Size
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Hover.js	1301834834	1	OpenLayers.Handler.Hover
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSContext.js	1309858954	1	OpenLayers.Format.OWSContext
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Request/XMLHttpRequest.js	1292235246	1	OpenLayers.Request.XMLHttpRequest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/RegularPolygon.js	1308689633	1	OpenLayers.Handler.RegularPolygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/io.js	1308946332	1	OpenLayers.Lang["io"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/MouseWheel.js	1294069180	1	OpenLayers.Handler.MouseWheel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/LayerSwitcher.js	1308946332	1	OpenLayers.Control.LayerSwitcher
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/be-tarask.js	1312531137	1	OpenLayers.Lang["be-tarask"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/zh-TW.js	1312531137	1	OpenLayers.Lang["zh-TW"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS.js	1312809779	1	OpenLayers.Protocol.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer.js	1294249365	1	OpenLayers.Symbolizer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Filter.js	1301516364	1	OpenLayers.Strategy.Filter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PinchZoom.js	1299808406	1	OpenLayers.Control.PinchZoom
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1_1_0.js	1309341217	1	OpenLayers.Format.WFST.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/PointTrack.js	1300801558	1	OpenLayers.Layer.PointTrack
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Context.js	1309858954	1	OpenLayers.Format.Context
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/de.js	1312531137	1	OpenLayers.Lang["de"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/PointGrid.js	1308334720	1	OpenLayers.Layer.PointGrid
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/hr.js	1312531137	1	OpenLayers.Lang["hr"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1.js	1312779036	1	OpenLayers.Format.WMSCapabilities.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ia.js	1312531137	1	OpenLayers.Lang["ia"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebugx.js	1298652019	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebugx.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/sv-SE.js	1312531137	1	OpenLayers.Lang["sv"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Zoomify.js	1308251785	1	OpenLayers.Layer.Zoomify
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1.js	1308736475	1	OpenLayers.Format.OWSCommon.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Keyboard.js	1294069180	1	OpenLayers.handler.Keyboard
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/NavigationHistory.js	1294069180	1	OpenLayers.Control.NavigationHistory
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMS/Untiled.js	1294069180	1	OpenLayers.Layer.WMS.Untiled
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ksh.js	1312531137	1	OpenLayers.Lang["ksh"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/WMTSGetFeatureInfo.js	1308251785	1	OpenLayers.Control.WMTSGetFeatureInfo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js	1295873033	1	OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/SVG2.js	1310404035	1	OpenLayers.Renderer.SVG2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format.js	1294249365	1	OpenLayers.Format
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Console.js	1298881158	1	OpenLayers.Console
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/license.txt	1181603869	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/license.txt
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js	1308736475	1	OpenLayers.Format.WPSCapabilities.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google.js	1294069180	1	OpenLayers.Layer.Google
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1.js	1294069180	1	OpenLayers.Format.WFSCapabilities.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC.js	1309858954	1	OpenLayers.Format.WMC
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Attribution.js	1299508428	1	OpenLayers.Control.Attribution
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1_1_0.js	1294069180	1	OpenLayers.Protocol.WFS.v1_1_0
diff --git a/apidoc_config/Data/ImageFileInfo.nd b/apidoc_config/Data/ImageFileInfo.nd
index 550e24b..c9df45b 100644
Binary files a/apidoc_config/Data/ImageFileInfo.nd and b/apidoc_config/Data/ImageFileInfo.nd differ
diff --git a/apidoc_config/Data/ImageReferenceTable.nd b/apidoc_config/Data/ImageReferenceTable.nd
index a3ed9fa..49ffcc0 100644
Binary files a/apidoc_config/Data/ImageReferenceTable.nd and b/apidoc_config/Data/ImageReferenceTable.nd differ
diff --git a/apidoc_config/Data/IndexInfo.nd b/apidoc_config/Data/IndexInfo.nd
index d9186e3..eb67892 100644
Binary files a/apidoc_config/Data/IndexInfo.nd and b/apidoc_config/Data/IndexInfo.nd differ
diff --git a/apidoc_config/Data/PreviousMenuState.nd b/apidoc_config/Data/PreviousMenuState.nd
index 6b4c7bf..549adae 100644
Binary files a/apidoc_config/Data/PreviousMenuState.nd and b/apidoc_config/Data/PreviousMenuState.nd differ
diff --git a/apidoc_config/Data/PreviousSettings.nd b/apidoc_config/Data/PreviousSettings.nd
index 0f9a7b2..7ac0e60 100644
Binary files a/apidoc_config/Data/PreviousSettings.nd and b/apidoc_config/Data/PreviousSettings.nd differ
diff --git a/apidoc_config/Data/SymbolTable.nd b/apidoc_config/Data/SymbolTable.nd
index 958465b..01b6209 100644
Binary files a/apidoc_config/Data/SymbolTable.nd and b/apidoc_config/Data/SymbolTable.nd differ
diff --git a/apidoc_config/Languages.txt b/apidoc_config/Languages.txt
index ce0f107..42b197c 100644
--- a/apidoc_config/Languages.txt
+++ b/apidoc_config/Languages.txt
@@ -1,4 +1,4 @@
-Format: Development Release 12-07-2007 (1.35 base)
+Format: 1.52
 
 # This is the Natural Docs languages file for this project.  If you change
 # anything here, it will apply to THIS PROJECT ONLY.  If you'd like to change
diff --git a/apidoc_config/Menu.txt b/apidoc_config/Menu.txt
index 07b290e..475cb6a 100644
--- a/apidoc_config/Menu.txt
+++ b/apidoc_config/Menu.txt
@@ -1,4 +1,4 @@
-Format: Development Release 12-07-2007 (1.35 base)
+Format: 1.52
 
 
 Title: OpenLayers
@@ -48,68 +48,72 @@ SubTitle: JavaScript Mapping Library
 Group: OpenLayers  {
 
    File: OpenLayers  (no auto-title, OpenLayers.js)
+   File: Ajax  (no auto-title, OpenLayers/Ajax.js)
 
    Group: BaseTypes  {
 
       File: Base Types  (no auto-title, OpenLayers/BaseTypes.js)
       File: Bounds  (no auto-title, OpenLayers/BaseTypes/Bounds.js)
       File: Class  (no auto-title, OpenLayers/BaseTypes/Class.js)
+      File: Date  (no auto-title, OpenLayers/BaseTypes/Date.js)
       File: Element  (no auto-title, OpenLayers/BaseTypes/Element.js)
       File: LonLat  (no auto-title, OpenLayers/BaseTypes/LonLat.js)
       File: Pixel  (no auto-title, OpenLayers/BaseTypes/Pixel.js)
       File: Size  (no auto-title, OpenLayers/BaseTypes/Size.js)
       }  # Group: BaseTypes
 
+   File: Console  (no auto-title, OpenLayers/Console.js)
+
    Group: Control  {
 
       File: Control  (no auto-title, OpenLayers/Control.js)
-
-      Group: Control  {
-
-         File: ArgParser  (no auto-title, OpenLayers/Control/ArgParser.js)
-         File: Attribution  (no auto-title, OpenLayers/Control/Attribution.js)
-         File: Button  (no auto-title, OpenLayers/Control/Button.js)
-         File: DragFeature  (no auto-title, OpenLayers/Control/DragFeature.js)
-         File: DragPan  (no auto-title, OpenLayers/Control/DragPan.js)
-         File: DrawFeature  (no auto-title, OpenLayers/Control/DrawFeature.js)
-         File: EditingToolbar  (no auto-title, OpenLayers/Control/EditingToolbar.js)
-         File: GetFeature  (no auto-title, OpenLayers/Control/GetFeature.js)
-         File: Graticule  (OpenLayers/Control/Graticule.js)
-         File: KeyboardDefaults  (no auto-title, OpenLayers/Control/KeyboardDefaults.js)
-         File: LayerSwitcher  (no auto-title, OpenLayers/Control/LayerSwitcher.js)
-         File: Measure  (no auto-title, OpenLayers/Control/Measure.js)
-         File: ModifyFeature  (no auto-title, OpenLayers/Control/ModifyFeature.js)
-         File: MouseDefaults  (no auto-title, OpenLayers/Control/MouseDefaults.js)
-         File: MousePosition  (no auto-title, OpenLayers/Control/MousePosition.js)
-         File: MouseToolbar  (no auto-title, OpenLayers/Control/MouseToolbar.js)
-         File: Navigation  (no auto-title, OpenLayers/Control/Navigation.js)
-         File: NavigationHistory  (no auto-title, OpenLayers/Control/NavigationHistory.js)
-         File: NavToolbar  (no auto-title, OpenLayers/Control/NavToolbar.js)
-         File: OverviewMap  (no auto-title, OpenLayers/Control/OverviewMap.js)
-         File: Pan  (no auto-title, OpenLayers/Control/Pan.js)
-         File: Panel  (no auto-title, OpenLayers/Control/Panel.js)
-         File: PanPanel  (no auto-title, OpenLayers/Control/PanPanel.js)
-         File: PanZoom  (no auto-title, OpenLayers/Control/PanZoom.js)
-         File: PanZoomBar  (no auto-title, OpenLayers/Control/PanZoomBar.js)
-         File: Permalink  (no auto-title, OpenLayers/Control/Permalink.js)
-         File: Scale  (no auto-title, OpenLayers/Control/Scale.js)
-         File: ScaleLine  (no auto-title, OpenLayers/Control/ScaleLine.js)
-         File: SelectFeature  (no auto-title, OpenLayers/Control/SelectFeature.js)
-         File: SLDSelect  (OpenLayers/Control/SLDSelect.js)
-         File: Snapping  (no auto-title, OpenLayers/Control/Snapping.js)
-         File: Split  (no auto-title, OpenLayers/Control/Split.js)
-         File: TransformFeature  (OpenLayers/Control/TransformFeature.js)
-         File: WMSGetFeatureInfo  (OpenLayers/Control/WMSGetFeatureInfo.js)
-         File: WMTSGetFeatureInfo  (OpenLayers/Control/WMTSGetFeatureInfo.js)
-         File: ZoomBox  (no auto-title, OpenLayers/Control/ZoomBox.js)
-         File: ZoomIn  (no auto-title, OpenLayers/Control/ZoomIn.js)
-         File: ZoomOut  (no auto-title, OpenLayers/Control/ZoomOut.js)
-         File: ZoomPanel  (no auto-title, OpenLayers/Control/ZoomPanel.js)
-         File: ZoomToMaxExtent  (no auto-title, OpenLayers/Control/ZoomToMaxExtent.js)
-         }  # Group: Control
-
+      File: ArgParser  (no auto-title, OpenLayers/Control/ArgParser.js)
+      File: Attribution  (no auto-title, OpenLayers/Control/Attribution.js)
+      File: Button  (no auto-title, OpenLayers/Control/Button.js)
+      File: DragFeature  (no auto-title, OpenLayers/Control/DragFeature.js)
+      File: DragPan  (no auto-title, OpenLayers/Control/DragPan.js)
+      File: DrawFeature  (no auto-title, OpenLayers/Control/DrawFeature.js)
+      File: EditingToolbar  (no auto-title, OpenLayers/Control/EditingToolbar.js)
+      File: Geolocate  (no auto-title, OpenLayers/Control/Geolocate.js)
+      File: GetFeature  (no auto-title, OpenLayers/Control/GetFeature.js)
+      File: Graticule  (no auto-title, OpenLayers/Control/Graticule.js)
+      File: KeyboardDefaults  (no auto-title, OpenLayers/Control/KeyboardDefaults.js)
+      File: LayerSwitcher  (no auto-title, OpenLayers/Control/LayerSwitcher.js)
+      File: Measure  (no auto-title, OpenLayers/Control/Measure.js)
+      File: ModifyFeature  (no auto-title, OpenLayers/Control/ModifyFeature.js)
+      File: MouseDefaults  (no auto-title, OpenLayers/Control/MouseDefaults.js)
+      File: MousePosition  (no auto-title, OpenLayers/Control/MousePosition.js)
+      File: MouseToolbar  (no auto-title, OpenLayers/Control/MouseToolbar.js)
+      File: Navigation  (no auto-title, OpenLayers/Control/Navigation.js)
+      File: NavigationHistory  (no auto-title, OpenLayers/Control/NavigationHistory.js)
+      File: NavToolbar  (no auto-title, OpenLayers/Control/NavToolbar.js)
+      File: OverviewMap  (no auto-title, OpenLayers/Control/OverviewMap.js)
+      File: Pan  (no auto-title, OpenLayers/Control/Pan.js)
+      File: Panel  (no auto-title, OpenLayers/Control/Panel.js)
+      File: PanPanel  (no auto-title, OpenLayers/Control/PanPanel.js)
+      File: PanZoom  (no auto-title, OpenLayers/Control/PanZoom.js)
+      File: PanZoomBar  (no auto-title, OpenLayers/Control/PanZoomBar.js)
+      File: Permalink  (no auto-title, OpenLayers/Control/Permalink.js)
+      File: PinchZoom  (no auto-title, OpenLayers/Control/PinchZoom.js)
+      File: Scale  (no auto-title, OpenLayers/Control/Scale.js)
+      File: ScaleLine  (no auto-title, OpenLayers/Control/ScaleLine.js)
+      File: SelectFeature  (no auto-title, OpenLayers/Control/SelectFeature.js)
+      File: SLDSelect  (no auto-title, OpenLayers/Control/SLDSelect.js)
+      File: Snapping  (no auto-title, OpenLayers/Control/Snapping.js)
+      File: Split  (no auto-title, OpenLayers/Control/Split.js)
+      File: TouchNavigation  (no auto-title, OpenLayers/Control/TouchNavigation.js)
+      File: TransformFeature  (no auto-title, OpenLayers/Control/TransformFeature.js)
+      File: WMSGetFeatureInfo  (no auto-title, OpenLayers/Control/WMSGetFeatureInfo.js)
+      File: WMTSGetFeatureInfo  (no auto-title, OpenLayers/Control/WMTSGetFeatureInfo.js)
+      File: ZoomBox  (no auto-title, OpenLayers/Control/ZoomBox.js)
+      File: ZoomIn  (no auto-title, OpenLayers/Control/ZoomIn.js)
+      File: ZoomOut  (no auto-title, OpenLayers/Control/ZoomOut.js)
+      File: ZoomPanel  (no auto-title, OpenLayers/Control/ZoomPanel.js)
+      File: ZoomToMaxExtent  (no auto-title, OpenLayers/Control/ZoomToMaxExtent.js)
       }  # Group: Control
 
+   File: Events  (no auto-title, OpenLayers/Events.js)
+
    Group: Feature  {
 
       File: Feature  (no auto-title, OpenLayers/Feature.js)
@@ -122,6 +126,7 @@ Group: OpenLayers  {
       File: Filter  (no auto-title, OpenLayers/Filter.js)
       File: Comparison  (no auto-title, OpenLayers/Filter/Comparison.js)
       File: FeatureId  (no auto-title, OpenLayers/Filter/FeatureId.js)
+      File: Function  (no auto-title, OpenLayers/Filter/Function.js)
       File: Logical  (no auto-title, OpenLayers/Filter/Logical.js)
       File: Spatial  (no auto-title, OpenLayers/Filter/Spatial.js)
       }  # Group: Filter
@@ -135,7 +140,7 @@ Group: OpenLayers  {
          File: Filter  (no auto-title, OpenLayers/Format/Filter.js)
          File: v1  (no auto-title, OpenLayers/Format/Filter/v1.js)
          File: v1_0_0  (no auto-title, OpenLayers/Format/Filter/v1_0_0.js)
-         File: v1_1_0  (OpenLayers/Format/Filter/v1_1_0.js)
+         File: v1_1_0  (no auto-title, OpenLayers/Format/Filter/v1_1_0.js)
          }  # Group: Filter
 
       Group: GML  {
@@ -164,9 +169,9 @@ Group: OpenLayers  {
       Group: WFST  {
 
          File: WFST  (no auto-title, OpenLayers/Format/WFST.js)
-         File: v1  (OpenLayers/Format/WFST/v1.js)
-         File: v1_0_0  (OpenLayers/Format/WFST/v1_0_0.js)
-         File: v1_1_0  (OpenLayers/Format/WFST/v1_1_0.js)
+         File: v1  (no auto-title, OpenLayers/Format/WFST/v1.js)
+         File: v1_0_0  (no auto-title, OpenLayers/Format/WFST/v1_0_0.js)
+         File: v1_1_0  (no auto-title, OpenLayers/Format/WFST/v1_1_0.js)
          }  # Group: WFST
 
       Group: WMC  {
@@ -186,6 +191,7 @@ Group: OpenLayers  {
          File: v1_1_1  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1.js)
          File: v1_3  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3.js)
          File: v1_3_0  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3_0.js)
+         File: WMSCapabilities/v1_1_1_WMSC  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js)
          }  # Group: WMSCapabilities
 
       Group: WMSDescribeLayer  {
@@ -199,38 +205,51 @@ Group: OpenLayers  {
          File: ArcXML  (no auto-title, OpenLayers/Format/ArcXML.js)
          File: ArcXML.Features  (no auto-title, OpenLayers/Format/ArcXML/Features.js)
          File: Atom  (no auto-title, OpenLayers/Format/Atom.js)
-         File: Context  (OpenLayers/Format/Context.js)
-         File: CSWGetDomain.DEFAULTS  (no auto-title, OpenLayers/Format/CSWGetDomain.js)
+         File: Context  (no auto-title, OpenLayers/Format/Context.js)
+         File: CQL  (no auto-title, OpenLayers/Format/CQL.js)
+         File: CSWGetDomain  (no auto-title, OpenLayers/Format/CSWGetDomain.js)
          File: CSWGetDomain.v2_0_2  (no auto-title, OpenLayers/Format/CSWGetDomain/v2_0_2.js)
-         File: CSWGetRecords.DEFAULTS  (no auto-title, OpenLayers/Format/CSWGetRecords.js)
+         File: CSWGetRecords  (no auto-title, OpenLayers/Format/CSWGetRecords.js)
          File: CSWGetRecords.v2_0_2  (no auto-title, OpenLayers/Format/CSWGetRecords/v2_0_2.js)
          File: GeoJSON  (no auto-title, OpenLayers/Format/GeoJSON.js)
          File: GeoRSS  (no auto-title, OpenLayers/Format/GeoRSS.js)
          File: GPX  (no auto-title, OpenLayers/Format/GPX.js)
          File: JSON  (no auto-title, OpenLayers/Format/JSON.js)
          File: KML  (no auto-title, OpenLayers/Format/KML.js)
+         File: OGCExceptionReport  (no auto-title, OpenLayers/Format/OGCExceptionReport.js)
          File: OSM  (no auto-title, OpenLayers/Format/OSM.js)
+         File: OWSCommon  (no auto-title, OpenLayers/Format/OWSCommon.js)
 
          Group: OWSCommon  {
 
-            File: v1  (OpenLayers/Format/OWSCommon/v1.js)
-            File: v1_0_0  (OpenLayers/Format/OWSCommon/v1_0_0.js)
-            File: v1_1_0  (OpenLayers/Format/OWSCommon/v1_1_0.js)
+            File: v1  (no auto-title, OpenLayers/Format/OWSCommon/v1.js)
+            File: v1_0_0  (no auto-title, OpenLayers/Format/OWSCommon/v1_0_0.js)
+            File: v1_1_0  (no auto-title, OpenLayers/Format/OWSCommon/v1_1_0.js)
             }  # Group: OWSCommon
 
-         File: OWSContext  (OpenLayers/Format/OWSContext.js)
-         File: OWSContext.v0_3_1  (OpenLayers/Format/OWSContext/v0_3_1.js)
-         File: SOSCapabilities  (OpenLayers/Format/SOSCapabilities.js)
-         File: SOSCapabilities.v1_0_0  (OpenLayers/Format/SOSCapabilities/v1_0_0.js)
-         File: SOSGetFeatureOfInterest  (OpenLayers/Format/SOSGetFeatureOfInterest.js)
-         File: SOSGetObservation  (OpenLayers/Format/SOSGetObservation.js)
+         File: OWSContext  (no auto-title, OpenLayers/Format/OWSContext.js)
+         File: OWSContext.v0_3_1  (no auto-title, OpenLayers/Format/OWSContext/v0_3_1.js)
+         File: QueryStringFilter  (no auto-title, OpenLayers/Format/QueryStringFilter.js)
+         File: SOSCapabilities  (no auto-title, OpenLayers/Format/SOSCapabilities.js)
+         File: SOSCapabilities.v1_0_0  (no auto-title, OpenLayers/Format/SOSCapabilities/v1_0_0.js)
+         File: SOSGetFeatureOfInterest  (no auto-title, OpenLayers/Format/SOSGetFeatureOfInterest.js)
+         File: SOSGetObservation  (no auto-title, OpenLayers/Format/SOSGetObservation.js)
          File: Text  (no auto-title, OpenLayers/Format/Text.js)
+         File: VersionedOGC  (OpenLayers/Format/XML/VersionedOGC.js)
+         File: WCSGetCoverage version 1.1.0  (no auto-title, OpenLayers/Format/WCSGetCoverage.js)
          File: WFS  (no auto-title, OpenLayers/Format/WFS.js)
          File: WFSDescribeFeatureType  (no auto-title, OpenLayers/Format/WFSDescribeFeatureType.js)
          File: WKT  (no auto-title, OpenLayers/Format/WKT.js)
          File: WMSGetFeatureInfo  (no auto-title, OpenLayers/Format/WMSGetFeatureInfo.js)
-         File: WMTSCapabilities  (OpenLayers/Format/WMTSCapabilities.js)
-         File: WMTSCapabilities.v1_0_0  (OpenLayers/Format/WMTSCapabilities/v1_0_0.js)
+         File: WMTSCapabilities  (no auto-title, OpenLayers/Format/WMTSCapabilities.js)
+         File: WMTSCapabilities.v1_0_0  (no auto-title, OpenLayers/Format/WMTSCapabilities/v1_0_0.js)
+         File: WPSCapabilities  (no auto-title, OpenLayers/Format/WPSCapabilities.js)
+         File: WPSCapabilities.v1_0_0  (no auto-title, OpenLayers/Format/WPSCapabilities/v1_0_0.js)
+         File: WPSDescribeProcess  (no auto-title, OpenLayers/Format/WPSDescribeProcess.js)
+         File: WPSExecute version 1.0.0  (no auto-title, OpenLayers/Format/WPSExecute.js)
+         File: XLS  (no auto-title, OpenLayers/Format/XLS.js)
+         File: XLS.v1  (no auto-title, OpenLayers/Format/XLS/v1.js)
+         File: XLS.v1_1_0  (no auto-title, OpenLayers/Format/XLS/v1_1_0.js)
          File: XML  (no auto-title, OpenLayers/Format/XML.js)
          }  # Group: Format
 
@@ -262,11 +281,15 @@ Group: OpenLayers  {
       File: Keyboard  (no auto-title, OpenLayers/Handler/Keyboard.js)
       File: MouseWheel  (no auto-title, OpenLayers/Handler/MouseWheel.js)
       File: Path  (no auto-title, OpenLayers/Handler/Path.js)
+      File: Pinch  (no auto-title, OpenLayers/Handler/Pinch.js)
       File: Point  (no auto-title, OpenLayers/Handler/Point.js)
       File: Polygon  (no auto-title, OpenLayers/Handler/Polygon.js)
       File: RegularPolygon  (no auto-title, OpenLayers/Handler/RegularPolygon.js)
       }  # Group: Handler
 
+   File: Icon  (no auto-title, OpenLayers/Icon.js)
+   File: Kinetic  (no auto-title, OpenLayers/Kinetic.js)
+
    Group: Lang  {
 
       File: Lang  (no auto-title, OpenLayers/Lang.js)
@@ -298,6 +321,7 @@ Group: OpenLayers  {
       File: ja  (no auto-title, OpenLayers/Lang/ja.js)
       File: km  (no auto-title, OpenLayers/Lang/km.js)
       File: ksh  (no auto-title, OpenLayers/Lang/ksh.js)
+      File: lt  (no auto-title, OpenLayers/Lang/lt.js)
       File: nds  (no auto-title, OpenLayers/Lang/nds.js)
       File: nb  (no auto-title, OpenLayers/Lang/nb.js)
       File: nl  (no auto-title, OpenLayers/Lang/nl.js)
@@ -317,49 +341,49 @@ Group: OpenLayers  {
    Group: Layer  {
 
       File: Layer  (no auto-title, OpenLayers/Layer.js)
-
-      Group: Layer  {
-
-         File: ArcGIS93Rest  (no auto-title, OpenLayers/Layer/ArcGIS93Rest.js)
-         File: ArcIMS  (no auto-title, OpenLayers/Layer/ArcIMS.js)
-         File: Boxes  (no auto-title, OpenLayers/Layer/Boxes.js)
-         File: EventPane  (no auto-title, OpenLayers/Layer/EventPane.js)
-         File: FixedZoomLevels  (no auto-title, OpenLayers/Layer/FixedZoomLevels.js)
-         File: GeoRSS  (no auto-title, OpenLayers/Layer/GeoRSS.js)
-         File: GML  (no auto-title, OpenLayers/Layer/GML.js)
-         File: Google  (no auto-title, OpenLayers/Layer/Google.js)
-         File: Grid  (no auto-title, OpenLayers/Layer/Grid.js)
-         File: HTTPRequest  (no auto-title, OpenLayers/Layer/HTTPRequest.js)
-         File: Image  (no auto-title, OpenLayers/Layer/Image.js)
-         File: KaMap  (no auto-title, OpenLayers/Layer/KaMap.js)
-         File: KaMapCache  (no auto-title, OpenLayers/Layer/KaMapCache.js)
-         File: MapGuide  (no auto-title, OpenLayers/Layer/MapGuide.js)
-         File: MapServer  (no auto-title, OpenLayers/Layer/MapServer.js)
-         File: MapServer.Untiled  (no auto-title, OpenLayers/Layer/MapServer/Untiled.js)
-         File: Markers  (no auto-title, OpenLayers/Layer/Markers.js)
-         File: MultiMap  (no auto-title, OpenLayers/Layer/MultiMap.js)
-         File: PointTrack  (no auto-title, OpenLayers/Layer/PointTrack.js)
-         File: SphericalMercator  (no auto-title, OpenLayers/Layer/SphericalMercator.js)
-         File: Text  (no auto-title, OpenLayers/Layer/Text.js)
-         File: TileCache  (no auto-title, OpenLayers/Layer/TileCache.js)
-         File: TMS  (no auto-title, OpenLayers/Layer/TMS.js)
-         File: Vector  (no auto-title, OpenLayers/Layer/Vector.js)
-         File: Vector.RootContainer  (no auto-title, OpenLayers/Layer/Vector/RootContainer.js)
-         File: VirtualEarth  (no auto-title, OpenLayers/Layer/VirtualEarth.js)
-         File: WFS  (no auto-title, OpenLayers/Layer/WFS.js)
-         File: WMS  (no auto-title, OpenLayers/Layer/WMS.js)
-         File: WMS.Untiled  (no auto-title, OpenLayers/Layer/WMS/Untiled.js)
-         File: WMS.Post  (no auto-title, OpenLayers/Layer/WMS/Post.js)
-         File: WorldWind  (no auto-title, OpenLayers/Layer/WorldWind.js)
-         File: Yahoo  (no auto-title, OpenLayers/Layer/Yahoo.js)
-         File: XYZ  (no auto-title, OpenLayers/Layer/XYZ.js)
-         File: Google/v3.js  (OpenLayers/Layer/Google/v3.js)
-         File: WMTS  (OpenLayers/Layer/WMTS.js)
-         File: Zoomify  (OpenLayers/Layer/Zoomify.js)
-         }  # Group: Layer
-
+      File: ArcGISCache.js  (no auto-title, OpenLayers/Layer/ArcGISCache.js)
+      File: ArcGIS93Rest  (no auto-title, OpenLayers/Layer/ArcGIS93Rest.js)
+      File: ArcIMS  (no auto-title, OpenLayers/Layer/ArcIMS.js)
+      File: Bing  (no auto-title, OpenLayers/Layer/Bing.js)
+      File: Boxes  (no auto-title, OpenLayers/Layer/Boxes.js)
+      File: EventPane  (no auto-title, OpenLayers/Layer/EventPane.js)
+      File: FixedZoomLevels  (no auto-title, OpenLayers/Layer/FixedZoomLevels.js)
+      File: GeoRSS  (no auto-title, OpenLayers/Layer/GeoRSS.js)
+      File: GML  (no auto-title, OpenLayers/Layer/GML.js)
+      File: Google  (no auto-title, OpenLayers/Layer/Google.js)
+      File: Google.v3  (no auto-title, OpenLayers/Layer/Google/v3.js)
+      File: Grid  (no auto-title, OpenLayers/Layer/Grid.js)
+      File: HTTPRequest  (no auto-title, OpenLayers/Layer/HTTPRequest.js)
+      File: Image  (no auto-title, OpenLayers/Layer/Image.js)
+      File: KaMap  (no auto-title, OpenLayers/Layer/KaMap.js)
+      File: KaMapCache  (no auto-title, OpenLayers/Layer/KaMapCache.js)
+      File: MapGuide  (no auto-title, OpenLayers/Layer/MapGuide.js)
+      File: MapServer  (no auto-title, OpenLayers/Layer/MapServer.js)
+      File: MapServer.Untiled  (no auto-title, OpenLayers/Layer/MapServer/Untiled.js)
+      File: Markers  (no auto-title, OpenLayers/Layer/Markers.js)
+      File: MultiMap  (no auto-title, OpenLayers/Layer/MultiMap.js)
+      File: PointGrid  (no auto-title, OpenLayers/Layer/PointGrid.js)
+      File: PointTrack  (no auto-title, OpenLayers/Layer/PointTrack.js)
+      File: SphericalMercator  (no auto-title, OpenLayers/Layer/SphericalMercator.js)
+      File: Text  (no auto-title, OpenLayers/Layer/Text.js)
+      File: TileCache  (no auto-title, OpenLayers/Layer/TileCache.js)
+      File: TMS  (no auto-title, OpenLayers/Layer/TMS.js)
+      File: Vector  (no auto-title, OpenLayers/Layer/Vector.js)
+      File: Vector.RootContainer  (no auto-title, OpenLayers/Layer/Vector/RootContainer.js)
+      File: VirtualEarth  (no auto-title, OpenLayers/Layer/VirtualEarth.js)
+      File: WFS  (no auto-title, OpenLayers/Layer/WFS.js)
+      File: WMS  (no auto-title, OpenLayers/Layer/WMS.js)
+      File: WMS.Untiled  (no auto-title, OpenLayers/Layer/WMS/Untiled.js)
+      File: WMS.Post  (no auto-title, OpenLayers/Layer/WMS/Post.js)
+      File: WMTS  (no auto-title, OpenLayers/Layer/WMTS.js)
+      File: WorldWind  (no auto-title, OpenLayers/Layer/WorldWind.js)
+      File: XYZ  (no auto-title, OpenLayers/Layer/XYZ.js)
+      File: Yahoo  (no auto-title, OpenLayers/Layer/Yahoo.js)
+      File: Zoomify  (no auto-title, OpenLayers/Layer/Zoomify.js)
       }  # Group: Layer
 
+   File: Map  (no auto-title, OpenLayers/Map.js)
+
    Group: Marker  {
 
       File: Marker  (no auto-title, OpenLayers/Marker.js)
@@ -375,6 +399,8 @@ Group: OpenLayers  {
       File: FramedCloud  (no auto-title, OpenLayers/Popup/FramedCloud.js)
       }  # Group: Popup
 
+   File: Projection  (no auto-title, OpenLayers/Projection.js)
+
    Group: Protocol  {
 
       File: Protocol  (no auto-title, OpenLayers/Protocol.js)
@@ -394,16 +420,19 @@ Group: OpenLayers  {
          File: v1_1_0  (no auto-title, OpenLayers/Protocol/WFS/v1_1_0.js)
          }  # Group: WFS
 
-      File: DEFAULTS  (OpenLayers/Protocol/SOS.js)
-      File: v1_0_0  (OpenLayers/Protocol/SOS/v1_0_0.js)
+      File: Script  (no auto-title, OpenLayers/Protocol/Script.js)
+      File: SOS.DEFAULTS  (no auto-title, OpenLayers/Protocol/SOS.js)
+      File: SOS.v1_0_0  (no auto-title, OpenLayers/Protocol/SOS/v1_0_0.js)
       }  # Group: Protocol
 
    Group: Renderer  {
 
       File: Renderer  (no auto-title, OpenLayers/Renderer.js)
       File: Canvas  (no auto-title, OpenLayers/Renderer/Canvas.js)
-      File: Elements  (no auto-title, OpenLayers/Renderer/Elements.js)
+      File: ElementsIndexer  (no auto-title, OpenLayers/Renderer/Elements.js)
+      File: NG  (no auto-title, OpenLayers/Renderer/NG.js)
       File: SVG  (no auto-title, OpenLayers/Renderer/SVG.js)
+      File: SVG2  (no auto-title, OpenLayers/Renderer/SVG2.js)
       File: VML  (no auto-title, OpenLayers/Renderer/VML.js)
       }  # Group: Renderer
 
@@ -413,58 +442,45 @@ Group: OpenLayers  {
       File: XMLHttpRequest  (no auto-title, OpenLayers/Request/XMLHttpRequest.js)
       }  # Group: Request
 
+   File: SingleFile.js  (no auto-title, OpenLayers/SingleFile.js)
+   File: Rule  (no auto-title, OpenLayers/Rule.js)
+
    Group: Strategy  {
 
       File: Strategy  (no auto-title, OpenLayers/Strategy.js)
+      File: BBOX  (no auto-title, OpenLayers/Strategy/BBOX.js)
+      File: Cluster  (no auto-title, OpenLayers/Strategy/Cluster.js)
+      File: Filter  (no auto-title, OpenLayers/Strategy/Filter.js)
+      File: Fixed  (no auto-title, OpenLayers/Strategy/Fixed.js)
+      File: Paging  (no auto-title, OpenLayers/Strategy/Paging.js)
+      File: Refresh  (no auto-title, OpenLayers/Strategy/Refresh.js)
+      File: Save  (no auto-title, OpenLayers/Strategy/Save.js)
+      }  # Group: Strategy
 
-      Group: Strategy  {
+   File: Style  (no auto-title, OpenLayers/Style.js)
+   File: Style2  (no auto-title, OpenLayers/Style2.js)
+   File: StyleMap  (no auto-title, OpenLayers/StyleMap.js)
 
-         File: BBOX  (no auto-title, OpenLayers/Strategy/BBOX.js)
-         File: Cluster  (no auto-title, OpenLayers/Strategy/Cluster.js)
-         File: Filter  (OpenLayers/Strategy/Filter.js)
-         File: Fixed  (no auto-title, OpenLayers/Strategy/Fixed.js)
-         File: Paging  (no auto-title, OpenLayers/Strategy/Paging.js)
-         File: Refresh  (OpenLayers/Strategy/Refresh.js)
-         File: Save  (OpenLayers/Strategy/Save.js)
-         }  # Group: Strategy
+   Group: Symbolizer  {
 
-      }  # Group: Strategy
+      File: Symbolizer  (no auto-title, OpenLayers/Symbolizer.js)
+      File: Line  (no auto-title, OpenLayers/Symbolizer/Line.js)
+      File: Point  (no auto-title, OpenLayers/Symbolizer/Point.js)
+      File: Polygon  (no auto-title, OpenLayers/Symbolizer/Polygon.js)
+      File: Raster  (no auto-title, OpenLayers/Symbolizer/Raster.js)
+      File: Text  (no auto-title, OpenLayers/Symbolizer/Text.js)
+      }  # Group: Symbolizer
 
    Group: Tile  {
 
       File: Tile  (no auto-title, OpenLayers/Tile.js)
       File: Image  (no auto-title, OpenLayers/Tile/Image.js)
+      File: Image.IFrame  (no auto-title, OpenLayers/Tile/Image/IFrame.js)
       File: WFS  (no auto-title, OpenLayers/Tile/WFS.js)
-      File: IFrame  (OpenLayers/Tile/Image/IFrame.js)
       }  # Group: Tile
 
-   Group: OpenLayers  {
-
-      File: Ajax  (no auto-title, OpenLayers/Ajax.js)
-      File: Console  (no auto-title, OpenLayers/Console.js)
-      File: Events  (no auto-title, OpenLayers/Events.js)
-      File: Icon  (no auto-title, OpenLayers/Icon.js)
-      File: Map  (no auto-title, OpenLayers/Map.js)
-      File: Projection  (no auto-title, OpenLayers/Projection.js)
-      File: Rule  (no auto-title, OpenLayers/Rule.js)
-      File: Style  (no auto-title, OpenLayers/Style.js)
-      File: Style2  (OpenLayers/Style2.js)
-      File: StyleMap  (no auto-title, OpenLayers/StyleMap.js)
-      File: Symbolizer  (OpenLayers/Symbolizer.js)
-
-      Group: Symbolizer  {
-
-         File: Line  (OpenLayers/Symbolizer/Line.js)
-         File: Point  (OpenLayers/Symbolizer/Point.js)
-         File: Polygon  (OpenLayers/Symbolizer/Polygon.js)
-         File: Raster  (OpenLayers/Symbolizer/Raster.js)
-         File: Text  (OpenLayers/Symbolizer/Text.js)
-         }  # Group: Symbolizer
-
-      File: Tween  (no auto-title, OpenLayers/Tween.js)
-      File: Util  (no auto-title, OpenLayers/Util.js)
-      }  # Group: OpenLayers
-
+   File: Tween  (no auto-title, OpenLayers/Tween.js)
+   File: Util  (no auto-title, OpenLayers/Util.js)
    }  # Group: OpenLayers
 
 Group: Index  {
diff --git a/apidoc_config/Topics.txt b/apidoc_config/Topics.txt
index 9c8580c..125abab 100644
--- a/apidoc_config/Topics.txt
+++ b/apidoc_config/Topics.txt
@@ -1,4 +1,4 @@
-Format: Development Release 12-07-2007 (1.35 base)
+Format: 1.52
 
 # This is the Natural Docs topics file for this project.  If you change anything
 # here, it will apply to THIS PROJECT ONLY.  If you'd like to change something
diff --git a/build/OpenLayers.js b/build/OpenLayers.js
new file mode 100644
index 0000000..9523007
--- /dev/null
+++ b/build/OpenLayers.js
@@ -0,0 +1,2885 @@
+/*
+
+  OpenLayers.js -- OpenLayers Map Viewer Library
+
+  Copyright 2005-2011 OpenLayers Contributors, released under the FreeBSD
+  license. Please see http://svn.openlayers.org/trunk/openlayers/license.txt
+  for the full text of the license.
+
+  Includes compressed code under the following licenses:
+
+  (For uncompressed versions of the code used please see the
+  OpenLayers SVN repository: <http://openlayers.org/>)
+
+*/
+
+/* Contains portions of Prototype.js:
+ *
+ * Prototype JavaScript framework, version 1.4.0
+ *  (c) 2005 Sam Stephenson <sam at conio.net>
+ *
+ *  Prototype is freely distributable under the terms of an MIT-style license.
+ *  For details, see the Prototype web site: http://prototype.conio.net/
+ *
+ *--------------------------------------------------------------------------*/
+
+/**  
+*  
+*  Contains portions of Rico <http://openrico.org/>
+* 
+*  Copyright 2005 Sabre Airline Solutions  
+*  
+*  Licensed under the Apache License, Version 2.0 (the "License"); you
+*  may not use this file except in compliance with the License. You
+*  may obtain a copy of the License at
+*  
+*         http://www.apache.org/licenses/LICENSE-2.0  
+*  
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+*  implied. See the License for the specific language governing
+*  permissions and limitations under the License. 
+*
+**/
+
+/**
+ * Contains XMLHttpRequest.js <http://code.google.com/p/xmlhttprequest/>
+ * Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ */
+
+/**
+ * Contains portions of Gears <http://code.google.com/apis/gears/>
+ *
+ * Copyright 2007, Google Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *  1. Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *  3. Neither the name of Google Inc. nor the names of its contributors may be
+ *     used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Sets up google.gears.*, which is *the only* supported way to access Gears.
+ *
+ * Circumvent this file at your own risk!
+ *
+ * In the future, Gears may automatically define google.gears.* without this
+ * file. Gears may use these objects to transparently fix bugs and compatibility
+ * issues. Applications that use the code below will continue to work seamlessly
+ * when that happens.
+ */
+
+/**
+ * OpenLayers.Util.pagePosition is based on Yahoo's getXY method, which is
+ * Copyright (c) 2006, Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use of this software in source and binary forms, with or
+ * without modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * * Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * 
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * 
+ * * Neither the name of Yahoo! Inc. nor the names of its contributors may be
+ *   used to endorse or promote products derived from this software without
+ *   specific prior written permission of Yahoo! Inc.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+ * POSSIBILITY OF SUCH DAMAGE.
+ */(function(){if(window.google&&google.gears){return;}
+var factory=null;if(typeof GearsFactory!='undefined'){factory=new GearsFactory();}else{try{factory=new ActiveXObject('Gears.Factory');if(factory.getBuildInfo().indexOf('ie_mobile')!=-1){factory.privateSetGlobalObject(this);}}catch(e){if((typeof navigator.mimeTypes!='undefined')&&navigator.mimeTypes["application/x-googlegears"]){factory=document.createElement("object");factory.style.display="none";factory.width=0;factory.height=0;factory.type="application/x-googlegears";document.documentE [...]
+if(!factory){return;}
+if(!window.google){google={};}
+if(!google.gears){google.gears={factory:factory};}})();var OpenLayers={VERSION_NUMBER:"Release 2.11",singleFile:true,_getScriptLocation:(function(){var r=new RegExp("(^|(.*?\\/))(OpenLayers\.js)(\\?|$)"),s=document.getElementsByTagName('script'),src,m,l="";for(var i=0,len=s.length;i<len;i++){src=s[i].getAttribute('src');if(src){var m=src.match(r);if(m){l=m[1];break;}}}
+return(function(){return l;});})()};OpenLayers.Class=function(){var len=arguments.length;var P=arguments[0];var F=arguments[len-1];var C=typeof F.initialize=="function"?F.initialize:function(){P.prototype.initialize.apply(this,arguments);};if(len>1){var newArgs=[C,P].concat(Array.prototype.slice.call(arguments).slice(1,len-1),F);OpenLayers.inherit.apply(null,newArgs);}else{C.prototype=F;}
+return C;};OpenLayers.Class.isPrototype=function(){};OpenLayers.Class.create=function(){return function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments);}};};OpenLayers.Class.inherit=function(P){var C=function(){P.call(this);};var newArgs=[C].concat(Array.prototype.slice.call(arguments));OpenLayers.inherit.apply(null,newArgs);return C.prototype;};OpenLayers.inherit=function(C,P){var F=function(){};F.prototype=P.prototype;C.prototype=new F; [...]
+OpenLayers.Util.extend(C.prototype,o);}};OpenLayers.Util=OpenLayers.Util||{};OpenLayers.Util.extend=function(destination,source){destination=destination||{};if(source){for(var property in source){var value=source[property];if(value!==undefined){destination[property]=value;}}
+var sourceIsEvt=typeof window.Event=="function"&&source instanceof window.Event;if(!sourceIsEvt&&source.hasOwnProperty&&source.hasOwnProperty("toString")){destination.toString=source.toString;}}
+return destination;};OpenLayers.Protocol=OpenLayers.Class({format:null,options:null,autoDestroy:true,defaultFilter:null,initialize:function(options){options=options||{};OpenLayers.Util.extend(this,options);this.options=options;},mergeWithDefaultFilter:function(filter){var merged;if(filter&&this.defaultFilter){merged=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.AND,filters:[this.defaultFilter,filter]});}else{merged=filter||this.defaultFilter||undefined;}
+return merged;},destroy:function(){this.options=null;this.format=null;},read:function(options){options=options||{};options.filter=this.mergeWithDefaultFilter(options.filter);},create:function(){},update:function(){},"delete":function(){},commit:function(){},abort:function(response){},createCallback:function(method,response,options){return OpenLayers.Function.bind(function(){method.apply(this,[response,options]);},this);},CLASS_NAME:"OpenLayers.Protocol"});OpenLayers.Protocol.Response=Ope [...]
+return OpenLayers.Lang.code;},setCode:function(code){var lang;if(!code){code=(OpenLayers.BROWSER_NAME=="msie")?navigator.userLanguage:navigator.language;}
+var parts=code.split('-');parts[0]=parts[0].toLowerCase();if(typeof OpenLayers.Lang[parts[0]]=="object"){lang=parts[0];}
+if(parts[1]){var testLang=parts[0]+'-'+parts[1].toUpperCase();if(typeof OpenLayers.Lang[testLang]=="object"){lang=testLang;}}
+if(!lang){OpenLayers.Console.warn('Failed to find OpenLayers.Lang.'+parts.join("-")+' dictionary, falling back to default language');lang=OpenLayers.Lang.defaultCode;}
+OpenLayers.Lang.code=lang;},translate:function(key,context){var dictionary=OpenLayers.Lang[OpenLayers.Lang.getCode()];var message=dictionary&&dictionary[key];if(!message){message=key;}
+if(context){message=OpenLayers.String.format(message,context);}
+return message;}};OpenLayers.i18n=OpenLayers.Lang.translate;OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
+return camelizedString;},format:function(template,context,args){if(!context){context=window;}
+var replacer=function(str,match){var replacement;var subs=match.split(/\.+/);for(var i=0;i<subs.length;i++){if(i==0){replacement=context;}
+replacement=replacement[subs[i]];}
+if(typeof replacement=="function"){replacement=args?replacement.apply(null,args):replacement();}
+if(typeof replacement=='undefined'){return'undefined';}else{return replacement;}};return template.replace(OpenLayers.String.tokenRegEx,replacer);},tokenRegEx:/\$\{([\w.]+?)\}/g,numberRegEx:/^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/,isNumeric:function(value){return OpenLayers.String.numberRegEx.test(value);},numericIf:function(value){return OpenLayers.String.isNumeric(value)?parseFloat(value):value;}};if(!String.prototype.startsWith){String.prototype.startsWith=function(sStart){Op [...]
+if(!String.prototype.contains){String.prototype.contains=function(str){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.String.contains'}));return OpenLayers.String.contains(this,str);};}
+if(!String.prototype.trim){String.prototype.trim=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.String.trim'}));return OpenLayers.String.trim(this);};}
+if(!String.prototype.camelize){String.prototype.camelize=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.String.camelize'}));return OpenLayers.String.camelize(this);};}
+OpenLayers.Number={decimalSeparator:".",thousandsSeparator:",",limitSigDigs:function(num,sig){var fig=0;if(sig>0){fig=parseFloat(num.toPrecision(sig));}
+return fig;},format:function(num,dec,tsep,dsep){dec=(typeof dec!="undefined")?dec:0;tsep=(typeof tsep!="undefined")?tsep:OpenLayers.Number.thousandsSeparator;dsep=(typeof dsep!="undefined")?dsep:OpenLayers.Number.decimalSeparator;if(dec!=null){num=parseFloat(num.toFixed(dec));}
+var parts=num.toString().split(".");if(parts.length==1&&dec==null){dec=0;}
+var integer=parts[0];if(tsep){var thousands=/(-?[0-9]+)([0-9]{3})/;while(thousands.test(integer)){integer=integer.replace(thousands,"$1"+tsep+"$2");}}
+var str;if(dec==0){str=integer;}else{var rem=parts.length>1?parts[1]:"0";if(dec!=null){rem=rem+new Array(dec-rem.length+1).join("0");}
+str=integer+dsep+rem;}
+return str;}};if(!Number.prototype.limitSigDigs){Number.prototype.limitSigDigs=function(sig){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Number.limitSigDigs'}));return OpenLayers.Number.limitSigDigs(this,sig);};}
+OpenLayers.Function={bind:function(func,object){var args=Array.prototype.slice.apply(arguments,[2]);return function(){var newArgs=args.concat(Array.prototype.slice.apply(arguments,[0]));return func.apply(object,newArgs);};},bindAsEventListener:function(func,object){return function(event){return func.call(object,event||window.event);};},False:function(){return false;},True:function(){return true;},Void:function(){}};if(!Function.prototype.bind){Function.prototype.bind=function(){OpenLayer [...]
+if(!Function.prototype.bindAsEventListener){Function.prototype.bindAsEventListener=function(object){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bindAsEventListener'}));return OpenLayers.Function.bindAsEventListener(this,object);};}
+OpenLayers.Array={filter:function(array,callback,caller){var selected=[];if(Array.prototype.filter){selected=array.filter(callback,caller);}else{var len=array.length;if(typeof callback!="function"){throw new TypeError();}
+for(var i=0;i<len;i++){if(i in array){var val=array[i];if(callback.call(caller,val,i,array)){selected.push(val);}}}}
+return selected;}};OpenLayers.Bounds=OpenLayers.Class({left:null,bottom:null,right:null,top:null,centerLonLat:null,initialize:function(left,bottom,right,top){if(left!=null){this.left=OpenLayers.Util.toFloat(left);}
+if(bottom!=null){this.bottom=OpenLayers.Util.toFloat(bottom);}
+if(right!=null){this.right=OpenLayers.Util.toFloat(right);}
+if(top!=null){this.top=OpenLayers.Util.toFloat(top);}},clone:function(){return new OpenLayers.Bounds(this.left,this.bottom,this.right,this.top);},equals:function(bounds){var equals=false;if(bounds!=null){equals=((this.left==bounds.left)&&(this.right==bounds.right)&&(this.top==bounds.top)&&(this.bottom==bounds.bottom));}
+return equals;},toString:function(){return[this.left,this.bottom,this.right,this.top].join(",");},toArray:function(reverseAxisOrder){if(reverseAxisOrder===true){return[this.bottom,this.left,this.top,this.right];}else{return[this.left,this.bottom,this.right,this.top];}},toBBOX:function(decimal,reverseAxisOrder){if(decimal==null){decimal=6;}
+var mult=Math.pow(10,decimal);var xmin=Math.round(this.left*mult)/mult;var ymin=Math.round(this.bottom*mult)/mult;var xmax=Math.round(this.right*mult)/mult;var ymax=Math.round(this.top*mult)/mult;if(reverseAxisOrder===true){return ymin+","+xmin+","+ymax+","+xmax;}else{return xmin+","+ymin+","+xmax+","+ymax;}},toGeometry:function(){return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing([new OpenLayers.Geometry.Point(this.left,this.bottom),new OpenLayers.Geometry.Point( [...]
+return this.centerLonLat;},scale:function(ratio,origin){if(origin==null){origin=this.getCenterLonLat();}
+var origx,origy;if(origin.CLASS_NAME=="OpenLayers.LonLat"){origx=origin.lon;origy=origin.lat;}else{origx=origin.x;origy=origin.y;}
+var left=(this.left-origx)*ratio+origx;var bottom=(this.bottom-origy)*ratio+origy;var right=(this.right-origx)*ratio+origx;var top=(this.top-origy)*ratio+origy;return new OpenLayers.Bounds(left,bottom,right,top);},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("boundsAddError");OpenLayers.Console.error(msg);return null;}
+return new OpenLayers.Bounds(this.left+x,this.bottom+y,this.right+x,this.top+y);},extend:function(object){var bounds=null;if(object){switch(object.CLASS_NAME){case"OpenLayers.LonLat":bounds=new OpenLayers.Bounds(object.lon,object.lat,object.lon,object.lat);break;case"OpenLayers.Geometry.Point":bounds=new OpenLayers.Bounds(object.x,object.y,object.x,object.y);break;case"OpenLayers.Bounds":bounds=object;break;}
+if(bounds){this.centerLonLat=null;if((this.left==null)||(bounds.left<this.left)){this.left=bounds.left;}
+if((this.bottom==null)||(bounds.bottom<this.bottom)){this.bottom=bounds.bottom;}
+if((this.right==null)||(bounds.right>this.right)){this.right=bounds.right;}
+if((this.top==null)||(bounds.top>this.top)){this.top=bounds.top;}}}},containsLonLat:function(ll,inclusive){return this.contains(ll.lon,ll.lat,inclusive);},containsPixel:function(px,inclusive){return this.contains(px.x,px.y,inclusive);},contains:function(x,y,inclusive){if(inclusive==null){inclusive=true;}
+if(x==null||y==null){return false;}
+x=OpenLayers.Util.toFloat(x);y=OpenLayers.Util.toFloat(y);var contains=false;if(inclusive){contains=((x>=this.left)&&(x<=this.right)&&(y>=this.bottom)&&(y<=this.top));}else{contains=((x>this.left)&&(x<this.right)&&(y>this.bottom)&&(y<this.top));}
+return contains;},intersectsBounds:function(bounds,inclusive){if(inclusive==null){inclusive=true;}
+var intersects=false;var mightTouch=(this.left==bounds.right||this.right==bounds.left||this.top==bounds.bottom||this.bottom==bounds.top);if(inclusive||!mightTouch){var inBottom=(((bounds.bottom>=this.bottom)&&(bounds.bottom<=this.top))||((this.bottom>=bounds.bottom)&&(this.bottom<=bounds.top)));var inTop=(((bounds.top>=this.bottom)&&(bounds.top<=this.top))||((this.top>bounds.bottom)&&(this.top<bounds.top)));var inLeft=(((bounds.left>=this.left)&&(bounds.left<=this.right))||((this.left>=b [...]
+return intersects;},containsBounds:function(bounds,partial,inclusive){if(partial==null){partial=false;}
+if(inclusive==null){inclusive=true;}
+var bottomLeft=this.contains(bounds.left,bounds.bottom,inclusive);var bottomRight=this.contains(bounds.right,bounds.bottom,inclusive);var topLeft=this.contains(bounds.left,bounds.top,inclusive);var topRight=this.contains(bounds.right,bounds.top,inclusive);return(partial)?(bottomLeft||bottomRight||topLeft||topRight):(bottomLeft&&bottomRight&&topLeft&&topRight);},determineQuadrant:function(lonlat){var quadrant="";var center=this.getCenterLonLat();quadrant+=(lonlat.lat<center.lat)?"b":"t";q [...]
+while((newBounds.left+leftTolerance)>=maxExtent.right&&newBounds.right>maxExtent.right){newBounds=newBounds.add(-maxExtent.getWidth(),0);}}
+return newBounds;},CLASS_NAME:"OpenLayers.Bounds"});OpenLayers.Bounds.fromString=function(str,reverseAxisOrder){var bounds=str.split(",");return OpenLayers.Bounds.fromArray(bounds,reverseAxisOrder);};OpenLayers.Bounds.fromArray=function(bbox,reverseAxisOrder){return reverseAxisOrder===true?new OpenLayers.Bounds(parseFloat(bbox[1]),parseFloat(bbox[0]),parseFloat(bbox[3]),parseFloat(bbox[2])):new OpenLayers.Bounds(parseFloat(bbox[0]),parseFloat(bbox[1]),parseFloat(bbox[2]),parseFloat(bbox[ [...]
+var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},hasClass:function(element,name){var names=element.className;return(!!names&&new R [...]
+return element;},removeClass:function(element,name){var names=element.className;if(names){element.className=OpenLayers.String.trim(names.replace(new RegExp("(^|\\s+)"+name+"(\\s+|$)")," "));}
+return element;},toggleClass:function(element,name){if(OpenLayers.Element.hasClass(element,name)){OpenLayers.Element.removeClass(element,name);}else{OpenLayers.Element.addClass(element,name);}
+return element;},getStyle:function(element,style){element=OpenLayers.Util.getElement(element);var value=null;if(element&&element.style){value=element.style[OpenLayers.String.camelize(style)];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(style):null;}else if(element.currentStyle){value=element.currentStyle[OpenLayers.String.camelize(style)];}}
+var positions=['left','top','right','bottom'];if(window.opera&&(OpenLayers.Util.indexOf(positions,style)!=-1)&&(OpenLayers.Element.getStyle(element,'position')=='static')){value='auto';}}
+return value=='auto'?null:value;}};OpenLayers.LonLat=OpenLayers.Class({lon:0.0,lat:0.0,initialize:function(lon,lat){this.lon=OpenLayers.Util.toFloat(lon);this.lat=OpenLayers.Util.toFloat(lat);},toString:function(){return("lon="+this.lon+",lat="+this.lat);},toShortString:function(){return(this.lon+", "+this.lat);},clone:function(){return new OpenLayers.LonLat(this.lon,this.lat);},add:function(lon,lat){if((lon==null)||(lat==null)){var msg=OpenLayers.i18n("lonlatAddError");OpenLayers.Consol [...]
+return new OpenLayers.LonLat(this.lon+OpenLayers.Util.toFloat(lon),this.lat+OpenLayers.Util.toFloat(lat));},equals:function(ll){var equals=false;if(ll!=null){equals=((this.lon==ll.lon&&this.lat==ll.lat)||(isNaN(this.lon)&&isNaN(this.lat)&&isNaN(ll.lon)&&isNaN(ll.lat)));}
+return equals;},transform:function(source,dest){var point=OpenLayers.Projection.transform({'x':this.lon,'y':this.lat},source,dest);this.lon=point.x;this.lat=point.y;return this;},wrapDateLine:function(maxExtent){var newLonLat=this.clone();if(maxExtent){while(newLonLat.lon<maxExtent.left){newLonLat.lon+=maxExtent.getWidth();}
+while(newLonLat.lon>maxExtent.right){newLonLat.lon-=maxExtent.getWidth();}}
+return newLonLat;},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(str){var pair=str.split(",");return new OpenLayers.LonLat(pair[0],pair[1]);};OpenLayers.LonLat.fromArray=function(arr){var gotArr=OpenLayers.Util.isArray(arr),lon=gotArr&&arr[0],lat=gotArr&&arr[1];return new OpenLayers.LonLat(lon,lat);};OpenLayers.Pixel=OpenLayers.Class({x:0.0,y:0.0,initialize:function(x,y){this.x=parseFloat(x);this.y=parseFloat(y);},toString:function(){return("x="+this.x+",y="+this [...]
+return equals;},distanceTo:function(px){return Math.sqrt(Math.pow(this.x-px.x,2)+
+Math.pow(this.y-px.y,2));},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("pixelAddError");OpenLayers.Console.error(msg);return null;}
+return new OpenLayers.Pixel(this.x+x,this.y+y);},offset:function(px){var newPx=this.clone();if(px){newPx=this.add(px.x,px.y);}
+return newPx;},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Size=OpenLayers.Class({w:0.0,h:0.0,initialize:function(w,h){this.w=parseFloat(w);this.h=parseFloat(h);},toString:function(){return("w="+this.w+",h="+this.h);},clone:function(){return new OpenLayers.Size(this.w,this.h);},equals:function(sz){var equals=false;if(sz!=null){equals=((this.w==sz.w&&this.h==sz.h)||(isNaN(this.w)&&isNaN(this.h)&&isNaN(sz.w)&&isNaN(sz.h)));}
+return equals;},CLASS_NAME:"OpenLayers.Size"});OpenLayers.Util=OpenLayers.Util||{};OpenLayers.Util.getElement=function(){var elements=[];for(var i=0,len=arguments.length;i<len;i++){var element=arguments[i];if(typeof element=='string'){element=document.getElementById(element);}
+if(arguments.length==1){return element;}
+elements.push(element);}
+return elements;};OpenLayers.Util.isElement=function(o){return!!(o&&o.nodeType===1);};OpenLayers.Util.isArray=function(a){return(Object.prototype.toString.call(a)==='[object Array]');};if(typeof window.$==="undefined"){window.$=OpenLayers.Util.getElement;}
+OpenLayers.Util.removeItem=function(array,item){for(var i=array.length-1;i>=0;i--){if(array[i]==item){array.splice(i,1);}}
+return array;};OpenLayers.Util.clearArray=function(array){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'array = []'}));array.length=0;};OpenLayers.Util.indexOf=function(array,obj){if(typeof array.indexOf=="function"){return array.indexOf(obj);}else{for(var i=0,len=array.length;i<len;i++){if(array[i]==obj){return i;}}
+return-1;}};OpenLayers.Util.modifyDOMElement=function(element,id,px,sz,position,border,overflow,opacity){if(id){element.id=id;}
+if(px){element.style.left=px.x+"px";element.style.top=px.y+"px";}
+if(sz){element.style.width=sz.w+"px";element.style.height=sz.h+"px";}
+if(position){element.style.position=position;}
+if(border){element.style.border=border;}
+if(overflow){element.style.overflow=overflow;}
+if(parseFloat(opacity)>=0.0&&parseFloat(opacity)<1.0){element.style.filter='alpha(opacity='+(opacity*100)+')';element.style.opacity=opacity;}else if(parseFloat(opacity)==1.0){element.style.filter='';element.style.opacity='';}};OpenLayers.Util.createDiv=function(id,px,sz,imgURL,position,border,overflow,opacity){var dom=document.createElement('div');if(imgURL){dom.style.backgroundImage='url('+imgURL+')';}
+if(!id){id=OpenLayers.Util.createUniqueID("OpenLayersDiv");}
+if(!position){position="absolute";}
+OpenLayers.Util.modifyDOMElement(dom,id,px,sz,position,border,overflow,opacity);return dom;};OpenLayers.Util.createImage=function(id,px,sz,imgURL,position,border,opacity,delayDisplay){var image=document.createElement("img");if(!id){id=OpenLayers.Util.createUniqueID("OpenLayersDiv");}
+if(!position){position="relative";}
+OpenLayers.Util.modifyDOMElement(image,id,px,sz,position,border,null,opacity);if(delayDisplay){image.style.display="none";OpenLayers.Event.observe(image,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,image));OpenLayers.Event.observe(image,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,image));}
+image.style.alt=id;image.galleryImg="no";if(imgURL){image.src=imgURL;}
+return image;};OpenLayers.Util.setOpacity=function(element,opacity){OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);};OpenLayers.Util.onImageLoad=function(){if(!this.viewRequestID||(this.map&&this.viewRequestID==this.map.viewRequestID)){this.style.display="";}
+OpenLayers.Element.removeClass(this,"olImageLoadError");};OpenLayers.IMAGE_RELOAD_ATTEMPTS=0;OpenLayers.Util.onImageLoadError=function(){this._attempts=(this._attempts)?(this._attempts+1):1;if(this._attempts<=OpenLayers.IMAGE_RELOAD_ATTEMPTS){var urls=this.urls;if(urls&&OpenLayers.Util.isArray(urls)&&urls.length>1){var src=this.src.toString();var current_url,k;for(k=0;current_url=urls[k];k++){if(src.indexOf(current_url)!=-1){break;}}
+var guess=Math.floor(urls.length*Math.random());var new_url=urls[guess];k=0;while(new_url==current_url&&k++<4){guess=Math.floor(urls.length*Math.random());new_url=urls[guess];}
+this.src=src.replace(current_url,new_url);}else{this.src=this.src;}}else{OpenLayers.Element.addClass(this,"olImageLoadError");}
+this.style.display="";};OpenLayers.Util.alphaHackNeeded=null;OpenLayers.Util.alphaHack=function(){if(OpenLayers.Util.alphaHackNeeded==null){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);var filter=false;try{filter=!!(document.body.filters);}catch(e){}
+OpenLayers.Util.alphaHackNeeded=(filter&&(version>=5.5)&&(version<7));}
+return OpenLayers.Util.alphaHackNeeded;};OpenLayers.Util.modifyAlphaImageDiv=function(div,id,px,sz,imgURL,position,border,sizing,opacity){OpenLayers.Util.modifyDOMElement(div,id,px,sz,position,null,null,opacity);var img=div.childNodes[0];if(imgURL){img.src=imgURL;}
+OpenLayers.Util.modifyDOMElement(img,div.id+"_innerImage",null,sz,"relative",border);if(OpenLayers.Util.alphaHack()){if(div.style.display!="none"){div.style.display="inline-block";}
+if(sizing==null){sizing="scale";}
+div.style.filter="progid:DXImageTransform.Microsoft"+".AlphaImageLoader(src='"+img.src+"', "+"sizingMethod='"+sizing+"')";if(parseFloat(div.style.opacity)>=0.0&&parseFloat(div.style.opacity)<1.0){div.style.filter+=" alpha(opacity="+div.style.opacity*100+")";}
+img.style.filter="alpha(opacity=0)";}};OpenLayers.Util.createAlphaImageDiv=function(id,px,sz,imgURL,position,border,sizing,opacity,delayDisplay){var div=OpenLayers.Util.createDiv();var img=OpenLayers.Util.createImage(null,null,null,null,null,null,null,false);div.appendChild(img);if(delayDisplay){img.style.display="none";OpenLayers.Event.observe(img,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,div));OpenLayers.Event.observe(img,"error",OpenLayers.Function.bind(OpenLayers.Ut [...]
+OpenLayers.Util.modifyAlphaImageDiv(div,id,px,sz,imgURL,position,border,sizing,opacity);return div;};OpenLayers.Util.upperCaseObject=function(object){var uObject={};for(var key in object){uObject[key.toUpperCase()]=object[key];}
+return uObject;};OpenLayers.Util.applyDefaults=function(to,from){to=to||{};var fromIsEvt=typeof window.Event=="function"&&from instanceof window.Event;for(var key in from){if(to[key]===undefined||(!fromIsEvt&&from.hasOwnProperty&&from.hasOwnProperty(key)&&!to.hasOwnProperty(key))){to[key]=from[key];}}
+if(!fromIsEvt&&from&&from.hasOwnProperty&&from.hasOwnProperty('toString')&&!to.hasOwnProperty('toString')){to.toString=from.toString;}
+return to;};OpenLayers.Util.getParameterString=function(params){var paramsArray=[];for(var key in params){var value=params[key];if((value!=null)&&(typeof value!='function')){var encodedValue;if(typeof value=='object'&&value.constructor==Array){var encodedItemArray=[];var item;for(var itemIndex=0,len=value.length;itemIndex<len;itemIndex++){item=value[itemIndex];encodedItemArray.push(encodeURIComponent((item===null||item===undefined)?"":item));}
+encodedValue=encodedItemArray.join(",");}
+else{encodedValue=encodeURIComponent(value);}
+paramsArray.push(encodeURIComponent(key)+"="+encodedValue);}}
+return paramsArray.join("&");};OpenLayers.Util.urlAppend=function(url,paramStr){var newUrl=url;if(paramStr){var parts=(url+" ").split(/[?&]/);newUrl+=(parts.pop()===" "?paramStr:parts.length?"&"+paramStr:"?"+paramStr);}
+return newUrl;};OpenLayers.ImgPath='';OpenLayers.Util.getImagesLocation=function(){return OpenLayers.ImgPath||(OpenLayers._getScriptLocation()+"img/");};OpenLayers.Util.Try=function(){var returnValue=null;for(var i=0,len=arguments.length;i<len;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
+return returnValue;};OpenLayers.Util.getXmlNodeValue=function(node){var val=null;OpenLayers.Util.Try(function(){val=node.text;if(!val){val=node.textContent;}
+if(!val){val=node.firstChild.nodeValue;}},function(){val=node.textContent;});return val;};OpenLayers.Util.mouseLeft=function(evt,div){var target=(evt.relatedTarget)?evt.relatedTarget:evt.toElement;while(target!=div&&target!=null){target=target.parentNode;}
+return(target!=div);};OpenLayers.Util.DEFAULT_PRECISION=14;OpenLayers.Util.toFloat=function(number,precision){if(precision==null){precision=OpenLayers.Util.DEFAULT_PRECISION;}
+if(typeof number!=="number"){number=parseFloat(number);}
+return precision===0?number:parseFloat(number.toPrecision(precision));};OpenLayers.Util.rad=function(x){return x*Math.PI/180;};OpenLayers.Util.deg=function(x){return x*180/Math.PI;};OpenLayers.Util.VincentyConstants={a:6378137,b:6356752.3142,f:1/298.257223563};OpenLayers.Util.distVincenty=function(p1,p2){var ct=OpenLayers.Util.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var L=OpenLayers.Util.rad(p2.lon-p1.lon);var U1=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p1.lat)));var U2=Math.atan( [...]
+(cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma==0){return 0;}
+var cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;var sigma=Math.atan2(sinSigma,cosSigma);var alpha=Math.asin(cosU1*cosU2*sinLambda/sinSigma);var cosSqAlpha=Math.cos(alpha)*Math.cos(alpha);var cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*f*Math.sin(alpha)*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));}
+if(iterLimit==0){return NaN;}
+var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-
+B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);var d=s.toFixed(3)/1000;return d;};OpenLayers.Util.destinationVincenty=function(lonlat,brng,dist){var u=OpenLayers.Util;var ct=u.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var lon1=lonlat.lon;var lat1=lonlat.lat;var s=dist;var alpha1=u.rad(brng);var sinAlpha1=Math.sin(alpha1);var cosAlpha1=Math.cos(alpha1);var tanU1=(1-f)*Math.tan(u.rad(lat1));var cosU1=1/Math.sqrt((1+tanU1*tanU1)),sinU1=t [...]
+B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));sigmaP=sigma;sigma=s/(b*A)+deltaSigma;}
+var tmp=sinU1*sinSigma-cosU1*cosSigma*cosAlpha1;var lat2=Math.atan2(sinU1*cosSigma+cosU1*sinSigma*cosAlpha1,(1-f)*Math.sqrt(sinAlpha*sinAlpha+tmp*tmp));var lambda=Math.atan2(sinSigma*sinAlpha1,cosU1*cosSigma-sinU1*sinSigma*cosAlpha1);var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));var L=lambda-(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));var revAz=Math.atan2(sinAlpha,-tmp);return new OpenLayers.LonLat(lon1+u.deg(L),u.deg(lat2));};OpenLayers.Util.g [...]
+var parameters={};var pairs=paramsString.split(/[&;]/);for(var i=0,len=pairs.length;i<len;++i){var keyValue=pairs[i].split('=');if(keyValue[0]){var key=keyValue[0];try{key=decodeURIComponent(key);}catch(err){key=unescape(key);}
+var value=(keyValue[1]||'').replace(/\+/g," ");try{value=decodeURIComponent(value);}catch(err){value=unescape(value);}
+value=value.split(",");if(value.length==1){value=value[0];}
+parameters[key]=value;}}
+return parameters;};OpenLayers.Util.getArgs=function(url){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Util.getParameters'}));return OpenLayers.Util.getParameters(url);};OpenLayers.Util.lastSeqID=0;OpenLayers.Util.createUniqueID=function(prefix){if(prefix==null){prefix="id_";}
+OpenLayers.Util.lastSeqID+=1;return prefix+OpenLayers.Util.lastSeqID;};OpenLayers.INCHES_PER_UNIT={'inches':1.0,'ft':12.0,'mi':63360.0,'m':39.3701,'km':39370.1,'dd':4374754,'yd':36};OpenLayers.INCHES_PER_UNIT["in"]=OpenLayers.INCHES_PER_UNIT.inches;OpenLayers.INCHES_PER_UNIT["degrees"]=OpenLayers.INCHES_PER_UNIT.dd;OpenLayers.INCHES_PER_UNIT["nmi"]=1852*OpenLayers.INCHES_PER_UNIT.m;OpenLayers.METERS_PER_INCH=0.02540005080010160020;OpenLayers.Util.extend(OpenLayers.INCHES_PER_UNIT,{"Inch" [...]
+var normScale=OpenLayers.Util.normalizeScale(scale);resolution=1/(normScale*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH);}
+return resolution;};OpenLayers.Util.getScaleFromResolution=function(resolution,units){if(units==null){units="degrees";}
+var scale=resolution*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH;return scale;};OpenLayers.Util.safeStopPropagation=function(evt){OpenLayers.Event.stop(evt,true);};OpenLayers.Util.pagePosition=function(forElement){var pos=[0,0];var viewportElement=OpenLayers.Util.getViewportElement();if(!forElement||forElement==window||forElement==viewportElement){return pos;}
+var BUGGY_GECKO_BOX_OBJECT=OpenLayers.IS_GECKO&&document.getBoxObjectFor&&OpenLayers.Element.getStyle(forElement,'position')=='absolute'&&(forElement.style.top==''||forElement.style.left=='');var parent=null;var box;if(forElement.getBoundingClientRect){box=forElement.getBoundingClientRect();var scrollTop=viewportElement.scrollTop;var scrollLeft=viewportElement.scrollLeft;pos[0]=box.left+scrollLeft;pos[1]=box.top+scrollTop;}else if(document.getBoxObjectFor&&!BUGGY_GECKO_BOX_OBJECT){box=do [...]
+var browser=OpenLayers.BROWSER_NAME;if(browser=="opera"||(browser=="safari"&&OpenLayers.Element.getStyle(forElement,'position')=='absolute')){pos[1]-=document.body.offsetTop;}
+parent=forElement.offsetParent;while(parent&&parent!=document.body){pos[0]-=parent.scrollLeft;if(browser!="opera"||parent.tagName!='TR'){pos[1]-=parent.scrollTop;}
+parent=parent.offsetParent;}}
+return pos;};OpenLayers.Util.getViewportElement=function(){var viewportElement=arguments.callee.viewportElement;if(viewportElement==undefined){viewportElement=(OpenLayers.BROWSER_NAME=="msie"&&document.compatMode!='CSS1Compat')?document.body:document.documentElement;arguments.callee.viewportElement=viewportElement;}
+return viewportElement;};OpenLayers.Util.isEquivalentUrl=function(url1,url2,options){options=options||{};OpenLayers.Util.applyDefaults(options,{ignoreCase:true,ignorePort80:true,ignoreHash:true});var urlObj1=OpenLayers.Util.createUrlObject(url1,options);var urlObj2=OpenLayers.Util.createUrlObject(url2,options);for(var key in urlObj1){if(key!=="args"){if(urlObj1[key]!=urlObj2[key]){return false;}}}
+for(var key in urlObj1.args){if(urlObj1.args[key]!=urlObj2.args[key]){return false;}
+delete urlObj2.args[key];}
+for(var key in urlObj2.args){return false;}
+return true;};OpenLayers.Util.createUrlObject=function(url,options){options=options||{};if(!(/^\w+:\/\//).test(url)){var loc=window.location;var port=loc.port?":"+loc.port:"";var fullUrl=loc.protocol+"//"+loc.host.split(":").shift()+port;if(url.indexOf("/")===0){url=fullUrl+url;}else{var parts=loc.pathname.split("/");parts.pop();url=fullUrl+parts.join("/")+"/"+url;}}
+if(options.ignoreCase){url=url.toLowerCase();}
+var a=document.createElement('a');a.href=url;var urlObject={};urlObject.host=a.host.split(":").shift();urlObject.protocol=a.protocol;if(options.ignorePort80){urlObject.port=(a.port=="80"||a.port=="0")?"":a.port;}else{urlObject.port=(a.port==""||a.port=="0")?"80":a.port;}
+urlObject.hash=(options.ignoreHash||a.hash==="#")?"":a.hash;var queryString=a.search;if(!queryString){var qMark=url.indexOf("?");queryString=(qMark!=-1)?url.substr(qMark):"";}
+urlObject.args=OpenLayers.Util.getParameters(queryString);urlObject.pathname=(a.pathname.charAt(0)=="/")?a.pathname:"/"+a.pathname;return urlObject;};OpenLayers.Util.removeTail=function(url){var head=null;var qMark=url.indexOf("?");var hashMark=url.indexOf("#");if(qMark==-1){head=(hashMark!=-1)?url.substr(0,hashMark):url;}else{head=(hashMark!=-1)?url.substr(0,Math.min(qMark,hashMark)):url.substr(0,qMark);}
+return head;};OpenLayers.IS_GECKO=(function(){var ua=navigator.userAgent.toLowerCase();return ua.indexOf("webkit")==-1&&ua.indexOf("gecko")!=-1;})();OpenLayers.BROWSER_NAME=(function(){var name="";var ua=navigator.userAgent.toLowerCase();if(ua.indexOf("opera")!=-1){name="opera";}else if(ua.indexOf("msie")!=-1){name="msie";}else if(ua.indexOf("safari")!=-1){name="safari";}else if(ua.indexOf("mozilla")!=-1){if(ua.indexOf("firefox")!=-1){name="firefox";}else{name="mozilla";}}
+return name;})();OpenLayers.Util.getBrowserName=function(){return OpenLayers.BROWSER_NAME;};OpenLayers.Util.getRenderedDimensions=function(contentHTML,size,options){var w,h;var container=document.createElement("div");container.style.visibility="hidden";var containerElement=(options&&options.containerElement)?options.containerElement:document.body;if(size){if(size.w){w=size.w;container.style.width=w+"px";}else if(size.h){h=size.h;container.style.height=h+"px";}}
+if(options&&options.displayClass){container.className=options.displayClass;}
+var content=document.createElement("div");content.innerHTML=contentHTML;content.style.overflow="visible";if(content.childNodes){for(var i=0,l=content.childNodes.length;i<l;i++){if(!content.childNodes[i].style)continue;content.childNodes[i].style.overflow="visible";}}
+container.appendChild(content);containerElement.appendChild(container);var parentHasPositionAbsolute=false;var parent=container.parentNode;while(parent&&parent.tagName.toLowerCase()!="body"){var parentPosition=OpenLayers.Element.getStyle(parent,"position");if(parentPosition=="absolute"){parentHasPositionAbsolute=true;break;}else if(parentPosition&&parentPosition!="static"){break;}
+parent=parent.parentNode;}
+if(!parentHasPositionAbsolute){container.style.position="absolute";}
+if(!w){w=parseInt(content.scrollWidth);container.style.width=w+"px";}
+if(!h){h=parseInt(content.scrollHeight);}
+container.removeChild(content);containerElement.removeChild(container);return new OpenLayers.Size(w,h);};OpenLayers.Util.getScrollbarWidth=function(){var scrollbarWidth=OpenLayers.Util._scrollbarWidth;if(scrollbarWidth==null){var scr=null;var inn=null;var wNoScroll=0;var wScroll=0;scr=document.createElement('div');scr.style.position='absolute';scr.style.top='-1000px';scr.style.left='-1000px';scr.style.width='100px';scr.style.height='50px';scr.style.overflow='hidden';inn=document.createEl [...]
+return scrollbarWidth;};OpenLayers.Util.getFormattedLonLat=function(coordinate,axis,dmsOption){if(!dmsOption){dmsOption='dms';}
+coordinate=(coordinate+540)%360-180;var abscoordinate=Math.abs(coordinate);var coordinatedegrees=Math.floor(abscoordinate);var coordinateminutes=(abscoordinate-coordinatedegrees)/(1/60);var tempcoordinateminutes=coordinateminutes;coordinateminutes=Math.floor(coordinateminutes);var coordinateseconds=(tempcoordinateminutes-coordinateminutes)/(1/60);coordinateseconds=Math.round(coordinateseconds*10);coordinateseconds/=10;if(coordinateseconds>=60){coordinateseconds-=60;coordinateminutes+=1;i [...]
+if(coordinatedegrees<10){coordinatedegrees="0"+coordinatedegrees;}
+var str=coordinatedegrees+"\u00B0";if(dmsOption.indexOf('dm')>=0){if(coordinateminutes<10){coordinateminutes="0"+coordinateminutes;}
+str+=coordinateminutes+"'";if(dmsOption.indexOf('dms')>=0){if(coordinateseconds<10){coordinateseconds="0"+coordinateseconds;}
+str+=coordinateseconds+'"';}}
+if(axis=="lon"){str+=coordinate<0?OpenLayers.i18n("W"):OpenLayers.i18n("E");}else{str+=coordinate<0?OpenLayers.i18n("S"):OpenLayers.i18n("N");}
+return str;};OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Format.JSON=OpenLay [...]
+return filter(k,v);}
+object=walk('',object);}}}catch(e){}
+if(this.keepData){this.data=object;}
+return object;},write:function(value,pretty){this.pretty=!!pretty;var json=null;var type=typeof value;if(this.serialize[type]){try{json=(!this.pretty&&this.nativeJSON)?JSON.stringify(value):this.serialize[type].apply(this,[value]);}catch(err){OpenLayers.Console.error("Trouble serializing: "+err);}}
+return json;},writeIndent:function(){var pieces=[];if(this.pretty){for(var i=0;i<this.level;++i){pieces.push(this.indent);}}
+return pieces.join('');},writeNewline:function(){return(this.pretty)?this.newline:'';},writeSpace:function(){return(this.pretty)?this.space:'';},serialize:{'object':function(object){if(object==null){return"null";}
+if(object.constructor==Date){return this.serialize.date.apply(this,[object]);}
+if(object.constructor==Array){return this.serialize.array.apply(this,[object]);}
+var pieces=['{'];this.level+=1;var key,keyJSON,valueJSON;var addComma=false;for(key in object){if(object.hasOwnProperty(key)){keyJSON=OpenLayers.Format.JSON.prototype.write.apply(this,[key,this.pretty]);valueJSON=OpenLayers.Format.JSON.prototype.write.apply(this,[object[key],this.pretty]);if(keyJSON!=null&&valueJSON!=null){if(addComma){pieces.push(',');}
+pieces.push(this.writeNewline(),this.writeIndent(),keyJSON,':',this.writeSpace(),valueJSON);addComma=true;}}}
+this.level-=1;pieces.push(this.writeNewline(),this.writeIndent(),'}');return pieces.join('');},'array':function(array){var json;var pieces=['['];this.level+=1;for(var i=0,len=array.length;i<len;++i){json=OpenLayers.Format.JSON.prototype.write.apply(this,[array[i],this.pretty]);if(json!=null){if(i>0){pieces.push(',');}
+pieces.push(this.writeNewline(),this.writeIndent(),json);}}
+this.level-=1;pieces.push(this.writeNewline(),this.writeIndent(),']');return pieces.join('');},'string':function(string){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};if(/["\\\x00-\x1f]/.test(string)){return'"'+string.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;}
+c=b.charCodeAt();return'\\u00'+
+Math.floor(c/16).toString(16)+
+(c%16).toString(16);})+'"';}
+return'"'+string+'"';},'number':function(number){return isFinite(number)?String(number):"null";},'boolean':function(bool){return String(bool);},'date':function(date){function format(number){return(number<10)?'0'+number:number;}
+return'"'+date.getFullYear()+'-'+
+format(date.getMonth()+1)+'-'+
+format(date.getDate())+'T'+
+format(date.getHours())+':'+
+format(date.getMinutes())+':'+
+format(date.getSeconds())+'"';}},CLASS_NAME:"OpenLayers.Format.JSON"});OpenLayers.Feature=OpenLayers.Class({layer:null,id:null,lonlat:null,data:null,marker:null,popupClass:null,popup:null,initialize:function(layer,lonlat,data){this.layer=layer;this.lonlat=lonlat;this.data=(data!=null)?data:{};this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){if((this.layer!=null)&&(this.layer.map!=null)){if(this.popup!=null){this.layer.map.removePopup(this.popup);}}
+if(this.layer!=null&&this.marker!=null){this.layer.removeMarker(this.marker);}
+this.layer=null;this.id=null;this.lonlat=null;this.data=null;if(this.marker!=null){this.destroyMarker(this.marker);this.marker=null;}
+if(this.popup!=null){this.destroyPopup(this.popup);this.popup=null;}},onScreen:function(){var onScreen=false;if((this.layer!=null)&&(this.layer.map!=null)){var screenBounds=this.layer.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);}
+return onScreen;},createMarker:function(){if(this.lonlat!=null){this.marker=new OpenLayers.Marker(this.lonlat,this.data.icon);}
+return this.marker;},destroyMarker:function(){this.marker.destroy();},createPopup:function(closeBox){if(this.lonlat!=null){if(!this.popup){var anchor=(this.marker)?this.marker.icon:null;var popupClass=this.popupClass?this.popupClass:OpenLayers.Popup.AnchoredBubble;this.popup=new popupClass(this.id+"_popup",this.lonlat,this.data.popupSize,this.data.popupContentHTML,anchor,closeBox);}
+if(this.data.overflow!=null){this.popup.contentDiv.style.overflow=this.data.overflow;}
+this.popup.feature=this;}
+return this.popup;},destroyPopup:function(){if(this.popup){this.popup.feature=null;this.popup.destroy();this.popup=null;}},CLASS_NAME:"OpenLayers.Feature"});OpenLayers.State={UNKNOWN:'Unknown',INSERT:'Insert',UPDATE:'Update',DELETE:'Delete'};OpenLayers.Feature.Vector=OpenLayers.Class(OpenLayers.Feature,{fid:null,geometry:null,attributes:null,bounds:null,state:null,style:null,url:null,renderIntent:"default",modified:null,initialize:function(geometry,attributes,style){OpenLayers.Feature.pr [...]
+this.style=style?style:null;},destroy:function(){if(this.layer){this.layer.removeFeatures(this);this.layer=null;}
+this.geometry=null;this.modified=null;OpenLayers.Feature.prototype.destroy.apply(this,arguments);},clone:function(){return new OpenLayers.Feature.Vector(this.geometry?this.geometry.clone():null,this.attributes,this.style);},onScreen:function(boundsOnly){var onScreen=false;if(this.layer&&this.layer.map){var screenBounds=this.layer.map.getExtent();if(boundsOnly){var featureBounds=this.geometry.getBounds();onScreen=screenBounds.intersectsBounds(featureBounds);}else{var screenPoly=screenBoun [...]
+return onScreen;},getVisibility:function(){return!(this.style&&this.style.display=='none'||!this.layer||this.layer&&this.layer.styleMap&&this.layer.styleMap.createSymbolizer(this,this.renderIntent).display=='none'||this.layer&&!this.layer.getVisibility());},createMarker:function(){return null;},destroyMarker:function(){},createPopup:function(){return null;},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;if(this.geometry){atPoint=this.geometry.atPoint(lonlat,toleranc [...]
+return atPoint;},destroyPopup:function(){},move:function(location){if(!this.layer||!this.geometry.move){return undefined;}
+var pixel;if(location.CLASS_NAME=="OpenLayers.LonLat"){pixel=this.layer.getViewPortPxFromLonLat(location);}else{pixel=location;}
+var lastPixel=this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());var res=this.layer.map.getResolution();this.geometry.move(res*(pixel.x-lastPixel.x),res*(lastPixel.y-pixel.y));this.layer.drawFeature(this);return lastPixel;},toState:function(state){if(state==OpenLayers.State.UPDATE){switch(this.state){case OpenLayers.State.UNKNOWN:case OpenLayers.State.DELETE:this.state=state;break;case OpenLayers.State.UPDATE:case OpenLayers.State.INSERT:break;}}else if(state [...]
+if(this.internalProjection&&this.externalProjection){if(features&&features.CLASS_NAME=="OpenLayers.Feature.Vector"){features.geometry.transform(this.externalProjection,this.internalProjection);}else if(features&&type!="geometrycollection"&&typeof features=="object"){for(var i=0,len=features.length;i<len;i++){var component=features[i];component.geometry.transform(this.externalProjection,this.internalProjection);}}}}
+return features;},write:function(features){var collection,geometry,type,data,isCollection;if(features.constructor==Array){collection=features;isCollection=true;}else{collection=[features];isCollection=false;}
+var pieces=[];if(isCollection){pieces.push('GEOMETRYCOLLECTION(');}
+for(var i=0,len=collection.length;i<len;++i){if(isCollection&&i>0){pieces.push(',');}
+geometry=collection[i].geometry;pieces.push(this.extractGeometry(geometry));}
+if(isCollection){pieces.push(')');}
+return pieces.join('');},extractGeometry:function(geometry){var type=geometry.CLASS_NAME.split('.')[2].toLowerCase();if(!this.extract[type]){return null;}
+if(this.internalProjection&&this.externalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);}
+var wktType=type=='collection'?'GEOMETRYCOLLECTION':type.toUpperCase();var data=wktType+'('+this.extract[type].apply(this,[geometry])+')';return data;},extract:{'point':function(point){return point.x+' '+point.y;},'multipoint':function(multipoint){var array=[];for(var i=0,len=multipoint.components.length;i<len;++i){array.push('('+
+this.extract.point.apply(this,[multipoint.components[i]])+')');}
+return array.join(',');},'linestring':function(linestring){var array=[];for(var i=0,len=linestring.components.length;i<len;++i){array.push(this.extract.point.apply(this,[linestring.components[i]]));}
+return array.join(',');},'multilinestring':function(multilinestring){var array=[];for(var i=0,len=multilinestring.components.length;i<len;++i){array.push('('+
+this.extract.linestring.apply(this,[multilinestring.components[i]])+')');}
+return array.join(',');},'polygon':function(polygon){var array=[];for(var i=0,len=polygon.components.length;i<len;++i){array.push('('+
+this.extract.linestring.apply(this,[polygon.components[i]])+')');}
+return array.join(',');},'multipolygon':function(multipolygon){var array=[];for(var i=0,len=multipolygon.components.length;i<len;++i){array.push('('+
+this.extract.polygon.apply(this,[multipolygon.components[i]])+')');}
+return array.join(',');},'collection':function(collection){var array=[];for(var i=0,len=collection.components.length;i<len;++i){array.push(this.extractGeometry.apply(this,[collection.components[i]]));}
+return array.join(',');}},parse:{'point':function(str){var coords=OpenLayers.String.trim(str).split(this.regExes.spaces);return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(coords[0],coords[1]));},'multipoint':function(str){var point;var points=OpenLayers.String.trim(str).split(',');var components=[];for(var i=0,len=points.length;i<len;++i){point=points[i].replace(this.regExes.trimParens,'$1');components.push(this.parse.point.apply(this,[point]).geometry);}
+return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPoint(components));},'linestring':function(str){var points=OpenLayers.String.trim(str).split(',');var components=[];for(var i=0,len=points.length;i<len;++i){components.push(this.parse.point.apply(this,[points[i]]).geometry);}
+return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(components));},'multilinestring':function(str){var line;var lines=OpenLayers.String.trim(str).split(this.regExes.parenComma);var components=[];for(var i=0,len=lines.length;i<len;++i){line=lines[i].replace(this.regExes.trimParens,'$1');components.push(this.parse.linestring.apply(this,[line]).geometry);}
+return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiLineString(components));},'polygon':function(str){var ring,linestring,linearring;var rings=OpenLayers.String.trim(str).split(this.regExes.parenComma);var components=[];for(var i=0,len=rings.length;i<len;++i){ring=rings[i].replace(this.regExes.trimParens,'$1');linestring=this.parse.linestring.apply(this,[ring]).geometry;linearring=new OpenLayers.Geometry.LinearRing(linestring.components);components.push(linearring);}
+return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon(components));},'multipolygon':function(str){var polygon;var polygons=OpenLayers.String.trim(str).split(this.regExes.doubleParenComma);var components=[];for(var i=0,len=polygons.length;i<len;++i){polygon=polygons[i].replace(this.regExes.trimParens,'$1');components.push(this.parse.polygon.apply(this,[polygon]).geometry);}
+return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPolygon(components));},'geometrycollection':function(str){str=str.replace(/,\s*([A-Za-z])/g,'|$1');var wktArray=OpenLayers.String.trim(str).split('|');var components=[];for(var i=0,len=wktArray.length;i<len;++i){components.push(OpenLayers.Format.WKT.prototype.read.apply(this,[wktArray[i]]));}
+return components;}},CLASS_NAME:"OpenLayers.Format.WKT"});OpenLayers.Protocol.SQL.Gears=OpenLayers.Class(OpenLayers.Protocol.SQL,{FID_PREFIX:'__gears_fid__',NULL_GEOMETRY:'__gears_null_geometry__',NULL_FEATURE_STATE:'__gears_null_feature_state__',jsonParser:null,wktParser:null,fidRegExp:null,saveFeatureState:true,typeOfFid:"string",db:null,initialize:function(options){if(!this.supported()){return;}
+OpenLayers.Protocol.SQL.prototype.initialize.apply(this,[options]);this.jsonParser=new OpenLayers.Format.JSON();this.wktParser=new OpenLayers.Format.WKT();this.fidRegExp=new RegExp('^'+this.FID_PREFIX);this.initializeDatabase();},initializeDatabase:function(){this.db=google.gears.factory.create('beta.database');this.db.open(this.databaseName);this.db.execute("CREATE TABLE IF NOT EXISTS "+this.tableName+" (fid TEXT UNIQUE, geometry TEXT, properties TEXT,"+"  state TEXT)");},destroy:functi [...]
+features.push(feature);}
+rs.next();}
+rs.close();var resp=new OpenLayers.Protocol.Response({code:OpenLayers.Protocol.Response.SUCCESS,requestType:"read",features:features});if(options&&options.callback){options.callback.call(options.scope,resp);}
+return resp;},unfreezeFeature:function(row){var feature;var wkt=row.fieldByName('geometry');if(wkt==this.NULL_GEOMETRY){feature=new OpenLayers.Feature.Vector();}else{feature=this.wktParser.read(wkt);}
+feature.attributes=this.jsonParser.read(row.fieldByName('properties'));feature.fid=this.extractFidFromField(row.fieldByName('fid'));var state=row.fieldByName('state');if(state==this.NULL_FEATURE_STATE){state=null;}
+feature.state=state;return feature;},extractFidFromField:function(field){if(!field.match(this.fidRegExp)&&this.typeOfFid=="number"){field=parseFloat(field);}
+return field;},create:function(features,options){options=OpenLayers.Util.applyDefaults(options,this.options);var resp=this.createOrUpdate(features);resp.requestType="create";if(options&&options.callback){options.callback.call(options.scope,resp);}
+return resp;},update:function(features,options){options=OpenLayers.Util.applyDefaults(options,this.options);var resp=this.createOrUpdate(features);resp.requestType="update";if(options&&options.callback){options.callback.call(options.scope,resp);}
+return resp;},createOrUpdate:function(features){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+var i,len=features.length,feature;var insertedFeatures=new Array(len);for(i=0;i<len;i++){feature=features[i];var params=this.freezeFeature(feature);this.db.execute("REPLACE INTO "+this.tableName+" (fid, geometry, properties, state)"+" VALUES (?, ?, ?, ?)",params);var clone=feature.clone();clone.fid=this.extractFidFromField(params[0]);insertedFeatures[i]=clone;}
+return new OpenLayers.Protocol.Response({code:OpenLayers.Protocol.Response.SUCCESS,features:insertedFeatures,reqFeatures:features});},freezeFeature:function(feature){feature.fid=feature.fid!=null?""+feature.fid:OpenLayers.Util.createUniqueID(this.FID_PREFIX);var geometry=feature.geometry!=null?feature.geometry.toString():this.NULL_GEOMETRY;var properties=this.jsonParser.write(feature.attributes);var state=this.getFeatureStateForFreeze(feature);return[feature.fid,geometry,properties,state [...]
+return state;},"delete":function(features,options){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+options=OpenLayers.Util.applyDefaults(options,this.options);var i,len,feature;for(i=0,len=features.length;i<len;i++){feature=features[i];if(this.saveFeatureState&&!this.createdOffline(feature)){var toDelete=feature.clone();toDelete.fid=feature.fid;if(toDelete.geometry){toDelete.geometry.destroy();toDelete.geometry=null;}
+toDelete.state=feature.state;this.createOrUpdate(toDelete);}else{this.db.execute("DELETE FROM "+this.tableName+" WHERE fid = ?",[feature.fid]);}}
+var resp=new OpenLayers.Protocol.Response({code:OpenLayers.Protocol.Response.SUCCESS,requestType:"delete",reqFeatures:features});if(options&&options.callback){options.callback.call(options.scope,resp);}
+return resp;},createdOffline:function(feature){return(typeof feature.fid=="string"&&!!(feature.fid.match(this.fidRegExp)));},commit:function(features,options){var opt,resp=[],nRequests=0,nResponses=0;function callback(resp){if(++nResponses<nRequests){resp.last=false;}
+this.callUserCallback(options,resp);}
+var feature,toCreate=[],toUpdate=[],toDelete=[];for(var i=features.length-1;i>=0;i--){feature=features[i];switch(feature.state){case OpenLayers.State.INSERT:toCreate.push(feature);break;case OpenLayers.State.UPDATE:toUpdate.push(feature);break;case OpenLayers.State.DELETE:toDelete.push(feature);break;}}
+if(toCreate.length>0){nRequests++;opt=OpenLayers.Util.applyDefaults({"callback":callback,"scope":this},options.create);resp.push(this.create(toCreate,opt));}
+if(toUpdate.length>0){nRequests++;opt=OpenLayers.Util.applyDefaults({"callback":callback,"scope":this},options.update);resp.push(this.update(toUpdate,opt));}
+if(toDelete.length>0){nRequests++;opt=OpenLayers.Util.applyDefaults({"callback":callback,"scope":this},options["delete"]);resp.push(this["delete"](toDelete,opt));}
+return resp;},clear:function(){this.db.execute("DELETE FROM "+this.tableName);},callUserCallback:function(options,resp){var opt=options[resp.requestType];if(opt&&opt.callback){opt.callback.call(opt.scope,resp);}
+if(resp.last&&options.callback){options.callback.call(options.scope);}},CLASS_NAME:"OpenLayers.Protocol.SQL.Gears"});OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isSingleTouch:function(event){return event.touches&&event.touches.length==1;},isMultiTouch:function(event){return event.touches&&event.touches.length>1;},isLeftClick [...]
+if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}},findElement:function(event,tagName){var element=OpenLayers.Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode;}
+return element;},observe:function(elementParam,name,observer,useCapture){var element=OpenLayers.Util.getElement(elementParam);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent)){name='keydown';}
+if(!this.observers){this.observers={};}
+if(!element._eventCacheID){var idPrefix="eventCacheID_";if(element.id){idPrefix=element.id+"_"+idPrefix;}
+element._eventCacheID=OpenLayers.Util.createUniqueID(idPrefix);}
+var cacheID=element._eventCacheID;if(!this.observers[cacheID]){this.observers[cacheID]=[];}
+this.observers[cacheID].push({'element':element,'name':name,'observer':observer,'useCapture':useCapture});if(element.addEventListener){element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){element.attachEvent('on'+name,observer);}},stopObservingElement:function(elementParam){var element=OpenLayers.Util.getElement(elementParam);var cacheID=element._eventCacheID;this._removeElementObservers(OpenLayers.Event.observers[cacheID]);},_removeElementObservers:function(e [...]
+var foundEntry=false;var elementObservers=OpenLayers.Event.observers[cacheID];if(elementObservers){var i=0;while(!foundEntry&&i<elementObservers.length){var cacheEntry=elementObservers[i];if((cacheEntry.name==name)&&(cacheEntry.observer==observer)&&(cacheEntry.useCapture==useCapture)){elementObservers.splice(i,1);if(elementObservers.length==0){delete OpenLayers.Event.observers[cacheID];}
+foundEntry=true;break;}
+i++;}}
+if(foundEntry){if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element&&element.detachEvent){element.detachEvent('on'+name,observer);}}
+return foundEntry;},unloadCache:function(){if(OpenLayers.Event&&OpenLayers.Event.observers){for(var cacheID in OpenLayers.Event.observers){var elementObservers=OpenLayers.Event.observers[cacheID];OpenLayers.Event._removeElementObservers.apply(this,[elementObservers]);}
+OpenLayers.Event.observers=false;}},CLASS_NAME:"OpenLayers.Event"};OpenLayers.Event.observe(window,'unload',OpenLayers.Event.unloadCache,false);if(window.Event){OpenLayers.Util.applyDefaults(window.Event,OpenLayers.Event);}else{var Event=OpenLayers.Event;}
+OpenLayers.Events=OpenLayers.Class({BROWSER_EVENTS:["mouseover","mouseout","mousedown","mouseup","mousemove","click","dblclick","rightclick","dblrightclick","resize","focus","blur","touchstart","touchmove","touchend"],listeners:null,object:null,element:null,eventTypes:null,eventHandler:null,fallThrough:null,includeXY:false,clearMouseListener:null,initialize:function(object,element,eventTypes,fallThrough,options){OpenLayers.Util.extend(this,options);this.object=object;this.fallThrough=fal [...]
+if(element!=null){this.attachToElement(element);}},destroy:function(){if(this.element){OpenLayers.Event.stopObservingElement(this.element);if(this.element.hasScrollEvent){OpenLayers.Event.stopObserving(window,"scroll",this.clearMouseListener);}}
+this.element=null;this.listeners=null;this.object=null;this.eventTypes=null;this.fallThrough=null;this.eventHandler=null;},addEventType:function(eventName){if(!this.listeners[eventName]){this.eventTypes.push(eventName);this.listeners[eventName]=[];}},attachToElement:function(element){if(this.element){OpenLayers.Event.stopObservingElement(this.element);}
+this.element=element;for(var i=0,len=this.BROWSER_EVENTS.length;i<len;i++){var eventType=this.BROWSER_EVENTS[i];this.addEventType(eventType);OpenLayers.Event.observe(element,eventType,this.eventHandler);}
+OpenLayers.Event.observe(element,"dragstart",OpenLayers.Event.stop);},on:function(object){for(var type in object){if(type!="scope"){this.register(type,object.scope,object[type]);}}},register:function(type,obj,func){if((func!=null)&&(OpenLayers.Util.indexOf(this.eventTypes,type)!=-1)){if(obj==null){obj=this.object;}
+var listeners=this.listeners[type];listeners.push({obj:obj,func:func});}},registerPriority:function(type,obj,func){if(func!=null){if(obj==null){obj=this.object;}
+var listeners=this.listeners[type];if(listeners!=null){listeners.unshift({obj:obj,func:func});}}},un:function(object){for(var type in object){if(type!="scope"){this.unregister(type,object.scope,object[type]);}}},unregister:function(type,obj,func){if(obj==null){obj=this.object;}
+var listeners=this.listeners[type];if(listeners!=null){for(var i=0,len=listeners.length;i<len;i++){if(listeners[i].obj==obj&&listeners[i].func==func){listeners.splice(i,1);break;}}}},remove:function(type){if(this.listeners[type]!=null){this.listeners[type]=[];}},triggerEvent:function(type,evt){var listeners=this.listeners[type];if(!listeners||listeners.length==0){return undefined;}
+if(evt==null){evt={};}
+evt.object=this.object;evt.element=this.element;if(!evt.type){evt.type=type;}
+listeners=listeners.slice();var continueChain;for(var i=0,len=listeners.length;i<len;i++){var callback=listeners[i];continueChain=callback.func.apply(callback.obj,[evt]);if((continueChain!=undefined)&&(continueChain==false)){break;}}
+if(!this.fallThrough){OpenLayers.Event.stop(evt,true);}
+return continueChain;},handleBrowserEvent:function(evt){var type=evt.type,listeners=this.listeners[type];if(!listeners||listeners.length==0){return;}
+var touches=evt.touches;if(touches&&touches[0]){var x=0;var y=0;var num=touches.length;var touch;for(var i=0;i<num;++i){touch=touches[i];x+=touch.clientX;y+=touch.clientY;}
+evt.clientX=x/num;evt.clientY=y/num;}
+if(this.includeXY){evt.xy=this.getMousePosition(evt);}
+this.triggerEvent(type,evt);},clearMouseCache:function(){this.element.scrolls=null;this.element.lefttop=null;var body=document.body;if(body&&!((body.scrollTop!=0||body.scrollLeft!=0)&&navigator.userAgent.match(/iPhone/i))){this.element.offsets=null;}},getMousePosition:function(evt){if(!this.includeXY){this.clearMouseCache();}else if(!this.element.hasScrollEvent){OpenLayers.Event.observe(window,"scroll",this.clearMouseListener);this.element.hasScrollEvent=true;}
+if(!this.element.scrolls){var viewportElement=OpenLayers.Util.getViewportElement();this.element.scrolls=[viewportElement.scrollLeft,viewportElement.scrollTop];}
+if(!this.element.lefttop){this.element.lefttop=[(document.documentElement.clientLeft||0),(document.documentElement.clientTop||0)];}
+if(!this.element.offsets){this.element.offsets=OpenLayers.Util.pagePosition(this.element);}
+return new OpenLayers.Pixel((evt.clientX+this.element.scrolls[0])-this.element.offsets[0]
+-this.element.lefttop[0],(evt.clientY+this.element.scrolls[1])-this.element.offsets[1]
+-this.element.lefttop[1]);},CLASS_NAME:"OpenLayers.Events"});OpenLayers.Tween=OpenLayers.Class({INTERVAL:10,easing:null,begin:null,finish:null,duration:null,callbacks:null,time:null,interval:null,playing:false,initialize:function(easing){this.easing=(easing)?easing:OpenLayers.Easing.Expo.easeOut;},start:function(begin,finish,duration,options){this.playing=true;this.begin=begin;this.finish=finish;this.duration=duration;this.callbacks=options.callbacks;this.time=0;if(this.interval){window. [...]
+if(this.callbacks&&this.callbacks.start){this.callbacks.start.call(this,this.begin);}
+this.interval=window.setInterval(OpenLayers.Function.bind(this.play,this),this.INTERVAL);},stop:function(){if(!this.playing){return;}
+if(this.callbacks&&this.callbacks.done){this.callbacks.done.call(this,this.finish);}
+window.clearInterval(this.interval);this.interval=null;this.playing=false;},play:function(){var value={};for(var i in this.begin){var b=this.begin[i];var f=this.finish[i];if(b==null||f==null||isNaN(b)||isNaN(f)){OpenLayers.Console.error('invalid value for Tween');}
+var c=f-b;value[i]=this.easing.apply(this,[this.time,b,c,this.duration]);}
+this.time++;if(this.callbacks&&this.callbacks.eachStep){this.callbacks.eachStep.call(this,value);}
+if(this.time>this.duration){this.stop();}},CLASS_NAME:"OpenLayers.Tween"});OpenLayers.Easing={CLASS_NAME:"OpenLayers.Easing"};OpenLayers.Easing.Linear={easeIn:function(t,b,c,d){return c*t/d+b;},easeOut:function(t,b,c,d){return c*t/d+b;},easeInOut:function(t,b,c,d){return c*t/d+b;},CLASS_NAME:"OpenLayers.Easing.Linear"};OpenLayers.Easing.Expo={easeIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},ease [...]
+this.tileSize=new OpenLayers.Size(OpenLayers.Map.TILE_WIDTH,OpenLayers.Map.TILE_HEIGHT);this.maxExtent=new OpenLayers.Bounds(-180,-90,180,90);this.paddingForPopups=new OpenLayers.Bounds(15,15,15,15);this.theme=OpenLayers._getScriptLocation()+'theme/default/style.css';OpenLayers.Util.extend(this,options);this.layers=[];this.id=OpenLayers.Util.createUniqueID("OpenLayers.Map_");this.div=OpenLayers.Util.getElement(div);if(!this.div){this.div=document.createElement("div");this.div.style.heigh [...]
+OpenLayers.Element.addClass(this.div,'olMap');var id=this.id+"_OpenLayers_ViewPort";this.viewPortDiv=OpenLayers.Util.createDiv(id,null,null,null,"relative",null,"hidden");this.viewPortDiv.style.width="100%";this.viewPortDiv.style.height="100%";this.viewPortDiv.className="olMapViewport";this.div.appendChild(this.viewPortDiv);var eventsDiv=document.createElement("div");eventsDiv.id=this.id+"_events";eventsDiv.style.position="absolute";eventsDiv.style.width="100%";eventsDiv.style.height="10 [...]
+this.events.register("movestart",this,this.updateSize);if(OpenLayers.String.contains(navigator.appName,"Microsoft")){this.events.register("resize",this,this.updateSize);}else{this.updateSizeDestroy=OpenLayers.Function.bind(this.updateSize,this);OpenLayers.Event.observe(window,'resize',this.updateSizeDestroy);}
+if(this.theme){var addNode=true;var nodes=document.getElementsByTagName('link');for(var i=0,len=nodes.length;i<len;++i){if(OpenLayers.Util.isEquivalentUrl(nodes.item(i).href,this.theme)){addNode=false;break;}}
+if(addNode){var cssNode=document.createElement('link');cssNode.setAttribute('rel','stylesheet');cssNode.setAttribute('type','text/css');cssNode.setAttribute('href',this.theme);document.getElementsByTagName('head')[0].appendChild(cssNode);}}
+if(this.controls==null){if(OpenLayers.Control!=null){this.controls=[new OpenLayers.Control.Navigation(),new OpenLayers.Control.PanZoom(),new OpenLayers.Control.ArgParser(),new OpenLayers.Control.Attribution()];}else{this.controls=[];}}
+for(var i=0,len=this.controls.length;i<len;i++){this.addControlToMap(this.controls[i]);}
+this.popups=[];this.unloadDestroy=OpenLayers.Function.bind(this.destroy,this);OpenLayers.Event.observe(window,'unload',this.unloadDestroy);if(options&&options.layers){delete this.center;this.addLayers(options.layers);if(options.center){this.setCenter(options.center,options.zoom);}}},render:function(div){this.div=OpenLayers.Util.getElement(div);OpenLayers.Element.addClass(this.div,'olMap');this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);this.div.appendChild(this.viewPortDiv);thi [...]
+if(this.panTween){this.panTween.stop();this.panTween=null;}
+OpenLayers.Event.stopObserving(window,'unload',this.unloadDestroy);this.unloadDestroy=null;if(this.updateSizeDestroy){OpenLayers.Event.stopObserving(window,'resize',this.updateSizeDestroy);}else{this.events.unregister("resize",this,this.updateSize);}
+this.paddingForPopups=null;if(this.controls!=null){for(var i=this.controls.length-1;i>=0;--i){this.controls[i].destroy();}
+this.controls=null;}
+if(this.layers!=null){for(var i=this.layers.length-1;i>=0;--i){this.layers[i].destroy(false);}
+this.layers=null;}
+if(this.viewPortDiv){this.div.removeChild(this.viewPortDiv);}
+this.viewPortDiv=null;if(this.eventListeners){this.events.un(this.eventListeners);this.eventListeners=null;}
+this.events.destroy();this.events=null;},setOptions:function(options){var updatePxExtent=this.minPx&&options.restrictedExtent!=this.restrictedExtent;OpenLayers.Util.extend(this,options);updatePxExtent&&this.moveTo(this.getCachedCenter(),this.zoom,{forceZoomChange:true});},getTileSize:function(){return this.tileSize;},getBy:function(array,property,match){var test=(typeof match.test=="function");var found=OpenLayers.Array.filter(this[array],function(item){return item[property]==match||(tes [...]
+return foundLayer;},setLayerZIndex:function(layer,zIdx){layer.setZIndex(this.Z_INDEX_BASE[layer.isBaseLayer?'BaseLayer':'Overlay']
++zIdx*5);},resetLayersZIndex:function(){for(var i=0,len=this.layers.length;i<len;i++){var layer=this.layers[i];this.setLayerZIndex(layer,i);}},addLayer:function(layer){for(var i=0,len=this.layers.length;i<len;i++){if(this.layers[i]==layer){var msg=OpenLayers.i18n('layerAlreadyAdded',{'layerName':layer.name});OpenLayers.Console.warn(msg);return false;}}
+if(this.events.triggerEvent("preaddlayer",{layer:layer})===false){return;}
+if(this.allOverlays){layer.isBaseLayer=false;}
+layer.div.className="olLayerDiv";layer.div.style.overflow="";this.setLayerZIndex(layer,this.layers.length);if(layer.isFixed){this.viewPortDiv.appendChild(layer.div);}else{this.layerContainerDiv.appendChild(layer.div);}
+this.layers.push(layer);layer.setMap(this);if(layer.isBaseLayer||(this.allOverlays&&!this.baseLayer)){if(this.baseLayer==null){this.setBaseLayer(layer);}else{layer.setVisibility(false);}}else{layer.redraw();}
+this.events.triggerEvent("addlayer",{layer:layer});layer.events.triggerEvent("added",{map:this,layer:layer});layer.afterAdd();},addLayers:function(layers){for(var i=0,len=layers.length;i<len;i++){this.addLayer(layers[i]);}},removeLayer:function(layer,setNewBaseLayer){if(this.events.triggerEvent("preremovelayer",{layer:layer})===false){return;}
+if(setNewBaseLayer==null){setNewBaseLayer=true;}
+if(layer.isFixed){this.viewPortDiv.removeChild(layer.div);}else{this.layerContainerDiv.removeChild(layer.div);}
+OpenLayers.Util.removeItem(this.layers,layer);layer.removeMap(this);layer.map=null;if(this.baseLayer==layer){this.baseLayer=null;if(setNewBaseLayer){for(var i=0,len=this.layers.length;i<len;i++){var iLayer=this.layers[i];if(iLayer.isBaseLayer||this.allOverlays){this.setBaseLayer(iLayer);break;}}}}
+this.resetLayersZIndex();this.events.triggerEvent("removelayer",{layer:layer});layer.events.triggerEvent("removed",{map:this,layer:layer});},getNumLayers:function(){return this.layers.length;},getLayerIndex:function(layer){return OpenLayers.Util.indexOf(this.layers,layer);},setLayerIndex:function(layer,idx){var base=this.getLayerIndex(layer);if(idx<0){idx=0;}else if(idx>this.layers.length){idx=this.layers.length;}
+if(base!=idx){this.layers.splice(base,1);this.layers.splice(idx,0,layer);for(var i=0,len=this.layers.length;i<len;i++){this.setLayerZIndex(this.layers[i],i);}
+this.events.triggerEvent("changelayer",{layer:layer,property:"order"});if(this.allOverlays){if(idx===0){this.setBaseLayer(layer);}else if(this.baseLayer!==this.layers[0]){this.setBaseLayer(this.layers[0]);}}}},raiseLayer:function(layer,delta){var idx=this.getLayerIndex(layer)+delta;this.setLayerIndex(layer,idx);},setBaseLayer:function(newBaseLayer){if(newBaseLayer!=this.baseLayer){if(OpenLayers.Util.indexOf(this.layers,newBaseLayer)!=-1){var center=this.getCachedCenter();var newResolutio [...]
+this.baseLayer=newBaseLayer;this.viewRequestID++;if(!this.allOverlays||this.baseLayer.visibility){this.baseLayer.setVisibility(true);}
+if(center!=null){var newZoom=this.getZoomForResolution(newResolution||this.resolution,true);this.setCenter(center,newZoom,false,true);}
+this.events.triggerEvent("changebaselayer",{layer:this.baseLayer});}}},addControl:function(control,px){this.controls.push(control);this.addControlToMap(control,px);},addControls:function(controls,pixels){var pxs=(arguments.length===1)?[]:pixels;for(var i=0,len=controls.length;i<len;i++){var ctrl=controls[i];var px=(pxs[i])?pxs[i]:null;this.addControl(ctrl,px);}},addControlToMap:function(control,px){control.outsideViewport=(control.div!=null);if(this.displayProjection&&!control.displayPro [...]
+control.setMap(this);var div=control.draw(px);if(div){if(!control.outsideViewport){div.style.zIndex=this.Z_INDEX_BASE['Control']+
+this.controls.length;this.viewPortDiv.appendChild(div);}}
+if(control.autoActivate){control.activate();}},getControl:function(id){var returnControl=null;for(var i=0,len=this.controls.length;i<len;i++){var control=this.controls[i];if(control.id==id){returnControl=control;break;}}
+return returnControl;},removeControl:function(control){if((control)&&(control==this.getControl(control.id))){if(control.div&&(control.div.parentNode==this.viewPortDiv)){this.viewPortDiv.removeChild(control.div);}
+OpenLayers.Util.removeItem(this.controls,control);}},addPopup:function(popup,exclusive){if(exclusive){for(var i=this.popups.length-1;i>=0;--i){this.removePopup(this.popups[i]);}}
+popup.map=this;this.popups.push(popup);var popupDiv=popup.draw();if(popupDiv){popupDiv.style.zIndex=this.Z_INDEX_BASE['Popup']+
+this.popups.length;this.layerContainerDiv.appendChild(popupDiv);}},removePopup:function(popup){OpenLayers.Util.removeItem(this.popups,popup);if(popup.div){try{this.layerContainerDiv.removeChild(popup.div);}
+catch(e){}}
+popup.map=null;},getSize:function(){var size=null;if(this.size!=null){size=this.size.clone();}
+return size;},updateSize:function(){var newSize=this.getCurrentSize();if(newSize&&!isNaN(newSize.h)&&!isNaN(newSize.w)){this.events.clearMouseCache();var oldSize=this.getSize();if(oldSize==null){this.size=oldSize=newSize;}
+if(!newSize.equals(oldSize)){this.size=newSize;for(var i=0,len=this.layers.length;i<len;i++){this.layers[i].onMapResize();}
+var center=this.getCachedCenter();if(this.baseLayer!=null&&center!=null){var zoom=this.getZoom();this.zoom=null;this.setCenter(center,zoom);}}}},getCurrentSize:function(){var size=new OpenLayers.Size(this.div.clientWidth,this.div.clientHeight);if(size.w==0&&size.h==0||isNaN(size.w)&&isNaN(size.h)){size.w=this.div.offsetWidth;size.h=this.div.offsetHeight;}
+if(size.w==0&&size.h==0||isNaN(size.w)&&isNaN(size.h)){size.w=parseInt(this.div.style.width);size.h=parseInt(this.div.style.height);}
+return size;},calculateBounds:function(center,resolution){var extent=null;if(center==null){center=this.getCachedCenter();}
+if(resolution==null){resolution=this.getResolution();}
+if((center!=null)&&(resolution!=null)){var size=this.getSize();var w_deg=size.w*resolution;var h_deg=size.h*resolution;extent=new OpenLayers.Bounds(center.lon-w_deg/2,center.lat-h_deg/2,center.lon+w_deg/2,center.lat+h_deg/2);}
+return extent;},getCenter:function(){var center=null;var cachedCenter=this.getCachedCenter();if(cachedCenter){center=cachedCenter.clone();}
+return center;},getCachedCenter:function(){if(!this.center&&this.size){this.center=this.getLonLatFromViewPortPx(new OpenLayers.Pixel(this.size.w/2,this.size.h/2));}
+return this.center;},getZoom:function(){return this.zoom;},pan:function(dx,dy,options){options=OpenLayers.Util.applyDefaults(options,{animate:true,dragging:false});if(options.dragging){if(dx!=0||dy!=0){this.moveByPx(dx,dy);}}else{var centerPx=this.getViewPortPxFromLonLat(this.getCachedCenter());var newCenterPx=centerPx.add(dx,dy);if(this.dragging||!newCenterPx.equals(centerPx)){var newCenterLonLat=this.getLonLatFromViewPortPx(newCenterPx);if(options.animate){this.panTo(newCenterLonLat);} [...]
+var center=this.getCachedCenter();if(lonlat.equals(center)){return;}
+var from=this.getPixelFromLonLat(center);var to=this.getPixelFromLonLat(lonlat);var vector={x:to.x-from.x,y:to.y-from.y};var last={x:0,y:0};this.panTween.start({x:0,y:0},vector,this.panDuration,{callbacks:{eachStep:OpenLayers.Function.bind(function(px){var x=px.x-last.x,y=px.y-last.y;this.moveByPx(x,y);last.x=Math.round(px.x);last.y=Math.round(px.y);},this),done:OpenLayers.Function.bind(function(px){this.moveTo(lonlat);this.dragging=false;this.events.triggerEvent("moveend");},this)}});}e [...]
+dx=wrapDateLine||x<=this.maxPx.x-xRestriction&&x>=this.minPx.x+xRestriction?Math.round(dx):0;dy=y<=this.maxPx.y-yRestriction&&y>=this.minPx.y+yRestriction?Math.round(dy):0;var minX=this.minPx.x,maxX=this.maxPx.x;if(dx||dy){if(!this.dragging){this.dragging=true;this.events.triggerEvent("movestart");}
+this.center=null;if(dx){this.layerContainerDiv.style.left=parseInt(this.layerContainerDiv.style.left)-dx+"px";this.minPx.x-=dx;this.maxPx.x-=dx;if(wrapDateLine){if(this.maxPx.x>maxX){this.maxPx.x-=(maxX-minX);}
+if(this.minPx.x<minX){this.minPx.x+=(maxX-minX);}}}
+if(dy){this.layerContainerDiv.style.top=parseInt(this.layerContainerDiv.style.top)-dy+"px";this.minPx.y-=dy;this.maxPx.y-=dy;}
+var layer,i,len;for(i=0,len=this.layers.length;i<len;++i){layer=this.layers[i];if(layer.visibility&&(layer===this.baseLayer||layer.inRange)){layer.moveByPx(dx,dy);layer.events.triggerEvent("move");}}
+this.events.triggerEvent("move");}},moveTo:function(lonlat,zoom,options){if(!options){options={};}
+if(zoom!=null){zoom=parseFloat(zoom);if(!this.fractionalZoom){zoom=Math.round(zoom);}}
+var dragging=options.dragging||this.dragging;var forceZoomChange=options.forceZoomChange;if(!this.getCachedCenter()&&!this.isValidLonLat(lonlat)){lonlat=this.maxExtent.getCenterLonLat();this.center=lonlat.clone();}
+if(this.restrictedExtent!=null){if(lonlat==null){lonlat=this.center;}
+if(zoom==null){zoom=this.getZoom();}
+var resolution=this.getResolutionForZoom(zoom);var extent=this.calculateBounds(lonlat,resolution);if(!this.restrictedExtent.containsBounds(extent)){var maxCenter=this.restrictedExtent.getCenterLonLat();if(extent.getWidth()>this.restrictedExtent.getWidth()){lonlat=new OpenLayers.LonLat(maxCenter.lon,lonlat.lat);}else if(extent.left<this.restrictedExtent.left){lonlat=lonlat.add(this.restrictedExtent.left-
+extent.left,0);}else if(extent.right>this.restrictedExtent.right){lonlat=lonlat.add(this.restrictedExtent.right-
+extent.right,0);}
+if(extent.getHeight()>this.restrictedExtent.getHeight()){lonlat=new OpenLayers.LonLat(lonlat.lon,maxCenter.lat);}else if(extent.bottom<this.restrictedExtent.bottom){lonlat=lonlat.add(0,this.restrictedExtent.bottom-
+extent.bottom);}
+else if(extent.top>this.restrictedExtent.top){lonlat=lonlat.add(0,this.restrictedExtent.top-
+extent.top);}}}
+var zoomChanged=forceZoomChange||((this.isValidZoomLevel(zoom))&&(zoom!=this.getZoom()));var centerChanged=(this.isValidLonLat(lonlat))&&(!lonlat.equals(this.center));if(zoomChanged||centerChanged||dragging){dragging||this.events.triggerEvent("movestart");if(centerChanged){if(!zoomChanged&&this.center){this.centerLayerContainer(lonlat);}
+this.center=lonlat.clone();}
+var res=zoomChanged?this.getResolutionForZoom(zoom):this.getResolution();if(zoomChanged||this.layerContainerOrigin==null){this.layerContainerOrigin=this.getCachedCenter();this.layerContainerDiv.style.left="0px";this.layerContainerDiv.style.top="0px";var maxExtent=this.getMaxExtent({restricted:true});var maxExtentCenter=maxExtent.getCenterLonLat();var lonDelta=this.center.lon-maxExtentCenter.lon;var latDelta=maxExtentCenter.lat-this.center.lat;var extentWidth=Math.round(maxExtent.getWidth [...]
+if(zoomChanged){this.zoom=zoom;this.resolution=res;this.viewRequestID++;}
+var bounds=this.getExtent();if(this.baseLayer.visibility){this.baseLayer.moveTo(bounds,zoomChanged,options.dragging);options.dragging||this.baseLayer.events.triggerEvent("moveend",{zoomChanged:zoomChanged});}
+bounds=this.baseLayer.getExtent();for(var i=this.layers.length-1;i>=0;--i){var layer=this.layers[i];if(layer!==this.baseLayer&&!layer.isBaseLayer){var inRange=layer.calculateInRange();if(layer.inRange!=inRange){layer.inRange=inRange;if(!inRange){layer.display(false);}
+this.events.triggerEvent("changelayer",{layer:layer,property:"visibility"});}
+if(inRange&&layer.visibility){layer.moveTo(bounds,zoomChanged,options.dragging);options.dragging||layer.events.triggerEvent("moveend",{zoomChanged:zoomChanged});}}}
+this.events.triggerEvent("move");dragging||this.events.triggerEvent("moveend");if(zoomChanged){for(var i=0,len=this.popups.length;i<len;i++){this.popups[i].updatePosition();}
+this.events.triggerEvent("zoomend");}}},centerLayerContainer:function(lonlat){var originPx=this.getViewPortPxFromLonLat(this.layerContainerOrigin);var newPx=this.getViewPortPxFromLonLat(lonlat);if((originPx!=null)&&(newPx!=null)){var oldLeft=parseInt(this.layerContainerDiv.style.left);var oldTop=parseInt(this.layerContainerDiv.style.top);var newLeft=Math.round(originPx.x-newPx.x);var newTop=Math.round(originPx.y-newPx.y);this.layerContainerDiv.style.left=newLeft+"px";this.layerContainerD [...]
+return valid;},getProjection:function(){var projection=this.getProjectionObject();return projection?projection.getCode():null;},getProjectionObject:function(){var projection=null;if(this.baseLayer!=null){projection=this.baseLayer.projection;}
+return projection;},getMaxResolution:function(){var maxResolution=null;if(this.baseLayer!=null){maxResolution=this.baseLayer.maxResolution;}
+return maxResolution;},getMaxExtent:function(options){var maxExtent=null;if(options&&options.restricted&&this.restrictedExtent){maxExtent=this.restrictedExtent;}else if(this.baseLayer!=null){maxExtent=this.baseLayer.maxExtent;}
+return maxExtent;},getNumZoomLevels:function(){var numZoomLevels=null;if(this.baseLayer!=null){numZoomLevels=this.baseLayer.numZoomLevels;}
+return numZoomLevels;},getExtent:function(){var extent=null;if(this.baseLayer!=null){extent=this.baseLayer.getExtent();}
+return extent;},getResolution:function(){var resolution=null;if(this.baseLayer!=null){resolution=this.baseLayer.getResolution();}else if(this.allOverlays===true&&this.layers.length>0){resolution=this.layers[0].getResolution();}
+return resolution;},getUnits:function(){var units=null;if(this.baseLayer!=null){units=this.baseLayer.units;}
+return units;},getScale:function(){var scale=null;if(this.baseLayer!=null){var res=this.getResolution();var units=this.baseLayer.units;scale=OpenLayers.Util.getScaleFromResolution(res,units);}
+return scale;},getZoomForExtent:function(bounds,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForExtent(bounds,closest);}
+return zoom;},getResolutionForZoom:function(zoom){var resolution=null;if(this.baseLayer){resolution=this.baseLayer.getResolutionForZoom(zoom);}
+return resolution;},getZoomForResolution:function(resolution,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForResolution(resolution,closest);}
+return zoom;},zoomTo:function(zoom){if(this.isValidZoomLevel(zoom)){this.setCenter(null,zoom);}},zoomIn:function(){this.zoomTo(this.getZoom()+1);},zoomOut:function(){this.zoomTo(this.getZoom()-1);},zoomToExtent:function(bounds,closest){var center=bounds.getCenterLonLat();if(this.baseLayer.wrapDateLine){var maxExtent=this.getMaxExtent();bounds=bounds.clone();while(bounds.right<bounds.left){bounds.right+=maxExtent.getWidth();}
+center=bounds.getCenterLonLat().wrapDateLine(maxExtent);}
+this.setCenter(center,this.getZoomForExtent(bounds,closest));},zoomToMaxExtent:function(options){var restricted=(options)?options.restricted:true;var maxExtent=this.getMaxExtent({'restricted':restricted});this.zoomToExtent(maxExtent);},zoomToScale:function(scale,closest){var res=OpenLayers.Util.getResolutionFromScale(scale,this.baseLayer.units);var size=this.getSize();var w_deg=size.w*res;var h_deg=size.h*res;var center=this.getCachedCenter();var extent=new OpenLayers.Bounds(center.lon-w [...]
+return lonlat;},getViewPortPxFromLonLat:function(lonlat){var px=null;if(this.baseLayer!=null){px=this.baseLayer.getViewPortPxFromLonLat(lonlat);}
+return px;},getLonLatFromPixel:function(px){return this.getLonLatFromViewPortPx(px);},getPixelFromLonLat:function(lonlat){var px=this.getViewPortPxFromLonLat(lonlat);px.x=Math.round(px.x);px.y=Math.round(px.y);return px;},getGeodesicPixelSize:function(px){var lonlat=px?this.getLonLatFromPixel(px):(this.getCachedCenter()||new OpenLayers.LonLat(0,0));var res=this.getResolution();var left=lonlat.add(-res/2,0);var right=lonlat.add(res/2,0);var bottom=lonlat.add(0,-res/2);var top=lonlat.add(0 [...]
+return new OpenLayers.Size(OpenLayers.Util.distVincenty(left,right),OpenLayers.Util.distVincenty(bottom,top));},getViewPortPxFromLayerPx:function(layerPx){var viewPortPx=null;if(layerPx!=null){var dX=parseInt(this.layerContainerDiv.style.left);var dY=parseInt(this.layerContainerDiv.style.top);viewPortPx=layerPx.add(dX,dY);}
+return viewPortPx;},getLayerPxFromViewPortPx:function(viewPortPx){var layerPx=null;if(viewPortPx!=null){var dX=-parseInt(this.layerContainerDiv.style.left);var dY=-parseInt(this.layerContainerDiv.style.top);layerPx=viewPortPx.add(dX,dY);if(isNaN(layerPx.x)||isNaN(layerPx.y)){layerPx=null;}}
+return layerPx;},getLonLatFromLayerPx:function(px){px=this.getViewPortPxFromLayerPx(px);return this.getLonLatFromViewPortPx(px);},getLayerPxFromLonLat:function(lonlat){var px=this.getPixelFromLonLat(lonlat);return this.getLayerPxFromViewPortPx(px);},CLASS_NAME:"OpenLayers.Map"});OpenLayers.Map.TILE_WIDTH=256;OpenLayers.Map.TILE_HEIGHT=256;OpenLayers.Projection=OpenLayers.Class({proj:null,projCode:null,titleRegEx:/\+title=[^\+]*/,initialize:function(projCode,options){OpenLayers.Util.exten [...]
+return equals;},destroy:function(){delete this.proj;delete this.projCode;},CLASS_NAME:"OpenLayers.Projection"});OpenLayers.Projection.transforms={};OpenLayers.Projection.addTransform=function(from,to,method){if(!OpenLayers.Projection.transforms[from]){OpenLayers.Projection.transforms[from]={};}
+OpenLayers.Projection.transforms[from][to]=method;};OpenLayers.Projection.transform=function(point,source,dest){if(source.proj&&dest.proj){point=Proj4js.transform(source.proj,dest.proj,point);}else if(source&&dest&&OpenLayers.Projection.transforms[source.getCode()]&&OpenLayers.Projection.transforms[source.getCode()][dest.getCode()]){OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);}
+return point;};OpenLayers.Projection.nullTransform=function(point){return point;};OpenLayers.Layer=OpenLayers.Class({id:null,name:null,div:null,opacity:null,alwaysInRange:null,EVENT_TYPES:["loadstart","loadend","loadcancel","visibilitychanged","move","moveend","added","removed"],RESOLUTION_PROPERTIES:['scales','resolutions','maxScale','minScale','maxResolution','minResolution','numZoomLevels','maxZoomLevel'],events:null,map:null,isBaseLayer:false,alpha:false,displayInLayerSwitcher:true,v [...]
+if(this.wrapDateLine){this.displayOutsideMaxExtent=true;}},destroy:function(setNewBaseLayer){if(setNewBaseLayer==null){setNewBaseLayer=true;}
+if(this.map!=null){this.map.removeLayer(this,setNewBaseLayer);}
+this.projection=null;this.map=null;this.name=null;this.div=null;this.options=null;if(this.events){if(this.eventListeners){this.events.un(this.eventListeners);}
+this.events.destroy();}
+this.eventListeners=null;this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer(this.name,this.getOptions());}
+OpenLayers.Util.applyDefaults(obj,this);obj.map=null;return obj;},getOptions:function(){var options={};for(var o in this.options){options[o]=this[o];}
+return options;},setName:function(newName){if(newName!=this.name){this.name=newName;if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"name"});}}},addOptions:function(newOptions,reinitialize){if(this.options==null){this.options={};}
+OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);}
+if(this.projection&&this.projection.getUnits()){this.units=this.projection.getUnits();}
+if(this.map){var resolution=this.map.getResolution();var properties=this.RESOLUTION_PROPERTIES.concat(["projection","units","minExtent","maxExtent"]);for(var o in newOptions){if(newOptions.hasOwnProperty(o)&&OpenLayers.Util.indexOf(properties,o)>=0){this.initResolutions();if(reinitialize&&this.map.baseLayer===this){this.map.setCenter(this.map.getCenter(),this.map.getZoomForResolution(resolution),false,true);this.map.events.triggerEvent("changebaselayer",{layer:this});}
+break;}}}},onMapResize:function(){},redraw:function(){var redrawn=false;if(this.map){this.inRange=this.calculateInRange();var extent=this.getExtent();if(extent&&this.inRange&&this.visibility){var zoomChanged=true;this.moveTo(extent,zoomChanged,false);this.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});redrawn=true;}}
+return redrawn;},moveTo:function(bounds,zoomChanged,dragging){var display=this.visibility;if(!this.isBaseLayer){display=display&&this.inRange;}
+this.display(display);},moveByPx:function(dx,dy){},setMap:function(map){if(this.map==null){this.map=map;this.maxExtent=this.maxExtent||this.map.maxExtent;this.minExtent=this.minExtent||this.map.minExtent;this.projection=this.projection||this.map.projection;if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);}
+this.units=this.projection.getUnits()||this.units||this.map.units;this.initResolutions();if(!this.isBaseLayer){this.inRange=this.calculateInRange();var show=((this.visibility)&&(this.inRange));this.div.style.display=show?"":"none";}
+this.setTileSize();}},afterAdd:function(){},removeMap:function(map){},getImageSize:function(bounds){return(this.imageSize||this.tileSize);},setTileSize:function(size){var tileSize=(size)?size:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=tileSize;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(tileSize.w+(2*this.gutter),tileSize.h+(2*this.gutter));}},getVisibility:function(){return this.visibility; [...]
+this.events.triggerEvent("visibilitychanged");}},display:function(display){if(display!=(this.div.style.display!="none")){this.div.style.display=(display&&this.calculateInRange())?"block":"none";}},calculateInRange:function(){var inRange=false;if(this.alwaysInRange){inRange=true;}else{if(this.map){var resolution=this.map.getResolution();inRange=((resolution>=this.minResolution)&&(resolution<=this.maxResolution));}}
+return inRange;},setIsBaseLayer:function(isBaseLayer){if(isBaseLayer!=this.isBaseLayer){this.isBaseLayer=isBaseLayer;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this});}}},initResolutions:function(){var i,len,p;var props={},alwaysInRange=true;for(i=0,len=this.RESOLUTION_PROPERTIES.length;i<len;i++){p=this.RESOLUTION_PROPERTIES[i];props[p]=this.options[p];if(alwaysInRange&&this.options[p]){alwaysInRange=false;}}
+if(this.alwaysInRange==null){this.alwaysInRange=alwaysInRange;}
+if(props.resolutions==null){props.resolutions=this.resolutionsFromScales(props.scales);}
+if(props.resolutions==null){props.resolutions=this.calculateResolutions(props);}
+if(props.resolutions==null){for(i=0,len=this.RESOLUTION_PROPERTIES.length;i<len;i++){p=this.RESOLUTION_PROPERTIES[i];props[p]=this.options[p]!=null?this.options[p]:this.map[p];}
+if(props.resolutions==null){props.resolutions=this.resolutionsFromScales(props.scales);}
+if(props.resolutions==null){props.resolutions=this.calculateResolutions(props);}}
+var maxResolution;if(this.options.maxResolution&&this.options.maxResolution!=="auto"){maxResolution=this.options.maxResolution;}
+if(this.options.minScale){maxResolution=OpenLayers.Util.getResolutionFromScale(this.options.minScale,this.units);}
+var minResolution;if(this.options.minResolution&&this.options.minResolution!=="auto"){minResolution=this.options.minResolution;}
+if(this.options.maxScale){minResolution=OpenLayers.Util.getResolutionFromScale(this.options.maxScale,this.units);}
+if(props.resolutions){props.resolutions.sort(function(a,b){return(b-a);});if(!maxResolution){maxResolution=props.resolutions[0];}
+if(!minResolution){var lastIdx=props.resolutions.length-1;minResolution=props.resolutions[lastIdx];}}
+this.resolutions=props.resolutions;if(this.resolutions){len=this.resolutions.length;this.scales=new Array(len);for(i=0;i<len;i++){this.scales[i]=OpenLayers.Util.getScaleFromResolution(this.resolutions[i],this.units);}
+this.numZoomLevels=len;}
+this.minResolution=minResolution;if(minResolution){this.maxScale=OpenLayers.Util.getScaleFromResolution(minResolution,this.units);}
+this.maxResolution=maxResolution;if(maxResolution){this.minScale=OpenLayers.Util.getScaleFromResolution(maxResolution,this.units);}},resolutionsFromScales:function(scales){if(scales==null){return;}
+var resolutions,i,len;len=scales.length;resolutions=new Array(len);for(i=0;i<len;i++){resolutions[i]=OpenLayers.Util.getResolutionFromScale(scales[i],this.units);}
+return resolutions;},calculateResolutions:function(props){var viewSize,wRes,hRes;var maxResolution=props.maxResolution;if(props.minScale!=null){maxResolution=OpenLayers.Util.getResolutionFromScale(props.minScale,this.units);}else if(maxResolution=="auto"&&this.maxExtent!=null){viewSize=this.map.getSize();wRes=this.maxExtent.getWidth()/viewSize.w;hRes=this.maxExtent.getHeight()/viewSize.h;maxResolution=Math.max(wRes,hRes);}
+var minResolution=props.minResolution;if(props.maxScale!=null){minResolution=OpenLayers.Util.getResolutionFromScale(props.maxScale,this.units);}else if(props.minResolution=="auto"&&this.minExtent!=null){viewSize=this.map.getSize();wRes=this.minExtent.getWidth()/viewSize.w;hRes=this.minExtent.getHeight()/viewSize.h;minResolution=Math.max(wRes,hRes);}
+var maxZoomLevel=props.maxZoomLevel;var numZoomLevels=props.numZoomLevels;if(typeof minResolution==="number"&&typeof maxResolution==="number"&&numZoomLevels===undefined){var ratio=maxResolution/minResolution;numZoomLevels=Math.floor(Math.log(ratio)/Math.log(2))+1;}else if(numZoomLevels===undefined&&maxZoomLevel!=null){numZoomLevels=maxZoomLevel+1;}
+if(typeof numZoomLevels!=="number"||numZoomLevels<=0||(typeof maxResolution!=="number"&&typeof minResolution!=="number")){return;}
+var resolutions=new Array(numZoomLevels);var base=2;if(typeof minResolution=="number"&&typeof maxResolution=="number"){base=Math.pow((maxResolution/minResolution),(1/(numZoomLevels-1)));}
+var i;if(typeof maxResolution==="number"){for(i=0;i<numZoomLevels;i++){resolutions[i]=maxResolution/Math.pow(base,i);}}else{for(i=0;i<numZoomLevels;i++){resolutions[numZoomLevels-1-i]=minResolution*Math.pow(base,i);}}
+return resolutions;},getResolution:function(){var zoom=this.map.getZoom();return this.getResolutionForZoom(zoom);},getExtent:function(){return this.map.calculateBounds();},getZoomForExtent:function(extent,closest){var viewSize=this.map.getSize();var idealResolution=Math.max(extent.getWidth()/viewSize.w,extent.getHeight()/viewSize.h);return this.getZoomForResolution(idealResolution,closest);},getDataExtent:function(){},getResolutionForZoom:function(zoom){zoom=Math.max(0,Math.min(zoom,this [...]
+((zoom-low)*(this.resolutions[low]-this.resolutions[high]));}else{resolution=this.resolutions[Math.round(zoom)];}
+return resolution;},getZoomForResolution:function(resolution,closest){var zoom,i,len;if(this.map.fractionalZoom){var lowZoom=0;var highZoom=this.resolutions.length-1;var highRes=this.resolutions[lowZoom];var lowRes=this.resolutions[highZoom];var res;for(i=0,len=this.resolutions.length;i<len;++i){res=this.resolutions[i];if(res>=resolution){highRes=res;lowZoom=i;}
+if(res<=resolution){lowRes=res;highZoom=i;break;}}
+var dRes=highRes-lowRes;if(dRes>0){zoom=lowZoom+((highRes-resolution)/dRes);}else{zoom=lowZoom;}}else{var diff;var minDiff=Number.POSITIVE_INFINITY;for(i=0,len=this.resolutions.length;i<len;i++){if(closest){diff=Math.abs(this.resolutions[i]-resolution);if(diff>minDiff){break;}
+minDiff=diff;}else{if(this.resolutions[i]<resolution){break;}}}
+zoom=Math.max(0,i-1);}
+return zoom;},getLonLatFromViewPortPx:function(viewPortPx){var lonlat=null;var map=this.map;if(viewPortPx!=null&&map.minPx){var res=map.getResolution();var maxExtent=map.getMaxExtent({restricted:true});var lon=(viewPortPx.x-map.minPx.x)*res+maxExtent.left;var lat=(map.minPx.y-viewPortPx.y)*res+maxExtent.top;lonlat=new OpenLayers.LonLat(lon,lat);if(this.wrapDateLine){lonlat=lonlat.wrapDateLine(this.maxExtent);}}
+return lonlat;},getViewPortPxFromLonLat:function(lonlat){var px=null;if(lonlat!=null){var resolution=this.map.getResolution();var extent=this.map.getExtent();px=new OpenLayers.Pixel((1/resolution*(lonlat.lon-extent.left)),(1/resolution*(extent.top-lonlat.lat)));}
+return px;},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.div.childNodes.length;i<len;++i){var element=this.div.childNodes[i].firstChild;OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);}
+if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"opacity"});}}},getZIndex:function(){return this.div.style.zIndex;},setZIndex:function(zIndex){this.div.style.zIndex=zIndex;},adjustBounds:function(bounds){if(this.gutter){var mapGutter=this.gutter*this.map.getResolution();bounds=new OpenLayers.Bounds(bounds.left-mapGutter,bounds.bottom-mapGutter,bounds.right+mapGutter,bounds.top+mapGutter);}
+if(this.wrapDateLine){var wrappingOptions={'rightTolerance':this.getResolution(),'leftTolerance':this.getResolution()};bounds=bounds.wrapDateLine(this.maxExtent,wrappingOptions);}
+return bounds;},CLASS_NAME:"OpenLayers.Layer"});OpenLayers.Layer.SphericalMercator={getExtent:function(){var extent=null;if(this.sphericalMercator){extent=this.map.calculateBounds();}else{extent=OpenLayers.Layer.FixedZoomLevels.prototype.getExtent.apply(this);}
+return extent;},getLonLatFromViewPortPx:function(viewPortPx){return OpenLayers.Layer.prototype.getLonLatFromViewPortPx.apply(this,arguments);},getViewPortPxFromLonLat:function(lonlat){return OpenLayers.Layer.prototype.getViewPortPxFromLonLat.apply(this,arguments);},initMercatorParameters:function(){this.RESOLUTIONS=[];var maxResolution=156543.03390625;for(var zoom=0;zoom<=this.MAX_ZOOM_LEVEL;++zoom){this.RESOLUTIONS[zoom]=maxResolution/Math.pow(2,zoom);}
+this.units="m";this.projection=this.projection||"EPSG:900913";},forwardMercator:function(lon,lat){var x=lon*20037508.34/180;var y=Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);y=y*20037508.34/180;return new OpenLayers.LonLat(x,y);},inverseMercator:function(x,y){var lon=(x/20037508.34)*180;var lat=(y/20037508.34)*180;lat=180/Math.PI*(2*Math.atan(Math.exp(lat*Math.PI/180))-Math.PI/2);return new OpenLayers.LonLat(lon,lat);},projectForward:function(point){var lonlat=OpenLayers.Layer [...]
+if(this.isFixed){this.map.eventsDiv.appendChild(this.pane);}else{this.map.layerContainerDiv.appendChild(this.pane);}
+this.loadMapObject();if(this.mapObject==null){this.loadWarningMessage();}},removeMap:function(map){if(this.pane&&this.pane.parentNode){this.pane.parentNode.removeChild(this.pane);}
+OpenLayers.Layer.prototype.removeMap.apply(this,arguments);},loadWarningMessage:function(){this.div.style.backgroundColor="darkblue";var viewSize=this.map.getSize();var msgW=Math.min(viewSize.w,300);var msgH=Math.min(viewSize.h,200);var size=new OpenLayers.Size(msgW,msgH);var centerPx=new OpenLayers.Pixel(viewSize.w/2,viewSize.h/2);var topLeft=centerPx.add(-size.w/2,-size.h/2);var div=OpenLayers.Util.createDiv(this.name+"_warning",topLeft,size,null,null,null,"auto");div.style.padding="7p [...]
+return lonlat;},getViewPortPxFromLonLat:function(lonlat){var viewPortPx=null;if((this.mapObject!=null)&&(this.getMapObjectCenter()!=null)){var moLonLat=this.getMapObjectLonLatFromOLLonLat(lonlat);var moPixel=this.getMapObjectPixelFromMapObjectLonLat(moLonLat);viewPortPx=this.getOLPixelFromMapObjectPixel(moPixel);}
+return viewPortPx;},getOLLonLatFromMapObjectLonLat:function(moLonLat){var olLonLat=null;if(moLonLat!=null){var lon=this.getLongitudeFromMapObjectLonLat(moLonLat);var lat=this.getLatitudeFromMapObjectLonLat(moLonLat);olLonLat=new OpenLayers.LonLat(lon,lat);}
+return olLonLat;},getMapObjectLonLatFromOLLonLat:function(olLonLat){var moLatLng=null;if(olLonLat!=null){moLatLng=this.getMapObjectLonLatFromLonLat(olLonLat.lon,olLonLat.lat);}
+return moLatLng;},getOLPixelFromMapObjectPixel:function(moPixel){var olPixel=null;if(moPixel!=null){var x=this.getXFromMapObjectPixel(moPixel);var y=this.getYFromMapObjectPixel(moPixel);olPixel=new OpenLayers.Pixel(x,y);}
+return olPixel;},getMapObjectPixelFromOLPixel:function(olPixel){var moPixel=null;if(olPixel!=null){moPixel=this.getMapObjectPixelFromXY(olPixel.x,olPixel.y);}
+return moPixel;},CLASS_NAME:"OpenLayers.Layer.EventPane"});OpenLayers.Layer.FixedZoomLevels=OpenLayers.Class({initialize:function(){},initResolutions:function(){var props=new Array('minZoomLevel','maxZoomLevel','numZoomLevels');for(var i=0,len=props.length;i<len;i++){var property=props[i];this[property]=(this.options[property]!=null)?this.options[property]:this.map[property];}
+if((this.minZoomLevel==null)||(this.minZoomLevel<this.MIN_ZOOM_LEVEL)){this.minZoomLevel=this.MIN_ZOOM_LEVEL;}
+var desiredZoomLevels;var limitZoomLevels=this.MAX_ZOOM_LEVEL-this.minZoomLevel+1;if(((this.options.numZoomLevels==null)&&(this.options.maxZoomLevel!=null))||((this.numZoomLevels==null)&&(this.maxZoomLevel!=null))){desiredZoomLevels=this.maxZoomLevel-this.minZoomLevel+1;}else{desiredZoomLevels=this.numZoomLevels;}
+if(desiredZoomLevels!=null){this.numZoomLevels=Math.min(desiredZoomLevels,limitZoomLevels);}else{this.numZoomLevels=limitZoomLevels;}
+this.maxZoomLevel=this.minZoomLevel+this.numZoomLevels-1;if(this.RESOLUTIONS!=null){var resolutionsIndex=0;this.resolutions=[];for(var i=this.minZoomLevel;i<=this.maxZoomLevel;i++){this.resolutions[resolutionsIndex++]=this.RESOLUTIONS[i];}
+this.maxResolution=this.resolutions[0];this.minResolution=this.resolutions[this.resolutions.length-1];}},getResolution:function(){if(this.resolutions!=null){return OpenLayers.Layer.prototype.getResolution.apply(this,arguments);}else{var resolution=null;var viewSize=this.map.getSize();var extent=this.getExtent();if((viewSize!=null)&&(extent!=null)){resolution=Math.max(extent.getWidth()/viewSize.w,extent.getHeight()/viewSize.h);}
+return resolution;}},getExtent:function(){var extent=null;var size=this.map.getSize();var tlPx=new OpenLayers.Pixel(0,0);var tlLL=this.getLonLatFromViewPortPx(tlPx);var brPx=new OpenLayers.Pixel(size.w,size.h);var brLL=this.getLonLatFromViewPortPx(brPx);if((tlLL!=null)&&(brLL!=null)){extent=new OpenLayers.Bounds(tlLL.lon,brLL.lat,brLL.lon,tlLL.lat);}
+return extent;},getZoomForResolution:function(resolution){if(this.resolutions!=null){return OpenLayers.Layer.prototype.getZoomForResolution.apply(this,arguments);}else{var extent=OpenLayers.Layer.prototype.getExtent.apply(this,[]);return this.getZoomForExtent(extent);}},getOLZoomFromMapObjectZoom:function(moZoom){var zoom=null;if(moZoom!=null){zoom=moZoom-this.minZoomLevel;if(this.map.baseLayer!==this){zoom=this.map.baseLayer.getZoomForResolution(this.getResolutionForZoom(zoom))}}
+return zoom;},getMapObjectZoomFromOLZoom:function(olZoom){var zoom=null;if(olZoom!=null){zoom=olZoom+this.minZoomLevel;if(this.map.baseLayer!==this){zoom=this.getZoomForResolution(this.map.baseLayer.getResolutionForZoom(zoom));}}
+return zoom;},CLASS_NAME:"OpenLayers.Layer.FixedZoomLevels"});OpenLayers.Layer.VirtualEarth=OpenLayers.Class(OpenLayers.Layer.EventPane,OpenLayers.Layer.FixedZoomLevels,{MIN_ZOOM_LEVEL:1,MAX_ZOOM_LEVEL:19,RESOLUTIONS:[1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125,0.00002145767211914062,0.0 [...]
+if(this.mapObject!=null){try{this.mapObject.LoadMap(null,null,this.type,true);this.mapObject.AttachEvent("onmousedown",OpenLayers.Function.True);}catch(e){}
+this.mapObject.HideDashboard();if(typeof this.mapObject.SetAnimationEnabled=="function"){this.mapObject.SetAnimationEnabled(this.animationEnabled);}}
+if(!this.mapObject||!this.mapObject.vemapcontrol||!this.mapObject.vemapcontrol.PanMap||(typeof this.mapObject.vemapcontrol.PanMap!="function")){this.dragPanMapObject=null;}},onMapResize:function(){this.mapObject.Resize(this.map.size.w,this.map.size.h);},getWarningHTML:function(){return OpenLayers.i18n("getLayerWarning",{'layerType':'VE','layerLib':'VirtualEarth'});},setMapObjectCenter:function(center,zoom){this.mapObject.SetCenterAndZoom(center,zoom);},getMapObjectCenter:function(){retur [...]
+return veLatLong;},getXFromMapObjectPixel:function(moPixel){return moPixel.x;},getYFromMapObjectPixel:function(moPixel){return moPixel.y;},getMapObjectPixelFromXY:function(x,y){return(typeof VEPixel!='undefined')?new VEPixel(x,y):new Msn.VE.Pixel(x,y);},CLASS_NAME:"OpenLayers.Layer.VirtualEarth"});OpenLayers.Control=OpenLayers.Class({id:null,map:null,div:null,type:null,allowSelection:false,displayClass:"",title:"",autoActivate:false,active:null,handler:null,eventListeners:null,events:nul [...]
+if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");}},destroy:function(){if(this.events){if(this.eventListeners){this.events.un(this.eventListeners);}
+this.events.destroy();this.events=null;}
+this.eventListeners=null;if(this.handler){this.handler.destroy();this.handler=null;}
+if(this.handlers){for(var key in this.handlers){if(this.handlers.hasOwnProperty(key)&&typeof this.handlers[key].destroy=="function"){this.handlers[key].destroy();}}
+this.handlers=null;}
+if(this.map){this.map.removeControl(this);this.map=null;}
+this.div=null;},setMap:function(map){this.map=map;if(this.handler){this.handler.setMap(map);}},draw:function(px){if(this.div==null){this.div=OpenLayers.Util.createDiv(this.id);this.div.className=this.displayClass;if(!this.allowSelection){this.div.className+=" olControlNoSelect";this.div.setAttribute("unselectable","on",0);this.div.onselectstart=OpenLayers.Function.False;}
+if(this.title!=""){this.div.title=this.title;}}
+if(px!=null){this.position=px.clone();}
+this.moveTo(this.position);return this.div;},moveTo:function(px){if((px!=null)&&(this.div!=null)){this.div.style.left=px.x+"px";this.div.style.top=px.y+"px";}},activate:function(){if(this.active){return false;}
+if(this.handler){this.handler.activate();}
+this.active=true;if(this.map){OpenLayers.Element.addClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active");}
+this.events.triggerEvent("activate");return true;},deactivate:function(){if(this.active){if(this.handler){this.handler.deactivate();}
+this.active=false;if(this.map){OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active");}
+this.events.triggerEvent("deactivate");return true;}
+return false;},CLASS_NAME:"OpenLayers.Control"});OpenLayers.Control.TYPE_BUTTON=1;OpenLayers.Control.TYPE_TOGGLE=2;OpenLayers.Control.TYPE_TOOL=3;OpenLayers.Control.OverviewMap=OpenLayers.Class(OpenLayers.Control,{element:null,ovmap:null,size:new OpenLayers.Size(180,90),layers:null,minRectSize:15,minRectDisplayClass:"RectReplacement",minRatio:8,maxRatio:32,mapOptions:null,autoPan:false,handlers:null,resolutionFactor:1,maximized:false,initialize:function(options){this.layers=[];this.handl [...]
+if(this.handlers.click){this.handlers.click.destroy();}
+if(this.handlers.drag){this.handlers.drag.destroy();}
+this.ovmap&&this.ovmap.eventsDiv.removeChild(this.extentRectangle);this.extentRectangle=null;if(this.rectEvents){this.rectEvents.destroy();this.rectEvents=null;}
+if(this.ovmap){this.ovmap.destroy();this.ovmap=null;}
+this.element.removeChild(this.mapDiv);this.mapDiv=null;this.div.removeChild(this.element);this.element=null;if(this.maximizeDiv){OpenLayers.Event.stopObservingElement(this.maximizeDiv);this.div.removeChild(this.maximizeDiv);this.maximizeDiv=null;}
+if(this.minimizeDiv){OpenLayers.Event.stopObservingElement(this.minimizeDiv);this.div.removeChild(this.minimizeDiv);this.minimizeDiv=null;}
+this.map.events.un({"moveend":this.update,"changebaselayer":this.baseLayerDraw,scope:this});OpenLayers.Control.prototype.destroy.apply(this,arguments);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!(this.layers.length>0)){if(this.map.baseLayer){var layer=this.map.baseLayer.clone();this.layers=[layer];}else{this.map.events.register("changebaselayer",this,this.baseLayerDraw);return this.div;}}
+this.element=document.createElement('div');this.element.className=this.displayClass+'Element';this.element.style.display='none';this.mapDiv=document.createElement('div');this.mapDiv.style.width=this.size.w+'px';this.mapDiv.style.height=this.size.h+'px';this.mapDiv.style.position='relative';this.mapDiv.style.overflow='hidden';this.mapDiv.id=OpenLayers.Util.createUniqueID('overviewMap');this.extentRectangle=document.createElement('div');this.extentRectangle.style.position='absolute';this.e [...]
+this.minimizeControl();}else{this.element.style.display='';}
+if(this.map.getExtent()){this.update();}
+this.map.events.register('moveend',this,this.update);if(this.maximized){this.maximizeControl();}
+return this.div;},baseLayerDraw:function(){this.draw();this.map.events.unregister("changebaselayer",this,this.baseLayerDraw);},rectDrag:function(px){var deltaX=this.handlers.drag.last.x-px.x;var deltaY=this.handlers.drag.last.y-px.y;if(deltaX!=0||deltaY!=0){var rectTop=this.rectPxBounds.top;var rectLeft=this.rectPxBounds.left;var rectHeight=Math.abs(this.rectPxBounds.getHeight());var rectWidth=this.rectPxBounds.getWidth();var newTop=Math.max(0,(rectTop-deltaY));newTop=Math.min(newTop,thi [...]
+if(this.autoPan||!this.isSuitableOverview()){this.updateOverview();}
+this.updateRectToMap();},isSuitableOverview:function(){var mapExtent=this.map.getExtent();var maxExtent=this.map.maxExtent;var testExtent=new OpenLayers.Bounds(Math.max(mapExtent.left,maxExtent.left),Math.max(mapExtent.bottom,maxExtent.bottom),Math.min(mapExtent.right,maxExtent.right),Math.min(mapExtent.top,maxExtent.top));if(this.ovmap.getProjection()!=this.map.getProjection()){testExtent=testExtent.transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject());}
+var resRatio=this.ovmap.getResolution()/this.map.getResolution();return((resRatio>this.minRatio)&&(resRatio<=this.maxRatio)&&(this.ovmap.getExtent().containsBounds(testExtent)));},updateOverview:function(){var mapRes=this.map.getResolution();var targetRes=this.ovmap.getResolution();var resRatio=targetRes/mapRes;if(resRatio>this.maxRatio){targetRes=this.minRatio*mapRes;}else if(resRatio<=this.minRatio){targetRes=this.maxRatio*mapRes;}
+var center;if(this.ovmap.getProjection()!=this.map.getProjection()){center=this.map.center.clone();center.transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject());}else{center=this.map.center;}
+this.ovmap.setCenter(center,this.ovmap.getZoomForResolution(targetRes*this.resolutionFactor));this.updateRectToMap();},createMap:function(){var options=OpenLayers.Util.extend({controls:[],maxResolution:'auto',fallThrough:false},this.mapOptions);this.ovmap=new OpenLayers.Map(this.mapDiv,options);this.ovmap.eventsDiv.appendChild(this.extentRectangle);OpenLayers.Event.stopObserving(window,'unload',this.ovmap.unloadDestroy);this.ovmap.addLayers(this.layers);this.ovmap.zoomToMaxExtent();this. [...]
+parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-right-width'));this.wComp=(this.wComp)?this.wComp:2;this.hComp=parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-top-width'))+
+parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-bottom-width'));this.hComp=(this.hComp)?this.hComp:2;this.handlers.drag=new OpenLayers.Handler.Drag(this,{move:this.rectDrag,done:this.updateMapToRect},{map:this.ovmap});this.handlers.click=new OpenLayers.Handler.Click(this,{"click":this.mapDivClick},{"single":true,"double":false,"stopSingle":true,"stopDouble":true,"pixelTolerance":1,map:this.ovmap});this.handlers.click.activate();this.rectEvents=new OpenLayers.Events(this [...]
+var pxBounds=this.getRectBoundsFromMapBounds(bounds);if(pxBounds){this.setRectPxBounds(pxBounds);}},updateMapToRect:function(){var lonLatBounds=this.getMapBoundsFromRectBounds(this.rectPxBounds);if(this.ovmap.getProjection()!=this.map.getProjection()){lonLatBounds=lonLatBounds.transform(this.ovmap.getProjectionObject(),this.map.getProjectionObject());}
+this.map.panTo(lonLatBounds.getCenterLonLat());},setRectPxBounds:function(pxBounds){var top=Math.max(pxBounds.top,0);var left=Math.max(pxBounds.left,0);var bottom=Math.min(pxBounds.top+Math.abs(pxBounds.getHeight()),this.ovmap.size.h-this.hComp);var right=Math.min(pxBounds.left+pxBounds.getWidth(),this.ovmap.size.w-this.wComp);var width=Math.max(right-left,0);var height=Math.max(bottom-top,0);if(width<this.minRectSize||height<this.minRectSize){this.extentRectangle.className=this.displayClass+
+this.minRectDisplayClass;var rLeft=left+(width/2)-(this.minRectSize/2);var rTop=top+(height/2)-(this.minRectSize/2);this.extentRectangle.style.top=Math.round(rTop)+'px';this.extentRectangle.style.left=Math.round(rLeft)+'px';this.extentRectangle.style.height=this.minRectSize+'px';this.extentRectangle.style.width=this.minRectSize+'px';}else{this.extentRectangle.className=this.displayClass+'ExtentRectangle';this.extentRectangle.style.top=Math.round(top)+'px';this.extentRectangle.style.left= [...]
+this.rectPxBounds=new OpenLayers.Bounds(Math.round(left),Math.round(bottom),Math.round(right),Math.round(top));},getRectBoundsFromMapBounds:function(lonLatBounds){var leftBottomLonLat=new OpenLayers.LonLat(lonLatBounds.left,lonLatBounds.bottom);var rightTopLonLat=new OpenLayers.LonLat(lonLatBounds.right,lonLatBounds.top);var leftBottomPx=this.getOverviewPxFromLonLat(leftBottomLonLat);var rightTopPx=this.getOverviewPxFromLonLat(rightTopLonLat);var bounds=null;if(leftBottomPx&&rightTopPx){ [...]
+return bounds;},getMapBoundsFromRectBounds:function(pxBounds){var leftBottomPx=new OpenLayers.Pixel(pxBounds.left,pxBounds.bottom);var rightTopPx=new OpenLayers.Pixel(pxBounds.right,pxBounds.top);var leftBottomLonLat=this.getLonLatFromOverviewPx(leftBottomPx);var rightTopLonLat=this.getLonLatFromOverviewPx(rightTopPx);return new OpenLayers.Bounds(leftBottomLonLat.lon,leftBottomLonLat.lat,rightTopLonLat.lon,rightTopLonLat.lat);},getLonLatFromOverviewPx:function(overviewMapPx){var size=thi [...]
+return px;},CLASS_NAME:'OpenLayers.Control.OverviewMap'});OpenLayers.Layer.Google=OpenLayers.Class(OpenLayers.Layer.EventPane,OpenLayers.Layer.FixedZoomLevels,{MIN_ZOOM_LEVEL:0,MAX_ZOOM_LEVEL:21,RESOLUTIONS:[1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125,0.00002145767211914062,0.00001072883 [...]
+var mixin=OpenLayers.Layer.Google["v"+
+options.version.replace(/\./g,"_")];if(mixin){OpenLayers.Util.applyDefaults(options,mixin);}else{throw"Unsupported Google Maps API version: "+options.version;}
+OpenLayers.Util.applyDefaults(options,mixin.DEFAULTS);if(options.maxExtent){options.maxExtent=options.maxExtent.clone();}
+OpenLayers.Layer.EventPane.prototype.initialize.apply(this,[name,options]);OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,[name,options]);if(this.sphericalMercator){OpenLayers.Util.extend(this,OpenLayers.Layer.SphericalMercator);this.initMercatorParameters();}},clone:function(){return new OpenLayers.Layer.Google(this.name,this.getOptions());},setVisibility:function(visible){var opacity=this.opacity==null?1:this.opacity;OpenLayers.Layer.EventPane.prototype.setVisibility. [...]
+OpenLayers.Layer.EventPane.prototype.display.apply(this,arguments);},moveTo:function(bounds,zoomChanged,dragging){this._dragging=dragging;OpenLayers.Layer.EventPane.prototype.moveTo.apply(this,arguments);delete this._dragging;},setOpacity:function(opacity){if(opacity!==this.opacity){if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"opacity"});}
+this.opacity=opacity;}
+if(this.getVisibility()){var container=this.getMapContainer();OpenLayers.Util.modifyDOMElement(container,null,null,null,null,null,null,opacity);}},destroy:function(){if(this.map){this.setGMapVisibility(false);var cache=OpenLayers.Layer.Google.cache[this.map.id];if(cache&&cache.count<=1){this.removeGMapElements();}}
+OpenLayers.Layer.EventPane.prototype.destroy.apply(this,arguments);},removeGMapElements:function(){var cache=OpenLayers.Layer.Google.cache[this.map.id];if(cache){var container=this.mapObject&&this.getMapContainer();if(container&&container.parentNode){container.parentNode.removeChild(container);}
+var termsOfUse=cache.termsOfUse;if(termsOfUse&&termsOfUse.parentNode){termsOfUse.parentNode.removeChild(termsOfUse);}
+var poweredBy=cache.poweredBy;if(poweredBy&&poweredBy.parentNode){poweredBy.parentNode.removeChild(poweredBy);}}},removeMap:function(map){if(this.visibility&&this.mapObject){this.setGMapVisibility(false);}
+var cache=OpenLayers.Layer.Google.cache[map.id];if(cache){if(cache.count<=1){this.removeGMapElements();delete OpenLayers.Layer.Google.cache[map.id];}else{--cache.count;}}
+delete this.termsOfUse;delete this.poweredBy;delete this.mapObject;delete this.dragObject;OpenLayers.Layer.EventPane.prototype.removeMap.apply(this,arguments);},getOLBoundsFromMapObjectBounds:function(moBounds){var olBounds=null;if(moBounds!=null){var sw=moBounds.getSouthWest();var ne=moBounds.getNorthEast();if(this.sphericalMercator){sw=this.forwardMercator(sw.lng(),sw.lat());ne=this.forwardMercator(ne.lng(),ne.lat());}else{sw=new OpenLayers.LonLat(sw.lng(),sw.lat());ne=new OpenLayers.L [...]
+olBounds=new OpenLayers.Bounds(sw.lon,sw.lat,ne.lon,ne.lat);}
+return olBounds;},getWarningHTML:function(){return OpenLayers.i18n("googleWarning");},getMapObjectCenter:function(){return this.mapObject.getCenter();},getMapObjectZoom:function(){return this.mapObject.getZoom();},getLongitudeFromMapObjectLonLat:function(moLonLat){return this.sphericalMercator?this.forwardMercator(moLonLat.lng(),moLonLat.lat()).lon:moLonLat.lng();},getLatitudeFromMapObjectLonLat:function(moLonLat){var lat=this.sphericalMercator?this.forwardMercator(moLonLat.lng(),moLonLa [...]
+var mapObject,termsOfUse,poweredBy;var cache=OpenLayers.Layer.Google.cache[this.map.id];if(cache){mapObject=cache.mapObject;termsOfUse=cache.termsOfUse;poweredBy=cache.poweredBy;++cache.count;}else{var container=this.map.viewPortDiv;var div=document.createElement("div");div.id=this.map.id+"_GMap2Container";div.style.position="absolute";div.style.width="100%";div.style.height="100%";container.appendChild(div);try{mapObject=new GMap2(div);termsOfUse=div.lastChild;container.appendChild(term [...]
+OpenLayers.Layer.Google.cache[this.map.id]={mapObject:mapObject,termsOfUse:termsOfUse,poweredBy:poweredBy,count:1};}
+this.mapObject=mapObject;this.termsOfUse=termsOfUse;this.poweredBy=poweredBy;if(OpenLayers.Util.indexOf(this.mapObject.getMapTypes(),this.type)===-1){this.mapObject.addMapType(this.type);}
+if(typeof mapObject.getDragObject=="function"){this.dragObject=mapObject.getDragObject();}else{this.dragPanMapObject=null;}
+if(this.isBaseLayer===false){this.setGMapVisibility(this.div.style.display!=="none");}},onMapResize:function(){if(this.visibility&&this.mapObject.isLoaded()){this.mapObject.checkResize();}else{if(!this._resized){var layer=this;var handle=GEvent.addListener(this.mapObject,"load",function(){GEvent.removeListener(handle);delete layer._resized;layer.mapObject.checkResize();layer.moveTo(layer.map.getCenter(),layer.map.getZoom());});}
+this._resized=true;}},setGMapVisibility:function(visible){var cache=OpenLayers.Layer.Google.cache[this.map.id];if(cache){var container=this.mapObject.getContainer();if(visible===true){this.mapObject.setMapType(this.type);container.style.display="";this.termsOfUse.style.left="";this.termsOfUse.style.display="";this.poweredBy.style.display="";cache.displayed=this.id;}else{if(cache.displayed===this.id){delete cache.displayed;}
+if(!cache.displayed){container.style.display="none";this.termsOfUse.style.display="none";this.termsOfUse.style.left="-9999px";this.poweredBy.style.display="none";}}}},getMapContainer:function(){return this.mapObject.getContainer();},getMapObjectBoundsFromOLBounds:function(olBounds){var moBounds=null;if(olBounds!=null){var sw=this.sphericalMercator?this.inverseMercator(olBounds.bottom,olBounds.left):new OpenLayers.LonLat(olBounds.bottom,olBounds.left);var ne=this.sphericalMercator?this.in [...]
+return moBounds;},setMapObjectCenter:function(center,zoom){this.mapObject.setCenter(center,zoom);},dragPanMapObject:function(dX,dY){this.dragObject.moveBy(new GSize(-dX,dY));},getMapObjectLonLatFromMapObjectPixel:function(moPixel){return this.mapObject.fromContainerPixelToLatLng(moPixel);},getMapObjectPixelFromMapObjectLonLat:function(moLonLat){return this.mapObject.fromLatLngToContainerPixel(moLonLat);},getMapObjectZoomFromMapObjectBounds:function(moBounds){return this.mapObject.getBoun [...]
+return gLatLng;},getMapObjectPixelFromXY:function(x,y){return new GPoint(x,y);}};OpenLayers.Format.XML=OpenLayers.Class(OpenLayers.Format,{namespaces:null,namespaceAlias:null,defaultPrefix:null,readers:{},writers:{},xmldom:null,initialize:function(options){if(window.ActiveXObject){this.xmldom=new ActiveXObject("Microsoft.XMLDOM");}
+OpenLayers.Format.prototype.initialize.apply(this,[options]);this.namespaces=OpenLayers.Util.extend({},this.namespaces);this.namespaceAlias={};for(var alias in this.namespaces){this.namespaceAlias[this.namespaces[alias]]=alias;}},destroy:function(){this.xmldom=null;OpenLayers.Format.prototype.destroy.apply(this,arguments);},setNamespace:function(alias,uri){this.namespaces[alias]=uri;this.namespaceAlias[uri]=alias;},read:function(text){var index=text.indexOf('<');if(index>0){text=text.sub [...]
+var node=OpenLayers.Util.Try(OpenLayers.Function.bind((function(){var xmldom;if(window.ActiveXObject&&!this.xmldom){xmldom=new ActiveXObject("Microsoft.XMLDOM");}else{xmldom=this.xmldom;}
+xmldom.loadXML(text);return xmldom;}),this),function(){return new DOMParser().parseFromString(text,'text/xml');},function(){var req=new XMLHttpRequest();req.open("GET","data:"+"text/xml"+";charset=utf-8,"+encodeURIComponent(text),false);if(req.overrideMimeType){req.overrideMimeType("text/xml");}
+req.send(null);return req.responseXML;});if(this.keepData){this.data=node;}
+return node;},write:function(node){var data;if(this.xmldom){data=node.xml;}else{var serializer=new XMLSerializer();if(node.nodeType==1){var doc=document.implementation.createDocument("","",null);if(doc.importNode){node=doc.importNode(node,true);}
+doc.appendChild(node);data=serializer.serializeToString(doc);}else{data=serializer.serializeToString(node);}}
+return data;},createElementNS:function(uri,name){var element;if(this.xmldom){if(typeof uri=="string"){element=this.xmldom.createNode(1,name,uri);}else{element=this.xmldom.createNode(1,name,"");}}else{element=document.createElementNS(uri,name);}
+return element;},createTextNode:function(text){var node;if(typeof text!=="string"){text=String(text);}
+if(this.xmldom){node=this.xmldom.createTextNode(text);}else{node=document.createTextNode(text);}
+return node;},getElementsByTagNameNS:function(node,uri,name){var elements=[];if(node.getElementsByTagNameNS){elements=node.getElementsByTagNameNS(uri,name);}else{var allNodes=node.getElementsByTagName("*");var potentialNode,fullName;for(var i=0,len=allNodes.length;i<len;++i){potentialNode=allNodes[i];fullName=(potentialNode.prefix)?(potentialNode.prefix+":"+name):name;if((name=="*")||(fullName==potentialNode.nodeName)){if((uri=="*")||(uri==potentialNode.namespaceURI)){elements.push(poten [...]
+return elements;},getAttributeNodeNS:function(node,uri,name){var attributeNode=null;if(node.getAttributeNodeNS){attributeNode=node.getAttributeNodeNS(uri,name);}else{var attributes=node.attributes;var potentialNode,fullName;for(var i=0,len=attributes.length;i<len;++i){potentialNode=attributes[i];if(potentialNode.namespaceURI==uri){fullName=(potentialNode.prefix)?(potentialNode.prefix+":"+name):name;if(fullName==potentialNode.nodeName){attributeNode=potentialNode;break;}}}}
+return attributeNode;},getAttributeNS:function(node,uri,name){var attributeValue="";if(node.getAttributeNS){attributeValue=node.getAttributeNS(uri,name)||"";}else{var attributeNode=this.getAttributeNodeNS(node,uri,name);if(attributeNode){attributeValue=attributeNode.nodeValue;}}
+return attributeValue;},getChildValue:function(node,def){var value=def||"";if(node){for(var child=node.firstChild;child;child=child.nextSibling){switch(child.nodeType){case 3:case 4:value+=child.nodeValue;}}}
+return value;},concatChildValues:function(node,def){var value="";var child=node.firstChild;var childValue;while(child){childValue=child.nodeValue;if(childValue){value+=childValue;}
+child=child.nextSibling;}
+if(value==""&&def!=undefined){value=def;}
+return value;},isSimpleContent:function(node){var simple=true;for(var child=node.firstChild;child;child=child.nextSibling){if(child.nodeType===1){simple=false;break;}}
+return simple;},contentType:function(node){var simple=false,complex=false;var type=OpenLayers.Format.XML.CONTENT_TYPE.EMPTY;for(var child=node.firstChild;child;child=child.nextSibling){switch(child.nodeType){case 1:complex=true;break;case 8:break;default:simple=true;}
+if(complex&&simple){break;}}
+if(complex&&simple){type=OpenLayers.Format.XML.CONTENT_TYPE.MIXED;}else if(complex){return OpenLayers.Format.XML.CONTENT_TYPE.COMPLEX;}else if(simple){return OpenLayers.Format.XML.CONTENT_TYPE.SIMPLE;}
+return type;},hasAttributeNS:function(node,uri,name){var found=false;if(node.hasAttributeNS){found=node.hasAttributeNS(uri,name);}else{found=!!this.getAttributeNodeNS(node,uri,name);}
+return found;},setAttributeNS:function(node,uri,name,value){if(node.setAttributeNS){node.setAttributeNS(uri,name,value);}else{if(this.xmldom){if(uri){var attribute=node.ownerDocument.createNode(2,name,uri);attribute.nodeValue=value;node.setAttributeNode(attribute);}else{node.setAttribute(name,value);}}else{throw"setAttributeNS not implemented";}}},createElementNSPlus:function(name,options){options=options||{};var uri=options.uri||this.namespaces[options.prefix];if(!uri){var loc=name.inde [...]
+if(!uri){uri=this.namespaces[this.defaultPrefix];}
+var node=this.createElementNS(uri,name);if(options.attributes){this.setAttributes(node,options.attributes);}
+var value=options.value;if(value!=null){node.appendChild(this.createTextNode(value));}
+return node;},setAttributes:function(node,obj){var value,uri;for(var name in obj){if(obj[name]!=null&&obj[name].toString){value=obj[name].toString();uri=this.namespaces[name.substring(0,name.indexOf(":"))]||null;this.setAttributeNS(node,uri,name,value);}}},readNode:function(node,obj){if(!obj){obj={};}
+var group=this.readers[node.namespaceURI?this.namespaceAlias[node.namespaceURI]:this.defaultPrefix];if(group){var local=node.localName||node.nodeName.split(":").pop();var reader=group[local]||group["*"];if(reader){reader.apply(this,[node,obj]);}}
+return obj;},readChildNodes:function(node,obj){if(!obj){obj={};}
+var children=node.childNodes;var child;for(var i=0,len=children.length;i<len;++i){child=children[i];if(child.nodeType==1){this.readNode(child,obj);}}
+return obj;},writeNode:function(name,obj,parent){var prefix,local;var split=name.indexOf(":");if(split>0){prefix=name.substring(0,split);local=name.substring(split+1);}else{if(parent){prefix=this.namespaceAlias[parent.namespaceURI];}else{prefix=this.defaultPrefix;}
+local=name;}
+var child=this.writers[prefix][local].apply(this,[obj]);if(parent){parent.appendChild(child);}
+return child;},getChildEl:function(node,name,uri){return node&&this.getThisOrNextEl(node.firstChild,name,uri);},getNextEl:function(node,name,uri){return node&&this.getThisOrNextEl(node.nextSibling,name,uri);},getThisOrNextEl:function(node,name,uri){outer:for(var sibling=node;sibling;sibling=sibling.nextSibling){switch(sibling.nodeType){case 1:if((!name||name===(sibling.localName||sibling.nodeName.split(":").pop()))&&(!uri||uri===sibling.namespaceURI)){break outer;}
+sibling=null;break outer;case 3:if(/^\s*$/.test(sibling.nodeValue)){break;}
+case 4:case 6:case 12:case 10:case 11:sibling=null;break outer;}}
+return sibling||null;},lookupNamespaceURI:function(node,prefix){var uri=null;if(node){if(node.lookupNamespaceURI){uri=node.lookupNamespaceURI(prefix);}else{outer:switch(node.nodeType){case 1:if(node.namespaceURI!==null&&node.prefix===prefix){uri=node.namespaceURI;break outer;}
+var len=node.attributes.length;if(len){var attr;for(var i=0;i<len;++i){attr=node.attributes[i];if(attr.prefix==="xmlns"&&attr.name==="xmlns:"+prefix){uri=attr.value||null;break outer;}else if(attr.name==="xmlns"&&prefix===null){uri=attr.value||null;break outer;}}}
+uri=this.lookupNamespaceURI(node.parentNode,prefix);break outer;case 2:uri=this.lookupNamespaceURI(node.ownerElement,prefix);break outer;case 9:uri=this.lookupNamespaceURI(node.documentElement,prefix);break outer;case 6:case 12:case 10:case 11:break outer;default:uri=this.lookupNamespaceURI(node.parentNode,prefix);break outer;}}}
+return uri;},getXMLDoc:function(){if(!OpenLayers.Format.XML.document&&!this.xmldom){if(document.implementation&&document.implementation.createDocument){OpenLayers.Format.XML.document=document.implementation.createDocument("","",null);}else if(!this.xmldom&&window.ActiveXObject){this.xmldom=new ActiveXObject("Microsoft.XMLDOM");}}
+return OpenLayers.Format.XML.document||this.xmldom;},CLASS_NAME:"OpenLayers.Format.XML"});OpenLayers.Format.XML.CONTENT_TYPE={EMPTY:0,SIMPLE:1,COMPLEX:2,MIXED:3};OpenLayers.Format.XML.lookupNamespaceURI=OpenLayers.Function.bind(OpenLayers.Format.XML.prototype.lookupNamespaceURI,OpenLayers.Format.XML.prototype);OpenLayers.Format.XML.document=null;OpenLayers.Format.WFST=function(options){options=OpenLayers.Util.applyDefaults(options,OpenLayers.Format.WFST.DEFAULTS);var cls=OpenLayers.Forma [...]
+return new cls(options);};OpenLayers.Format.WFST.DEFAULTS={"version":"1.0.0"};OpenLayers.Format.WFST.v1=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",wfs:"http://www.opengis.net/wfs",gml:"http://www.opengis.net/gml",ogc:"http://www.opengis.net/ogc",ows:"http://www.opengis.net/ows"},defaultPrefix:"wfs",version:null,schemaLocations:null,srsName:null,extractAttributes:true,xy:true,stateName:null,initi [...]
+return srsName;},read:function(data,options){options=options||{};OpenLayers.Util.applyDefaults(options,{output:"features"});if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+if(data&&data.nodeType==9){data=data.documentElement;}
+var obj={};if(data){this.readNode(data,obj,true);}
+if(obj.features&&options.output==="features"){obj=obj.features;}
+return obj;},readers:{"wfs":{"FeatureCollection":function(node,obj){obj.features=[];this.readChildNodes(node,obj);}}},write:function(features,options){var node=this.writeNode("wfs:Transaction",{features:features,options:options});var value=this.schemaLocationAttr();if(value){this.setAttributeNS(node,this.namespaces["xsi"],"xsi:schemaLocation",value);}
+return OpenLayers.Format.XML.prototype.write.apply(this,[node]);},writers:{"wfs":{"GetFeature":function(options){var node=this.createElementNSPlus("wfs:GetFeature",{attributes:{service:"WFS",version:this.version,handle:options&&options.handle,outputFormat:options&&options.outputFormat,maxFeatures:options&&options.maxFeatures,"xsi:schemaLocation":this.schemaLocationAttr(options)}});if(typeof this.featureType=="string"){this.writeNode("Query",options,node);}else{for(var i=0,len=this.featur [...]
+return node;},"Transaction":function(obj){obj=obj||{};var options=obj.options||{};var node=this.createElementNSPlus("wfs:Transaction",{attributes:{service:"WFS",version:this.version,handle:options.handle}});var i,len;var features=obj.features;if(features){if(options.multi===true){OpenLayers.Util.extend(this.geometryTypes,{"OpenLayers.Geometry.Point":"MultiPoint","OpenLayers.Geometry.LineString":(this.multiCurve===true)?"MultiCurve":"MultiLineString","OpenLayers.Geometry.Polygon":(this.mu [...]
+var name,feature;for(i=0,len=features.length;i<len;++i){feature=features[i];name=this.stateName[feature.state];if(name){this.writeNode(name,{feature:feature,options:options},node);}}
+if(options.multi===true){this.setGeometryTypes();}}
+if(options.nativeElements){for(i=0,len=options.nativeElements.length;i<len;++i){this.writeNode("wfs:Native",options.nativeElements[i],node);}}
+return node;},"Native":function(nativeElement){var node=this.createElementNSPlus("wfs:Native",{attributes:{vendorId:nativeElement.vendorId,safeToIgnore:nativeElement.safeToIgnore},value:nativeElement.value});return node;},"Insert":function(obj){var feature=obj.feature;var options=obj.options;var node=this.createElementNSPlus("wfs:Insert",{attributes:{handle:options&&options.handle}});this.srsName=this.getSrsName(feature);this.writeNode("feature:_typeName",feature,node);return node;},"Upd [...]
+this.featureType}});if(this.featureNS){node.setAttribute("xmlns:"+this.featurePrefix,this.featureNS);}
+var modified=feature.modified;if(this.geometryName!==null&&(!modified||modified.geometry!==undefined)){this.srsName=this.getSrsName(feature);this.writeNode("Property",{name:this.geometryName,value:feature.geometry},node);}
+for(var key in feature.attributes){if(feature.attributes[key]!==undefined&&(!modified||!modified.attributes||(modified.attributes&&modified.attributes[key]!==undefined))){this.writeNode("Property",{name:key,value:feature.attributes[key]},node);}}
+this.writeNode("ogc:Filter",new OpenLayers.Filter.FeatureId({fids:[feature.fid]}),node);return node;},"Property":function(obj){var node=this.createElementNSPlus("wfs:Property");this.writeNode("Name",obj.name,node);if(obj.value!==null){this.writeNode("Value",obj.value,node);}
+return node;},"Name":function(name){return this.createElementNSPlus("wfs:Name",{value:name});},"Value":function(obj){var node;if(obj instanceof OpenLayers.Geometry){node=this.createElementNSPlus("wfs:Value");var geom=this.writeNode("feature:_geometry",obj).firstChild;node.appendChild(geom);}else{node=this.createElementNSPlus("wfs:Value",{value:obj});}
+return node;},"Delete":function(obj){var feature=obj.feature;var options=obj.options;var node=this.createElementNSPlus("wfs:Delete",{attributes:{handle:options&&options.handle,typeName:(this.featureNS?this.featurePrefix+":":"")+
+this.featureType}});if(this.featureNS){node.setAttribute("xmlns:"+this.featurePrefix,this.featureNS);}
+this.writeNode("ogc:Filter",new OpenLayers.Filter.FeatureId({fids:[feature.fid]}),node);return node;}}},schemaLocationAttr:function(options){options=OpenLayers.Util.extend({featurePrefix:this.featurePrefix,schema:this.schema},options);var schemaLocations=OpenLayers.Util.extend({},this.schemaLocations);if(options.schema){schemaLocations[options.featurePrefix]=options.schema;}
+var parts=[];var uri;for(var key in schemaLocations){uri=this.namespaces[key];if(uri){parts.push(uri+" "+schemaLocations[key]);}}
+var value=parts.join(" ")||undefined;return value;},setFilterProperty:function(filter){if(filter.filters){for(var i=0,len=filter.filters.length;i<len;++i){this.setFilterProperty(filter.filters[i]);}}else{if(filter instanceof OpenLayers.Filter.Spatial){filter.property=this.geometryName;}}},CLASS_NAME:"OpenLayers.Format.WFST.v1"});OpenLayers.Format.OGCExceptionReport=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{ogc:"http://www.opengis.net/ogc"},regExes:{trimSpace:(/^\s*|\s*$/g),remo [...]
+var root=data.documentElement;var exceptionInfo={exceptionReport:null};if(root){this.readChildNodes(data,exceptionInfo);if(exceptionInfo.exceptionReport===null){exceptionInfo=new OpenLayers.Format.OWSCommon().read(data);}}
+return exceptionInfo;},readers:{"ogc":{"ServiceExceptionReport":function(node,obj){obj.exceptionReport={exceptions:[]};this.readChildNodes(node,obj.exceptionReport);},"ServiceException":function(node,exceptionReport){var exception={code:node.getAttribute("code"),locator:node.getAttribute("locator"),text:this.getChildValue(node)};exceptionReport.exceptions.push(exception);}}},CLASS_NAME:"OpenLayers.Format.OGCExceptionReport"});OpenLayers.Format.XML.VersionedOGC=OpenLayers.Class(OpenLayers [...]
+return version;},getParser:function(version){version=version||this.defaultVersion;var profile=this.profile?"_"+this.profile:"";if(!this.parser||this.parser.VERSION!=version){var format=OpenLayers.Format[this.name]["v"+version.replace(/\./g,"_")+profile];if(!format){throw"Can't find a "+this.name+" parser for version "+
+version+profile;}
+this.parser=new format(this.options);}
+return this.parser;},write:function(obj,options){var version=this.getVersion(null,options);this.parser=this.getParser(version);var root=this.parser.write(obj,options);if(this.stringifyOutput===false){return root;}else{return OpenLayers.Format.XML.prototype.write.apply(this,[root]);}},read:function(data,options){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+var root=data.documentElement;var version=this.getVersion(root);this.parser=this.getParser(version);var obj=this.parser.read(data,options);if(this.errorProperty!==null&&obj[this.errorProperty]===undefined){var format=new OpenLayers.Format.OGCExceptionReport();obj.error=format.read(data);}
+obj.version=version;return obj;},CLASS_NAME:"OpenLayers.Format.XML.VersionedOGC"});OpenLayers.Style=OpenLayers.Class({id:null,name:null,title:null,description:null,layerName:null,isDefault:false,rules:null,context:null,defaultStyle:null,defaultsPerSymbolizer:false,propertyStyles:null,initialize:function(style,options){OpenLayers.Util.extend(this,options);this.rules=[];if(options&&options.rules){this.addRules(options.rules);}
+this.setDefaultStyle(style||OpenLayers.Feature.Vector.style["default"]);this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){for(var i=0,len=this.rules.length;i<len;i++){this.rules[i].destroy();this.rules[i]=null;}
+this.rules=null;this.defaultStyle=null;},createSymbolizer:function(feature){var style=this.defaultsPerSymbolizer?{}:this.createLiterals(OpenLayers.Util.extend({},this.defaultStyle),feature);var rules=this.rules;var rule,context;var elseRules=[];var appliedRules=false;for(var i=0,len=rules.length;i<len;i++){rule=rules[i];var applies=rule.evaluate(feature);if(applies){if(rule instanceof OpenLayers.Rule&&rule.elseFilter){elseRules.push(rule);}else{appliedRules=true;this.applySymbolizer(rule [...]
+if(appliedRules==false&&elseRules.length>0){appliedRules=true;for(var i=0,len=elseRules.length;i<len;i++){this.applySymbolizer(elseRules[i],style,feature);}}
+if(rules.length>0&&appliedRules==false){style.display="none";}
+if(style.label&&typeof style.label!=="string"){style.label=String(style.label);}
+return style;},applySymbolizer:function(rule,style,feature){var symbolizerPrefix=feature.geometry?this.getSymbolizerPrefix(feature.geometry):OpenLayers.Style.SYMBOLIZER_PREFIXES[0];var symbolizer=rule.symbolizer[symbolizerPrefix]||rule.symbolizer;if(this.defaultsPerSymbolizer===true){var defaults=this.defaultStyle;OpenLayers.Util.applyDefaults(symbolizer,{pointRadius:defaults.pointRadius});if(symbolizer.stroke===true||symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{s [...]
+if(symbolizer.fill===true||symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{fillColor:defaults.fillColor,fillOpacity:defaults.fillOpacity});}
+if(symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{pointRadius:this.defaultStyle.pointRadius,externalGraphic:this.defaultStyle.externalGraphic,graphicName:this.defaultStyle.graphicName,graphicOpacity:this.defaultStyle.graphicOpacity,graphicWidth:this.defaultStyle.graphicWidth,graphicHeight:this.defaultStyle.graphicHeight,graphicXOffset:this.defaultStyle.graphicXOffset,graphicYOffset:this.defaultStyle.graphicYOffset});}}
+return this.createLiterals(OpenLayers.Util.extend(style,symbolizer),feature);},createLiterals:function(style,feature){var context=OpenLayers.Util.extend({},feature.attributes||feature.data);OpenLayers.Util.extend(context,this.context);for(var i in this.propertyStyles){style[i]=OpenLayers.Style.createLiteral(style[i],context,feature,i);}
+return style;},findPropertyStyles:function(){var propertyStyles={};var style=this.defaultStyle;this.addPropertyStyles(propertyStyles,style);var rules=this.rules;var symbolizer,value;for(var i=0,len=rules.length;i<len;i++){symbolizer=rules[i].symbolizer;for(var key in symbolizer){value=symbolizer[key];if(typeof value=="object"){this.addPropertyStyles(propertyStyles,value);}else{this.addPropertyStyles(propertyStyles,symbolizer);break;}}}
+return propertyStyles;},addPropertyStyles:function(propertyStyles,symbolizer){var property;for(var key in symbolizer){property=symbolizer[key];if(typeof property=="string"&&property.match(/\$\{\w+\}/)){propertyStyles[key]=true;}}
+return propertyStyles;},addRules:function(rules){Array.prototype.push.apply(this.rules,rules);this.propertyStyles=this.findPropertyStyles();},setDefaultStyle:function(style){this.defaultStyle=style;this.propertyStyles=this.findPropertyStyles();},getSymbolizerPrefix:function(geometry){var prefixes=OpenLayers.Style.SYMBOLIZER_PREFIXES;for(var i=0,len=prefixes.length;i<len;i++){if(geometry.CLASS_NAME.indexOf(prefixes[i])!=-1){return prefixes[i];}}},clone:function(){var options=OpenLayers.Ut [...]
+options.context=this.context&&OpenLayers.Util.extend({},this.context);var defaultStyle=OpenLayers.Util.extend({},this.defaultStyle);return new OpenLayers.Style(defaultStyle,options);},CLASS_NAME:"OpenLayers.Style"});OpenLayers.Style.createLiteral=function(value,context,feature,property){if(typeof value=="string"&&value.indexOf("${")!=-1){value=OpenLayers.String.format(value,context,[feature,property]);value=(isNaN(value)||!value)?value:parseFloat(value);}
+return value;};OpenLayers.Style.SYMBOLIZER_PREFIXES=['Point','Line','Polygon','Text','Raster'];OpenLayers.Filter=OpenLayers.Class({initialize:function(options){OpenLayers.Util.extend(this,options);},destroy:function(){},evaluate:function(context){return true;},clone:function(){return null;},CLASS_NAME:"OpenLayers.Filter"});OpenLayers.Filter.FeatureId=OpenLayers.Class(OpenLayers.Filter,{fids:null,type:"FID",initialize:function(options){this.fids=[];OpenLayers.Filter.prototype.initialize.a [...]
+return false;},clone:function(){var filter=new OpenLayers.Filter.FeatureId();OpenLayers.Util.extend(filter,this);filter.fids=this.fids.slice();return filter;},CLASS_NAME:"OpenLayers.Filter.FeatureId"});OpenLayers.Filter.Logical=OpenLayers.Class(OpenLayers.Filter,{filters:null,type:null,initialize:function(options){this.filters=[];OpenLayers.Filter.prototype.initialize.apply(this,[options]);},destroy:function(){this.filters=null;OpenLayers.Filter.prototype.destroy.apply(this);},evaluate:f [...]
+return true;case OpenLayers.Filter.Logical.OR:for(i=0,len=this.filters.length;i<len;i++){if(this.filters[i].evaluate(context)==true){return true;}}
+return false;case OpenLayers.Filter.Logical.NOT:return(!this.filters[0].evaluate(context));}
+return undefined;},clone:function(){var filters=[];for(var i=0,len=this.filters.length;i<len;++i){filters.push(this.filters[i].clone());}
+return new OpenLayers.Filter.Logical({type:this.type,filters:filters});},CLASS_NAME:"OpenLayers.Filter.Logical"});OpenLayers.Filter.Logical.AND="&&";OpenLayers.Filter.Logical.OR="||";OpenLayers.Filter.Logical.NOT="!";OpenLayers.Filter.Comparison=OpenLayers.Class(OpenLayers.Filter,{type:null,property:null,value:null,matchCase:true,lowerBoundary:null,upperBoundary:null,initialize:function(options){OpenLayers.Filter.prototype.initialize.apply(this,[options]);if(this.type===OpenLayers.Filter [...]
+var result=false;var got=context[this.property];var exp;switch(this.type){case OpenLayers.Filter.Comparison.EQUAL_TO:exp=this.value;if(!this.matchCase&&typeof got=="string"&&typeof exp=="string"){result=(got.toUpperCase()==exp.toUpperCase());}else{result=(got==exp);}
+break;case OpenLayers.Filter.Comparison.NOT_EQUAL_TO:exp=this.value;if(!this.matchCase&&typeof got=="string"&&typeof exp=="string"){result=(got.toUpperCase()!=exp.toUpperCase());}else{result=(got!=exp);}
+break;case OpenLayers.Filter.Comparison.LESS_THAN:result=got<this.value;break;case OpenLayers.Filter.Comparison.GREATER_THAN:result=got>this.value;break;case OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO:result=got<=this.value;break;case OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO:result=got>=this.value;break;case OpenLayers.Filter.Comparison.BETWEEN:result=(got>=this.lowerBoundary)&&(got<=this.upperBoundary);break;case OpenLayers.Filter.Comparison.LIKE:var regexp=new RegE [...]
+return result;},value2regex:function(wildCard,singleChar,escapeChar){if(wildCard=="."){var msg="'.' is an unsupported wildCard character for "+"OpenLayers.Filter.Comparison";OpenLayers.Console.error(msg);return null;}
+wildCard=wildCard?wildCard:"*";singleChar=singleChar?singleChar:".";escapeChar=escapeChar?escapeChar:"!";this.value=this.value.replace(new RegExp("\\"+escapeChar+"(.|$)","g"),"\\$1");this.value=this.value.replace(new RegExp("\\"+singleChar,"g"),".");this.value=this.value.replace(new RegExp("\\"+wildCard,"g"),".*");this.value=this.value.replace(new RegExp("\\\\.\\*","g"),"\\"+wildCard);this.value=this.value.replace(new RegExp("\\\\\\.","g"),"\\"+singleChar);return this.value;},regex2value [...]
+return value;},writeOgcExpression:function(value,node){if(value instanceof OpenLayers.Filter.Function){var child=this.writeNode("Function",value,node);node.appendChild(child);}else{this.writeNode("Literal",value,node);}
+return node;},write:function(filter){return this.writers.ogc["Filter"].apply(this,[filter]);},writeFeatureIdNodes:function(filter,node){for(var i=0,ii=filter.fids.length;i<ii;++i){this.writeNode("FeatureId",filter.fids[i],node);}},writers:{"ogc":{"Filter":function(filter){var node=this.createElementNSPlus("ogc:Filter");if(filter.type==="FID"){this.writeFeatureIdNodes(filter,node);}else{this.writeNode(this.getFilterType(filter),filter,node);}
+return node;},"FeatureId":function(fid){return this.createElementNSPlus("ogc:FeatureId",{attributes:{fid:fid}});},"And":function(filter){var node=this.createElementNSPlus("ogc:And");var childFilter;for(var i=0,ii=filter.filters.length;i<ii;++i){childFilter=filter.filters[i];if(childFilter.type==="FID"){this.writeFeatureIdNodes(childFilter,node);}else{this.writeNode(this.getFilterType(childFilter),childFilter,node);}}
+return node;},"Or":function(filter){var node=this.createElementNSPlus("ogc:Or");var childFilter;for(var i=0,ii=filter.filters.length;i<ii;++i){childFilter=filter.filters[i];if(childFilter.type==="FID"){this.writeFeatureIdNodes(childFilter,node);}else{this.writeNode(this.getFilterType(childFilter),childFilter,node);}}
+return node;},"Not":function(filter){var node=this.createElementNSPlus("ogc:Not");var childFilter=filter.filters[0];if(childFilter.type==="FID"){this.writeFeatureIdNodes(childFilter,node);}else{this.writeNode(this.getFilterType(childFilter),childFilter,node);}
+return node;},"PropertyIsLessThan":function(filter){var node=this.createElementNSPlus("ogc:PropertyIsLessThan");this.writeNode("PropertyName",filter,node);this.writeOgcExpression(filter.value,node);return node;},"PropertyIsGreaterThan":function(filter){var node=this.createElementNSPlus("ogc:PropertyIsGreaterThan");this.writeNode("PropertyName",filter,node);this.writeOgcExpression(filter.value,node);return node;},"PropertyIsLessThanOrEqualTo":function(filter){var node=this.createElementNS [...]
+return node;}}},getFilterType:function(filter){var filterType=this.filterMap[filter.type];if(!filterType){throw"Filter writing not supported for rule type: "+filter.type;}
+return filterType;},filterMap:{"&&":"And","||":"Or","!":"Not","==":"PropertyIsEqualTo","!=":"PropertyIsNotEqualTo","<":"PropertyIsLessThan",">":"PropertyIsGreaterThan","<=":"PropertyIsLessThanOrEqualTo",">=":"PropertyIsGreaterThanOrEqualTo","..":"PropertyIsBetween","~":"PropertyIsLike","BBOX":"BBOX","DWITHIN":"DWITHIN","WITHIN":"WITHIN","CONTAINS":"CONTAINS","INTERSECTS":"INTERSECTS","FID":"FeatureId"},CLASS_NAME:"OpenLayers.Format.Filter.v1"});OpenLayers.Geometry=OpenLayers.Class({id:nu [...]
+return this.bounds;},calculateBounds:function(){},distanceTo:function(geometry,options){},getVertices:function(nodes){},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;var bounds=this.getBounds();if((bounds!=null)&&(lonlat!=null)){var dX=(toleranceLon!=null)?toleranceLon:0;var dY=(toleranceLat!=null)?toleranceLat:0;var toleranceBounds=new OpenLayers.Bounds(this.bounds.left-dX,this.bounds.bottom-dY,this.bounds.right+dX,this.bounds.top+dY);atPoint=toleranceBounds.conta [...]
+return atPoint;},getLength:function(){return 0.0;},getArea:function(){return 0.0;},getCentroid:function(){return null;},toString:function(){return OpenLayers.Format.WKT.prototype.write(new OpenLayers.Feature.Vector(this));},CLASS_NAME:"OpenLayers.Geometry"});OpenLayers.Geometry.fromWKT=function(wkt){var format=arguments.callee.format;if(!format){format=new OpenLayers.Format.WKT();arguments.callee.format=format;}
+var geom;var result=format.read(wkt);if(result instanceof OpenLayers.Feature.Vector){geom=result.geometry;}else if(OpenLayers.Util.isArray(result)){var len=result.length;var components=new Array(len);for(var i=0;i<len;++i){components[i]=result[i].geometry;}
+geom=new OpenLayers.Geometry.Collection(components);}
+return geom;};OpenLayers.Geometry.segmentsIntersect=function(seg1,seg2,options){var point=options&&options.point;var tolerance=options&&options.tolerance;var intersection=false;var x11_21=seg1.x1-seg2.x1;var y11_21=seg1.y1-seg2.y1;var x12_11=seg1.x2-seg1.x1;var y12_11=seg1.y2-seg1.y1;var y22_21=seg2.y2-seg2.y1;var x22_21=seg2.x2-seg2.x1;var d=(y22_21*x12_11)-(x22_21*y12_11);var n1=(x22_21*y11_21)-(y22_21*x11_21);var n2=(x12_11*y11_21)-(y12_11*x11_21);if(d==0){if(n1==0&&n2==0){intersectio [...]
+if(tolerance){var dist;if(intersection){if(point){var segs=[seg1,seg2];var seg,x,y;outer:for(var i=0;i<2;++i){seg=segs[i];for(var j=1;j<3;++j){x=seg["x"+j];y=seg["y"+j];dist=Math.sqrt(Math.pow(x-intersection.x,2)+
+Math.pow(y-intersection.y,2));if(dist<tolerance){intersection.x=x;intersection.y=y;break outer;}}}}}else{var segs=[seg1,seg2];var source,target,x,y,p,result;outer:for(var i=0;i<2;++i){source=segs[i];target=segs[(i+1)%2];for(var j=1;j<3;++j){p={x:source["x"+j],y:source["y"+j]};result=OpenLayers.Geometry.distanceToSegment(p,target);if(result.distance<tolerance){if(point){intersection=new OpenLayers.Geometry.Point(p.x,p.y);}else{intersection=true;}
+break outer;}}}}}
+return intersection;};OpenLayers.Geometry.distanceToSegment=function(point,segment){var x0=point.x;var y0=point.y;var x1=segment.x1;var y1=segment.y1;var x2=segment.x2;var y2=segment.y2;var dx=x2-x1;var dy=y2-y1;var along=((dx*(x0-x1))+(dy*(y0-y1)))/(Math.pow(dx,2)+Math.pow(dy,2));var x,y;if(along<=0.0){x=x1;y=y1;}else if(along>=1.0){x=x2;y=y2;}else{x=x1+along*dx;y=y1+along*dy;}
+return{distance:Math.sqrt(Math.pow(x-x0,2)+Math.pow(y-y0,2)),x:x,y:y};};OpenLayers.Geometry.Point=OpenLayers.Class(OpenLayers.Geometry,{x:null,y:null,initialize:function(x,y){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.x=parseFloat(x);this.y=parseFloat(y);},clone:function(obj){if(obj==null){obj=new OpenLayers.Geometry.Point(this.x,this.y);}
+OpenLayers.Util.applyDefaults(obj,this);return obj;},calculateBounds:function(){this.bounds=new OpenLayers.Bounds(this.x,this.y,this.x,this.y);},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var distance,x0,y0,x1,y1,result;if(geometry instanceof OpenLayers.Geometry.Point){x0=this.x;y0=this.y;x1=geometry.x;y1=geometry.y;distance=Math.sqrt(Math.pow(x0-x1,2)+Math.pow(y0-y1,2));result=!details?distance:{x0:x0,y0:y0, [...]
+return result;},equals:function(geom){var equals=false;if(geom!=null){equals=((this.x==geom.x&&this.y==geom.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(geom.x)&&isNaN(geom.y)));}
+return equals;},toShortString:function(){return(this.x+", "+this.y);},move:function(x,y){this.x=this.x+x;this.y=this.y+y;this.clearBounds();},rotate:function(angle,origin){angle*=Math.PI/180;var radius=this.distanceTo(origin);var theta=angle+Math.atan2(this.y-origin.y,this.x-origin.x);this.x=origin.x+(radius*Math.cos(theta));this.y=origin.y+(radius*Math.sin(theta));this.clearBounds();},getCentroid:function(){return new OpenLayers.Geometry.Point(this.x,this.y);},resize:function(scale,orig [...]
+return intersect;},transform:function(source,dest){if((source&&dest)){OpenLayers.Projection.transform(this,source,dest);this.bounds=null;}
+return this;},getVertices:function(nodes){return[this];},CLASS_NAME:"OpenLayers.Geometry.Point"});OpenLayers.Geometry.Collection=OpenLayers.Class(OpenLayers.Geometry,{components:null,componentTypes:null,initialize:function(components){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.components=[];if(components!=null){this.addComponents(components);}},destroy:function(){this.components.length=0;this.components=null;OpenLayers.Geometry.prototype.destroy.apply(this,argume [...]
+OpenLayers.Util.applyDefaults(geometry,this);return geometry;},getComponentsString:function(){var strings=[];for(var i=0,len=this.components.length;i<len;i++){strings.push(this.components[i].toShortString());}
+return strings.join(",");},calculateBounds:function(){this.bounds=null;var bounds=new OpenLayers.Bounds();var components=this.components;if(components){for(var i=0,len=components.length;i<len;i++){bounds.extend(components[i].getBounds());}}
+if(bounds.left!=null&&bounds.bottom!=null&&bounds.right!=null&&bounds.top!=null){this.setBounds(bounds);}},addComponents:function(components){if(!(OpenLayers.Util.isArray(components))){components=[components];}
+for(var i=0,len=components.length;i<len;i++){this.addComponent(components[i]);}},addComponent:function(component,index){var added=false;if(component){if(this.componentTypes==null||(OpenLayers.Util.indexOf(this.componentTypes,component.CLASS_NAME)>-1)){if(index!=null&&(index<this.components.length)){var components1=this.components.slice(0,index);var components2=this.components.slice(index,this.components.length);components1.push(component);this.components=components1.concat(components2);} [...]
+component.parent=this;this.clearBounds();added=true;}}
+return added;},removeComponents:function(components){var removed=false;if(!(OpenLayers.Util.isArray(components))){components=[components];}
+for(var i=components.length-1;i>=0;--i){removed=this.removeComponent(components[i])||removed;}
+return removed;},removeComponent:function(component){OpenLayers.Util.removeItem(this.components,component);this.clearBounds();return true;},getLength:function(){var length=0.0;for(var i=0,len=this.components.length;i<len;i++){length+=this.components[i].getLength();}
+return length;},getArea:function(){var area=0.0;for(var i=0,len=this.components.length;i<len;i++){area+=this.components[i].getArea();}
+return area;},getGeodesicArea:function(projection){var area=0.0;for(var i=0,len=this.components.length;i<len;i++){area+=this.components[i].getGeodesicArea(projection);}
+return area;},getCentroid:function(weighted){if(!weighted){return this.components.length&&this.components[0].getCentroid();}
+var len=this.components.length;if(!len){return false;}
+var areas=[];var centroids=[];var areaSum=0;var minArea=Number.MAX_VALUE;var component;for(var i=0;i<len;++i){component=this.components[i];var area=component.getArea();var centroid=component.getCentroid(true);if(isNaN(area)||isNaN(centroid.x)||isNaN(centroid.y)){continue;}
+areas.push(area);areaSum+=area;minArea=(area<minArea&&area>0)?area:minArea;centroids.push(centroid);}
+len=areas.length;if(areaSum===0){for(var i=0;i<len;++i){areas[i]=1;}
+areaSum=areas.length;}else{for(var i=0;i<len;++i){areas[i]/=minArea;}
+areaSum/=minArea;}
+var xSum=0,ySum=0,centroid,area;for(var i=0;i<len;++i){centroid=centroids[i];area=areas[i];xSum+=centroid.x*area;ySum+=centroid.y*area;}
+return new OpenLayers.Geometry.Point(xSum/areaSum,ySum/areaSum);},getGeodesicLength:function(projection){var length=0.0;for(var i=0,len=this.components.length;i<len;i++){length+=this.components[i].getGeodesicLength(projection);}
+return length;},move:function(x,y){for(var i=0,len=this.components.length;i<len;i++){this.components[i].move(x,y);}},rotate:function(angle,origin){for(var i=0,len=this.components.length;i<len;++i){this.components[i].rotate(angle,origin);}},resize:function(scale,origin,ratio){for(var i=0;i<this.components.length;++i){this.components[i].resize(scale,origin,ratio);}
+return this;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var result,best,distance;var min=Number.POSITIVE_INFINITY;for(var i=0,len=this.components.length;i<len;++i){result=this.components[i].distanceTo(geometry,options);distance=details?result.distance:result;if(distance<min){min=distance;best=result;if(min==0){break;}}}
+return best;},equals:function(geometry){var equivalent=true;if(!geometry||!geometry.CLASS_NAME||(this.CLASS_NAME!=geometry.CLASS_NAME)){equivalent=false;}else if(!(OpenLayers.Util.isArray(geometry.components))||(geometry.components.length!=this.components.length)){equivalent=false;}else{for(var i=0,len=this.components.length;i<len;++i){if(!this.components[i].equals(geometry.components[i])){equivalent=false;break;}}}
+return equivalent;},transform:function(source,dest){if(source&&dest){for(var i=0,len=this.components.length;i<len;i++){var component=this.components[i];component.transform(source,dest);}
+this.bounds=null;}
+return this;},intersects:function(geometry){var intersect=false;for(var i=0,len=this.components.length;i<len;++i){intersect=geometry.intersects(this.components[i]);if(intersect){break;}}
+return intersect;},getVertices:function(nodes){var vertices=[];for(var i=0,len=this.components.length;i<len;++i){Array.prototype.push.apply(vertices,this.components[i].getVertices(nodes));}
+return vertices;},CLASS_NAME:"OpenLayers.Geometry.Collection"});OpenLayers.Geometry.MultiPoint=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},addPoint:function(point,index){this.addComponent(point,index);},removePoint:function(point){this.removeComponent(point);},CLASS_NAME:"OpenLayers.Geometry.MultiPoint"});OpenLayers.Geometry.Curve=O [...]
+return length;},getGeodesicLength:function(projection){var geom=this;if(projection){var gg=new OpenLayers.Projection("EPSG:4326");if(!gg.equals(projection)){geom=this.clone().transform(projection,gg);}}
+var length=0.0;if(geom.components&&(geom.components.length>1)){var p1,p2;for(var i=1,len=geom.components.length;i<len;i++){p1=geom.components[i-1];p2=geom.components[i];length+=OpenLayers.Util.distVincenty({lon:p1.x,lat:p1.y},{lon:p2.x,lat:p2.y});}}
+return length*1000;},CLASS_NAME:"OpenLayers.Geometry.Curve"});OpenLayers.Geometry.LineString=OpenLayers.Class(OpenLayers.Geometry.Curve,{initialize:function(points){OpenLayers.Geometry.Curve.prototype.initialize.apply(this,arguments);},removeComponent:function(point){var removed=this.components&&(this.components.length>2);if(removed){OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments);}
+return removed;},intersects:function(geometry){var intersect=false;var type=geometry.CLASS_NAME;if(type=="OpenLayers.Geometry.LineString"||type=="OpenLayers.Geometry.LinearRing"||type=="OpenLayers.Geometry.Point"){var segs1=this.getSortedSegments();var segs2;if(type=="OpenLayers.Geometry.Point"){segs2=[{x1:geometry.x,y1:geometry.y,x2:geometry.x,y2:geometry.y}];}else{segs2=geometry.getSortedSegments();}
+var seg1,seg1x1,seg1x2,seg1y1,seg1y2,seg2,seg2y1,seg2y2;outer:for(var i=0,len=segs1.length;i<len;++i){seg1=segs1[i];seg1x1=seg1.x1;seg1x2=seg1.x2;seg1y1=seg1.y1;seg1y2=seg1.y2;inner:for(var j=0,jlen=segs2.length;j<jlen;++j){seg2=segs2[j];if(seg2.x1>seg1x2){break;}
+if(seg2.x2<seg1x1){continue;}
+seg2y1=seg2.y1;seg2y2=seg2.y2;if(Math.min(seg2y1,seg2y2)>Math.max(seg1y1,seg1y2)){continue;}
+if(Math.max(seg2y1,seg2y2)<Math.min(seg1y1,seg1y2)){continue;}
+if(OpenLayers.Geometry.segmentsIntersect(seg1,seg2)){intersect=true;break outer;}}}}else{intersect=geometry.intersects(this);}
+return intersect;},getSortedSegments:function(){var numSeg=this.components.length-1;var segments=new Array(numSeg),point1,point2;for(var i=0;i<numSeg;++i){point1=this.components[i];point2=this.components[i+1];if(point1.x<point2.x){segments[i]={x1:point1.x,y1:point1.y,x2:point2.x,y2:point2.y};}else{segments[i]={x1:point2.x,y1:point2.y,x2:point1.x,y2:point1.y};}}
+function byX1(seg1,seg2){return seg1.x1-seg2.x1;}
+return segments.sort(byX1);},splitWithSegment:function(seg,options){var edge=!(options&&options.edge===false);var tolerance=options&&options.tolerance;var lines=[];var verts=this.getVertices();var points=[];var intersections=[];var split=false;var vert1,vert2,point;var node,vertex,target;var interOptions={point:true,tolerance:tolerance};var result=null;for(var i=0,stop=verts.length-2;i<=stop;++i){vert1=verts[i];points.push(vert1.clone());vert2=verts[i+1];target={x1:vert1.x,y1:vert1.y,x2: [...]
+if(vertex||edge){if(!point.equals(intersections[intersections.length-1])){intersections.push(point.clone());}
+if(i===0){if(point.equals(vert1)){continue;}}
+if(point.equals(vert2)){continue;}
+split=true;if(!point.equals(vert1)){points.push(point);}
+lines.push(new OpenLayers.Geometry.LineString(points));points=[point.clone()];}}}
+if(split){points.push(vert2.clone());lines.push(new OpenLayers.Geometry.LineString(points));}
+if(intersections.length>0){var xDir=seg.x1<seg.x2?1:-1;var yDir=seg.y1<seg.y2?1:-1;result={lines:lines,points:intersections.sort(function(p1,p2){return(xDir*p1.x-xDir*p2.x)||(yDir*p1.y-yDir*p2.y);})};}
+return result;},split:function(target,options){var results=null;var mutual=options&&options.mutual;var sourceSplit,targetSplit,sourceParts,targetParts;if(target instanceof OpenLayers.Geometry.LineString){var verts=this.getVertices();var vert1,vert2,seg,splits,lines,point;var points=[];sourceParts=[];for(var i=0,stop=verts.length-2;i<=stop;++i){vert1=verts[i];vert2=verts[i+1];seg={x1:vert1.x,y1:vert1.y,x2:vert2.x,y2:vert2.y};targetParts=targetParts||[target];if(mutual){points.push(vert1.c [...]
+for(var j=0;j<targetParts.length;++j){splits=targetParts[j].splitWithSegment(seg,options);if(splits){lines=splits.lines;if(lines.length>0){lines.unshift(j,1);Array.prototype.splice.apply(targetParts,lines);j+=lines.length-2;}
+if(mutual){for(var k=0,len=splits.points.length;k<len;++k){point=splits.points[k];if(!point.equals(vert1)){points.push(point);sourceParts.push(new OpenLayers.Geometry.LineString(points));if(point.equals(vert2)){points=[];}else{points=[point.clone()];}}}}}}}
+if(mutual&&sourceParts.length>0&&points.length>0){points.push(vert2.clone());sourceParts.push(new OpenLayers.Geometry.LineString(points));}}else{results=target.splitWith(this,options);}
+if(targetParts&&targetParts.length>1){targetSplit=true;}else{targetParts=[];}
+if(sourceParts&&sourceParts.length>1){sourceSplit=true;}else{sourceParts=[];}
+if(targetSplit||sourceSplit){if(mutual){results=[sourceParts,targetParts];}else{results=targetParts;}}
+return results;},splitWith:function(geometry,options){return geometry.split(this,options);},getVertices:function(nodes){var vertices;if(nodes===true){vertices=[this.components[0],this.components[this.components.length-1]];}else if(nodes===false){vertices=this.components.slice(1,this.components.length-1);}else{vertices=this.components.slice();}
+return vertices;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var result,best={};var min=Number.POSITIVE_INFINITY;if(geometry instanceof OpenLayers.Geometry.Point){var segs=this.getSortedSegments();var x=geometry.x;var y=geometry.y;var seg;for(var i=0,len=segs.length;i<len;++i){seg=segs[i];result=OpenLayers.Geometry.distanceToSegment(geometry,seg);if(result.distance<min){min=result.distance;best=result;if(min= [...]
+if(details){best={distance:best.distance,x0:best.x,y0:best.y,x1:x,y1:y};}else{best=best.distance;}}else if(geometry instanceof OpenLayers.Geometry.LineString){var segs0=this.getSortedSegments();var segs1=geometry.getSortedSegments();var seg0,seg1,intersection,x0,y0;var len1=segs1.length;var interOptions={point:true};outer:for(var i=0,len=segs0.length;i<len;++i){seg0=segs0[i];x0=seg0.x1;y0=seg0.y1;for(var j=0;j<len1;++j){seg1=segs1[j];intersection=OpenLayers.Geometry.segmentsIntersect(seg [...]
+if(!details){best=best.distance;}
+if(min!==0){if(seg0){result=geometry.distanceTo(new OpenLayers.Geometry.Point(seg0.x2,seg0.y2),options);var dist=details?result.distance:result;if(dist<min){if(details){best={distance:min,x0:result.x1,y0:result.y1,x1:result.x0,y1:result.y0};}else{best=dist;}}}}}else{best=geometry.distanceTo(this,options);if(details){best={distance:best.distance,x0:best.x1,y0:best.y1,x1:best.x0,y1:best.y0};}}
+return best;},simplify:function(tolerance){if(this&&this!==null){var points=this.getVertices();if(points.length<3){return this;}
+var compareNumbers=function(a,b){return(a-b);};var douglasPeuckerReduction=function(points,firstPoint,lastPoint,tolerance){var maxDistance=0;var indexFarthest=0;for(var index=firstPoint,distance;index<lastPoint;index++){distance=perpendicularDistance(points[firstPoint],points[lastPoint],points[index]);if(distance>maxDistance){maxDistance=distance;indexFarthest=index;}}
+if(maxDistance>tolerance&&indexFarthest!=firstPoint){pointIndexsToKeep.push(indexFarthest);douglasPeuckerReduction(points,firstPoint,indexFarthest,tolerance);douglasPeuckerReduction(points,indexFarthest,lastPoint,tolerance);}};var perpendicularDistance=function(point1,point2,point){var area=Math.abs(0.5*(point1.x*point2.y+point2.x*point.y+point.x*point1.y-point2.x*point1.y-point.x*point2.y-point1.x*point.y));var bottom=Math.sqrt(Math.pow(point1.x-point2.x,2)+Math.pow(point1.y-point2.y,2) [...]
+douglasPeuckerReduction(points,firstPoint,lastPoint,tolerance);var returnPoints=[];pointIndexsToKeep.sort(compareNumbers);for(var index=0;index<pointIndexsToKeep.length;index++){returnPoints.push(points[pointIndexsToKeep[index]]);}
+return new OpenLayers.Geometry.LineString(returnPoints);}
+else{return this;}},CLASS_NAME:"OpenLayers.Geometry.LineString"});OpenLayers.Geometry.MultiLineString=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.LineString"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},split:function(geometry,options){var results=null;var mutual=options&&options.mutual;var splits,sourceLine,sourceLines,sourceSplit,targetSplit;var sourceParts=[];var targetParts=[geom [...]
+sourceSplit=true;splits=splits[1];}
+if(splits.length){splits.unshift(j,1);Array.prototype.splice.apply(targetParts,splits);break;}}}
+if(!sourceSplit){if(sourceParts.length){sourceParts[sourceParts.length-1].addComponent(sourceLine.clone());}else{sourceParts=[new OpenLayers.Geometry.MultiLineString(sourceLine.clone())];}}}
+if(sourceParts&&sourceParts.length>1){sourceSplit=true;}else{sourceParts=[];}
+if(targetParts&&targetParts.length>1){targetSplit=true;}else{targetParts=[];}
+if(sourceSplit||targetSplit){if(mutual){results=[sourceParts,targetParts];}else{results=targetParts;}}
+return results;},splitWith:function(geometry,options){var results=null;var mutual=options&&options.mutual;var splits,targetLine,sourceLines,sourceSplit,targetSplit,sourceParts,targetParts;if(geometry instanceof OpenLayers.Geometry.LineString){targetParts=[];sourceParts=[geometry];for(var i=0,len=this.components.length;i<len;++i){targetSplit=false;targetLine=this.components[i];for(var j=0;j<sourceParts.length;++j){splits=sourceParts[j].split(targetLine,options);if(splits){if(mutual){sourc [...]
+splits=splits[1];if(splits.length===0){splits=[targetLine.clone()];}}
+for(var k=0,klen=splits.length;k<klen;++k){if(k===0&&targetParts.length){targetParts[targetParts.length-1].addComponent(splits[k]);}else{targetParts.push(new OpenLayers.Geometry.MultiLineString([splits[k]]));}}
+targetSplit=true;}}
+if(!targetSplit){if(targetParts.length){targetParts[targetParts.length-1].addComponent(targetLine.clone());}else{targetParts=[new OpenLayers.Geometry.MultiLineString([targetLine.clone()])];}}}}else{results=geometry.split(this);}
+if(sourceParts&&sourceParts.length>1){sourceSplit=true;}else{sourceParts=[];}
+if(targetParts&&targetParts.length>1){targetSplit=true;}else{targetParts=[];}
+if(sourceSplit||targetSplit){if(mutual){results=[sourceParts,targetParts];}else{results=targetParts;}}
+return results;},CLASS_NAME:"OpenLayers.Geometry.MultiLineString"});OpenLayers.Geometry.LinearRing=OpenLayers.Class(OpenLayers.Geometry.LineString,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(points){OpenLayers.Geometry.LineString.prototype.initialize.apply(this,arguments);},addComponent:function(point,index){var added=false;var lastPoint=this.components.pop();if(index!=null||!point.equals(lastPoint)){added=OpenLayers.Geometry.Collection.prototype.addComponent.apply( [...]
+var firstPoint=this.components[0];OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,[firstPoint]);return added;},removeComponent:function(point){var removed=this.components&&(this.components.length>3);if(removed){this.components.pop();OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments);var firstPoint=this.components[0];OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,[firstPoint]);}
+return removed;},move:function(x,y){for(var i=0,len=this.components.length;i<len-1;i++){this.components[i].move(x,y);}},rotate:function(angle,origin){for(var i=0,len=this.components.length;i<len-1;++i){this.components[i].rotate(angle,origin);}},resize:function(scale,origin,ratio){for(var i=0,len=this.components.length;i<len-1;++i){this.components[i].resize(scale,origin,ratio);}
+return this;},transform:function(source,dest){if(source&&dest){for(var i=0,len=this.components.length;i<len-1;i++){var component=this.components[i];component.transform(source,dest);}
+this.bounds=null;}
+return this;},getCentroid:function(){if(this.components&&(this.components.length>2)){var sumX=0.0;var sumY=0.0;for(var i=0;i<this.components.length-1;i++){var b=this.components[i];var c=this.components[i+1];sumX+=(b.x+c.x)*(b.x*c.y-c.x*b.y);sumY+=(b.y+c.y)*(b.x*c.y-c.x*b.y);}
+var area=-1*this.getArea();var x=sumX/(6*area);var y=sumY/(6*area);return new OpenLayers.Geometry.Point(x,y);}else{return null;}},getArea:function(){var area=0.0;if(this.components&&(this.components.length>2)){var sum=0.0;for(var i=0,len=this.components.length;i<len-1;i++){var b=this.components[i];var c=this.components[i+1];sum+=(b.x+c.x)*(c.y-b.y);}
+area=-sum/2.0;}
+return area;},getGeodesicArea:function(projection){var ring=this;if(projection){var gg=new OpenLayers.Projection("EPSG:4326");if(!gg.equals(projection)){ring=this.clone().transform(projection,gg);}}
+var area=0.0;var len=ring.components&&ring.components.length;if(len>2){var p1,p2;for(var i=0;i<len-1;i++){p1=ring.components[i];p2=ring.components[i+1];area+=OpenLayers.Util.rad(p2.x-p1.x)*(2+Math.sin(OpenLayers.Util.rad(p1.y))+
+Math.sin(OpenLayers.Util.rad(p2.y)));}
+area=area*6378137.0*6378137.0/2.0;}
+return area;},containsPoint:function(point){var approx=OpenLayers.Number.limitSigDigs;var digs=14;var px=approx(point.x,digs);var py=approx(point.y,digs);function getX(y,x1,y1,x2,y2){return(((x1-x2)*y)+((x2*y1)-(x1*y2)))/(y1-y2);}
+var numSeg=this.components.length-1;var start,end,x1,y1,x2,y2,cx,cy;var crosses=0;for(var i=0;i<numSeg;++i){start=this.components[i];x1=approx(start.x,digs);y1=approx(start.y,digs);end=this.components[i+1];x2=approx(end.x,digs);y2=approx(end.y,digs);if(y1==y2){if(py==y1){if(x1<=x2&&(px>=x1&&px<=x2)||x1>=x2&&(px<=x1&&px>=x2)){crosses=-1;break;}}
+continue;}
+cx=approx(getX(py,x1,y1,x2,y2),digs);if(cx==px){if(y1<y2&&(py>=y1&&py<=y2)||y1>y2&&(py<=y1&&py>=y2)){crosses=-1;break;}}
+if(cx<=px){continue;}
+if(x1!=x2&&(cx<Math.min(x1,x2)||cx>Math.max(x1,x2))){continue;}
+if(y1<y2&&(py>=y1&&py<y2)||y1>y2&&(py<y1&&py>=y2)){++crosses;}}
+var contained=(crosses==-1)?1:!!(crosses&1);return contained;},intersects:function(geometry){var intersect=false;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){intersect=this.containsPoint(geometry);}else if(geometry.CLASS_NAME=="OpenLayers.Geometry.LineString"){intersect=geometry.intersects(this);}else if(geometry.CLASS_NAME=="OpenLayers.Geometry.LinearRing"){intersect=OpenLayers.Geometry.LineString.prototype.intersects.apply(this,[geometry]);}else{for(var i=0,len=geometry.compone [...]
+return intersect;},getVertices:function(nodes){return(nodes===true)?[]:this.components.slice(0,this.components.length-1);},CLASS_NAME:"OpenLayers.Geometry.LinearRing"});OpenLayers.Geometry.Polygon=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.LinearRing"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},getArea:function(){var area=0.0;if(this.components&&(this.components.length>0)){area+=Ma [...]
+return area;},getGeodesicArea:function(projection){var area=0.0;if(this.components&&(this.components.length>0)){area+=Math.abs(this.components[0].getGeodesicArea(projection));for(var i=1,len=this.components.length;i<len;i++){area-=Math.abs(this.components[i].getGeodesicArea(projection));}}
+return area;},containsPoint:function(point){var numRings=this.components.length;var contained=false;if(numRings>0){contained=this.components[0].containsPoint(point);if(contained!==1){if(contained&&numRings>1){var hole;for(var i=1;i<numRings;++i){hole=this.components[i].containsPoint(point);if(hole){if(hole===1){contained=1;}else{contained=false;}
+break;}}}}}
+return contained;},intersects:function(geometry){var intersect=false;var i,len;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){intersect=this.containsPoint(geometry);}else if(geometry.CLASS_NAME=="OpenLayers.Geometry.LineString"||geometry.CLASS_NAME=="OpenLayers.Geometry.LinearRing"){for(i=0,len=this.components.length;i<len;++i){intersect=geometry.intersects(this.components[i]);if(intersect){break;}}
+if(!intersect){for(i=0,len=geometry.components.length;i<len;++i){intersect=this.containsPoint(geometry.components[i]);if(intersect){break;}}}}else{for(i=0,len=geometry.components.length;i<len;++i){intersect=this.intersects(geometry.components[i]);if(intersect){break;}}}
+if(!intersect&&geometry.CLASS_NAME=="OpenLayers.Geometry.Polygon"){var ring=this.components[0];for(i=0,len=ring.components.length;i<len;++i){intersect=geometry.containsPoint(ring.components[i]);if(intersect){break;}}}
+return intersect;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var result;if(!edge&&this.intersects(geometry)){result=0;}else{result=OpenLayers.Geometry.Collection.prototype.distanceTo.apply(this,[geometry,options]);}
+return result;},CLASS_NAME:"OpenLayers.Geometry.Polygon"});OpenLayers.Geometry.Polygon.createRegularPolygon=function(origin,radius,sides,rotation){var angle=Math.PI*((1/sides)-(1/2));if(rotation){angle+=(rotation/180)*Math.PI;}
+var rotatedAngle,x,y;var points=[];for(var i=0;i<sides;++i){rotatedAngle=angle+(i*2*Math.PI/sides);x=origin.x+(radius*Math.cos(rotatedAngle));y=origin.y+(radius*Math.sin(rotatedAngle));points.push(new OpenLayers.Geometry.Point(x,y));}
+var ring=new OpenLayers.Geometry.LinearRing(points);return new OpenLayers.Geometry.Polygon([ring]);};OpenLayers.Geometry.MultiPolygon=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.Polygon"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Geometry.MultiPolygon"});OpenLayers.Format.GML=OpenLayers.Class(OpenLayers.Format.XML,{featureNS:"http://mapserver.gis.umn.edu/maps [...]
+var featureNodes=this.getElementsByTagNameNS(data.documentElement,this.gmlns,this.featureName);var features=[];for(var i=0;i<featureNodes.length;i++){var feature=this.parseFeature(featureNodes[i]);if(feature){features.push(feature);}}
+return features;},parseFeature:function(node){var order=["MultiPolygon","Polygon","MultiLineString","LineString","MultiPoint","Point","Envelope"];var type,nodeList,geometry,parser;for(var i=0;i<order.length;++i){type=order[i];nodeList=this.getElementsByTagNameNS(node,this.gmlns,type);if(nodeList.length>0){parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalP [...]
+break;}}
+var bounds;var boxNodes=this.getElementsByTagNameNS(node,this.gmlns,"Box");for(i=0;i<boxNodes.length;++i){var boxNode=boxNodes[i];var box=this.parseGeometry["box"].apply(this,[boxNode]);var parentNode=boxNode.parentNode;var parentName=parentNode.localName||parentNode.nodeName.split(":").pop();if(parentName==="boundedBy"){bounds=box;}else{geometry=box.toGeometry();}}
+var attributes;if(this.extractAttributes){attributes=this.parseAttributes(node);}
+var feature=new OpenLayers.Feature.Vector(geometry,attributes);feature.bounds=bounds;feature.gml={featureType:node.firstChild.nodeName.split(":")[1],featureNS:node.firstChild.namespaceURI,featureNSPrefix:node.firstChild.prefix};var childNode=node.firstChild;var fid;while(childNode){if(childNode.nodeType==1){fid=childNode.getAttribute("fid")||childNode.getAttribute("id");if(fid){break;}}
+childNode=childNode.nextSibling;}
+feature.fid=fid;return feature;},parseGeometry:{point:function(node){var nodeList,coordString;var coords=[];var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"pos");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);}
+if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.removeSpace,"");coords=coordString.split(",");}}
+if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coord");if(nodeList.length>0){var xList=this.getElementsByTagNameNS(nodeList[0],this.gmlns,"X");var yList=this.getElementsByTagNameNS(nodeList[0],this.gmlns,"Y");if(xList.length>0&&yList.length>0){coords=[xList[0].firstChild.nodeValue,yList[0].firstChild.nodeValue];}}}
+if(coords.length==2){coords[2]=null;}
+if(this.xy){return new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}
+else{return new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}},multipoint:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"Point");var components=[];if(nodeList.length>0){var point;for(var i=0;i<nodeList.length;++i){point=this.parseGeometry.point.apply(this,[nodeList[i]]);if(point){components.push(point);}}}
+return new OpenLayers.Geometry.MultiPoint(components);},linestring:function(node,ring){var nodeList,coordString;var coords=[];var points=[];nodeList=this.getElementsByTagNameNS(node,this.gmlns,"posList");if(nodeList.length>0){coordString=this.getChildValue(nodeList[0]);coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);var dim=parseInt(nodeList[0].getAttribute("dimension"));var j,x,y,z;for(var i=0;i<coords.length/dim;++i){j=i*dim; [...]
+if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");if(nodeList.length>0){coordString=this.getChildValue(nodeList[0]);coordString=coordString.replace(this.regExes.trimSpace,"");coordString=coordString.replace(this.regExes.trimComma,",");var pointList=coordString.split(this.regExes.splitSpace);for(var i=0;i<pointList.length;++i){coords=pointList[i].split(",");if(coords.length==2){coords[2]=null;}
+if(this.xy){points.push(new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]));}else{points.push(new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]));}}}}
+var line=null;if(points.length!=0){if(ring){line=new OpenLayers.Geometry.LinearRing(points);}else{line=new OpenLayers.Geometry.LineString(points);}}
+return line;},multilinestring:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"LineString");var components=[];if(nodeList.length>0){var line;for(var i=0;i<nodeList.length;++i){line=this.parseGeometry.linestring.apply(this,[nodeList[i]]);if(line){components.push(line);}}}
+return new OpenLayers.Geometry.MultiLineString(components);},polygon:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"LinearRing");var components=[];if(nodeList.length>0){var ring;for(var i=0;i<nodeList.length;++i){ring=this.parseGeometry.linestring.apply(this,[nodeList[i],true]);if(ring){components.push(ring);}}}
+return new OpenLayers.Geometry.Polygon(components);},multipolygon:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"Polygon");var components=[];if(nodeList.length>0){var polygon;for(var i=0;i<nodeList.length;++i){polygon=this.parseGeometry.polygon.apply(this,[nodeList[i]]);if(polygon){components.push(polygon);}}}
+return new OpenLayers.Geometry.MultiPolygon(components);},envelope:function(node){var components=[];var coordString;var envelope;var lpoint=this.getElementsByTagNameNS(node,this.gmlns,"lowerCorner");if(lpoint.length>0){var coords=[];if(lpoint.length>0){coordString=lpoint[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);}
+if(coords.length==2){coords[2]=null;}
+if(this.xy){var lowerPoint=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{var lowerPoint=new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}}
+var upoint=this.getElementsByTagNameNS(node,this.gmlns,"upperCorner");if(upoint.length>0){var coords=[];if(upoint.length>0){coordString=upoint[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);}
+if(coords.length==2){coords[2]=null;}
+if(this.xy){var upperPoint=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{var upperPoint=new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}}
+if(lowerPoint&&upperPoint){components.push(new OpenLayers.Geometry.Point(lowerPoint.x,lowerPoint.y));components.push(new OpenLayers.Geometry.Point(upperPoint.x,lowerPoint.y));components.push(new OpenLayers.Geometry.Point(upperPoint.x,upperPoint.y));components.push(new OpenLayers.Geometry.Point(lowerPoint.x,upperPoint.y));components.push(new OpenLayers.Geometry.Point(lowerPoint.x,lowerPoint.y));var ring=new OpenLayers.Geometry.LinearRing(components);envelope=new OpenLayers.Geometry.Polygo [...]
+return envelope;},box:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");var coordString;var coords,beginPoint=null,endPoint=null;if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coords=coordString.split(" ");if(coords.length==2){beginPoint=coords[0].split(",");endPoint=coords[1].split(",");}}
+if(beginPoint!==null&&endPoint!==null){return new OpenLayers.Bounds(parseFloat(beginPoint[0]),parseFloat(beginPoint[1]),parseFloat(endPoint[0]),parseFloat(endPoint[1]));}}},parseAttributes:function(node){var attributes={};var childNode=node.firstChild;var children,i,child,grandchildren,grandchild,name,value;while(childNode){if(childNode.nodeType==1){children=childNode.childNodes;for(i=0;i<children.length;++i){child=children[i];if(child.nodeType==1){grandchildren=child.childNodes;if(grand [...]
+break;}
+childNode=childNode.nextSibling;}
+return attributes;},write:function(features){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+var gml=this.createElementNS("http://www.opengis.net/wfs","wfs:"+this.collectionName);for(var i=0;i<features.length;i++){gml.appendChild(this.createFeatureXML(features[i]));}
+return OpenLayers.Format.XML.prototype.write.apply(this,[gml]);},createFeatureXML:function(feature){var geometry=feature.geometry;var geometryNode=this.buildGeometryNode(geometry);var geomContainer=this.createElementNS(this.featureNS,this.featurePrefix+":"+
+this.geometryName);geomContainer.appendChild(geometryNode);var featureNode=this.createElementNS(this.gmlns,"gml:"+this.featureName);var featureContainer=this.createElementNS(this.featureNS,this.featurePrefix+":"+
+this.layerName);var fid=feature.fid||feature.id;featureContainer.setAttribute("fid",fid);featureContainer.appendChild(geomContainer);for(var attr in feature.attributes){var attrText=this.createTextNode(feature.attributes[attr]);var nodename=attr.substring(attr.lastIndexOf(":")+1);var attrContainer=this.createElementNS(this.featureNS,this.featurePrefix+":"+
+nodename);attrContainer.appendChild(attrText);featureContainer.appendChild(attrContainer);}
+featureNode.appendChild(featureContainer);return featureNode;},buildGeometryNode:function(geometry){if(this.externalProjection&&this.internalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);}
+var className=geometry.CLASS_NAME;var type=className.substring(className.lastIndexOf(".")+1);var builder=this.buildGeometry[type.toLowerCase()];return builder.apply(this,[geometry]);},buildGeometry:{point:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:Point");gml.appendChild(this.buildCoordinatesNode(geometry));return gml;},multipoint:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:MultiPoint");var points=geometry.components;var pointMember,pointGeom;for( [...]
+return gml;},linestring:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:LineString");gml.appendChild(this.buildCoordinatesNode(geometry));return gml;},multilinestring:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:MultiLineString");var lines=geometry.components;var lineMember,lineGeom;for(var i=0;i<lines.length;++i){lineMember=this.createElementNS(this.gmlns,"gml:lineStringMember");lineGeom=this.buildGeometry.linestring.apply(this,[lines[i]]);lineMember.a [...]
+return gml;},linearring:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:LinearRing");gml.appendChild(this.buildCoordinatesNode(geometry));return gml;},polygon:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:Polygon");var rings=geometry.components;var ringMember,ringGeom,type;for(var i=0;i<rings.length;++i){type=(i==0)?"outerBoundaryIs":"innerBoundaryIs";ringMember=this.createElementNS(this.gmlns,"gml:"+type);ringGeom=this.buildGeometry.linearring.apply(thi [...]
+return gml;},multipolygon:function(geometry){var gml=this.createElementNS(this.gmlns,"gml:MultiPolygon");var polys=geometry.components;var polyMember,polyGeom;for(var i=0;i<polys.length;++i){polyMember=this.createElementNS(this.gmlns,"gml:polygonMember");polyGeom=this.buildGeometry.polygon.apply(this,[polys[i]]);polyMember.appendChild(polyGeom);gml.appendChild(polyMember);}
+return gml;},bounds:function(bounds){var gml=this.createElementNS(this.gmlns,"gml:Box");gml.appendChild(this.buildCoordinatesNode(bounds));return gml;}},buildCoordinatesNode:function(geometry){var coordinatesNode=this.createElementNS(this.gmlns,"gml:coordinates");coordinatesNode.setAttribute("decimal",".");coordinatesNode.setAttribute("cs",",");coordinatesNode.setAttribute("ts"," ");var parts=[];if(geometry instanceof OpenLayers.Bounds){parts.push(geometry.left+","+geometry.bottom);parts [...]
+var txtNode=this.createTextNode(parts.join(" "));coordinatesNode.appendChild(txtNode);return coordinatesNode;},CLASS_NAME:"OpenLayers.Format.GML"});if(!OpenLayers.Format.GML){OpenLayers.Format.GML={};}
+OpenLayers.Format.GML.Base=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{gml:"http://www.opengis.net/gml",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",wfs:"http://www.opengis.net/wfs"},defaultPrefix:"gml",schemaLocation:null,featureType:null,featureNS:null,geometryName:"geometry",extractAttributes:true,srsName:null,xy:true,geometryTypes:null,singleFeatureType:null,regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimC [...]
+this.singleFeatureType=!options||(typeof options.featureType==="string");},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+if(data&&data.nodeType==9){data=data.documentElement;}
+var features=[];this.readNode(data,{features:features},true);if(features.length==0){var elements=this.getElementsByTagNameNS(data,this.namespaces.gml,"featureMember");if(elements.length){for(var i=0,len=elements.length;i<len;++i){this.readNode(elements[i],{features:features},true);}}else{var elements=this.getElementsByTagNameNS(data,this.namespaces.gml,"featureMembers");if(elements.length){this.readNode(elements[0],{features:features},true);}}}
+return features;},readNode:function(node,obj,first){if(first===true&&this.autoConfig===true){this.featureType=null;delete this.namespaceAlias[this.featureNS];delete this.namespaces["feature"];this.featureNS=null;}
+if(!this.featureNS&&(!(node.prefix in this.namespaces)&&node.parentNode.namespaceURI==this.namespaces["gml"]&&this.regExes.featureMember.test(node.parentNode.nodeName))){this.featureType=node.nodeName.split(":").pop();this.setNamespace("feature",node.namespaceURI);this.featureNS=node.namespaceURI;this.autoConfig=true;}
+return OpenLayers.Format.XML.prototype.readNode.apply(this,[node,obj]);},readers:{"gml":{"featureMember":function(node,obj){this.readChildNodes(node,obj);},"featureMembers":function(node,obj){this.readChildNodes(node,obj);},"name":function(node,obj){obj.name=this.getChildValue(node);},"boundedBy":function(node,obj){var container={};this.readChildNodes(node,container);if(container.components&&container.components.length>0){obj.bounds=container.components[0];}},"Point":function(node,contai [...]
+container.components.push(obj.points[0]);},"coordinates":function(node,obj){var str=this.getChildValue(node).replace(this.regExes.trimSpace,"");str=str.replace(this.regExes.trimComma,",");var pointList=str.split(this.regExes.splitSpace);var coords;var numPoints=pointList.length;var points=new Array(numPoints);for(var i=0;i<numPoints;++i){coords=pointList[i].split(",");if(this.xy){points[i]=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{points[i]=new OpenLayers.Geometr [...]
+obj.points=points;},"coord":function(node,obj){var coord={};this.readChildNodes(node,coord);if(!obj.points){obj.points=[];}
+obj.points.push(new OpenLayers.Geometry.Point(coord.x,coord.y,coord.z));},"X":function(node,coord){coord.x=this.getChildValue(node);},"Y":function(node,coord){coord.y=this.getChildValue(node);},"Z":function(node,coord){coord.z=this.getChildValue(node);},"MultiPoint":function(node,container){var obj={components:[]};this.readChildNodes(node,obj);container.components=[new OpenLayers.Geometry.MultiPoint(obj.components)];},"pointMember":function(node,obj){this.readChildNodes(node,obj);},"Line [...]
+container.components.push(new OpenLayers.Geometry.LineString(obj.points));},"MultiLineString":function(node,container){var obj={components:[]};this.readChildNodes(node,obj);container.components=[new OpenLayers.Geometry.MultiLineString(obj.components)];},"lineStringMember":function(node,obj){this.readChildNodes(node,obj);},"Polygon":function(node,container){var obj={outer:null,inner:[]};this.readChildNodes(node,obj);obj.inner.unshift(obj.outer);if(!container.components){container.components=[];}
+container.components.push(new OpenLayers.Geometry.Polygon(obj.inner));},"LinearRing":function(node,obj){var container={};this.readChildNodes(node,container);obj.components=[new OpenLayers.Geometry.LinearRing(container.points)];},"MultiPolygon":function(node,container){var obj={components:[]};this.readChildNodes(node,obj);container.components=[new OpenLayers.Geometry.MultiPolygon(obj.components)];},"polygonMember":function(node,obj){this.readChildNodes(node,obj);},"GeometryCollection":fun [...]
+if(name){this.readers.feature[name].apply(this,[node,obj]);}},"_typeName":function(node,obj){var container={components:[],attributes:{}};this.readChildNodes(node,container);if(container.name){container.attributes.name=container.name;}
+var feature=new OpenLayers.Feature.Vector(container.components[0],container.attributes);if(!this.singleFeatureType){feature.type=node.nodeName.split(":").pop();feature.namespace=node.namespaceURI;}
+var fid=node.getAttribute("fid")||this.getAttributeNS(node,this.namespaces["gml"],"id");if(fid){feature.fid=fid;}
+if(this.internalProjection&&this.externalProjection&&feature.geometry){feature.geometry.transform(this.externalProjection,this.internalProjection);}
+if(container.bounds){feature.bounds=container.bounds;}
+obj.features.push(feature);},"_geometry":function(node,obj){if(!this.geometryName){this.geometryName=node.nodeName.split(":").pop();}
+this.readChildNodes(node,obj);},"_attribute":function(node,obj){var local=node.localName||node.nodeName.split(":").pop();var value=this.getChildValue(node);obj.attributes[local]=value;}},"wfs":{"FeatureCollection":function(node,obj){this.readChildNodes(node,obj);}}},write:function(features){var name;if(OpenLayers.Util.isArray(features)){name="featureMembers";}else{name="featureMember";}
+var root=this.writeNode("gml:"+name,features);this.setAttributeNS(root,this.namespaces["xsi"],"xsi:schemaLocation",this.schemaLocation);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},writers:{"gml":{"featureMember":function(feature){var node=this.createElementNSPlus("gml:featureMember");this.writeNode("feature:_typeName",feature,node);return node;},"MultiPoint":function(geometry){var node=this.createElementNSPlus("gml:MultiPoint");var components=geometry.components||[g [...]
+return node;},"pointMember":function(geometry){var node=this.createElementNSPlus("gml:pointMember");this.writeNode("Point",geometry,node);return node;},"MultiLineString":function(geometry){var node=this.createElementNSPlus("gml:MultiLineString");var components=geometry.components||[geometry];for(var i=0,ii=components.length;i<ii;++i){this.writeNode("lineStringMember",components[i],node);}
+return node;},"lineStringMember":function(geometry){var node=this.createElementNSPlus("gml:lineStringMember");this.writeNode("LineString",geometry,node);return node;},"MultiPolygon":function(geometry){var node=this.createElementNSPlus("gml:MultiPolygon");var components=geometry.components||[geometry];for(var i=0,ii=components.length;i<ii;++i){this.writeNode("polygonMember",components[i],node);}
+return node;},"polygonMember":function(geometry){var node=this.createElementNSPlus("gml:polygonMember");this.writeNode("Polygon",geometry,node);return node;},"GeometryCollection":function(geometry){var node=this.createElementNSPlus("gml:GeometryCollection");for(var i=0,len=geometry.components.length;i<len;++i){this.writeNode("geometryMember",geometry.components[i],node);}
+return node;},"geometryMember":function(geometry){var node=this.createElementNSPlus("gml:geometryMember");var child=this.writeNode("feature:_geometry",geometry);node.appendChild(child.firstChild);return node;}},"feature":{"_typeName":function(feature){var node=this.createElementNSPlus("feature:"+this.featureType,{attributes:{fid:feature.fid}});if(feature.geometry){this.writeNode("feature:_geometry",feature.geometry,node);}
+for(var name in feature.attributes){var value=feature.attributes[name];if(value!=null){this.writeNode("feature:_attribute",{name:name,value:value},node);}}
+return node;},"_geometry":function(geometry){if(this.externalProjection&&this.internalProjection){geometry=geometry.clone().transform(this.internalProjection,this.externalProjection);}
+var node=this.createElementNSPlus("feature:"+this.geometryName);var type=this.geometryTypes[geometry.CLASS_NAME];var child=this.writeNode("gml:"+type,geometry,node);if(this.srsName){child.setAttribute("srsName",this.srsName);}
+return node;},"_attribute":function(obj){return this.createElementNSPlus("feature:"+obj.name,{value:obj.value});}},"wfs":{"FeatureCollection":function(features){var node=this.createElementNSPlus("wfs:FeatureCollection");for(var i=0,len=features.length;i<len;++i){this.writeNode("gml:featureMember",features[i],node);}
+return node;}}},setGeometryTypes:function(){this.geometryTypes={"OpenLayers.Geometry.Point":"Point","OpenLayers.Geometry.MultiPoint":"MultiPoint","OpenLayers.Geometry.LineString":"LineString","OpenLayers.Geometry.MultiLineString":"MultiLineString","OpenLayers.Geometry.Polygon":"Polygon","OpenLayers.Geometry.MultiPolygon":"MultiPolygon","OpenLayers.Geometry.Collection":"GeometryCollection"};},CLASS_NAME:"OpenLayers.Format.GML.Base"});OpenLayers.Format.GML.v3=OpenLayers.Class(OpenLayers.Fo [...]
+container.components.push(new OpenLayers.Geometry.LineString(obj.points));},"segments":function(node,obj){this.readChildNodes(node,obj);},"LineStringSegment":function(node,container){var obj={};this.readChildNodes(node,obj);if(obj.points){Array.prototype.push.apply(container.points,obj.points);}},"pos":function(node,obj){var str=this.getChildValue(node).replace(this.regExes.trimSpace,"");var coords=str.split(this.regExes.splitSpace);var point;if(this.xy){point=new OpenLayers.Geometry.Poi [...]
+obj.points=[point];},"posList":function(node,obj){var str=this.getChildValue(node).replace(this.regExes.trimSpace,"");var coords=str.split(this.regExes.splitSpace);var dim=parseInt(node.getAttribute("dimension"))||2;var j,x,y,z;var numPoints=coords.length/dim;var points=new Array(numPoints);for(var i=0,len=coords.length;i<len;i+=dim){x=coords[i];y=coords[i+1];z=(dim==2)?undefined:coords[i+2];if(this.xy){points[i/dim]=new OpenLayers.Geometry.Point(x,y,z);}else{points[i/dim]=new OpenLayers [...]
+obj.points=points;},"Surface":function(node,obj){this.readChildNodes(node,obj);},"patches":function(node,obj){this.readChildNodes(node,obj);},"PolygonPatch":function(node,obj){this.readers.gml.Polygon.apply(this,[node,obj]);},"exterior":function(node,container){var obj={};this.readChildNodes(node,obj);container.outer=obj.components[0];},"interior":function(node,container){var obj={};this.readChildNodes(node,obj);container.inner.push(obj.components[0]);},"MultiCurve":function(node,contain [...]
+var min=obj.points[0];var max=obj.points[1];container.components.push(new OpenLayers.Bounds(min.x,min.y,max.x,max.y));},"lowerCorner":function(node,container){var obj={};this.readers.gml.pos.apply(this,[node,obj]);container.points[0]=obj.points[0];},"upperCorner":function(node,container){var obj={};this.readers.gml.pos.apply(this,[node,obj]);container.points[1]=obj.points[0];}},OpenLayers.Format.GML.Base.prototype.readers["gml"]),"feature":OpenLayers.Format.GML.Base.prototype.readers["fe [...]
+var root=this.writeNode("gml:"+name,features);this.setAttributeNS(root,this.namespaces["xsi"],"xsi:schemaLocation",this.schemaLocation);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},writers:{"gml":OpenLayers.Util.applyDefaults({"featureMembers":function(features){var node=this.createElementNSPlus("gml:featureMembers");for(var i=0,len=features.length;i<len;++i){this.writeNode("feature:_typeName",features[i],node);}
+return node;},"Point":function(geometry){var node=this.createElementNSPlus("gml:Point");this.writeNode("pos",geometry,node);return node;},"pos":function(point){var pos=(this.xy)?(point.x+" "+point.y):(point.y+" "+point.x);return this.createElementNSPlus("gml:pos",{value:pos});},"LineString":function(geometry){var node=this.createElementNSPlus("gml:LineString");this.writeNode("posList",geometry.components,node);return node;},"Curve":function(geometry){var node=this.createElementNSPlus("gm [...]
+return this.createElementNSPlus("gml:posList",{value:parts.join(" ")});},"Surface":function(geometry){var node=this.createElementNSPlus("gml:Surface");this.writeNode("patches",geometry,node);return node;},"patches":function(geometry){var node=this.createElementNSPlus("gml:patches");this.writeNode("PolygonPatch",geometry,node);return node;},"PolygonPatch":function(geometry){var node=this.createElementNSPlus("gml:PolygonPatch",{attributes:{interpolation:"planar"}});this.writeNode("exterior [...]
+return node;},"Polygon":function(geometry){var node=this.createElementNSPlus("gml:Polygon");this.writeNode("exterior",geometry.components[0],node);for(var i=1,len=geometry.components.length;i<len;++i){this.writeNode("interior",geometry.components[i],node);}
+return node;},"exterior":function(ring){var node=this.createElementNSPlus("gml:exterior");this.writeNode("LinearRing",ring,node);return node;},"interior":function(ring){var node=this.createElementNSPlus("gml:interior");this.writeNode("LinearRing",ring,node);return node;},"LinearRing":function(ring){var node=this.createElementNSPlus("gml:LinearRing");this.writeNode("posList",ring.components,node);return node;},"MultiCurve":function(geometry){var node=this.createElementNSPlus("gml:MultiCur [...]
+return node;},"curveMember":function(geometry){var node=this.createElementNSPlus("gml:curveMember");if(this.curve){this.writeNode("Curve",geometry,node);}else{this.writeNode("LineString",geometry,node);}
+return node;},"MultiSurface":function(geometry){var node=this.createElementNSPlus("gml:MultiSurface");var components=geometry.components||[geometry];for(var i=0,len=components.length;i<len;++i){this.writeNode("surfaceMember",components[i],node);}
+return node;},"surfaceMember":function(polygon){var node=this.createElementNSPlus("gml:surfaceMember");if(this.surface){this.writeNode("Surface",polygon,node);}else{this.writeNode("Polygon",polygon,node);}
+return node;},"Envelope":function(bounds){var node=this.createElementNSPlus("gml:Envelope");this.writeNode("lowerCorner",bounds,node);this.writeNode("upperCorner",bounds,node);if(this.srsName){node.setAttribute("srsName",this.srsName);}
+return node;},"lowerCorner":function(bounds){var pos=(this.xy)?(bounds.left+" "+bounds.bottom):(bounds.bottom+" "+bounds.left);return this.createElementNSPlus("gml:lowerCorner",{value:pos});},"upperCorner":function(bounds){var pos=(this.xy)?(bounds.right+" "+bounds.top):(bounds.top+" "+bounds.right);return this.createElementNSPlus("gml:upperCorner",{value:pos});}},OpenLayers.Format.GML.Base.prototype.writers["gml"]),"feature":OpenLayers.Format.GML.Base.prototype.writers["feature"],"wfs": [...]
+node.appendChild(box);return node;},"SortBy":function(sortProperties){var node=this.createElementNSPlus("ogc:SortBy");for(var i=0,l=sortProperties.length;i<l;i++){this.writeNode("ogc:SortProperty",sortProperties[i],node);}
+return node;},"SortProperty":function(sortProperty){var node=this.createElementNSPlus("ogc:SortProperty");this.writeNode("ogc:PropertyName",sortProperty,node);this.writeNode("ogc:SortOrder",(sortProperty.order=='DESC')?'DESC':'ASC',node);return node;},"SortOrder":function(value){var node=this.createElementNSPlus("ogc:SortOrder",{value:value});return node;}},OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),"gml":OpenLayers.Format.GML.v3.prototype.writers["gml"],"feature":OpenLayers.F [...]
+if(filter.projection){child.setAttribute("srsName",filter.projection);}
+node.appendChild(child);}
+return node;},CLASS_NAME:"OpenLayers.Format.Filter.v1_1_0"});OpenLayers.Format.OWSCommon=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.0.0",getVersion:function(root,options){var version=this.version;if(!version){var uri=root.getAttribute("xmlns:ows");if(uri&&uri.substring(uri.lastIndexOf("/")+1)==="1.1"){version="1.1.0";}
+if(!version){version=this.defaultVersion;}}
+return version;},CLASS_NAME:"OpenLayers.Format.OWSCommon"});OpenLayers.Format.OWSCommon.v1=OpenLayers.Class(OpenLayers.Format.XML,{regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g)},read:function(data,options){options=OpenLayers.Util.applyDefaults(options,this.options);var ows={};this.readChildNodes(data,ows);return ows;},readers:{"ows":{"Exception":function(node,exceptionReport){var exception={code:node.getAttribute('exceptionCode'),locator [...]
+var name=node.getAttribute("name");operation.parameters[name]={};this.readChildNodes(node,operation.parameters[name]);},"Value":function(node,allowedValues){allowedValues[this.getChildValue(node)]=true;},"OutputFormat":function(node,obj){obj.formats.push({value:this.getChildValue(node)});this.readChildNodes(node,obj);},"WGS84BoundingBox":function(node,obj){var boundingBox={};boundingBox.crs=node.getAttribute("crs");if(obj.BoundingBox){obj.BoundingBox.push(boundingBox);}else{obj.projectio [...]
+this.readChildNodes(node,boundingBox);},"BoundingBox":function(node,obj){this.readers['ows']['WGS84BoundingBox'].apply(this,[node,obj]);},"LowerCorner":function(node,obj){var str=this.getChildValue(node).replace(this.regExes.trimSpace,"");str=str.replace(this.regExes.trimComma,",");var pointList=str.split(this.regExes.splitSpace);obj.left=pointList[0];obj.bottom=pointList[1];},"UpperCorner":function(node,obj){var str=this.getChildValue(node).replace(this.regExes.trimSpace,"");str=str.rep [...]
+options.featureType,srsName:options.srsName}});if(options.featureNS){node.setAttribute("xmlns:"+prefix,options.featureNS);}
+if(options.propertyNames){for(var i=0,len=options.propertyNames.length;i<len;i++){this.writeNode("wfs:PropertyName",{property:options.propertyNames[i]},node);}}
+if(options.filter){this.setFilterProperty(options.filter);this.writeNode("ogc:Filter",options.filter,node);}
+return node;},"PropertyName":function(obj){return this.createElementNSPlus("wfs:PropertyName",{value:obj.property});}},OpenLayers.Format.WFST.v1.prototype.writers["wfs"]),"gml":OpenLayers.Format.GML.v3.prototype.writers["gml"],"feature":OpenLayers.Format.GML.v3.prototype.writers["feature"],"ogc":OpenLayers.Format.Filter.v1_1_0.prototype.writers["ogc"]},CLASS_NAME:"OpenLayers.Format.WFST.v1_1_0"});OpenLayers.Format.GeoJSON=OpenLayers.Class(OpenLayers.Format.JSON,{ignoreExtraDims:false,rea [...]
+if(!obj){OpenLayers.Console.error("Bad JSON: "+json);}else if(typeof(obj.type)!="string"){OpenLayers.Console.error("Bad GeoJSON - no type: "+json);}else if(this.isValidType(obj,type)){switch(type){case"Geometry":try{results=this.parseGeometry(obj);}catch(err){OpenLayers.Console.error(err);}
+break;case"Feature":try{results=this.parseFeature(obj);results.type="Feature";}catch(err){OpenLayers.Console.error(err);}
+break;case"FeatureCollection":results=[];switch(obj.type){case"Feature":try{results.push(this.parseFeature(obj));}catch(err){results=null;OpenLayers.Console.error(err);}
+break;case"FeatureCollection":for(var i=0,len=obj.features.length;i<len;++i){try{results.push(this.parseFeature(obj.features[i]));}catch(err){results=null;OpenLayers.Console.error(err);}}
+break;default:try{var geom=this.parseGeometry(obj);results.push(new OpenLayers.Feature.Vector(geom));}catch(err){results=null;OpenLayers.Console.error(err);}}
+break;}}
+return results;},isValidType:function(obj,type){var valid=false;switch(type){case"Geometry":if(OpenLayers.Util.indexOf(["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","Box","GeometryCollection"],obj.type)==-1){OpenLayers.Console.error("Unsupported geometry type: "+
+obj.type);}else{valid=true;}
+break;case"FeatureCollection":valid=true;break;default:if(obj.type==type){valid=true;}else{OpenLayers.Console.error("Cannot convert types from "+
+obj.type+" to "+type);}}
+return valid;},parseFeature:function(obj){var feature,geometry,attributes,bbox;attributes=(obj.properties)?obj.properties:{};bbox=(obj.geometry&&obj.geometry.bbox)||obj.bbox;try{geometry=this.parseGeometry(obj.geometry);}catch(err){throw err;}
+feature=new OpenLayers.Feature.Vector(geometry,attributes);if(bbox){feature.bounds=OpenLayers.Bounds.fromArray(bbox);}
+if(obj.id){feature.fid=obj.id;}
+return feature;},parseGeometry:function(obj){if(obj==null){return null;}
+var geometry,collection=false;if(obj.type=="GeometryCollection"){if(!(OpenLayers.Util.isArray(obj.geometries))){throw"GeometryCollection must have geometries array: "+obj;}
+var numGeom=obj.geometries.length;var components=new Array(numGeom);for(var i=0;i<numGeom;++i){components[i]=this.parseGeometry.apply(this,[obj.geometries[i]]);}
+geometry=new OpenLayers.Geometry.Collection(components);collection=true;}else{if(!(OpenLayers.Util.isArray(obj.coordinates))){throw"Geometry must have coordinates array: "+obj;}
+if(!this.parseCoords[obj.type.toLowerCase()]){throw"Unsupported geometry type: "+obj.type;}
+try{geometry=this.parseCoords[obj.type.toLowerCase()].apply(this,[obj.coordinates]);}catch(err){throw err;}}
+if(this.internalProjection&&this.externalProjection&&!collection){geometry.transform(this.externalProjection,this.internalProjection);}
+return geometry;},parseCoords:{"point":function(array){if(this.ignoreExtraDims==false&&array.length!=2){throw"Only 2D points are supported: "+array;}
+return new OpenLayers.Geometry.Point(array[0],array[1]);},"multipoint":function(array){var points=[];var p=null;for(var i=0,len=array.length;i<len;++i){try{p=this.parseCoords["point"].apply(this,[array[i]]);}catch(err){throw err;}
+points.push(p);}
+return new OpenLayers.Geometry.MultiPoint(points);},"linestring":function(array){var points=[];var p=null;for(var i=0,len=array.length;i<len;++i){try{p=this.parseCoords["point"].apply(this,[array[i]]);}catch(err){throw err;}
+points.push(p);}
+return new OpenLayers.Geometry.LineString(points);},"multilinestring":function(array){var lines=[];var l=null;for(var i=0,len=array.length;i<len;++i){try{l=this.parseCoords["linestring"].apply(this,[array[i]]);}catch(err){throw err;}
+lines.push(l);}
+return new OpenLayers.Geometry.MultiLineString(lines);},"polygon":function(array){var rings=[];var r,l;for(var i=0,len=array.length;i<len;++i){try{l=this.parseCoords["linestring"].apply(this,[array[i]]);}catch(err){throw err;}
+r=new OpenLayers.Geometry.LinearRing(l.components);rings.push(r);}
+return new OpenLayers.Geometry.Polygon(rings);},"multipolygon":function(array){var polys=[];var p=null;for(var i=0,len=array.length;i<len;++i){try{p=this.parseCoords["polygon"].apply(this,[array[i]]);}catch(err){throw err;}
+polys.push(p);}
+return new OpenLayers.Geometry.MultiPolygon(polys);},"box":function(array){if(array.length!=2){throw"GeoJSON box coordinates must have 2 elements";}
+return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing([new OpenLayers.Geometry.Point(array[0][0],array[0][1]),new OpenLayers.Geometry.Point(array[1][0],array[0][1]),new OpenLayers.Geometry.Point(array[1][0],array[1][1]),new OpenLayers.Geometry.Point(array[0][0],array[1][1]),new OpenLayers.Geometry.Point(array[0][0],array[0][1])])]);}},write:function(obj,pretty){var geojson={"type":null};if(OpenLayers.Util.isArray(obj)){geojson.type="FeatureCollection";var numFeatures [...]
+geojson.features[i]=this.extract.feature.apply(this,[element]);}}else if(obj.CLASS_NAME.indexOf("OpenLayers.Geometry")==0){geojson=this.extract.geometry.apply(this,[obj]);}else if(obj instanceof OpenLayers.Feature.Vector){geojson=this.extract.feature.apply(this,[obj]);if(obj.layer&&obj.layer.projection){geojson.crs=this.createCRSObject(obj);}}
+return OpenLayers.Format.JSON.prototype.write.apply(this,[geojson,pretty]);},createCRSObject:function(object){var proj=object.layer.projection.toString();var crs={};if(proj.match(/epsg:/i)){var code=parseInt(proj.substring(proj.indexOf(":")+1));if(code==4326){crs={"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}};}else{crs={"type":"name","properties":{"name":"EPSG:"+code}};}}
+return crs;},extract:{'feature':function(feature){var geom=this.extract.geometry.apply(this,[feature.geometry]);var json={"type":"Feature","properties":feature.attributes,"geometry":geom};if(feature.fid!=null){json.id=feature.fid;}
+return json;},'geometry':function(geometry){if(geometry==null){return null;}
+if(this.internalProjection&&this.externalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);}
+var geometryType=geometry.CLASS_NAME.split('.')[2];var data=this.extract[geometryType.toLowerCase()].apply(this,[geometry]);var json;if(geometryType=="Collection"){json={"type":"GeometryCollection","geometries":data};}else{json={"type":geometryType,"coordinates":data};}
+return json;},'point':function(point){return[point.x,point.y];},'multipoint':function(multipoint){var array=[];for(var i=0,len=multipoint.components.length;i<len;++i){array.push(this.extract.point.apply(this,[multipoint.components[i]]));}
+return array;},'linestring':function(linestring){var array=[];for(var i=0,len=linestring.components.length;i<len;++i){array.push(this.extract.point.apply(this,[linestring.components[i]]));}
+return array;},'multilinestring':function(multilinestring){var array=[];for(var i=0,len=multilinestring.components.length;i<len;++i){array.push(this.extract.linestring.apply(this,[multilinestring.components[i]]));}
+return array;},'polygon':function(polygon){var array=[];for(var i=0,len=polygon.components.length;i<len;++i){array.push(this.extract.linestring.apply(this,[polygon.components[i]]));}
+return array;},'multipolygon':function(multipolygon){var array=[];for(var i=0,len=multipolygon.components.length;i<len;++i){array.push(this.extract.polygon.apply(this,[multipolygon.components[i]]));}
+return array;},'collection':function(collection){var len=collection.components.length;var array=new Array(len);for(var i=0;i<len;++i){array[i]=this.extract.geometry.apply(this,[collection.components[i]]);}
+return array;}},CLASS_NAME:"OpenLayers.Format.GeoJSON"});OpenLayers.Protocol.Script=OpenLayers.Class(OpenLayers.Protocol,{url:null,params:null,callback:null,scope:null,format:null,callbackKey:"callback",callbackPrefix:"",pendingRequests:null,srsInBBOX:false,initialize:function(options){options=options||{};this.params={};this.pendingRequests={};OpenLayers.Protocol.prototype.initialize.apply(this,arguments);if(!this.format){this.format=new OpenLayers.Format.GeoJSON();}
+if(!this.filterToParams&&OpenLayers.Format.QueryStringFilter){var format=new OpenLayers.Format.QueryStringFilter({srsInBBOX:this.srsInBBOX});this.filterToParams=function(filter,params){return format.write(filter,params);}}},read:function(options){OpenLayers.Protocol.prototype.read.apply(this,arguments);options=OpenLayers.Util.applyDefaults(options,this.options);options.params=OpenLayers.Util.applyDefaults(options.params,this.options.params);if(options.filter&&this.filterToParams){options [...]
+var response=new OpenLayers.Protocol.Response({requestType:"read"});var request=this.createRequest(options.url,options.params,OpenLayers.Function.bind(function(data){response.data=data;this.handleRead(response,options);},this));response.priv=request;return response;},createRequest:function(url,params,callback){var id=OpenLayers.Protocol.Script.register(callback);var name="OpenLayers.Protocol.Script.registry["+id+"]";params=OpenLayers.Util.extend({},params);params[this.callbackKey]=this.c [...]
+this.destroyRequest(response.priv);options.callback.call(options.scope,response);}},parseFeatures:function(data){return this.format.read(data);},abort:function(response){if(response){this.destroyRequest(response.priv);}else{for(var key in this.pendingRequests){this.destroyRequest(this.pendingRequests[key]);}}},destroy:function(){this.abort();delete this.params;delete this.format;OpenLayers.Protocol.prototype.destroy.apply(this);},CLASS_NAME:"OpenLayers.Protocol.Script"});(function(){var  [...]
+return new cls(options);};OpenLayers.Format.CSWGetRecords.DEFAULTS={"version":"2.0.2"};OpenLayers.Control.Panel=OpenLayers.Class(OpenLayers.Control,{controls:null,autoActivate:true,defaultControl:null,saveState:false,allowDepress:false,activeState:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,[options]);this.controls=[];this.activeState={};},destroy:function(){OpenLayers.Control.prototype.destroy.apply(this,arguments);for(var ctl,i=this.controls.len [...]
+OpenLayers.Event.stopObservingElement(ctl.panel_div);ctl.panel_div=null;}
+this.activeState=null;},activate:function(){if(OpenLayers.Control.prototype.activate.apply(this,arguments)){var control;for(var i=0,len=this.controls.length;i<len;i++){control=this.controls[i];if(control===this.defaultControl||(this.saveState&&this.activeState[control.id])){control.activate();}}
+if(this.saveState===true){this.defaultControl=null;}
+this.redraw();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Control.prototype.deactivate.apply(this,arguments)){var control;for(var i=0,len=this.controls.length;i<len;i++){control=this.controls[i];this.activeState[control.id]=control.deactivate();}
+this.redraw();return true;}else{return false;}},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);this.addControlsToMap(this.controls);return this.div;},redraw:function(){for(var l=this.div.childNodes.length,i=l-1;i>=0;i--){this.div.removeChild(this.div.childNodes[i]);}
+this.div.innerHTML="";if(this.active){for(var i=0,len=this.controls.length;i<len;i++){this.div.appendChild(this.controls[i].panel_div);}}},activateControl:function(control){if(!this.active){return false;}
+if(control.type==OpenLayers.Control.TYPE_BUTTON){control.trigger();return;}
+if(control.type==OpenLayers.Control.TYPE_TOGGLE){if(control.active){control.deactivate();}else{control.activate();}
+return;}
+if(this.allowDepress&&control.active){control.deactivate();}else{var c;for(var i=0,len=this.controls.length;i<len;i++){c=this.controls[i];if(c!=control&&(c.type===OpenLayers.Control.TYPE_TOOL||c.type==null)){c.deactivate();}}
+control.activate();}},addControls:function(controls){if(!(OpenLayers.Util.isArray(controls))){controls=[controls];}
+this.controls=this.controls.concat(controls);for(var i=0,len=controls.length;i<len;i++){var element=document.createElement("div");element.className=controls[i].displayClass+"ItemInactive";controls[i].panel_div=element;if(controls[i].title!=""){controls[i].panel_div.title=controls[i].title;}
+OpenLayers.Event.observe(controls[i].panel_div,"click",OpenLayers.Function.bind(this.onClick,this,controls[i]));OpenLayers.Event.observe(controls[i].panel_div,"dblclick",OpenLayers.Function.bind(this.onDoubleClick,this,controls[i]));OpenLayers.Event.observe(controls[i].panel_div,"mousedown",OpenLayers.Function.bindAsEventListener(OpenLayers.Event.stop));}
+if(this.map){this.addControlsToMap(controls);this.redraw();}},addControlsToMap:function(controls){var control;for(var i=0,len=controls.length;i<len;i++){control=controls[i];if(control.autoActivate===true){control.autoActivate=false;this.map.addControl(control);control.autoActivate=true;}else{this.map.addControl(control);control.deactivate();}
+control.events.on({activate:this.iconOn,deactivate:this.iconOff});}},iconOn:function(){var d=this.panel_div;d.className=d.className.replace(/ItemInactive$/,"ItemActive");},iconOff:function(){var d=this.panel_div;d.className=d.className.replace(/ItemActive$/,"ItemInactive");},onClick:function(ctrl,evt){OpenLayers.Event.stop(evt?evt:window.event);this.activateControl(ctrl);},onDoubleClick:function(ctrl,evt){OpenLayers.Event.stop(evt?evt:window.event);},getControlsBy:function(property,match [...]
+obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);return obj;},setUrl:function(newUrl){this.url=newUrl;},mergeNewParams:function(newParams){this.params=OpenLayers.Util.extend(this.params,newParams);var ret=this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"params"});}
+return ret;},redraw:function(force){if(force){return this.mergeNewParams({"_olSalt":Math.random()});}else{return OpenLayers.Layer.prototype.redraw.apply(this,[]);}},selectUrl:function(paramString,urls){var product=1;for(var i=0,len=paramString.length;i<len;i++){product*=paramString.charCodeAt(i)*this.URL_HASH_FACTOR;product-=Math.floor(product);}
+return urls[Math.floor(product*urls.length)];},getFullRequestString:function(newParams,altUrl){var url=altUrl||this.url;var allParams=OpenLayers.Util.extend({},this.params);allParams=OpenLayers.Util.extend(allParams,newParams);var paramsString=OpenLayers.Util.getParameterString(allParams);if(OpenLayers.Util.isArray(url)){url=this.selectUrl(paramsString,url);}
+var urlParams=OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));for(var key in allParams){if(key.toUpperCase()in urlParams){delete allParams[key];}}
+paramsString=OpenLayers.Util.getParameterString(allParams);return OpenLayers.Util.urlAppend(url,paramsString);},CLASS_NAME:"OpenLayers.Layer.HTTPRequest"});OpenLayers.Layer.Grid=OpenLayers.Class(OpenLayers.Layer.HTTPRequest,{tileSize:null,tileOriginCorner:"bl",tileOrigin:null,tileOptions:null,grid:null,singleTile:false,ratio:1.5,buffer:0,numLoadingTiles:0,tileLoadingDelay:100,timerId:null,initialize:function(name,url,params,options){OpenLayers.Layer.HTTPRequest.prototype.initialize.apply [...]
+this.grid=[];}},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Grid(this.name,this.url,this.params,this.getOptions());}
+obj=OpenLayers.Layer.HTTPRequest.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();}
+obj.grid=[];return obj;},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this,arguments);bounds=bounds||this.map.getExtent();if(bounds!=null){var forceReTile=!this.grid.length||zoomChanged;var tilesBounds=this.getTilesBounds();if(this.singleTile){if(forceReTile||(!dragging&&!tilesBounds.containsBounds(bounds))){this.initSingleTile(bounds);}}else{if(forceReTile||!tilesBounds.containsBounds(bounds,true)){this.initGriddedTiles(bounds);}else{t [...]
+this.timerId=window.setTimeout(this._moveGriddedTiles,this.tileLoadingDelay);},setTileSize:function(size){if(this.singleTile){size=this.map.getSize();size.h=parseInt(size.h*this.ratio);size.w=parseInt(size.w*this.ratio);}
+OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this,[size]);},getGridBounds:function(){var msg="The getGridBounds() function is deprecated. It will be "+"removed in 3.0. Please use getTilesBounds() instead.";OpenLayers.Console.warn(msg);return this.getTilesBounds();},getTilesBounds:function(){var bounds=null;if(this.grid.length){var bottom=this.grid.length-1;var bottomLeftTile=this.grid[bottom][0];var right=this.grid[0].length-1;var topRightTile=this.grid[0][right];bounds=new O [...]
+return bounds;},initSingleTile:function(bounds){var center=bounds.getCenterLonLat();var tileWidth=bounds.getWidth()*this.ratio;var tileHeight=bounds.getHeight()*this.ratio;var tileBounds=new OpenLayers.Bounds(center.lon-(tileWidth/2),center.lat-(tileHeight/2),center.lon+(tileWidth/2),center.lat+(tileHeight/2));var ul=new OpenLayers.LonLat(tileBounds.left,tileBounds.top);var px=this.map.getLayerPxFromLonLat(ul);if(!this.grid.length){this.grid[0]=[];}
+var tile=this.grid[0][0];if(!tile){tile=this.addTile(tileBounds,px);this.addTileMonitoringHooks(tile);tile.draw();this.grid[0][0]=tile;}else{tile.moveTo(tileBounds,px);}
+this.removeExcessTiles(1,1);},calculateGridLayout:function(bounds,origin,resolution){var tilelon=resolution*this.tileSize.w;var tilelat=resolution*this.tileSize.h;var offsetlon=bounds.left-origin.lon;var tilecol=Math.floor(offsetlon/tilelon)-this.buffer;var tilecolremain=offsetlon/tilelon-tilecol;var tileoffsetx=-tilecolremain*this.tileSize.w;var tileoffsetlon=origin.lon+tilecol*tilelon;var offsetlat=bounds.top-(origin.lat+tilelat);var tilerow=Math.ceil(offsetlat/tilelat)+this.buffer;var [...]
+return origin;},initGriddedTiles:function(bounds){var viewSize=this.map.getSize();var minRows=Math.ceil(viewSize.h/this.tileSize.h)+
+Math.max(1,2*this.buffer);var minCols=Math.ceil(viewSize.w/this.tileSize.w)+
+Math.max(1,2*this.buffer);var origin=this.getTileOrigin();var resolution=this.map.getResolution();var tileLayout=this.calculateGridLayout(bounds,origin,resolution);var tileoffsetx=Math.round(tileLayout.tileoffsetx);var tileoffsety=Math.round(tileLayout.tileoffsety);var tileoffsetlon=tileLayout.tileoffsetlon;var tileoffsetlat=tileLayout.tileoffsetlat;var tilelon=tileLayout.tilelon;var tilelat=tileLayout.tilelat;this.origin=new OpenLayers.Pixel(tileoffsetx,tileoffsety);var startX=tileoffse [...]
+tileoffsetlon=startLon;tileoffsetx=startX;var colidx=0;do{var tileBounds=new OpenLayers.Bounds(tileoffsetlon,tileoffsetlat,tileoffsetlon+tilelon,tileoffsetlat+tilelat);var x=tileoffsetx;x-=layerContainerDivLeft;var y=tileoffsety;y-=layerContainerDivTop;var px=new OpenLayers.Pixel(x,y);var tile=row[colidx++];if(!tile){tile=this.addTile(tileBounds,px);this.addTileMonitoringHooks(tile);row.push(tile);}else{tile.moveTo(tileBounds,px,false);}
+tileoffsetlon+=tilelon;tileoffsetx+=this.tileSize.w;}while((tileoffsetlon<=bounds.right+tilelon*this.buffer)||colidx<minCols);tileoffsetlat-=tilelat;tileoffsety+=this.tileSize.h;}while((tileoffsetlat>=bounds.bottom-tilelat*this.buffer)||rowidx<minRows);this.removeExcessTiles(rowidx,colidx);this.spiralTileLoad();},getMaxExtent:function(){return this.maxExtent;},spiralTileLoad:function(){var tileQueue=[];var directions=["right","down","left","up"];var iRow=0;var iCell=-1;var direction=Open [...]
+var tile=null;if((testRow<this.grid.length)&&(testRow>=0)&&(testCell<this.grid[0].length)&&(testCell>=0)){tile=this.grid[testRow][testCell];}
+if((tile!=null)&&(!tile.queued)){tileQueue.unshift(tile);tile.queued=true;directionsTried=0;iRow=testRow;iCell=testCell;}else{direction=(direction+1)%4;directionsTried++;}}
+for(var i=0,len=tileQueue.length;i<len;i++){var tile=tileQueue[i];tile.draw();tile.queued=false;}},addTile:function(bounds,position){return new OpenLayers.Tile.Image(this,position,bounds,null,this.tileSize,this.tileOptions);},addTileMonitoringHooks:function(tile){tile.onLoadStart=function(){if(this.numLoadingTiles==0){this.events.triggerEvent("loadstart");}
+this.numLoadingTiles++;};tile.events.register("loadstart",this,tile.onLoadStart);tile.onLoadEnd=function(){this.numLoadingTiles--;this.events.triggerEvent("tileloaded");if(this.numLoadingTiles==0){this.events.triggerEvent("loadend");}};tile.events.register("loadend",this,tile.onLoadEnd);tile.events.register("unload",this,tile.onLoadEnd);},removeTileMonitoringHooks:function(tile){tile.unload();tile.events.un({"loadstart":tile.onLoadStart,"loadend":tile.onLoadEnd,"unload":tile.onLoadEnd,sc [...]
+if(shifted){this.timerId=window.setTimeout(this._moveGriddedTiles,0);}},shiftRow:function(prepend){var modelRowIndex=(prepend)?0:(this.grid.length-1);var grid=this.grid;var modelRow=grid[modelRowIndex];var resolution=this.map.getResolution();var deltaY=(prepend)?-this.tileSize.h:this.tileSize.h;var deltaLat=resolution*-deltaY;var row=(prepend)?grid.pop():grid.shift();for(var i=0,len=modelRow.length;i<len;i++){var modelTile=modelRow[i];var bounds=modelTile.bounds.clone();var position=mode [...]
+if(prepend){grid.unshift(row);}else{grid.push(row);}},shiftColumn:function(prepend){var deltaX=(prepend)?-this.tileSize.w:this.tileSize.w;var resolution=this.map.getResolution();var deltaLon=resolution*deltaX;for(var i=0,len=this.grid.length;i<len;i++){var row=this.grid[i];var modelTileIndex=(prepend)?0:(row.length-1);var modelTile=row[modelTileIndex];var bounds=modelTile.bounds.clone();var position=modelTile.position.clone();bounds.left=bounds.left+deltaLon;bounds.right=bounds.right+del [...]
+while(this.grid[0].length>columns){for(var i=0,l=this.grid.length;i<l;i++){var row=this.grid[i];var tile=row.pop();this.removeTileMonitoringHooks(tile);tile.destroy();}}},onMapResize:function(){if(this.singleTile){this.clearGrid();this.setTileSize();}},getTileBounds:function(viewPortPx){var maxExtent=this.maxExtent;var resolution=this.getResolution();var tileMapWidth=resolution*this.tileSize.w;var tileMapHeight=resolution*this.tileSize.h;var mapPoint=this.getLonLatFromViewPortPx(viewPort [...]
+maxExtent.left)/tileMapWidth));var tileBottom=maxExtent.bottom+(tileMapHeight*Math.floor((mapPoint.lat-
+maxExtent.bottom)/tileMapHeight));return new OpenLayers.Bounds(tileLeft,tileBottom,tileLeft+tileMapWidth,tileBottom+tileMapHeight);},CLASS_NAME:"OpenLayers.Layer.Grid"});OpenLayers.Tile=OpenLayers.Class({EVENT_TYPES:["loadstart","loadend","reload","unload"],events:null,id:null,layer:null,url:null,bounds:null,size:null,position:null,isLoading:false,initialize:function(layer,position,bounds,url,size,options){this.layer=layer;this.position=position.clone();this.bounds=bounds.clone();this.ur [...]
+this.id=OpenLayers.Util.createUniqueID("Tile_");this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);OpenLayers.Util.extend(this,options);},unload:function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("unload");}},destroy:function(){this.layer=null;this.bounds=null;this.size=null;this.position=null;this.events.destroy();this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile(this.layer,this.position,this.bounds,this.url,this.size);}
+OpenLayers.Util.applyDefaults(obj,this);return obj;},draw:function(){var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));this.shouldDraw=(withinMaxExtent||this.layer.displayOutsideMaxExtent);this.clear();return this.shouldDraw;},moveTo:function(bounds,position,redraw){if(redraw==null){redraw=true;}
+this.bounds=bounds.clone();this.position=position.clone();if(redraw){this.draw();}},clear:function(){},getBoundsFromBaseLayer:function(position){var msg=OpenLayers.i18n('reprojectDeprecated',{'layerName':this.layer.name});OpenLayers.Console.warn(msg);var topLeft=this.layer.map.getLonLatFromLayerPx(position);var bottomRightPx=position.clone();bottomRightPx.x+=this.size.w;bottomRightPx.y+=this.size.h;var bottomRight=this.layer.map.getLonLatFromLayerPx(bottomRightPx);if(topLeft.lon>bottomRi [...]
+var bounds=new OpenLayers.Bounds(topLeft.lon,bottomRight.lat,bottomRight.lon,topLeft.lat);return bounds;},showTile:function(){if(this.shouldDraw){this.show();}},show:function(){},hide:function(){},CLASS_NAME:"OpenLayers.Tile"});OpenLayers.Tile.Image=OpenLayers.Class(OpenLayers.Tile,{url:null,imgDiv:null,frame:null,layerAlphaHack:null,isBackBuffer:false,isFirstDraw:true,backBufferTile:null,maxGetUrlLength:null,initialize:function(layer,position,bounds,url,size,options){OpenLayers.Tile.pro [...]
+this.url=url;this.frame=document.createElement('div');this.frame.style.overflow='hidden';this.frame.style.position='absolute';this.layerAlphaHack=this.layer.alpha&&OpenLayers.Util.alphaHack();},destroy:function(){if(this.imgDiv!=null){this.removeImgDiv();}
+this.imgDiv=null;if((this.frame!=null)&&(this.frame.parentNode==this.layer.div)){this.layer.div.removeChild(this.frame);}
+this.frame=null;if(this.backBufferTile){this.backBufferTile.destroy();this.backBufferTile=null;}
+this.layer.events.unregister("loadend",this,this.resetBackBuffer);OpenLayers.Tile.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile.Image(this.layer,this.position,this.bounds,this.url,this.size);}
+obj=OpenLayers.Tile.prototype.clone.apply(this,[obj]);obj.imgDiv=null;return obj;},draw:function(){if(this.layer!=this.layer.map.baseLayer&&this.layer.reproject){this.bounds=this.getBoundsFromBaseLayer(this.position);}
+var drawTile=OpenLayers.Tile.prototype.draw.apply(this,arguments);if((OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1)||this.layer.singleTile){if(drawTile){if(!this.backBufferTile){this.backBufferTile=this.clone();this.backBufferTile.hide();this.backBufferTile.isBackBuffer=true;this.events.register('loadend',this,this.resetBackBuffer);this.layer.events.register("loadend",this,this.resetBackBuffer);}
+this.startTransition();}else{if(this.backBufferTile){this.backBufferTile.clear();}}}else{if(drawTile&&this.isFirstDraw){this.events.register('loadend',this,this.showTile);this.isFirstDraw=false;}}
+if(!drawTile){return false;}
+if(this.isLoading){this.events.triggerEvent("reload");}else{this.isLoading=true;this.events.triggerEvent("loadstart");}
+return this.renderTile();},resetBackBuffer:function(){this.showTile();if(this.backBufferTile&&(this.isFirstDraw||!this.layer.numLoadingTiles)){this.isFirstDraw=false;var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));if(withinMaxExtent){this.backBufferTile.position=this.position;this.backBufferTile.bounds=this.bounds;this.backBufferTile.size=this.size;this.backBufferTile.imageSize=this.layer.getImageSize(this.bounds)||this.si [...]
+this.backBufferTile.hide();}},renderTile:function(){if(this.layer.async){this.initImgDiv();this.layer.getURLasync(this.bounds,this,"url",this.positionImage);}else{this.url=this.layer.getURL(this.bounds);this.initImgDiv();this.positionImage();}
+return true;},positionImage:function(){if(this.layer===null){return;}
+OpenLayers.Util.modifyDOMElement(this.frame,null,this.position,this.size);var imageSize=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,null,null,imageSize,this.url);}else{OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,imageSize);this.imgDiv.src=this.url;}},clear:function(){if(this.imgDiv){this.hide();if(OpenLayers.Tile.Image.useBlankTile){this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}}},initImgDiv:fu [...]
+if(OpenLayers.Util.isArray(this.layer.url)){this.imgDiv.urls=this.layer.url.slice();}
+this.imgDiv.className='olTileImage';this.frame.style.zIndex=this.isBackBuffer?0:1;this.frame.appendChild(this.imgDiv);this.layer.div.appendChild(this.frame);if(this.layer.opacity!=null){OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,null,null,null,null,this.layer.opacity);}
+this.imgDiv.map=this.layer.map;var onload=function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("loadend");}};if(this.layerAlphaHack){OpenLayers.Event.observe(this.imgDiv.childNodes[0],'load',OpenLayers.Function.bind(onload,this));}else{OpenLayers.Event.observe(this.imgDiv,'load',OpenLayers.Function.bind(onload,this));}
+var onerror=function(){if(this.imgDiv._attempts>OpenLayers.IMAGE_RELOAD_ATTEMPTS){onload.call(this);}};OpenLayers.Event.observe(this.imgDiv,"error",OpenLayers.Function.bind(onerror,this));}
+this.imgDiv.viewRequestID=this.layer.map.viewRequestID;},removeImgDiv:function(){OpenLayers.Event.stopObservingElement(this.imgDiv);if(this.imgDiv.parentNode==this.frame){this.frame.removeChild(this.imgDiv);this.imgDiv.map=null;}
+this.imgDiv.urls=null;var child=this.imgDiv.firstChild;if(child){OpenLayers.Event.stopObservingElement(child);this.imgDiv.removeChild(child);delete child;}else{this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}},checkImgURL:function(){if(this.layer){var loaded=this.layerAlphaHack?this.imgDiv.firstChild.src:this.imgDiv.src;if(!OpenLayers.Util.isEquivalentUrl(loaded,this.url)){this.hide();}}},startTransition:function(){if(!this.backBufferTile||!this.backBufferTile.imgDiv){return;}
+var ratio=1;if(this.backBufferTile.resolution){ratio=this.backBufferTile.resolution/this.layer.getResolution();}
+if(ratio!=1){if(this.layer.transitionEffect=='resize'){var upperLeft=new OpenLayers.LonLat(this.backBufferTile.bounds.left,this.backBufferTile.bounds.top);var size=new OpenLayers.Size(this.backBufferTile.size.w*ratio,this.backBufferTile.size.h*ratio);var px=this.layer.map.getLayerPxFromLonLat(upperLeft);OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,null,px,size);var imageSize=this.backBufferTile.imageSize;imageSize=new OpenLayers.Size(imageSize.w*ratio,imageSize.h*ratio);var [...]
+OpenLayers.Util.modifyDOMElement(this.backBufferTile.imgDiv,null,imageOffset,imageSize);this.backBufferTile.show();}}else{if(this.layer.singleTile){this.backBufferTile.show();}else{this.backBufferTile.hide();}}},show:function(){this.frame.style.display='';if(OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1){if(OpenLayers.IS_GECKO===true){this.frame.scrollLeft=this.frame.scrollLeft;}}},hide:function(){this.frame.style.display='none';},CLASS_NAME:"O [...]
+OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},parseEnvelope:function(env,arr){if(arr&&arr.length==4){env.minx=arr[0];env.miny=arr[1];env.maxx=arr[2];env.maxy=arr[3];}},addLayers:function(ll,lyrs){for(var lind=0,len=lyrs.length;lind<len;lind++){ll.push(lyrs[lind]);}},addImageSize:function(imsize,olsize){if(olsize!==null){imsize.width=olsize.w;imsize.height=olsize.h;imsize.printwidth=olsize.w;imsize.printheight=olsize.h;}},addCoordSys:function(featOrFilt,fsys){if(typeo [...]
+else if(typeof fsys=="object"&&fsys.proj!==null){featOrFilt.id=fsys.proj.srsProjNumber;featOrFilt.string=fsys.proj.srsCode;}else{featOrFilt=fsys;}},iserror:function(data){var ret=null;if(!data){ret=(this.response.error!=='');}else{data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);var errorNodes=data.documentElement.getElementsByTagName("ERROR");ret=(errorNodes!==null&&errorNodes.length>0);}
+return ret;},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+var arcNode=null;if(data&&data.documentElement){if(data.documentElement.nodeName=="ARCXML"){arcNode=data.documentElement;}else{arcNode=data.documentElement.getElementsByTagName("ARCXML")[0];}}
+if(!arcNode||arcNode.firstChild.nodeName==='parsererror'){var error,source;try{error=data.firstChild.nodeValue;source=data.firstChild.childNodes[1].firstChild.nodeValue;}catch(err){}
+throw{message:"Error parsing the ArcXML request",error:error,source:source};}
+var response=this.parseResponse(arcNode);return response;},write:function(request){if(!request){request=this.request;}
+var root=this.createElementNS("","ARCXML");root.setAttribute("version","1.1");var reqElem=this.createElementNS("","REQUEST");if(request.get_image!=null){var getElem=this.createElementNS("","GET_IMAGE");reqElem.appendChild(getElem);var propElem=this.createElementNS("","PROPERTIES");getElem.appendChild(propElem);var props=request.get_image.properties;if(props.featurecoordsys!=null){var feat=this.createElementNS("","FEATURECOORDSYS");propElem.appendChild(feat);if(props.featurecoordsys.id=== [...]
+else{feat.setAttribute("id",props.featurecoordsys.id);}}
+if(props.filtercoordsys!=null){var filt=this.createElementNS("","FILTERCOORDSYS");propElem.appendChild(filt);if(props.filtercoordsys.id===0){filt.setAttribute("string",props.filtercoordsys.string);}
+else{filt.setAttribute("id",props.filtercoordsys.id);}}
+if(props.envelope!=null){var env=this.createElementNS("","ENVELOPE");propElem.appendChild(env);env.setAttribute("minx",props.envelope.minx);env.setAttribute("miny",props.envelope.miny);env.setAttribute("maxx",props.envelope.maxx);env.setAttribute("maxy",props.envelope.maxy);}
+var imagesz=this.createElementNS("","IMAGESIZE");propElem.appendChild(imagesz);imagesz.setAttribute("height",props.imagesize.height);imagesz.setAttribute("width",props.imagesize.width);if(props.imagesize.height!=props.imagesize.printheight||props.imagesize.width!=props.imagesize.printwidth){imagesz.setAttribute("printheight",props.imagesize.printheight);imagesz.setArrtibute("printwidth",props.imagesize.printwidth);}
+if(props.background!=null){var backgrnd=this.createElementNS("","BACKGROUND");propElem.appendChild(backgrnd);backgrnd.setAttribute("color",props.background.color.r+","+
+props.background.color.g+","+
+props.background.color.b);if(props.background.transcolor!==null){backgrnd.setAttribute("transcolor",props.background.transcolor.r+","+
+props.background.transcolor.g+","+
+props.background.transcolor.b);}}
+if(props.layerlist!=null&&props.layerlist.length>0){var layerlst=this.createElementNS("","LAYERLIST");propElem.appendChild(layerlst);for(var ld=0;ld<props.layerlist.length;ld++){var ldef=this.createElementNS("","LAYERDEF");layerlst.appendChild(ldef);ldef.setAttribute("id",props.layerlist[ld].id);ldef.setAttribute("visible",props.layerlist[ld].visible);if(typeof props.layerlist[ld].query=="object"){var query=props.layerlist[ld].query;if(query.where.length<0){continue;}
+var queryElem=null;if(typeof query.spatialfilter=="boolean"&&query.spatialfilter){queryElem=this.createElementNS("","SPATIALQUERY");}
+else{queryElem=this.createElementNS("","QUERY");}
+queryElem.setAttribute("where",query.where);if(typeof query.accuracy=="number"&&query.accuracy>0){queryElem.setAttribute("accuracy",query.accuracy);}
+if(typeof query.featurelimit=="number"&&query.featurelimit<2000){queryElem.setAttribute("featurelimit",query.featurelimit);}
+if(typeof query.subfields=="string"&&query.subfields!="#ALL#"){queryElem.setAttribute("subfields",query.subfields);}
+if(typeof query.joinexpression=="string"&&query.joinexpression.length>0){queryElem.setAttribute("joinexpression",query.joinexpression);}
+if(typeof query.jointables=="string"&&query.jointables.length>0){queryElem.setAttribute("jointables",query.jointables);}
+ldef.appendChild(queryElem);}
+if(typeof props.layerlist[ld].renderer=="object"){this.addRenderer(ldef,props.layerlist[ld].renderer);}}}}else if(request.get_feature!=null){var getElem=this.createElementNS("","GET_FEATURES");getElem.setAttribute("outputmode","newxml");getElem.setAttribute("checkesc","true");if(request.get_feature.geometry){getElem.setAttribute("geometry",request.get_feature.geometry);}
+else{getElem.setAttribute("geometry","false");}
+if(request.get_feature.compact){getElem.setAttribute("compact",request.get_feature.compact);}
+if(request.get_feature.featurelimit=="number"){getElem.setAttribute("featurelimit",request.get_feature.featurelimit);}
+getElem.setAttribute("globalenvelope","true");reqElem.appendChild(getElem);if(request.get_feature.layer!=null&&request.get_feature.layer.length>0){var lyrElem=this.createElementNS("","LAYER");lyrElem.setAttribute("id",request.get_feature.layer);getElem.appendChild(lyrElem);}
+var fquery=request.get_feature.query;if(fquery!=null){var qElem=null;if(fquery.isspatial){qElem=this.createElementNS("","SPATIALQUERY");}else{qElem=this.createElementNS("","QUERY");}
+getElem.appendChild(qElem);if(typeof fquery.accuracy=="number"){qElem.setAttribute("accuracy",fquery.accuracy);}
+if(fquery.featurecoordsys!=null){var fcsElem1=this.createElementNS("","FEATURECOORDSYS");if(fquery.featurecoordsys.id==0){fcsElem1.setAttribute("string",fquery.featurecoordsys.string);}else{fcsElem1.setAttribute("id",fquery.featurecoordsys.id);}
+qElem.appendChild(fcsElem1);}
+if(fquery.filtercoordsys!=null){var fcsElem2=this.createElementNS("","FILTERCOORDSYS");if(fquery.filtercoordsys.id===0){fcsElem2.setAttribute("string",fquery.filtercoordsys.string);}else{fcsElem2.setAttribute("id",fquery.filtercoordsys.id);}
+qElem.appendChild(fcsElem2);}
+if(fquery.buffer>0){var bufElem=this.createElementNS("","BUFFER");bufElem.setAttribute("distance",fquery.buffer);qElem.appendChild(bufElem);}
+if(fquery.isspatial){var spfElem=this.createElementNS("","SPATIALFILTER");spfElem.setAttribute("relation",fquery.spatialfilter.relation);qElem.appendChild(spfElem);if(fquery.spatialfilter.envelope){var envElem=this.createElementNS("","ENVELOPE");envElem.setAttribute("minx",fquery.spatialfilter.envelope.minx);envElem.setAttribute("miny",fquery.spatialfilter.envelope.miny);envElem.setAttribute("maxx",fquery.spatialfilter.envelope.maxx);envElem.setAttribute("maxy",fquery.spatialfilter.envel [...]
+if(fquery.where!=null&&fquery.where.length>0){qElem.setAttribute("where",fquery.where);}}}
+root.appendChild(reqElem);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},addGroupRenderer:function(ldef,toprenderer){var topRelem=this.createElementNS("","GROUPRENDERER");ldef.appendChild(topRelem);for(var rind=0;rind<toprenderer.length;rind++){var renderer=toprenderer[rind];this.addRenderer(topRelem,renderer);}},addRenderer:function(topRelem,renderer){if(OpenLayers.Util.isArray(renderer)){this.addGroupRenderer(topRelem,renderer);}else{var renderElem=this.createElement [...]
+if(typeof renderer.upper=="string"||typeof renderer.upper=="number"){renderElem.setAttribute("upper",renderer.upper);}
+this.addRenderer(renderElem,renderer.renderer);},addValueMapLabelRenderer:function(renderElem,renderer){renderElem.setAttribute("lookupfield",renderer.lookupfield);renderElem.setAttribute("labelfield",renderer.labelfield);if(typeof renderer.exacts=="object"){for(var ext=0,extlen=renderer.exacts.length;ext<extlen;ext++){var exact=renderer.exacts[ext];var eelem=this.createElementNS("","EXACT");if(typeof exact.value=="string"){eelem.setAttribute("value",exact.value);}
+if(typeof exact.label=="string"){eelem.setAttribute("label",exact.label);}
+if(typeof exact.method=="string"){eelem.setAttribute("method",exact.method);}
+renderElem.appendChild(eelem);if(typeof exact.symbol=="object"){var selem=null;if(exact.symbol.type=="text"){selem=this.createElementNS("","TEXTSYMBOL");}
+if(selem!=null){var keys=this.fontStyleKeys;for(var i=0,len=keys.length;i<len;i++){var key=keys[i];if(exact.symbol[key]){selem.setAttribute(key,exact.symbol[key]);}}
+eelem.appendChild(selem);}}}}},addValueMapRenderer:function(renderElem,renderer){renderElem.setAttribute("lookupfield",renderer.lookupfield);if(typeof renderer.ranges=="object"){for(var rng=0,rnglen=renderer.ranges.length;rng<rnglen;rng++){var range=renderer.ranges[rng];var relem=this.createElementNS("","RANGE");relem.setAttribute("lower",range.lower);relem.setAttribute("upper",range.upper);renderElem.appendChild(relem);if(typeof range.symbol=="object"){var selem=null;if(range.symbol.typ [...]
+if(selem!=null){if(typeof range.symbol.boundarycolor=="string"){selem.setAttribute("boundarycolor",range.symbol.boundarycolor);}
+if(typeof range.symbol.fillcolor=="string"){selem.setAttribute("fillcolor",range.symbol.fillcolor);}
+if(typeof range.symbol.filltransparency=="number"){selem.setAttribute("filltransparency",range.symbol.filltransparency);}
+relem.appendChild(selem);}}}}else if(typeof renderer.exacts=="object"){for(var ext=0,extlen=renderer.exacts.length;ext<extlen;ext++){var exact=renderer.exacts[ext];var eelem=this.createElementNS("","EXACT");if(typeof exact.value=="string"){eelem.setAttribute("value",exact.value);}
+if(typeof exact.label=="string"){eelem.setAttribute("label",exact.label);}
+if(typeof exact.method=="string"){eelem.setAttribute("method",exact.method);}
+renderElem.appendChild(eelem);if(typeof exact.symbol=="object"){var selem=null;if(exact.symbol.type=="simplemarker"){selem=this.createElementNS("","SIMPLEMARKERSYMBOL");}
+if(selem!=null){if(typeof exact.symbol.antialiasing=="string"){selem.setAttribute("antialiasing",exact.symbol.antialiasing);}
+if(typeof exact.symbol.color=="string"){selem.setAttribute("color",exact.symbol.color);}
+if(typeof exact.symbol.outline=="string"){selem.setAttribute("outline",exact.symbol.outline);}
+if(typeof exact.symbol.overlap=="string"){selem.setAttribute("overlap",exact.symbol.overlap);}
+if(typeof exact.symbol.shadow=="string"){selem.setAttribute("shadow",exact.symbol.shadow);}
+if(typeof exact.symbol.transparency=="number"){selem.setAttribute("transparency",exact.symbol.transparency);}
+if(typeof exact.symbol.usecentroid=="string"){selem.setAttribute("usecentroid",exact.symbol.usecentroid);}
+if(typeof exact.symbol.width=="number"){selem.setAttribute("width",exact.symbol.width);}
+eelem.appendChild(selem);}}}}},addSimpleLabelRenderer:function(renderElem,renderer){renderElem.setAttribute("field",renderer.field);var keys=['featureweight','howmanylabels','labelbufferratio','labelpriorities','labelweight','linelabelposition','rotationalangles'];for(var i=0,len=keys.length;i<len;i++){var key=keys[i];if(renderer[key]){renderElem.setAttribute(key,renderer[key]);}}
+if(renderer.symbol.type=="text"){var symbol=renderer.symbol;var selem=this.createElementNS("","TEXTSYMBOL");renderElem.appendChild(selem);var keys=this.fontStyleKeys;for(var i=0,len=keys.length;i<len;i++){var key=keys[i];if(symbol[key]){selem.setAttribute(key,renderer[key]);}}}},writePolygonGeometry:function(polygon){if(!(polygon instanceof OpenLayers.Geometry.Polygon)){throw{message:'Cannot write polygon geometry to ArcXML with an '+
+polygon.CLASS_NAME+' object.',geometry:polygon};}
+var polyElem=this.createElementNS("","POLYGON");for(var ln=0,lnlen=polygon.components.length;ln<lnlen;ln++){var ring=polygon.components[ln];var ringElem=this.createElementNS("","RING");for(var rn=0,rnlen=ring.components.length;rn<rnlen;rn++){var point=ring.components[rn];var pointElem=this.createElementNS("","POINT");pointElem.setAttribute("x",point.x);pointElem.setAttribute("y",point.y);ringElem.appendChild(pointElem);}
+polyElem.appendChild(ringElem);}
+return polyElem;},parseResponse:function(data){if(typeof data=="string"){var newData=new OpenLayers.Format.XML();data=newData.read(data);}
+var response=new OpenLayers.Format.ArcXML.Response();var errorNode=data.getElementsByTagName("ERROR");if(errorNode!=null&&errorNode.length>0){response.error=this.getChildValue(errorNode,"Unknown error.");}else{var responseNode=data.getElementsByTagName("RESPONSE");if(responseNode==null||responseNode.length==0){response.error="No RESPONSE tag found in ArcXML response.";return response;}
+var rtype=responseNode[0].firstChild.nodeName;if(rtype=="#text"){rtype=responseNode[0].firstChild.nextSibling.nodeName;}
+if(rtype=="IMAGE"){var envelopeNode=data.getElementsByTagName("ENVELOPE");var outputNode=data.getElementsByTagName("OUTPUT");if(envelopeNode==null||envelopeNode.length==0){response.error="No ENVELOPE tag found in ArcXML response.";}else if(outputNode==null||outputNode.length==0){response.error="No OUTPUT tag found in ArcXML response.";}else{var envAttr=this.parseAttributes(envelopeNode[0]);var outputAttr=this.parseAttributes(outputNode[0]);if(typeof outputAttr.type=="string"){response.im [...]
+var geom=featureList[fn].getElementsByTagName("POLYGON");if(geom.length>0){var ring=geom[0].getElementsByTagName("RING");var polys=[];for(var rn=0;rn<ring.length;rn++){var linearRings=[];linearRings.push(this.parsePointGeometry(ring[rn]));var holes=ring[rn].getElementsByTagName("HOLE");for(var hn=0;hn<holes.length;hn++){linearRings.push(this.parsePointGeometry(holes[hn]));}
+holes=null;polys.push(new OpenLayers.Geometry.Polygon(linearRings));linearRings=null;}
+ring=null;if(polys.length==1){feature.geometry=polys[0];}else
+{feature.geometry=new OpenLayers.Geometry.MultiPolygon(polys);}}
+response.features.feature.push(feature);}}}else{response.error="Unidentified response type.";}}
+return response;},parseAttributes:function(node,type){var attributes={};for(var attr=0;attr<node.attributes.length;attr++){if(type=="number"){attributes[node.attributes[attr].nodeName]=parseFloat(node.attributes[attr].nodeValue);}else{attributes[node.attributes[attr].nodeName]=node.attributes[attr].nodeValue;}}
+return attributes;},parsePointGeometry:function(node){var ringPoints=[];var coords=node.getElementsByTagName("COORDS");if(coords.length>0){var coordArr=this.getChildValue(coords[0]);coordArr=coordArr.split(/;/);for(var cn=0;cn<coordArr.length;cn++){var coordItems=coordArr[cn].split(/ /);ringPoints.push(new OpenLayers.Geometry.Point(parseFloat(coordItems[0]),parseFloat(coordItems[1])));}
+coords=null;}else{var point=node.getElementsByTagName("POINT");if(point.length>0){for(var pn=0;pn<point.length;pn++){ringPoints.push(new OpenLayers.Geometry.Point(parseFloat(point[pn].getAttribute("x")),parseFloat(point[pn].getAttribute("y"))));}}
+point=null;}
+return new OpenLayers.Geometry.LinearRing(ringPoints);},CLASS_NAME:"OpenLayers.Format.ArcXML"});OpenLayers.Format.ArcXML.Request=OpenLayers.Class({initialize:function(params){var defaults={get_image:{properties:{background:null,draw:true,envelope:{minx:0,miny:0,maxx:0,maxy:0},featurecoordsys:{id:0,string:"",datumtransformid:0,datumtransformstring:""},filtercoordsys:{id:0,string:"",datumtransformid:0,datumtransformstring:""},imagesize:{height:0,width:0,dpi:96,printheight:0,printwidth:0,sc [...]
+if(!sameOrigin){if(config.proxy){if(typeof config.proxy=="function"){url=config.proxy(url);}else{url=config.proxy+encodeURIComponent(url);}}else{OpenLayers.Console.warn(OpenLayers.i18n("proxyNeeded"),{url:url});}}
+request.open(config.method,url,config.async,config.user,config.password);for(var header in config.headers){request.setRequestHeader(header,config.headers[header]);}
+var events=this.events;var self=this;request.onreadystatechange=function(){if(request.readyState==OpenLayers.Request.XMLHttpRequest.DONE){var proceed=events.triggerEvent("complete",{request:request,config:config,requestUrl:url});if(proceed!==false){self.runCallbacks({request:request,config:config,requestUrl:url});}}};if(config.async===false){request.send(config.data);}else{window.setTimeout(function(){if(request.readyState!==0){request.send(config.data);}},0);}
+return request;},runCallbacks:function(options){var request=options.request;var config=options.config;var complete=(config.scope)?OpenLayers.Function.bind(config.callback,config.scope):config.callback;var success;if(config.success){success=(config.scope)?OpenLayers.Function.bind(config.success,config.scope):config.success;}
+var failure;if(config.failure){failure=(config.scope)?OpenLayers.Function.bind(config.failure,config.scope):config.failure;}
+if(OpenLayers.Util.createUrlObject(config.url).protocol=="file:"&&request.responseText){request.status=200;}
+complete(request);if(!request.status||(request.status>=200&&request.status<300)){this.events.triggerEvent("success",options);if(success){success(request);}}
+if(request.status&&(request.status<200||request.status>=300)){this.events.triggerEvent("failure",options);if(failure){failure(request);}}},GET:function(config){config=OpenLayers.Util.extend(config,{method:"GET"});return OpenLayers.Request.issue(config);},POST:function(config){config=OpenLayers.Util.extend(config,{method:"POST"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="applicati [...]
+return OpenLayers.Request.issue(config);},PUT:function(config){config=OpenLayers.Util.extend(config,{method:"PUT"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="application/xml";}
+return OpenLayers.Request.issue(config);},DELETE:function(config){config=OpenLayers.Util.extend(config,{method:"DELETE"});return OpenLayers.Request.issue(config);},HEAD:function(config){config=OpenLayers.Util.extend(config,{method:"HEAD"});return OpenLayers.Request.issue(config);},OPTIONS:function(config){config=OpenLayers.Util.extend(config,{method:"OPTIONS"});return OpenLayers.Request.issue(config);}};OpenLayers.Layer.ArcIMS=OpenLayers.Class(OpenLayers.Layer.Grid,{DEFAULT_PARAMS:{Clien [...]
+if(this.format=="image/jpeg"){this.format=OpenLayers.Util.alphaHack()?"image/gif":"image/png";}}
+if(this.options.layers===null){this.options.layers=[];}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},getURL:function(bounds){var url="";bounds=this.adjustBounds(bounds);var axlReq=new OpenLayers.Format.ArcXML(OpenLayers.Util.extend(this.options,{requesttype:"image",envelope:bounds.toArray(),tileSize:this.tileSize}));var req=new OpenLayers.Request.POST({url:this.getFullRequestString(),data:axlReq.write(),async:false});if(req!=null){var doc=req.respon [...]
+var axlResp=new OpenLayers.Format.ArcXML();var arcxml=axlResp.read(doc);url=this.getUrlOrImage(arcxml.image.output);}
+return url;},getURLasync:function(bounds,scope,prop,callback){bounds=this.adjustBounds(bounds);var axlReq=new OpenLayers.Format.ArcXML(OpenLayers.Util.extend(this.options,{requesttype:"image",envelope:bounds.toArray(),tileSize:this.tileSize}));OpenLayers.Request.POST({url:this.getFullRequestString(),async:true,data:axlReq.write(),callback:function(req){var doc=req.responseXML;if(!doc||!doc.documentElement){doc=req.responseText;}
+var axlResp=new OpenLayers.Format.ArcXML();var arcxml=axlResp.read(doc);scope[prop]=this.getUrlOrImage(arcxml.image.output);callback.apply(scope);},scope:this});},getUrlOrImage:function(output){var ret="";if(output.url){ret=output.url;}else if(output.data){ret="data:image/"+output.type+";base64,"+output.data;}
+return ret;},setLayerQuery:function(id,querydef){for(var lyr=0;lyr<this.options.layers.length;lyr++){if(id==this.options.layers[lyr].id){this.options.layers[lyr].query=querydef;return;}}
+this.options.layers.push({id:id,visible:true,query:querydef});},getFeatureInfo:function(geometry,layer,options){var buffer=options.buffer||1;var callback=options.callback||function(){};var scope=options.scope||window;var requestOptions={};OpenLayers.Util.extend(requestOptions,this.options);requestOptions.requesttype="feature";if(geometry instanceof OpenLayers.LonLat){requestOptions.polygon=null;requestOptions.envelope=[geometry.lon-buffer,geometry.lat-buffer,geometry.lon+buffer,geometry. [...]
+var arcxml=new OpenLayers.Format.ArcXML(requestOptions);OpenLayers.Util.extend(arcxml.request.get_feature,options);arcxml.request.get_feature.layer=layer.id;if(typeof layer.query.accuracy=="number"){arcxml.request.get_feature.query.accuracy=layer.query.accuracy;}else{var mapCenter=this.map.getCenter();var viewPx=this.map.getViewPortPxFromLonLat(mapCenter);viewPx.x++;var mapOffCenter=this.map.getLonLatFromPixel(viewPx);arcxml.request.get_feature.query.accuracy=mapOffCenter.lon-mapCenter.lon;}
+arcxml.request.get_feature.query.where=layer.query.where;arcxml.request.get_feature.query.spatialfilter.relation="area_intersection";OpenLayers.Request.POST({url:this.getFullRequestString({'CustomService':'Query'}),data:arcxml.write(),callback:function(request){var response=arcxml.parseResponse(request.responseText);if(!arcxml.iserror()){callback.call(scope,response.features);}else{callback.call(scope,null);}}});},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.ArcIMS(this.nam [...]
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},CLASS_NAME:"OpenLayers.Layer.ArcIMS"});OpenLayers.Format.OWSCommon.v1_1_0=OpenLayers.Class(OpenLayers.Format.OWSCommon.v1,{namespaces:{ows:"http://www.opengis.net/ows/1.1",xlink:"http://www.w3.org/1999/xlink"},readers:{"ows":OpenLayers.Util.applyDefaults({"ExceptionReport":function(node,obj){obj.exceptionReport={version:node.getAttribute('version'),language:node.getAttribute('xml:lang'),exceptions:[]};this.readChild [...]
+return node;},"TemporalSubset":function(temporalSubset){var node=this.createElementNSPlus("wcs:TemporalSubset",{});for(var i=0,len=temporalSubset.timePeriods.length;i<len;++i){this.writeNode("wcs:TimePeriod",temporalSubset.timePeriods[i],node);}
+return node;},"TimePeriod":function(timePeriod){var node=this.createElementNSPlus("wcs:TimePeriod",{});this.writeNode("wcs:BeginPosition",timePeriod.begin,node);this.writeNode("wcs:EndPosition",timePeriod.end,node);if(timePeriod.resolution){this.writeNode("wcs:TimeResolution",timePeriod.resolution,node);}
+return node;},"BeginPosition":function(begin){var node=this.createElementNSPlus("wcs:BeginPosition",{value:begin});return node;},"EndPosition":function(end){var node=this.createElementNSPlus("wcs:EndPosition",{value:end});return node;},"TimeResolution":function(resolution){var node=this.createElementNSPlus("wcs:TimeResolution",{value:resolution});return node;},"Output":function(output){var node=this.createElementNSPlus("wcs:Output",{attributes:{format:output.format,store:output.store}}); [...]
+return node;},"GridCRS":function(gridCRS){var node=this.createElementNSPlus("wcs:GridCRS",{});this.writeNode("wcs:GridBaseCRS",gridCRS.baseCRS,node);if(gridCRS.type){this.writeNode("wcs:GridType",gridCRS.type,node);}
+if(gridCRS.origin){this.writeNode("wcs:GridOrigin",gridCRS.origin,node);}
+this.writeNode("wcs:GridOffsets",gridCRS.offsets,node);if(gridCRS.CS){this.writeNode("wcs:GridCS",gridCRS.CS,node);}
+return node;},"GridBaseCRS":function(baseCRS){return this.createElementNSPlus("wcs:GridBaseCRS",{value:baseCRS});},"GridOrigin":function(origin){return this.createElementNSPlus("wcs:GridOrigin",{value:origin});},"GridType":function(type){return this.createElementNSPlus("wcs:GridType",{value:type});},"GridOffsets":function(offsets){return this.createElementNSPlus("wcs:GridOffsets",{value:offsets});},"GridCS":function(CS){return this.createElementNSPlus("wcs:GridCS",{value:CS});}},"ows":Op [...]
+var node=this.writeNode("wps:Execute",options,doc);this.setAttributeNS(node,this.namespaces.xsi,"xsi:schemaLocation",this.schemaLocation);return OpenLayers.Format.XML.prototype.write.apply(this,[node]);},writers:{"wps":{"Execute":function(options){var node=this.createElementNSPlus("wps:Execute",{attributes:{version:this.VERSION,service:'WPS'}});this.writeNode("ows:Identifier",options.identifier,node);this.writeNode("wps:DataInputs",options.dataInputs,node);this.writeNode("wps:ResponseFor [...]
+if(responseForm.responseDocument){this.writeNode("wps:ResponseDocument",responseForm.responseDocument,node);}
+return node;},"ResponseDocument":function(responseDocument){var node=this.createElementNSPlus("wps:ResponseDocument",{attributes:{storeExecuteResponse:responseDocument.storeExecuteResponse,lineage:responseDocument.lineage,status:responseDocument.status}});if(responseDocument.output){this.writeNode("wps:Output",responseDocument.output,node);}
+return node;},"Output":function(output){var node=this.createElementNSPlus("wps:Output",{attributes:{asReference:output.asReference}});this.writeNode("ows:Identifier",output.identifier,node);this.writeNode("ows:Title",output.title,node);this.writeNode("ows:Abstract",output["abstract"],node);return node;},"RawDataOutput":function(rawDataOutput){var node=this.createElementNSPlus("wps:RawDataOutput",{attributes:{mimeType:rawDataOutput.mimeType}});this.writeNode("ows:Identifier",rawDataOutput [...]
+return node;},"Input":function(input){var node=this.createElementNSPlus("wps:Input",{});this.writeNode("ows:Identifier",input.identifier,node);if(input.title){this.writeNode("ows:Title",input.title,node);}
+if(input.data){this.writeNode("wps:Data",input.data,node);}
+if(input.reference){this.writeNode("wps:Reference",input.reference,node);}
+return node;},"Data":function(data){var node=this.createElementNSPlus("wps:Data",{});if(data.literalData){this.writeNode("wps:LiteralData",data.literalData,node);}else if(data.complexData){this.writeNode("wps:ComplexData",data.complexData,node);}
+return node;},"LiteralData":function(literalData){var node=this.createElementNSPlus("wps:LiteralData",{attributes:{uom:literalData.uom},value:literalData.value});return node;},"ComplexData":function(complexData){var node=this.createElementNSPlus("wps:ComplexData",{attributes:{mimeType:complexData.mimeType,encoding:complexData.encoding,schema:complexData.schema}});node.appendChild(this.getXMLDoc().createCDATASection(complexData.value));return node;},"Reference":function(reference){var nod [...]
+return node;},"Body":function(body){var node=this.createElementNSPlus("wps:Body",{});if(body.wcs){this.writeNode("wcs:GetCoverage",body.wcs,node);}
+else if(body.wfs){this.featureType=body.wfs.featureType;this.version=body.wfs.version;this.writeNode("wfs:GetFeature",body.wfs,node);}else{this.writeNode("wps:Execute",body,node);}
+return node;}},"wcs":OpenLayers.Format.WCSGetCoverage.prototype.writers.wcs,"wfs":OpenLayers.Format.WFST.v1_1_0.prototype.writers.wfs,"ows":OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows},CLASS_NAME:"OpenLayers.Format.WPSExecute"});OpenLayers.Control.PanZoom=OpenLayers.Class(OpenLayers.Control,{slideFactor:50,slideRatio:null,buttons:null,position:null,initialize:function(options){this.position=new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X,OpenLayers.Control.PanZoom.Y);OpenL [...]
+btn.getSlideFactor=getSlideFactor;this.buttons.push(btn);return btn;},_removeButton:function(btn){OpenLayers.Event.stopObservingElement(btn);btn.map=null;btn.getSlideFactor=null;this.div.removeChild(btn);OpenLayers.Util.removeItem(this.buttons,btn);},removeButtons:function(){for(var i=this.buttons.length-1;i>=0;--i){this._removeButton(this.buttons[i]);}},doubleClick:function(evt){OpenLayers.Event.stop(evt);return false;},buttonDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+switch(this.action){case"panup":this.map.pan(0,-this.getSlideFactor("h"));break;case"pandown":this.map.pan(0,this.getSlideFactor("h"));break;case"panleft":this.map.pan(-this.getSlideFactor("w"),0);break;case"panright":this.map.pan(this.getSlideFactor("w"),0);break;case"zoomin":this.map.zoomIn();break;case"zoomout":this.map.zoomOut();break;case"zoomworld":this.map.zoomToMaxExtent();break;}
+OpenLayers.Event.stop(evt);},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayers.Control.PanZoom.X=4;OpenLayers.Control.PanZoom.Y=4;OpenLayers.Control.PanZoomBar=OpenLayers.Class(OpenLayers.Control.PanZoom,{zoomStopWidth:18,zoomStopHeight:11,slider:null,sliderEvents:null,zoombarDiv:null,divEvents:null,zoomWorldIcon:false,panIcons:true,forceFixedZoomLevel:false,mouseDragStart:null,deltaY:null,zoomStart:null,destroy:function(){this._removeZoomBar();this.map.events.un({"changebaselayer":th [...]
+this.draw();},draw:function(px){OpenLayers.Control.prototype.draw.apply(this,arguments);px=this.position.clone();this.buttons=[];var sz=new OpenLayers.Size(18,18);if(this.panIcons){var centered=new OpenLayers.Pixel(px.x+sz.w/2,px.y);var wposition=sz.w;if(this.zoomWorldIcon){centered=new OpenLayers.Pixel(px.x+sz.w,px.y);}
+this._addButton("panup","north-mini.png",centered,sz);px.y=centered.y+sz.h;this._addButton("panleft","west-mini.png",px,sz);if(this.zoomWorldIcon){this._addButton("zoomworld","zoom-world-mini.png",px.add(sz.w,0),sz);wposition*=2;}
+this._addButton("panright","east-mini.png",px.add(wposition,0),sz);this._addButton("pandown","south-mini.png",centered.add(0,sz.h*2),sz);this._addButton("zoomin","zoom-plus-mini.png",centered.add(0,sz.h*3+5),sz);centered=this._addZoomBar(centered.add(0,sz.h*4+5));this._addButton("zoomout","zoom-minus-mini.png",centered,sz);}
+else{this._addButton("zoomin","zoom-plus-mini.png",px,sz);centered=this._addZoomBar(px.add(0,sz.h));this._addButton("zoomout","zoom-minus-mini.png",centered,sz);if(this.zoomWorldIcon){centered=centered.add(0,sz.h+3);this._addButton("zoomworld","zoom-world-mini.png",centered,sz);}}
+return this.div;},_addZoomBar:function(centered){var imgLocation=OpenLayers.Util.getImagesLocation();var id=this.id+"_"+this.map.id;var zoomsToEnd=this.map.getNumZoomLevels()-1-this.map.getZoom();var slider=OpenLayers.Util.createAlphaImageDiv(id,centered.add(-1,zoomsToEnd*this.zoomStopHeight),new OpenLayers.Size(20,9),imgLocation+"slider.png","absolute");slider.style.cursor="move";this.slider=slider;this.sliderEvents=new OpenLayers.Events(this,slider,null,true,{includeXY:true});this.slid [...]
+div.style.cursor="pointer";this.zoombarDiv=div;this.divEvents=new OpenLayers.Events(this,div,null,true,{includeXY:true});this.divEvents.on({"touchmove":this.passEventToSlider,"mousedown":this.divClick,"mousemove":this.passEventToSlider,"dblclick":this.doubleClick,"click":this.doubleClick});this.div.appendChild(div);this.startTop=parseInt(div.style.top);this.div.appendChild(slider);this.map.events.register("zoomend",this,this.moveZoomBar);centered=centered.add(0,this.zoomStopHeight*this.m [...]
+var levels=evt.xy.y/this.zoomStopHeight;if(this.forceFixedZoomLevel||!this.map.fractionalZoom){levels=Math.floor(levels);}
+var zoom=(this.map.getNumZoomLevels()-1)-levels;zoom=Math.min(Math.max(zoom,0),this.map.getNumZoomLevels()-1);this.map.zoomTo(zoom);OpenLayers.Event.stop(evt);},zoomBarDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)&&!OpenLayers.Event.isSingleTouch(evt)){return;}
+this.map.events.on({"touchmove":this.passEventToSlider,"mousemove":this.passEventToSlider,"mouseup":this.passEventToSlider,scope:this});this.mouseDragStart=evt.xy.clone();this.zoomStart=evt.xy.clone();this.div.style.cursor="move";this.zoombarDiv.offsets=null;OpenLayers.Event.stop(evt);},zoomBarDrag:function(evt){if(this.mouseDragStart!=null){var deltaY=this.mouseDragStart.y-evt.xy.y;var offsets=OpenLayers.Util.pagePosition(this.zoombarDiv);if((evt.clientY-offsets[1])>0&&(evt.clientY-offs [...]
+this.deltaY=this.zoomStart.y-evt.xy.y;OpenLayers.Event.stop(evt);}},zoomBarUp:function(evt){if(!OpenLayers.Event.isLeftClick(evt)&&evt.type!=="touchend"){return;}
+if(this.mouseDragStart){this.div.style.cursor="";this.map.events.un({"touchmove":this.passEventToSlider,"mouseup":this.passEventToSlider,"mousemove":this.passEventToSlider,scope:this});var zoomLevel=this.map.zoom;if(!this.forceFixedZoomLevel&&this.map.fractionalZoom){zoomLevel+=this.deltaY/this.zoomStopHeight;zoomLevel=Math.min(Math.max(zoomLevel,0),this.map.getNumZoomLevels()-1);}else{zoomLevel+=this.deltaY/this.zoomStopHeight;zoomLevel=Math.max(Math.round(zoomLevel),0);}
+this.map.zoomTo(zoomLevel);this.mouseDragStart=null;this.zoomStart=null;this.deltaY=0;OpenLayers.Event.stop(evt);}},moveZoomBar:function(){var newTop=((this.map.getNumZoomLevels()-1)-this.map.getZoom())*this.zoomStopHeight+this.startTop+1;this.slider.style.top=newTop+"px";},CLASS_NAME:"OpenLayers.Control.PanZoomBar"});OpenLayers.Layer.Image=OpenLayers.Class(OpenLayers.Layer,{isBaseLayer:true,url:null,extent:null,size:null,tile:null,aspectRatio:null,initialize:function(name,url,extent,siz [...]
+OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Image(this.name,this.url,this.extent,this.size,this.getOptions());}
+obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);return obj;},setMap:function(map){if(this.options.maxResolution==null){this.options.maxResolution=this.aspectRatio*this.extent.getWidth()/this.size.w;}
+OpenLayers.Layer.prototype.setMap.apply(this,arguments);},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);var firstRendering=(this.tile==null);if(zoomChanged||firstRendering){this.setTileSize();var ul=new OpenLayers.LonLat(this.extent.left,this.extent.top);var ulPx=this.map.getLayerPxFromLonLat(ul);if(firstRendering){this.tile=new OpenLayers.Tile.Image(this,ulPx,this.extent,null,this.tileSize);this.addTileMonitoringHooks(this.tile);}el [...]
+this.tile.draw();}},setTileSize:function(){var tileWidth=this.extent.getWidth()/this.map.getResolution();var tileHeight=this.extent.getHeight()/this.map.getResolution();this.tileSize=new OpenLayers.Size(tileWidth,tileHeight);},addTileMonitoringHooks:function(tile){tile.onLoadStart=function(){this.events.triggerEvent("loadstart");};tile.events.register("loadstart",this,tile.onLoadStart);tile.onLoadEnd=function(){this.events.triggerEvent("loadend");};tile.events.register("loadend",this,til [...]
+return false;},deactivate:function(){if(this.active){this.active=false;return true;}
+return false;},CLASS_NAME:"OpenLayers.Strategy"});OpenLayers.Strategy.Save=OpenLayers.Class(OpenLayers.Strategy,{EVENT_TYPES:["start","success","fail"],events:null,auto:false,timer:null,initialize:function(options){OpenLayers.Strategy.prototype.initialize.apply(this,[options]);this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);},activate:function(){var activated=OpenLayers.Strategy.prototype.activate.call(this);if(activated){if(this.auto){if(typeof this.auto==="number"){this.t [...]
+return activated;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){if(this.auto){if(typeof this.auto==="number"){window.clearInterval(this.timer);}else{this.layer.events.un({"featureadded":this.triggerSave,"afterfeaturemodified":this.triggerSave,scope:this});}}}
+return deactivated;},triggerSave:function(event){var feature=event.feature;if(feature.state===OpenLayers.State.INSERT||feature.state===OpenLayers.State.UPDATE||feature.state===OpenLayers.State.DELETE){this.save([event.feature]);}},save:function(features){if(!features){features=this.layer.features;}
+this.events.triggerEvent("start",{features:features});var remote=this.layer.projection;var local=this.layer.map.getProjectionObject();if(!local.equals(remote)){var len=features.length;var clones=new Array(len);var orig,clone;for(var i=0;i<len;++i){orig=features[i];clone=orig.clone();clone.fid=orig.fid;clone.state=orig.state;if(orig.url){clone.url=orig.url;}
+clone._original=orig;clone.geometry.transform(local,remote);clones[i]=clone;}
+features=clones;}
+this.layer.protocol.commit(features,{callback:this.onCommit,scope:this});},onCommit:function(response){var evt={"response":response};if(response.success()){var features=response.reqFeatures;var state,feature;var destroys=[];var insertIds=response.insertIds||[];var j=0;for(var i=0,len=features.length;i<len;++i){feature=features[i];feature=feature._original||feature;state=feature.state;if(state){if(state==OpenLayers.State.DELETE){destroys.push(feature);}else if(state==OpenLayers.State.INSE [...]
+feature.state=null;}}
+if(destroys.length>0){this.layer.destroyFeatures(destroys);}
+this.events.triggerEvent("success",evt);}else{this.events.triggerEvent("fail",evt);}},CLASS_NAME:"OpenLayers.Strategy.Save"});OpenLayers.Format.GPX=OpenLayers.Class(OpenLayers.Format.XML,{extractWaypoints:true,extractTracks:true,extractRoutes:true,extractAttributes:true,initialize:function(options){this.externalProjection=new OpenLayers.Projection("EPSG:4326");OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(doc){if(typeof doc=="string"){doc=OpenLayers.For [...]
+var features=[];if(this.extractTracks){var tracks=doc.getElementsByTagName("trk");for(var i=0,len=tracks.length;i<len;i++){var attrs={};if(this.extractAttributes){attrs=this.parseAttributes(tracks[i]);}
+var segs=this.getElementsByTagNameNS(tracks[i],tracks[i].namespaceURI,"trkseg");for(var j=0,seglen=segs.length;j<seglen;j++){var track=this.extractSegment(segs[j],"trkpt");features.push(new OpenLayers.Feature.Vector(track,attrs));}}}
+if(this.extractRoutes){var routes=doc.getElementsByTagName("rte");for(var k=0,klen=routes.length;k<klen;k++){var attrs={};if(this.extractAttributes){attrs=this.parseAttributes(routes[k]);}
+var route=this.extractSegment(routes[k],"rtept");features.push(new OpenLayers.Feature.Vector(route,attrs));}}
+if(this.extractWaypoints){var waypoints=doc.getElementsByTagName("wpt");for(var l=0,len=waypoints.length;l<len;l++){var attrs={};if(this.extractAttributes){attrs=this.parseAttributes(waypoints[l]);}
+var wpt=new OpenLayers.Geometry.Point(waypoints[l].getAttribute("lon"),waypoints[l].getAttribute("lat"));features.push(new OpenLayers.Feature.Vector(wpt,attrs));}}
+if(this.internalProjection&&this.externalProjection){for(var g=0,featLength=features.length;g<featLength;g++){features[g].geometry.transform(this.externalProjection,this.internalProjection);}}
+return features;},extractSegment:function(segment,segmentType){var points=this.getElementsByTagNameNS(segment,segment.namespaceURI,segmentType);var point_features=[];for(var i=0,len=points.length;i<len;i++){point_features.push(new OpenLayers.Geometry.Point(points[i].getAttribute("lon"),points[i].getAttribute("lat")));}
+return new OpenLayers.Geometry.LineString(point_features);},parseAttributes:function(node){var attributes={};var attrNode=node.firstChild,value,name;while(attrNode){if(attrNode.nodeType==1){value=attrNode.firstChild;if(value.nodeType==3||value.nodeType==4){name=(attrNode.prefix)?attrNode.nodeName.split(":")[1]:attrNode.nodeName;if(name!="trkseg"&&name!="rtept"){attributes[name]=value.nodeValue;}}}
+attrNode=attrNode.nextSibling;}
+return attributes;},CLASS_NAME:"OpenLayers.Format.GPX"});OpenLayers.Format.WMSDescribeLayer=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.1.1",getVersion:function(root,options){var version=OpenLayers.Format.XML.VersionedOGC.prototype.getVersion.apply(this,arguments);if(version=="1.1.1"||version=="1.1.0"){version="1.1";}
+return version;},CLASS_NAME:"OpenLayers.Format.WMSDescribeLayer"});OpenLayers.Format.WMSDescribeLayer.v1_1=OpenLayers.Class(OpenLayers.Format.WMSDescribeLayer,{initialize:function(options){OpenLayers.Format.WMSDescribeLayer.prototype.initialize.apply(this,[options]);},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+var root=data.documentElement;var children=root.childNodes;var describelayer=[];var childNode,nodeName;for(var i=0;i<children.length;++i){childNode=children[i];nodeName=childNode.nodeName;if(nodeName=='LayerDescription'){var layerName=childNode.getAttribute('name');var owsType='';var owsURL='';var typeName='';if(childNode.getAttribute('owsType')){owsType=childNode.getAttribute('owsType');owsURL=childNode.getAttribute('owsURL');}else{if(childNode.getAttribute('wfs')!=''){owsType='WFS';ows [...]
+var query=childNode.getElementsByTagName('Query');if(query.length>0){typeName=query[0].getAttribute('typeName');if(!typeName){typeName=query[0].getAttribute('typename');}}
+describelayer.push({layerName:layerName,owsType:owsType,owsURL:owsURL,typeName:typeName});}}
+return describelayer;},CLASS_NAME:"OpenLayers.Format.WMSDescribeLayer.v1_1"});OpenLayers.Format.XLS=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.1.0",stringifyOutput:true,CLASS_NAME:"OpenLayers.Format.XLS"});OpenLayers.Format.XLS.v1=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{xls:"http://www.opengis.net/xls",gml:"http://www.opengis.net/gml",xsi:"http://www.w3.org/2001/XMLSchema-instance"},regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace: [...]
+return node;},"Address":function(address){var node=this.createElementNSPlus("xls:Address",{attributes:{countryCode:address.countryCode}});if(address.freeFormAddress){this.writeNode("freeFormAddess",address.freeFormAddress,node);}else{if(address.street){this.writeNode("StreetAddress",address,node);}
+if(address.municipality){this.writeNode("Municipality",address.municipality,node);}
+if(address.countrySubdivision){this.writeNode("CountrySubdivision",address.countrySubdivision,node);}
+if(address.postalCode){this.writeNode("PostalCode",address.postalCode,node);}}
+return node;},"freeFormAddress":function(freeFormAddress){return this.createElementNSPlus("freeFormAddress",{value:freeFormAddress});},"StreetAddress":function(address){var node=this.createElementNSPlus("xls:StreetAddress");if(address.building){this.writeNode(node,"Building",address.building);}
+var street=address.street;if(!(OpenLayers.Util.isArray(street))){street=[street];}
+for(var i=0,len=street.length;i<len;i++){this.writeNode("Street",street[i],node);}
+return node;},"Building":function(building){return this.createElementNSPlus("xls:Building",{attributes:{"number":building["number"],"subdivision":building.subdivision,"buildingName":building.buildingName}});},"Street":function(street){return this.createElementNSPlus("xls:Street",{value:street});},"Municipality":function(municipality){return this.createElementNSPlus("xls:Place",{attributes:{type:"Municipality"},value:municipality});},"CountrySubdivision":function(countrySubdivision){retur [...]
+if(feature.geometry){var bounds=feature.geometry.getBounds();if(bounds){if(!bounds.intersectsBounds(this.extent)){style={display:"none"};}
+var rendered=this.drawGeometry(feature.geometry,style,feature.id);if(style.display!="none"&&style.label&&rendered!==false){var location=feature.geometry.getCentroid();if(style.labelXOffset||style.labelYOffset){var xOffset=isNaN(style.labelXOffset)?0:style.labelXOffset;var yOffset=isNaN(style.labelYOffset)?0:style.labelYOffset;var res=this.getResolution();location.move(xOffset*res,yOffset*res);}
+this.drawText(feature.id,style,location);}else{this.removeText(feature.id);}
+return rendered;}}},drawGeometry:function(geometry,style,featureId){},drawText:function(featureId,style,location){},removeText:function(featureId){},clear:function(){},getFeatureIdFromEvent:function(evt){},eraseFeatures:function(features){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+for(var i=0,len=features.length;i<len;++i){var feature=features[i];this.eraseGeometry(feature.geometry,feature.id);this.removeText(feature.id);}},eraseGeometry:function(geometry,featureId){},moveRoot:function(renderer){},getRenderLayerId:function(){return this.container.id;},applyDefaultSymbolizer:function(symbolizer){var result=OpenLayers.Util.extend({},OpenLayers.Renderer.defaultSymbolizer);if(symbolizer.stroke===false){delete result.strokeWidth;delete result.strokeColor;}
+if(symbolizer.fill===false){delete result.fillColor;}
+OpenLayers.Util.extend(result,symbolizer);return result;},CLASS_NAME:"OpenLayers.Renderer"});OpenLayers.Renderer.defaultSymbolizer={fillColor:"#000000",strokeColor:"#000000",strokeWidth:2,fillOpacity:1,strokeOpacity:1,pointRadius:0};OpenLayers.Renderer.Canvas=OpenLayers.Class(OpenLayers.Renderer,{hitDetection:true,hitOverflow:0,canvas:null,features:null,pendingRedraw:false,initialize:function(containerID,options){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.root=do [...]
+else{delete(this.features[feature.id]);}
+this.pendingRedraw=true;}
+if(this.pendingRedraw&&!this.locked){this.redraw();this.pendingRedraw=false;}
+return rendered;},drawGeometry:function(geometry,style,featureId){var className=geometry.CLASS_NAME;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0;i<geometry.components.length;i++){this.drawGeometry(geometry.components[i],style,featureId);}
+return;}
+switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":this.drawPoint(geometry,style,featureId);break;case"OpenLayers.Geometry.LineString":this.drawLineString(geometry,style,featureId);break;case"OpenLayers.Geometry.LinearRing":this.drawLinearRing(geometry,style,featureId);break;case"OpenLayers.Geometry.Polygon":this.drawPolygon(geometry,style,featureId);break;default:break;}},drawExternalGraphic:function(geometry,style,featureId){var img=new Image();if(style.graphicTitle){img.title [...]
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;var onLoad=function(){if(!this.features[featureId]){return;}
+var pt=this.getLocalXY(geometry);var p0=pt[0];var p1=pt[1];if(!isNaN(p0)&&!isNaN(p1)){var x=(p0+xOffset)|0;var y=(p1+yOffset)|0;var canvas=this.canvas;canvas.globalAlpha=opacity;var factor=OpenLayers.Renderer.Canvas.drawImageScaleFactor||(OpenLayers.Renderer.Canvas.drawImageScaleFactor=/android 2.1/.test(navigator.userAgent.toLowerCase())?320/window.screen.width:1);canvas.drawImage(img,x*factor,y*factor,width*factor,height*factor);if(this.hitDetection){this.setHitContextStyle("fill",feat [...]
+var hex="000000"+id.toString(16);var len=hex.length;hex="#"+hex.substring(len-6,len);return hex;},setHitContextStyle:function(type,featureId,symbolizer){var hex=this.featureIdToHex(featureId);if(type=="fill"){this.hitContext.globalAlpha=1.0;this.hitContext.fillStyle=hex;}else if(type=="stroke"){this.hitContext.globalAlpha=1.0;this.hitContext.strokeStyle=hex;this.hitContext.lineWidth=symbolizer.strokeWidth+2;}else{this.hitContext.globalAlpha=0;this.hitContext.lineWidth=1;}},drawPoint:func [...]
+if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();this.canvas.arc(p0,p1,radius,0,twoPi,true);this.canvas.stroke();if(this.hitDetection){this.setHitContextStyle("stroke",featureId,style);this.hitContext.beginPath();this.hitContext.arc(p0,p1,radius,0,twoPi,true);this.hitContext.stroke();}
+this.setCanvasStyle("reset");}}}}},drawLineString:function(geometry,style,featureId){style=OpenLayers.Util.applyDefaults({fill:false},style);this.drawLinearRing(geometry,style,featureId);},drawLinearRing:function(geometry,style,featureId){if(style.fill!==false){this.setCanvasStyle("fill",style);this.renderPath(this.canvas,geometry,style,featureId,"fill");if(this.hitDetection){this.setHitContextStyle("fill",featureId,style);this.renderPath(this.hitContext,geometry,style,featureId,"fill");}}
+if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.renderPath(this.canvas,geometry,style,featureId,"stroke");if(this.hitDetection){this.setHitContextStyle("stroke",featureId,style);this.renderPath(this.hitContext,geometry,style,featureId,"stroke");}}
+this.setCanvasStyle("reset");},renderPath:function(context,geometry,style,featureId,type){var components=geometry.components;var len=components.length;context.beginPath();var start=this.getLocalXY(components[0]);var x=start[0];var y=start[1];if(!isNaN(x)&&!isNaN(y)){context.moveTo(start[0],start[1]);for(var i=1;i<len;++i){var pt=this.getLocalXY(components[i]);context.lineTo(pt[0],pt[1]);}
+if(type==="fill"){context.fill();}else{context.stroke();}}},drawPolygon:function(geometry,style,featureId){var components=geometry.components;var len=components.length;this.drawLinearRing(components[0],style,featureId);for(var i=1;i<len;++i){this.canvas.globalCompositeOperation="destination-out";if(this.hitDetection){this.hitContext.globalCompositeOperation="destination-out";}
+this.drawLinearRing(components[i],OpenLayers.Util.applyDefaults({stroke:false,fillOpacity:1.0},style),featureId);this.canvas.globalCompositeOperation="source-over";if(this.hitDetection){this.hitContext.globalCompositeOperation="source-over";}
+this.drawLinearRing(components[i],OpenLayers.Util.applyDefaults({fill:false},style),featureId);}},drawText:function(location,style){style=OpenLayers.Util.extend({fontColor:"#000000",labelAlign:"cm"},style);var pt=this.getLocalXY(location);this.setCanvasStyle("reset");this.canvas.fillStyle=style.fontColor;this.canvas.globalAlpha=style.fontOpacity||1.0;var fontStyle=[style.fontStyle?style.fontStyle:"normal","normal",style.fontWeight?style.fontWeight:"normal",style.fontSize?style.fontSize:" [...]
+var lineHeight=this.canvas.measureText('Mg').height||this.canvas.measureText('xx').width;pt[1]+=lineHeight*vfactor*(numRows-1);for(var i=0;i<numRows;i++){this.canvas.fillText(labelRows[i],pt[0],pt[1]+(lineHeight*i));}}else if(this.canvas.mozDrawText){this.canvas.mozTextStyle=fontStyle;var hfactor=OpenLayers.Renderer.Canvas.LABEL_FACTOR[style.labelAlign[0]];if(hfactor==null){hfactor=-.5;}
+var vfactor=OpenLayers.Renderer.Canvas.LABEL_FACTOR[style.labelAlign[1]];if(vfactor==null){vfactor=-.5;}
+var lineHeight=this.canvas.mozMeasureText('xx');pt[1]+=lineHeight*(1+(vfactor*numRows));for(var i=0;i<numRows;i++){var x=pt[0]+(hfactor*this.canvas.mozMeasureText(labelRows[i]));var y=pt[1]+(i*lineHeight);this.canvas.translate(x,y);this.canvas.mozDrawText(labelRows[i]);this.canvas.translate(-x,-y);}}
+this.setCanvasStyle("reset");},getLocalXY:function(point){var resolution=this.getResolution();var extent=this.extent;var x=(point.x/resolution+(-extent.left/resolution));var y=((extent.top/resolution)-point.y/resolution);return[x,y];},clear:function(){var height=this.root.height;var width=this.root.width;this.canvas.clearRect(0,0,width,height);this.features={};if(this.hitDetection){this.hitContext.clearRect(0,0,width,height);}},getFeatureIdFromEvent:function(evt){var feature=null;if(this [...]
+return feature;},eraseFeatures:function(features){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+for(var i=0;i<features.length;++i){delete this.features[features[i].id];}
+this.redraw();},redraw:function(){if(!this.locked){var height=this.root.height;var width=this.root.width;this.canvas.clearRect(0,0,width,height);if(this.hitDetection){this.hitContext.clearRect(0,0,width,height);}
+var labelMap=[];var feature,style;for(var id in this.features){if(!this.features.hasOwnProperty(id)){continue;}
+feature=this.features[id][0];style=this.features[id][1];this.drawGeometry(feature.geometry,style,feature.id);if(style.label){labelMap.push([feature,style]);}}
+var item;for(var i=0,len=labelMap.length;i<len;++i){item=labelMap[i];this.drawText(item[0].geometry.getCentroid(),item[1]);}}},CLASS_NAME:"OpenLayers.Renderer.Canvas"});OpenLayers.Renderer.Canvas.LABEL_ALIGN={"l":"left","r":"right","t":"top","b":"bottom"};OpenLayers.Renderer.Canvas.LABEL_FACTOR={"l":0,"r":-1,"t":0,"b":-1};OpenLayers.Renderer.Canvas.drawImageScaleFactor=null;OpenLayers.Format.OSM=OpenLayers.Class(OpenLayers.Format.XML,{checkTags:false,interestingTagsExclude:null,areaTags: [...]
+layer_defaults.interestingTagsExclude=interesting;var area={};for(var i=0;i<layer_defaults.areaTags.length;i++){area[layer_defaults.areaTags[i]]=true;}
+layer_defaults.areaTags=area;this.externalProjection=new OpenLayers.Projection("EPSG:4326");OpenLayers.Format.XML.prototype.initialize.apply(this,[layer_defaults]);},read:function(doc){if(typeof doc=="string"){doc=OpenLayers.Format.XML.prototype.read.apply(this,[doc]);}
+var nodes=this.getNodes(doc);var ways=this.getWays(doc);var feat_list=new Array(ways.length);for(var i=0;i<ways.length;i++){var point_list=new Array(ways[i].nodes.length);var poly=this.isWayArea(ways[i])?1:0;for(var j=0;j<ways[i].nodes.length;j++){var node=nodes[ways[i].nodes[j]];var point=new OpenLayers.Geometry.Point(node.lon,node.lat);point.osm_id=parseInt(ways[i].nodes[j]);point_list[j]=point;node.used=true;}
+var geometry=null;if(poly){geometry=new OpenLayers.Geometry.Polygon(new OpenLayers.Geometry.LinearRing(point_list));}else{geometry=new OpenLayers.Geometry.LineString(point_list);}
+if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}
+var feat=new OpenLayers.Feature.Vector(geometry,ways[i].tags);feat.osm_id=parseInt(ways[i].id);feat.fid="way."+feat.osm_id;feat_list[i]=feat;}
+for(var node_id in nodes){var node=nodes[node_id];if(!node.used||this.checkTags){var tags=null;if(this.checkTags){var result=this.getTags(node.node,true);if(node.used&&!result[1]){continue;}
+tags=result[0];}else{tags=this.getTags(node.node);}
+var feat=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(node['lon'],node['lat']),tags);if(this.internalProjection&&this.externalProjection){feat.geometry.transform(this.externalProjection,this.internalProjection);}
+feat.osm_id=parseInt(node_id);feat.fid="node."+feat.osm_id;feat_list.push(feat);}
+node.node=null;}
+return feat_list;},getNodes:function(doc){var node_list=doc.getElementsByTagName("node");var nodes={};for(var i=0;i<node_list.length;i++){var node=node_list[i];var id=node.getAttribute("id");nodes[id]={'lat':node.getAttribute("lat"),'lon':node.getAttribute("lon"),'node':node};}
+return nodes;},getWays:function(doc){var way_list=doc.getElementsByTagName("way");var return_ways=[];for(var i=0;i<way_list.length;i++){var way=way_list[i];var way_object={id:way.getAttribute("id")};way_object.tags=this.getTags(way);var node_list=way.getElementsByTagName("nd");way_object.nodes=new Array(node_list.length);for(var j=0;j<node_list.length;j++){way_object.nodes[j]=node_list[j].getAttribute("ref");}
+return_ways.push(way_object);}
+return return_ways;},getTags:function(dom_node,interesting_tags){var tag_list=dom_node.getElementsByTagName("tag");var tags={};var interesting=false;for(var j=0;j<tag_list.length;j++){var key=tag_list[j].getAttribute("k");tags[key]=tag_list[j].getAttribute("v");if(interesting_tags){if(!this.interestingTagsExclude[key]){interesting=true;}}}
+return interesting_tags?[tags,interesting]:tags;},isWayArea:function(way){var poly_shaped=false;var poly_tags=false;if(way.nodes[0]==way.nodes[way.nodes.length-1]){poly_shaped=true;}
+if(this.checkTags){for(var key in way.tags){if(this.areaTags[key]){poly_tags=true;break;}}}
+return poly_shaped&&(this.checkTags?poly_tags:true);},write:function(features){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+this.osm_id=1;this.created_nodes={};var root_node=this.createElementNS(null,"osm");root_node.setAttribute("version","0.5");root_node.setAttribute("generator","OpenLayers "+OpenLayers.VERSION_NUMBER);for(var i=features.length-1;i>=0;i--){var nodes=this.createFeatureNodes(features[i]);for(var j=0;j<nodes.length;j++){root_node.appendChild(nodes[j]);}}
+return OpenLayers.Format.XML.prototype.write.apply(this,[root_node]);},createFeatureNodes:function(feature){var nodes=[];var className=feature.geometry.CLASS_NAME;var type=className.substring(className.lastIndexOf(".")+1);type=type.toLowerCase();var builder=this.createXML[type];if(builder){nodes=builder.apply(this,[feature]);}
+return nodes;},createXML:{'point':function(point){var id=null;var geometry=point.geometry?point.geometry:point;if(this.internalProjection&&this.externalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);}
+var already_exists=false;if(point.osm_id){id=point.osm_id;if(this.created_nodes[id]){already_exists=true;}}else{id=-this.osm_id;this.osm_id++;}
+if(already_exists){node=this.created_nodes[id];}else{var node=this.createElementNS(null,"node");}
+this.created_nodes[id]=node;node.setAttribute("id",id);node.setAttribute("lon",geometry.x);node.setAttribute("lat",geometry.y);if(point.attributes){this.serializeTags(point,node);}
+this.setState(point,node);return already_exists?[]:[node];},linestring:function(feature){var id;var nodes=[];var geometry=feature.geometry;if(feature.osm_id){id=feature.osm_id;}else{id=-this.osm_id;this.osm_id++;}
+var way=this.createElementNS(null,"way");way.setAttribute("id",id);for(var i=0;i<geometry.components.length;i++){var node=this.createXML['point'].apply(this,[geometry.components[i]]);if(node.length){node=node[0];var node_ref=node.getAttribute("id");nodes.push(node);}else{node_ref=geometry.components[i].osm_id;node=this.created_nodes[node_ref];}
+this.setState(feature,node);var nd_dom=this.createElementNS(null,"nd");nd_dom.setAttribute("ref",node_ref);way.appendChild(nd_dom);}
+this.serializeTags(feature,way);nodes.push(way);return nodes;},polygon:function(feature){var attrs=OpenLayers.Util.extend({'area':'yes'},feature.attributes);var feat=new OpenLayers.Feature.Vector(feature.geometry.components[0],attrs);feat.osm_id=feature.osm_id;return this.createXML['linestring'].apply(this,[feat]);}},serializeTags:function(feature,node){for(var key in feature.attributes){var tag=this.createElementNS(null,"tag");tag.setAttribute("k",key);tag.setAttribute("v",feature.attri [...]
+if(state){node.setAttribute("action",state);}}},CLASS_NAME:"OpenLayers.Format.OSM"});OpenLayers.Handler=OpenLayers.Class({id:null,control:null,map:null,keyMask:null,active:false,evt:null,initialize:function(control,callbacks,options){OpenLayers.Util.extend(this,options);this.control=control;this.callbacks=callbacks;var map=this.map||control.map;if(map){this.setMap(map);}
+this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},setMap:function(map){this.map=map;},checkModifiers:function(evt){if(this.keyMask==null){return true;}
+var keyModifiers=(evt.shiftKey?OpenLayers.Handler.MOD_SHIFT:0)|(evt.ctrlKey?OpenLayers.Handler.MOD_CTRL:0)|(evt.altKey?OpenLayers.Handler.MOD_ALT:0);return(keyModifiers==this.keyMask);},activate:function(){if(this.active){return false;}
+var events=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var i=0,len=events.length;i<len;i++){if(this[events[i]]){this.register(events[i],this[events[i]]);}}
+this.active=true;return true;},deactivate:function(){if(!this.active){return false;}
+var events=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var i=0,len=events.length;i<len;i++){if(this[events[i]]){this.unregister(events[i],this[events[i]]);}}
+this.active=false;return true;},callback:function(name,args){if(name&&this.callbacks[name]){this.callbacks[name].apply(this.control,args);}},register:function(name,method){this.map.events.registerPriority(name,this,method);this.map.events.registerPriority(name,this,this.setEvent);},unregister:function(name,method){this.map.events.unregister(name,this,method);this.map.events.unregister(name,this,this.setEvent);},setEvent:function(evt){this.evt=evt;return true;},destroy:function(){this.dea [...]
+document.onselectstart=OpenLayers.Function.False;propagate=!this.stopDown;}else{this.started=false;this.start=null;this.last=null;}
+return propagate;},dragmove:function(evt){this.lastMoveEvt=evt;if(this.started&&!this.timeoutId&&(evt.xy.x!=this.last.x||evt.xy.y!=this.last.y)){if(this.documentDrag===true&&this.documentEvents){if(evt.element===document){this.adjustXY(evt);this.setEvent(evt);}else{this.removeDocumentEvents();}}
+if(this.interval>0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval);}
+this.dragging=true;this.move(evt);this.callback("move",[evt.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=OpenLayers.Function.False;}
+this.last=evt.xy;}
+return true;},dragend:function(evt){if(this.started){if(this.documentDrag===true&&this.documentEvents){this.adjustXY(evt);this.removeDocumentEvents();}
+var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.up(evt);this.callback("up",[evt.xy]);if(dragged){this.callback("done",[evt.xy]);}
+document.onselectstart=this.oldOnselectstart;}
+return true;},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){return this.dragstart(evt);},touchstart:function(evt){if(!this.touch){this.touch=true;this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,mousemove:this.mousemove,click:this.click,scope:this});}
+return this.dragstart(evt);},mousemove:function(evt){return this.dragmove(evt);},touchmove:function(evt){return this.dragmove(evt);},removeTimeout:function(){this.timeoutId=null;if(this.dragging){this.mousemove(this.lastMoveEvt);}},mouseup:function(evt){return this.dragend(evt);},touchend:function(evt){evt.xy=this.last;return this.dragend(evt);},mouseout:function(evt){if(this.started&&OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){if(this.documentDrag===true){this.addDocumentEvents() [...]
+if(document.onselectstart){document.onselectstart=this.oldOnselectstart;}}}
+return true;},click:function(evt){return(this.start==this.last);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragging=false;activated=true;}
+return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.touch=false;this.started=false;this.dragging=false;this.start=null;this.last=null;deactivated=true;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");}
+return deactivated;},adjustXY:function(evt){var pos=OpenLayers.Util.pagePosition(this.map.viewPortDiv);evt.xy.x-=pos[0];evt.xy.y-=pos[1];},addDocumentEvents:function(){OpenLayers.Element.addClass(document.body,"olDragDown");this.documentEvents=true;OpenLayers.Event.observe(document,"mousemove",this._docMove);OpenLayers.Event.observe(document,"mouseup",this._docUp);},removeDocumentEvents:function(){OpenLayers.Element.removeClass(document.body,"olDragDown");this.documentEvents=false;OpenLa [...]
+return OpenLayers.Event.isMultiTouch(evt)?true:this.mousedown(evt);},touchmove:function(evt){OpenLayers.Event.stop(evt);},mousedown:function(evt){this.down=evt.xy;return this.handle(evt)?!this.stopDown:true;},mouseup:function(evt){this.up=evt.xy;return this.handle(evt)?!this.stopUp:true;},click:function(evt){return this.handle(evt)?!this.stopClick:true;},mousemove:function(evt){if(!this.callbacks['over']&&!this.callbacks['out']){return true;}
+this.handle(evt);return true;},dblclick:function(evt){return!this.handle(evt);},geometryTypeMatches:function(feature){return this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)>-1;},handle:function(evt){if(this.feature&&!this.feature.layer){this.feature=null;}
+var type=evt.type;var handled=false;var previouslyIn=!!(this.feature);var click=(type=="click"||type=="dblclick"||type=="touchstart");this.feature=this.layer.getFeatureFromEvent(evt);if(this.feature&&!this.feature.layer){this.feature=null;}
+if(this.lastFeature&&!this.lastFeature.layer){this.lastFeature=null;}
+if(this.feature){if(type==="touchstart"){OpenLayers.Event.stop(evt);}
+var inNew=(this.feature!=this.lastFeature);if(this.geometryTypeMatches(this.feature)){if(previouslyIn&&inNew){if(this.lastFeature){this.triggerCallback(type,'out',[this.lastFeature]);}
+this.triggerCallback(type,'in',[this.feature]);}else if(!previouslyIn||click){this.triggerCallback(type,'in',[this.feature]);}
+this.lastFeature=this.feature;handled=true;}else{if(this.lastFeature&&(previouslyIn&&inNew||click)){this.triggerCallback(type,'out',[this.lastFeature]);}
+this.feature=null;}}else{if(this.lastFeature&&(previouslyIn||click)){this.triggerCallback(type,'out',[this.lastFeature]);}}
+return handled;},triggerCallback:function(type,mode,args){var key=this.EVENTMAP[type][mode];if(key){if(type=='click'&&this.up&&this.down){var dpx=Math.sqrt(Math.pow(this.up.x-this.down.x,2)+
+Math.pow(this.up.y-this.down.y,2));if(dpx<=this.clickTolerance){this.callback(key,args);}}else{this.callback(key,args);}}},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.moveLayerToTop();this.map.events.on({"removelayer":this.handleMapEvents,"changelayer":this.handleMapEvents,scope:this});activated=true;}
+return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.moveLayerBack();this.feature=null;this.lastFeature=null;this.down=null;this.up=null;this.touch=false;this.map.events.un({"removelayer":this.handleMapEvents,"changelayer":this.handleMapEvents,scope:this});deactivated=true;}
+return deactivated;},handleMapEvents:function(evt){if(evt.type=="removelayer"||evt.property=="order"){this.moveLayerToTop();}},moveLayerToTop:function(){var index=Math.max(this.map.Z_INDEX_BASE['Feature']-1,this.layer.getZIndex())+1;this.layer.setZIndex(index);},moveLayerBack:function(){var index=this.layer.getZIndex()-1;if(index>=this.map.Z_INDEX_BASE['Feature']){this.layer.setZIndex(index);}else{this.map.setLayerZIndex(this.layer,this.map.getLayerIndex(this.layer));}},CLASS_NAME:"OpenL [...]
+return activated;},downFeature:function(pixel){this.lastPixel=pixel;this.onStart(this.feature,pixel);},moveFeature:function(pixel){var res=this.map.getResolution();this.feature.geometry.move(res*(pixel.x-this.lastPixel.x),res*(this.lastPixel.y-pixel.y));this.layer.drawFeature(this.feature);this.lastPixel=pixel;this.onDrag(this.feature,pixel);},upFeature:function(pixel){if(!this.over){this.handlers.drag.deactivate();}},doneDragging:function(pixel){this.onComplete(this.feature,pixel);},out [...]
+OpenLayers.Util.extend(this,options);},destroy:function(){for(var key in this.styles){this.styles[key].destroy();}
+this.styles=null;},createSymbolizer:function(feature,intent){if(!feature){feature=new OpenLayers.Feature.Vector();}
+if(!this.styles[intent]){intent="default";}
+feature.renderIntent=intent;var defaultSymbolizer={};if(this.extendDefault&&intent!="default"){defaultSymbolizer=this.styles["default"].createSymbolizer(feature);}
+return OpenLayers.Util.extend(defaultSymbolizer,this.styles[intent].createSymbolizer(feature));},addUniqueValueRules:function(renderIntent,property,symbolizers,context){var rules=[];for(var value in symbolizers){rules.push(new OpenLayers.Rule({symbolizer:symbolizers[value],context:context,filter:new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.EQUAL_TO,property:property,value:value})}));}
+this.styles[renderIntent].addRules(rules);},CLASS_NAME:"OpenLayers.StyleMap"});OpenLayers.Layer.Vector=OpenLayers.Class(OpenLayers.Layer,{EVENT_TYPES:["beforefeatureadded","beforefeaturesadded","featureadded","featuresadded","beforefeatureremoved","beforefeaturesremoved","featureremoved","featuresremoved","beforefeatureselected","featureselected","featureunselected","beforefeaturemodified","featuremodified","afterfeaturemodified","vertexmodified","vertexremoved","sketchstarted","sketchmo [...]
+if(!this.renderer||!this.renderer.supported()){this.renderer=null;this.displayError();}
+if(!this.styleMap){this.styleMap=new OpenLayers.StyleMap();}
+this.features=[];this.selectedFeatures=[];this.unrenderedFeatures={};if(this.strategies){for(var i=0,len=this.strategies.length;i<len;i++){this.strategies[i].setLayer(this);}}},destroy:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoDestroy){strategy.destroy();}}
+this.strategies=null;}
+if(this.protocol){if(this.protocol.autoDestroy){this.protocol.destroy();}
+this.protocol=null;}
+this.destroyFeatures();this.features=null;this.selectedFeatures=null;this.unrenderedFeatures=null;if(this.renderer){this.renderer.destroy();}
+this.renderer=null;this.geometryType=null;this.drawn=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Vector(this.name,this.getOptions());}
+obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);var features=this.features;var len=features.length;var clonedFeatures=new Array(len);for(var i=0;i<len;++i){clonedFeatures[i]=features[i].clone();}
+obj.features=clonedFeatures;return obj;},refresh:function(obj){if(this.calculateInRange()&&this.visibility){this.events.triggerEvent("refresh",obj);}},assignRenderer:function(){for(var i=0,len=this.renderers.length;i<len;i++){var rendererClass=this.renderers[i];var renderer=(typeof rendererClass=="function")?rendererClass:OpenLayers.Renderer[rendererClass];if(renderer&&renderer.prototype.supported()){this.renderer=new renderer(this.div,this.rendererOptions);break;}}},displayError:functio [...]
+if(!zoomChanged&&coordSysUnchanged){for(var i in this.unrenderedFeatures){var feature=this.unrenderedFeatures[i];this.drawFeature(feature);}}}}
+if(!this.drawn||(!ng&&(zoomChanged||!coordSysUnchanged))){this.drawn=true;var feature;for(var i=0,len=this.features.length;i<len;i++){this.renderer.locked=(i!==(len-1));feature=this.features[i];this.drawFeature(feature);}}},redraw:function(){if(OpenLayers.Renderer.NG&&this.renderer instanceof OpenLayers.Renderer.NG){this.drawn=false;}
+return OpenLayers.Layer.prototype.redraw.apply(this,arguments);},display:function(display){OpenLayers.Layer.prototype.display.apply(this,arguments);var currentDisplay=this.div.style.display;if(currentDisplay!=this.renderer.root.style.display){this.renderer.root.style.display=currentDisplay;}},addFeatures:function(features,options){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+var notify=!options||!options.silent;if(notify){var event={features:features};var ret=this.events.triggerEvent("beforefeaturesadded",event);if(ret===false){return;}
+features=event.features;}
+var featuresAdded=[];for(var i=0,len=features.length;i<len;i++){if(i!=(features.length-1)){this.renderer.locked=true;}else{this.renderer.locked=false;}
+var feature=features[i];if(this.geometryType&&!(feature.geometry instanceof this.geometryType)){var throwStr=OpenLayers.i18n('componentShouldBe',{'geomType':this.geometryType.prototype.CLASS_NAME});throw throwStr;}
+feature.layer=this;if(!feature.style&&this.style){feature.style=OpenLayers.Util.extend({},this.style);}
+if(notify){if(this.events.triggerEvent("beforefeatureadded",{feature:feature})===false){continue;}
+this.preFeatureInsert(feature);}
+featuresAdded.push(feature);this.features.push(feature);this.drawFeature(feature);if(notify){this.events.triggerEvent("featureadded",{feature:feature});this.onFeatureInsert(feature);}}
+if(notify){this.events.triggerEvent("featuresadded",{features:featuresAdded});}},removeFeatures:function(features,options){if(!features||features.length===0){return;}
+if(features===this.features){return this.removeAllFeatures(options);}
+if(!(OpenLayers.Util.isArray(features))){features=[features];}
+if(features===this.selectedFeatures){features=features.slice();}
+var notify=!options||!options.silent;if(notify){this.events.triggerEvent("beforefeaturesremoved",{features:features});}
+for(var i=features.length-1;i>=0;i--){if(i!=0&&features[i-1].geometry){this.renderer.locked=true;}else{this.renderer.locked=false;}
+var feature=features[i];delete this.unrenderedFeatures[feature.id];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});}
+this.features=OpenLayers.Util.removeItem(this.features,feature);feature.layer=null;if(feature.geometry){this.renderer.eraseFeatures(feature);}
+if(OpenLayers.Util.indexOf(this.selectedFeatures,feature)!=-1){OpenLayers.Util.removeItem(this.selectedFeatures,feature);}
+if(notify){this.events.triggerEvent("featureremoved",{feature:feature});}}
+if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},removeAllFeatures:function(options){var notify=!options||!options.silent;var features=this.features;if(notify){this.events.triggerEvent("beforefeaturesremoved",{features:features});}
+var feature;for(var i=features.length-1;i>=0;i--){feature=features[i];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});}
+feature.layer=null;if(notify){this.events.triggerEvent("featureremoved",{feature:feature});}}
+this.renderer.clear();this.features=[];this.unrenderedFeatures={};this.selectedFeatures=[];if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},destroyFeatures:function(features,options){var all=(features==undefined);if(all){features=this.features;}
+if(features){this.removeFeatures(features,options);for(var i=features.length-1;i>=0;i--){features[i].destroy();}}},drawFeature:function(feature,style){if(!this.drawn){return;}
+if(typeof style!="object"){if(!style&&feature.state===OpenLayers.State.DELETE){style="delete";}
+var renderIntent=style||feature.renderIntent;style=feature.style||this.style;if(!style){style=this.styleMap.createSymbolizer(feature,renderIntent);}}
+var drawn=this.renderer.drawFeature(feature,style);if(drawn===false||drawn===null){this.unrenderedFeatures[feature.id]=feature;}else{delete this.unrenderedFeatures[feature.id];}},eraseFeatures:function(features){this.renderer.eraseFeatures(features);},getFeatureFromEvent:function(evt){if(!this.renderer){OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));return null;}
+var feature=null;var featureId=this.renderer.getFeatureIdFromEvent(evt);if(featureId){if(typeof featureId==="string"){feature=this.getFeatureById(featureId);}else{feature=featureId;}}
+return feature;},getFeatureBy:function(property,value){var feature=null;for(var i=0,len=this.features.length;i<len;++i){if(this.features[i][property]==value){feature=this.features[i];break;}}
+return feature;},getFeatureById:function(featureId){return this.getFeatureBy('id',featureId);},getFeatureByFid:function(featureFid){return this.getFeatureBy('fid',featureFid);},getFeaturesByAttribute:function(attrName,attrValue){var i,feature,len=this.features.length,foundFeatures=[];for(i=0;i<len;i++){feature=this.features[i];if(feature&&feature.attributes){if(feature.attributes[attrName]===attrValue){foundFeatures.push(feature);}}}
+return foundFeatures;},onFeatureInsert:function(feature){},preFeatureInsert:function(feature){},getDataExtent:function(){var maxExtent=null;var features=this.features;if(features&&(features.length>0)){var geometry=null;for(var i=0,len=features.length;i<len;i++){geometry=features[i].geometry;if(geometry){if(maxExtent===null){maxExtent=new OpenLayers.Bounds();}
+maxExtent.extend(geometry.getBounds());}}}
+return maxExtent;},CLASS_NAME:"OpenLayers.Layer.Vector"});OpenLayers.Layer.Vector.RootContainer=OpenLayers.Class(OpenLayers.Layer.Vector,{displayInLayerSwitcher:false,layers:null,initialize:function(name,options){OpenLayers.Layer.Vector.prototype.initialize.apply(this,arguments);},display:function(){},getFeatureFromEvent:function(evt){var layers=this.layers;var feature;for(var i=0;i<layers.length;i++){feature=layers[i].getFeatureFromEvent(evt);if(feature){return feature;}}},setMap:functi [...]
+this.initLayer(layers);var callbacks={click:this.clickFeature,clickout:this.clickoutFeature};if(this.hover){callbacks.over=this.overFeature;callbacks.out=this.outFeature;}
+this.callbacks=OpenLayers.Util.extend(callbacks,this.callbacks);this.handlers={feature:new OpenLayers.Handler.Feature(this,this.layer,this.callbacks,{geometryTypes:this.geometryTypes})};if(this.box){this.handlers.box=new OpenLayers.Handler.Box(this,{done:this.selectBox},{boxDivClassName:"olHandlerBoxSelectFeature"});}},initLayer:function(layers){if(OpenLayers.Util.isArray(layers)){this.layers=layers;this.layer=new OpenLayers.Layer.Vector.RootContainer(this.id+"_container",{layers:layers} [...]
+OpenLayers.Control.prototype.destroy.apply(this,arguments);if(this.layers){this.layer.destroy();}},activate:function(){if(!this.active){if(this.layers){this.map.addLayer(this.layer);}
+this.handlers.feature.activate();if(this.box&&this.handlers.box){this.handlers.box.activate();}}
+return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){if(this.active){this.handlers.feature.deactivate();if(this.handlers.box){this.handlers.box.deactivate();}
+if(this.layers){this.map.removeLayer(this.layer);}}
+return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},unselectAll:function(options){var layers=this.layers||[this.layer];var layer,feature;for(var l=0;l<layers.length;++l){layer=layers[l];for(var i=layer.selectedFeatures.length-1;i>=0;--i){feature=layer.selectedFeatures[i];if(!options||options.except!=feature){this.unselect(feature);}}}},clickFeature:function(feature){if(!this.hover){var selected=(OpenLayers.Util.indexOf(feature.layer.selectedFeatures,feature)>-1);if(sel [...]
+this.select(feature);}}},multipleSelect:function(){return this.multiple||(this.handlers.feature.evt&&this.handlers.feature.evt[this.multipleKey]);},toggleSelect:function(){return this.toggle||(this.handlers.feature.evt&&this.handlers.feature.evt[this.toggleKey]);},clickoutFeature:function(feature){if(!this.hover&&this.clickout){this.unselectAll();}},overFeature:function(feature){var layer=feature.layer;if(this.hover){if(this.highlightOnly){this.highlight(feature);}else if(OpenLayers.Util [...]
+layer.drawFeature(feature,feature.style||feature.layer.style||"default");this.events.triggerEvent("featureunhighlighted",{feature:feature});},select:function(feature){var cont=this.onBeforeSelect.call(this.scope,feature);var layer=feature.layer;if(cont!==false){cont=layer.events.triggerEvent("beforefeatureselected",{feature:feature});if(cont!==false){layer.selectedFeatures.push(feature);this.highlight(feature);if(!this.handlers.feature.lastFeature){this.handlers.feature.lastFeature=layer [...]
+layer.events.triggerEvent("featureselected",{feature:feature});this.onSelect.call(this.scope,feature);}}},unselect:function(feature){var layer=feature.layer;this.unhighlight(feature);OpenLayers.Util.removeItem(layer.selectedFeatures,feature);layer.events.triggerEvent("featureunselected",{feature:feature});this.onUnselect.call(this.scope,feature);},selectBox:function(position){if(position instanceof OpenLayers.Bounds){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.lef [...]
+var prevMultiple=this.multiple;this.multiple=true;var layers=this.layers||[this.layer];var layer;for(var l=0;l<layers.length;++l){layer=layers[l];for(var i=0,len=layer.features.length;i<len;++i){var feature=layer.features[i];if(!feature.getVisibility()){continue;}
+if(this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)>-1){if(bounds.toGeometry().intersects(feature.geometry)){if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}}}}
+this.multiple=prevMultiple;}},setMap:function(map){this.handlers.feature.setMap(map);if(this.box){this.handlers.box.setMap(map);}
+OpenLayers.Control.prototype.setMap.apply(this,arguments);},setLayer:function(layers){var isActive=this.active;this.unselectAll();this.deactivate();if(this.layers){this.layer.destroy();this.layers=null;}
+this.initLayer(layers);this.handlers.feature.layer=this.layer;if(isActive){this.activate();}},CLASS_NAME:"OpenLayers.Control.SelectFeature"});OpenLayers.Handler.Keyboard=OpenLayers.Class(OpenLayers.Handler,{KEY_EVENTS:["keydown","keyup"],eventListener:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.eventListener=OpenLayers.Function.bindAsEventListener(this.handleKeyEvent,this);},destroy:function(){this.deactivate();th [...]
+return true;}else{return false;}},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){for(var i=0,len=this.KEY_EVENTS.length;i<len;i++){OpenLayers.Event.stopObserving(document,this.KEY_EVENTS[i],this.eventListener);}
+deactivated=true;}
+return deactivated;},handleKeyEvent:function(evt){if(this.checkModifiers(evt)){this.callback(evt.type,[evt]);}},CLASS_NAME:"OpenLayers.Handler.Keyboard"});OpenLayers.Control.ModifyFeature=OpenLayers.Class(OpenLayers.Control,{geometryTypes:null,clickout:true,toggle:true,standalone:false,layer:null,feature:null,vertices:null,virtualVertices:null,selectControl:null,dragControl:null,handlers:null,deleteCodes:null,virtualStyle:null,vertexRenderIntent:null,mode:null,modified:false,radiusHandle [...]
+var control=this;var selectOptions={geometryTypes:this.geometryTypes,clickout:this.clickout,toggle:this.toggle,onBeforeSelect:this.beforeSelectFeature,onSelect:this.selectFeature,onUnselect:this.unselectFeature,scope:this};if(this.standalone===false){this.selectControl=new OpenLayers.Control.SelectFeature(layer,selectOptions);}
+var dragOptions={geometryTypes:["OpenLayers.Geometry.Point"],snappingOptions:this.snappingOptions,onStart:function(feature,pixel){control.dragStart.apply(control,[feature,pixel]);},onDrag:function(feature,pixel){control.dragVertex.apply(control,[feature,pixel]);},onComplete:function(feature){control.dragComplete.apply(control,[feature]);},featureCallbacks:{over:function(feature){if(control.standalone!==true||feature._sketch||control.feature===feature){control.dragControl.overFeature.appl [...]
+this.selectControl.deactivate();}else{if(valid){this.unselectFeature(feature);}}
+this.handlers.keyboard.deactivate();deactivated=true;}
+return deactivated;},beforeSelectFeature:function(feature){return this.layer.events.triggerEvent("beforefeaturemodified",{feature:feature});},selectFeature:function(feature){if(!this.standalone||this.beforeSelectFeature(feature)!==false){this.feature=feature;this.modified=false;this.resetVertices();this.dragControl.activate();this.onModificationStart(this.feature);}
+var modified=feature.modified;if(feature.geometry&&!(modified&&modified.geometry)){this._originalGeometry=feature.geometry.clone();}},unselectFeature:function(feature){this.layer.removeFeatures(this.vertices,{silent:true});this.vertices=[];this.layer.destroyFeatures(this.virtualVertices,{silent:true});this.virtualVertices=[];if(this.dragHandle){this.layer.destroyFeatures([this.dragHandle],{silent:true});delete this.dragHandle;}
+if(this.radiusHandle){this.layer.destroyFeatures([this.radiusHandle],{silent:true});delete this.radiusHandle;}
+this.feature=null;this.dragControl.deactivate();this.onModificationEnd(feature);this.layer.events.triggerEvent("afterfeaturemodified",{feature:feature,modified:this.modified});this.modified=false;},dragStart:function(feature,pixel){if(feature!=this.feature&&!feature.geometry.parent&&feature!=this.dragHandle&&feature!=this.radiusHandle){if(this.standalone===false&&this.feature){this.selectControl.clickFeature.apply(this.selectControl,[this.feature]);}
+if(this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)!=-1){this.standalone||this.selectControl.clickFeature.apply(this.selectControl,[feature]);this.dragControl.overFeature.apply(this.dragControl,[feature]);this.dragControl.lastPixel=pixel;this.dragControl.handlers.drag.started=true;this.dragControl.handlers.drag.start=pixel;this.dragControl.handlers.drag.last=pixel;}}},dragVertex:function(vertex,pixel){this.modified=true;if(this.feature.geo [...]
+this.layer.events.triggerEvent("vertexmodified",{vertex:vertex.geometry,feature:this.feature,pixel:pixel});}else{if(vertex._index){vertex.geometry.parent.addComponent(vertex.geometry,vertex._index);delete vertex._index;OpenLayers.Util.removeItem(this.virtualVertices,vertex);this.vertices.push(vertex);}else if(vertex==this.dragHandle){this.layer.removeFeatures(this.vertices,{silent:true});this.vertices=[];if(this.radiusHandle){this.layer.destroyFeatures([this.radiusHandle],{silent:true}); [...]
+if(this.virtualVertices.length>0){this.layer.destroyFeatures(this.virtualVertices,{silent:true});this.virtualVertices=[];}
+this.layer.drawFeature(this.feature,this.standalone?undefined:this.selectControl.renderIntent);}
+this.layer.drawFeature(vertex);},dragComplete:function(vertex){this.resetVertices();this.setFeatureState();this.onModification(this.feature);this.layer.events.triggerEvent("featuremodified",{feature:this.feature});},setFeatureState:function(){if(this.feature.state!=OpenLayers.State.INSERT&&this.feature.state!=OpenLayers.State.DELETE){this.feature.state=OpenLayers.State.UPDATE;if(this.modified&&this._originalGeometry){var feature=this.feature;feature.modified=OpenLayers.Util.extend(featur [...]
+if(this.vertices.length>0){this.layer.removeFeatures(this.vertices,{silent:true});this.vertices=[];}
+if(this.virtualVertices.length>0){this.layer.removeFeatures(this.virtualVertices,{silent:true});this.virtualVertices=[];}
+if(this.dragHandle){this.layer.destroyFeatures([this.dragHandle],{silent:true});this.dragHandle=null;}
+if(this.radiusHandle){this.layer.destroyFeatures([this.radiusHandle],{silent:true});this.radiusHandle=null;}
+if(this.feature&&this.feature.geometry.CLASS_NAME!="OpenLayers.Geometry.Point"){if((this.mode&OpenLayers.Control.ModifyFeature.DRAG)){this.collectDragHandle();}
+if((this.mode&(OpenLayers.Control.ModifyFeature.ROTATE|OpenLayers.Control.ModifyFeature.RESIZE))){this.collectRadiusHandle();}
+if(this.mode&OpenLayers.Control.ModifyFeature.RESHAPE){if(!(this.mode&OpenLayers.Control.ModifyFeature.RESIZE)){this.collectVertices();}}}},handleKeypress:function(evt){var code=evt.keyCode;if(this.feature&&OpenLayers.Util.indexOf(this.deleteCodes,code)!=-1){var vertex=this.dragControl.feature;if(vertex&&OpenLayers.Util.indexOf(this.vertices,vertex)!=-1&&!this.dragControl.handlers.drag.dragging&&vertex.geometry.parent){vertex.geometry.parent.removeComponent(vertex.geometry);this.layer.ev [...]
+for(i=0;i<numVert;++i){component=geometry.components[i];if(component.CLASS_NAME=="OpenLayers.Geometry.Point"){vertex=new OpenLayers.Feature.Vector(component);vertex._sketch=true;vertex.renderIntent=control.vertexRenderIntent;control.vertices.push(vertex);}else{collectComponentVertices(component);}}
+if(geometry.CLASS_NAME!="OpenLayers.Geometry.MultiPoint"){for(i=0,len=geometry.components.length;i<len-1;++i){var prevVertex=geometry.components[i];var nextVertex=geometry.components[i+1];if(prevVertex.CLASS_NAME=="OpenLayers.Geometry.Point"&&nextVertex.CLASS_NAME=="OpenLayers.Geometry.Point"){var x=(prevVertex.x+nextVertex.x)/2;var y=(prevVertex.y+nextVertex.y)/2;var point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(x,y),null,control.virtualStyle);point.geometry.parent=g [...]
+collectComponentVertices.call(this,this.feature.geometry);this.layer.addFeatures(this.virtualVertices,{silent:true});this.layer.addFeatures(this.vertices,{silent:true});},collectDragHandle:function(){var geometry=this.feature.geometry;var center=geometry.getBounds().getCenterLonLat();var originGeometry=new OpenLayers.Geometry.Point(center.lon,center.lat);var origin=new OpenLayers.Feature.Vector(originGeometry);originGeometry.move=function(x,y){OpenLayers.Geometry.Point.prototype.move.cal [...]
+if(resize){var scale,ratio;if(reshape){scale=dy1/dy0;ratio=(dx1/dx0)/scale;}else{var l0=Math.sqrt((dx0*dx0)+(dy0*dy0));var l1=Math.sqrt((dx1*dx1)+(dy1*dy1));scale=l1/l0;}
+geometry.resize(scale,originGeometry,ratio);}};radius._sketch=true;this.radiusHandle=radius;this.layer.addFeatures([this.radiusHandle],{silent:true});},setMap:function(map){this.standalone||this.selectControl.setMap(map);this.dragControl.setMap(map);OpenLayers.Control.prototype.setMap.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.ModifyFeature"});OpenLayers.Control.ModifyFeature.RESHAPE=1;OpenLayers.Control.ModifyFeature.RESIZE=2;OpenLayers.Control.ModifyFeature.ROTATE=4;OpenLay [...]
+url=url||this.url;name=name||this.name;var newArguments=[name,url,{},options];OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions());}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var xyz=this.getXYZ(bounds);var url=this.url;if(OpenLayers.Util.isArray(url)){var s=''+xyz.x+xyz.y+xyz.z;url=this.selectUrl(s,url);}
+return OpenLayers.String.format(url,xyz);},getXYZ:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,res):this.map.getZoom()+this.zoomOffset;var limit=Math.pow(2,z);if(this.wrapDateLine)
+{x=((x%limit)+limit)%limit;}
+return{'x':x,'y':y,'z':z};},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom);}},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",attribution:"Data CC-By-SA by <a href='http://openstreetmap.org/'>OpenStreetMap</a>",sphericalMercator:true,url:'http://tile.openstreetmap.org/${z}/${x}/${y}.pn [...]
+obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},wrapDateLine:true,CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Layer.Bing=OpenLayers.Class(OpenLayers.Layer.XYZ,{serverResolutions:[156543.03390625,78271.516953125,39135.7584765625,19567.87923828125,9783.939619140625,4891.9698095703125,2445.9849047851562,1222.9924523925781,611.4962261962891,305.74811309814453,152.87405654907226,76.43702827453613,38.218514137268066,19.109257068634033,9.554628534317017,4.777314267158 [...]
+this.type+"?"+OpenLayers.Util.getParameterString(params);var script=document.createElement("script");script.type="text/javascript";script.src=url;script.id=this._callbackId;document.getElementsByTagName("head")[0].appendChild(script);},initLayer:function(){var res=this.metadata.resourceSets[0].resources[0];var url=res.imageUrl.replace("{quadkey}","${quadkey}");this.url=[];for(var i=0;i<res.imageUrlSubdomains.length;++i){this.url.push(url.replace("{subdomain}",res.imageUrlSubdomains[i])); [...]
+var xyz=this.getXYZ(bounds),x=xyz.x,y=xyz.y,z=xyz.z;var quadDigits=[];for(var i=z;i>0;--i){var digit='0';var mask=1<<(i-1);if((x&mask)!=0){digit++;}
+if((y&mask)!=0){digit++;digit++;}
+quadDigits.push(digit);}
+var quadKey=quadDigits.join("");var url=this.selectUrl(''+x+y+z,this.url);return OpenLayers.String.format(url,{'quadkey':quadKey});},updateAttribution:function(){var metadata=this.metadata;if(!metadata||!this.map||!this.map.center){return;}
+var res=metadata.resourceSets[0].resources[0];var extent=this.map.getExtent().transform(this.map.getProjectionObject(),new OpenLayers.Projection("EPSG:4326"));var providers=res.imageryProviders,zoom=this.map.getZoom()+1,copyrights="",provider,i,ii,j,jj,bbox,coverage;for(i=0,ii=providers.length;i<ii;++i){provider=providers[i];for(j=0,jj=provider.coverageAreas.length;j<jj;++j){coverage=provider.coverageAreas[j];bbox=OpenLayers.Bounds.fromArray(coverage.bbox);if(extent.intersectsBounds(bbox [...]
+this.attribution=OpenLayers.String.format(this.attributionTemplate,{type:this.type.toLowerCase(),logo:metadata.brandLogoUri,copyrights:copyrights});this.map&&this.map.events.triggerEvent("changelayer",{layer:this,property:"attribution"});},setMap:function(){OpenLayers.Layer.XYZ.prototype.setMap.apply(this,arguments);this.updateAttribution();this.map.events.register("moveend",this,this.updateAttribution);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Bing(this.options);}
+obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},destroy:function(){this.map&&this.map.events.unregister("moveend",this,this.updateAttribution);OpenLayers.Layer.XYZ.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Layer.Bing"});OpenLayers.Layer.Bing.processMetadata=function(metadata){this.metadata=metadata;this.initLayer();var script=document.getElementById(this._callbackId);script.parentNode.removeChild(script);window[this._callbackId]=undefined;de [...]
+return this.origin;},setRotation:function(rotation){this.rotation=rotation;this.updateGrid(true);},onMoveEnd:function(){this.updateGrid();},getViewBounds:function(){var bounds=this.map.getExtent();if(this.rotation){var origin=this.getOrigin();var rotationOrigin=new OpenLayers.Geometry.Point(origin.lon,origin.lat);var rect=bounds.toGeometry();rect.rotate(-this.rotation,rotationOrigin);bounds=rect.getBounds();}
+return bounds;},updateGrid:function(force){if(force||this.invalidBounds()){var viewBounds=this.getViewBounds();var origin=this.getOrigin();var rotationOrigin=new OpenLayers.Geometry.Point(origin.lon,origin.lat);var viewBoundsWidth=viewBounds.getWidth();var viewBoundsHeight=viewBounds.getHeight();var aspectRatio=viewBoundsWidth/viewBoundsHeight;var maxHeight=Math.sqrt(this.dx*this.dy*this.maxFeatures/aspectRatio);var maxWidth=maxHeight*aspectRatio;var gridWidth=Math.min(viewBoundsWidth*th [...]
+features[(i*rows)+j]=new OpenLayers.Feature.Vector(point);}}
+this.destroyFeatures(this.features,{silent:true});this.addFeatures(features,{silent:true});}},invalidBounds:function(){return!this.gridBounds||!this.gridBounds.containsBounds(this.getViewBounds());},CLASS_NAME:"OpenLayers.Layer.PointGrid"});OpenLayers.Handler.MouseWheel=OpenLayers.Class(OpenLayers.Handler,{wheelListener:null,mousePosition:null,interval:0,delta:0,cumulative:true,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);th [...]
+var overScrollableDiv=false;var overLayerDiv=false;var overMapDiv=false;var elem=OpenLayers.Event.element(e);while((elem!=null)&&!overMapDiv&&!overScrollableDiv){if(!overScrollableDiv){try{if(elem.currentStyle){overflow=elem.currentStyle["overflow"];}else{var style=document.defaultView.getComputedStyle(elem,null);var overflow=style.getPropertyValue("overflow");}
+overScrollableDiv=(overflow&&(overflow=="auto")||(overflow=="scroll"));}catch(err){}}
+if(!overLayerDiv){for(var i=0,len=this.map.layers.length;i<len;i++){if(elem==this.map.layers[i].div||elem==this.map.layers[i].pane){overLayerDiv=true;break;}}}
+overMapDiv=(elem==this.map.div);elem=elem.parentNode;}
+if(!overScrollableDiv&&overMapDiv){if(overLayerDiv){var delta=0;if(!e){e=window.event;}
+if(e.wheelDelta){delta=e.wheelDelta/120;if(window.opera&&window.opera.version()<9.2){delta=-delta;}}else if(e.detail){delta=-e.detail/3;}
+this.delta=this.delta+delta;if(this.interval){window.clearTimeout(this._timeoutId);this._timeoutId=window.setTimeout(OpenLayers.Function.bind(function(){this.wheelZoom(e);},this),this.interval);}else{this.wheelZoom(e);}}
+OpenLayers.Event.stop(e);}},wheelZoom:function(e){var delta=this.delta;this.delta=0;if(delta){if(this.mousePosition){e.xy=this.mousePosition;}
+if(!e.xy){e.xy=this.map.getPixelFromLonLat(this.map.getCenter());}
+if(delta<0){this.callback("down",[e,this.cumulative?delta:-1]);}else{this.callback("up",[e,this.cumulative?delta:1]);}}},mousemove:function(evt){this.mousePosition=evt.xy;},activate:function(evt){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.observe(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.observe(window,"mousewheel",wheelListener);OpenLayers.Event.observe(document,"mousewheel",wheelListener);return tr [...]
+this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){for(var i in this.symbolizer){this.symbolizer[i]=null;}
+this.symbolizer=null;delete this.symbolizers;},evaluate:function(feature){var context=this.getContext(feature);var applies=true;if(this.minScaleDenominator||this.maxScaleDenominator){var scale=feature.layer.map.getScale();}
+if(this.minScaleDenominator){applies=scale>=OpenLayers.Style.createLiteral(this.minScaleDenominator,context);}
+if(applies&&this.maxScaleDenominator){applies=scale<OpenLayers.Style.createLiteral(this.maxScaleDenominator,context);}
+if(applies&&this.filter){if(this.filter.CLASS_NAME=="OpenLayers.Filter.FeatureId"){applies=this.filter.evaluate(feature);}else{applies=this.filter.evaluate(context);}}
+return applies;},getContext:function(feature){var context=this.context;if(!context){context=feature.attributes||feature.data;}
+if(typeof this.context=="function"){context=this.context(feature);}
+return context;},clone:function(){var options=OpenLayers.Util.extend({},this);if(this.symbolizers){var len=this.symbolizers.length;options.symbolizers=new Array(len);for(var i=0;i<len;++i){options.symbolizers[i]=this.symbolizers[i].clone();}}else{options.symbolizer={};var value,type;for(var key in this.symbolizer){value=this.symbolizer[key];type=typeof value;if(type==="object"){options.symbolizer[key]=OpenLayers.Util.extend({},value);}else if(type==="string"){options.symbolizer[key]=value;}}}
+options.filter=this.filter&&this.filter.clone();options.context=this.context&&OpenLayers.Util.extend({},this.context);return new OpenLayers.Rule(options);},CLASS_NAME:"OpenLayers.Rule"});OpenLayers.Filter.Spatial=OpenLayers.Class(OpenLayers.Filter,{type:null,property:null,value:null,distance:null,distanceUnits:null,initialize:function(options){OpenLayers.Filter.prototype.initialize.apply(this,[options]);},evaluate:function(feature){var intersect=false;switch(this.type){case OpenLayers.Fi [...]
+if(feature.geometry.intersects(geom)){intersect=true;}}
+break;default:OpenLayers.Console.error(OpenLayers.i18n("filterEvaluateNotImplemented"));break;}
+return intersect;},clone:function(){var options=OpenLayers.Util.applyDefaults({value:this.value&&this.value.clone&&this.value.clone()},this);return new OpenLayers.Filter.Spatial(options);},CLASS_NAME:"OpenLayers.Filter.Spatial"});OpenLayers.Filter.Spatial.BBOX="BBOX";OpenLayers.Filter.Spatial.INTERSECTS="INTERSECTS";OpenLayers.Filter.Spatial.DWITHIN="DWITHIN";OpenLayers.Filter.Spatial.WITHIN="WITHIN";OpenLayers.Filter.Spatial.CONTAINS="CONTAINS";OpenLayers.Format.SLD=OpenLayers.Class(Ope [...]
+var min=obj.points[0];var max=obj.points[1];container.components.push(new OpenLayers.Bounds(min.x,min.y,max.x,max.y));}},OpenLayers.Format.GML.Base.prototype.readers["gml"]),"feature":OpenLayers.Format.GML.Base.prototype.readers["feature"],"wfs":OpenLayers.Format.GML.Base.prototype.readers["wfs"]},write:function(features){var name;if(OpenLayers.Util.isArray(features)){name="wfs:FeatureCollection";}else{name="gml:featureMember";}
+var root=this.writeNode(name,features);this.setAttributeNS(root,this.namespaces["xsi"],"xsi:schemaLocation",this.schemaLocation);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},writers:{"gml":OpenLayers.Util.applyDefaults({"Point":function(geometry){var node=this.createElementNSPlus("gml:Point");this.writeNode("coordinates",[geometry],node);return node;},"coordinates":function(points){var numPoints=points.length;var parts=new Array(numPoints);var point;for(var i=0;i<num [...]
+if(point.z!=undefined){parts[i]+=","+point.z;}}
+return this.createElementNSPlus("gml:coordinates",{attributes:{decimal:".",cs:",",ts:" "},value:(numPoints==1)?parts[0]:parts.join(" ")});},"LineString":function(geometry){var node=this.createElementNSPlus("gml:LineString");this.writeNode("coordinates",geometry.components,node);return node;},"Polygon":function(geometry){var node=this.createElementNSPlus("gml:Polygon");this.writeNode("outerBoundaryIs",geometry.components[0],node);for(var i=1;i<geometry.components.length;++i){this.writeNod [...]
+return node;},"outerBoundaryIs":function(ring){var node=this.createElementNSPlus("gml:outerBoundaryIs");this.writeNode("LinearRing",ring,node);return node;},"innerBoundaryIs":function(ring){var node=this.createElementNSPlus("gml:innerBoundaryIs");this.writeNode("LinearRing",ring,node);return node;},"LinearRing":function(ring){var node=this.createElementNSPlus("gml:LinearRing");this.writeNode("coordinates",ring.components,node);return node;},"Box":function(bounds){var node=this.createElem [...]
+return node;}},OpenLayers.Format.GML.Base.prototype.writers["gml"]),"feature":OpenLayers.Format.GML.Base.prototype.writers["feature"],"wfs":OpenLayers.Format.GML.Base.prototype.writers["wfs"]},CLASS_NAME:"OpenLayers.Format.GML.v2"});OpenLayers.Format.Filter.v1_0_0=OpenLayers.Class(OpenLayers.Format.GML.v2,OpenLayers.Format.Filter.v1,{VERSION:"1.0.0",schemaLocation:"http://www.opengis.net/ogc/filter/1.0.0/filter.xsd",initialize:function(options){OpenLayers.Format.GML.v2.prototype.initiali [...]
+return node;}},OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),"gml":OpenLayers.Format.GML.v2.prototype.writers["gml"],"feature":OpenLayers.Format.GML.v2.prototype.writers["feature"]},writeSpatial:function(filter,name){var node=this.createElementNSPlus("ogc:"+name);this.writeNode("PropertyName",filter,node);if(filter.value instanceof OpenLayers.Filter.Function){this.writeNode("Function",filter.value,node);}else{var child;if(filter.value instanceof OpenLayers.Geometry){child=this.wr [...]
+if(filter.projection){child.setAttribute("srsName",filter.projection);}
+node.appendChild(child);}
+return node;},CLASS_NAME:"OpenLayers.Format.Filter.v1_0_0"});OpenLayers.Format.WFST.v1_0_0=OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0,OpenLayers.Format.WFST.v1,{version:"1.0.0",srsNameInQuery:false,schemaLocations:{"wfs":"http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"},initialize:function(options){OpenLayers.Format.Filter.v1_0_0.prototype.initialize.apply(this,[options]);OpenLayers.Format.WFST.v1.prototype.initialize.apply(this,[options]);},readNode:function(node,obj,fir [...]
+options.featureType}});if(options.srsNameInQuery&&options.srsName){node.setAttribute("srsName",options.srsName);}
+if(options.featureNS){node.setAttribute("xmlns:"+prefix,options.featureNS);}
+if(options.propertyNames){for(var i=0,len=options.propertyNames.length;i<len;i++){this.writeNode("ogc:PropertyName",{property:options.propertyNames[i]},node);}}
+if(options.filter){this.setFilterProperty(options.filter);this.writeNode("ogc:Filter",options.filter,node);}
+return node;}},OpenLayers.Format.WFST.v1.prototype.writers["wfs"]),"gml":OpenLayers.Format.GML.v2.prototype.writers["gml"],"feature":OpenLayers.Format.GML.v2.prototype.writers["feature"],"ogc":OpenLayers.Format.Filter.v1_0_0.prototype.writers["ogc"]},CLASS_NAME:"OpenLayers.Format.WFST.v1_0_0"});OpenLayers.ElementsIndexer=OpenLayers.Class({maxZIndex:null,order:null,indices:null,compare:null,initialize:function(yOrdering){this.compare=yOrdering?OpenLayers.ElementsIndexer.IndexingMethods.Z_ [...]
+var nodeId=newNode.id;this.determineZIndex(newNode);var leftIndex=-1;var rightIndex=this.order.length;var middle;while(rightIndex-leftIndex>1){middle=parseInt((leftIndex+rightIndex)/2);var placement=this.compare(this,newNode,OpenLayers.Util.getElement(this.order[middle]));if(placement>0){leftIndex=middle;}else{rightIndex=middle;}}
+this.order.splice(rightIndex,0,nodeId);this.indices[nodeId]=this.getZIndex(newNode);return this.getNextElement(rightIndex);},remove:function(node){var nodeId=node.id;var arrayIndex=OpenLayers.Util.indexOf(this.order,nodeId);if(arrayIndex>=0){this.order.splice(arrayIndex,1);delete this.indices[nodeId];if(this.order.length>0){var lastId=this.order[this.order.length-1];this.maxZIndex=this.indices[lastId];}else{this.maxZIndex=0;}}},clear:function(){this.order=[];this.indices={};this.maxZInde [...]
+return nextElement;}else{return null;}},CLASS_NAME:"OpenLayers.ElementsIndexer"});OpenLayers.ElementsIndexer.IndexingMethods={Z_ORDER:function(indexer,newNode,nextNode){var newZIndex=indexer.getZIndex(newNode);var returnVal=0;if(nextNode){var nextZIndex=indexer.getZIndex(nextNode);returnVal=newZIndex-nextZIndex;}
+return returnVal;},Z_ORDER_DRAWING_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal==0){returnVal=1;}
+return returnVal;},Z_ORDER_Y_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal===0){var result=nextNode._boundsBottom-newNode._boundsBottom;returnVal=(result===0)?1:result;}
+return returnVal;}};OpenLayers.Renderer.Elements=OpenLayers.Class(OpenLayers.Renderer,{rendererRoot:null,root:null,vectorRoot:null,textRoot:null,xmlns:null,indexer:null,BACKGROUND_ID_SUFFIX:"_background",LABEL_ID_SUFFIX:"_label",initialize:function(containerID,options){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.rendererRoot=this.createRenderRoot();this.root=this.createRoot("_root");this.vectorRoot=this.createRoot("_vroot");this.textRoot=this.createRoot("_troot"); [...]
+root=this.textRoot;if(root){while(child=root.firstChild){root.removeChild(child);}}
+if(this.indexer){this.indexer.clear();}},getNodeType:function(geometry,style){},drawGeometry:function(geometry,style,featureId){var className=geometry.CLASS_NAME;var rendered=true;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0,len=geometry.components.length;i<len;i++){rendered=this.drawGeometry(geometry.components[i],style,feat [...]
+return rendered;};rendered=false;var removeBackground=false;if(style.display!="none"){if(style.backgroundGraphic){this.redrawBackgroundNode(geometry.id,geometry,style,featureId);}else{removeBackground=true;}
+rendered=this.redrawNode(geometry.id,geometry,style,featureId);}
+if(rendered==false){var node=document.getElementById(geometry.id);if(node){if(node._style.backgroundGraphic){removeBackground=true;}
+node.parentNode.removeChild(node);}}
+if(removeBackground){var node=document.getElementById(geometry.id+this.BACKGROUND_ID_SUFFIX);if(node){node.parentNode.removeChild(node);}}
+return rendered;},redrawNode:function(id,geometry,style,featureId){style=this.applyDefaultSymbolizer(style);var node=this.nodeFactory(id,this.getNodeType(geometry,style));node._featureId=featureId;node._boundsBottom=geometry.getBounds().bottom;node._geometryClass=geometry.CLASS_NAME;node._style=style;var drawResult=this.drawGeometryNode(node,geometry,style);if(drawResult===false){return false;}
+node=drawResult.node;if(this.indexer){var insert=this.indexer.insert(node);if(insert){this.vectorRoot.insertBefore(node,insert);}else{this.vectorRoot.appendChild(node);}}else{if(node.parentNode!==this.vectorRoot){this.vectorRoot.appendChild(node);}}
+this.postDraw(node);return drawResult.complete;},redrawBackgroundNode:function(id,geometry,style,featureId){var backgroundStyle=OpenLayers.Util.extend({},style);backgroundStyle.externalGraphic=backgroundStyle.backgroundGraphic;backgroundStyle.graphicXOffset=backgroundStyle.backgroundXOffset;backgroundStyle.graphicYOffset=backgroundStyle.backgroundYOffset;backgroundStyle.graphicZIndex=backgroundStyle.backgroundGraphicZIndex;backgroundStyle.graphicWidth=backgroundStyle.backgroundWidth||bac [...]
+drawn=this.drawPoint(node,geometry);break;case"OpenLayers.Geometry.LineString":options.isFilled=false;drawn=this.drawLineString(node,geometry);break;case"OpenLayers.Geometry.LinearRing":drawn=this.drawLinearRing(node,geometry);break;case"OpenLayers.Geometry.Polygon":drawn=this.drawPolygon(node,geometry);break;case"OpenLayers.Geometry.Surface":drawn=this.drawSurface(node,geometry);break;case"OpenLayers.Geometry.Rectangle":drawn=this.drawRectangle(node,geometry);break;default:break;}
+node._options=options;if(drawn!=false){return{node:this.setStyle(node,style,options,geometry),complete:drawn};}else{return false;}},postDraw:function(node){},drawPoint:function(node,geometry){},drawLineString:function(node,geometry){},drawLinearRing:function(node,geometry){},drawPolygon:function(node,geometry){},drawRectangle:function(node,geometry){},drawCircle:function(node,geometry){},drawSurface:function(node,geometry){},removeText:function(featureId){var label=document.getElementByI [...]
+element.parentNode.removeChild(element);if(this.indexer){this.indexer.remove(element);}
+if(element._style.backgroundGraphic){var backgroundId=geometry.id+this.BACKGROUND_ID_SUFFIX;var bElem=OpenLayers.Util.getElement(backgroundId);if(bElem&&bElem.parentNode){bElem.parentNode.removeChild(bElem);}}}}},nodeFactory:function(id,type){var node=OpenLayers.Util.getElement(id);if(node){if(!this.nodeTypeCompare(node,type)){node.parentNode.removeChild(node);node=this.nodeFactory(id,type);}}else{node=this.createNode(type,id);}
+return node;},nodeTypeCompare:function(node,type){},createNode:function(type,id){},moveRoot:function(renderer){var root=this.root;if(renderer.root.parentNode==this.rendererRoot){root=renderer.root;}
+root.parentNode.removeChild(root);renderer.rendererRoot.appendChild(root);},getRenderLayerId:function(){return this.root.parentNode.parentNode.id;},isComplexSymbol:function(graphicName){return(graphicName!="circle")&&!!graphicName;},CLASS_NAME:"OpenLayers.Renderer.Elements"});OpenLayers.Renderer.symbol={"star":[350,75,379,161,469,161,397,215,423,301,350,250,277,301,303,215,231,161,321,161,350,75],"cross":[4,0,6,0,6,4,10,4,10,6,6,6,6,10,4,10,4,6,0,6,0,4,4,4,4,0],"x":[0,0,25,0,50,35,75,0,1 [...]
+return parameters;},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0,len=this.map.controls.length;i<len;i++){var control=this.map.controls[i];if((control!=this)&&(control.CLASS_NAME=="OpenLayers.Control.ArgParser")){if(control.displayProjection!=this.displayProjection){this.displayProjection=control.displayProjection;}
+break;}}
+if(i==this.map.controls.length){var args=this.getParameters();if(args.layers){this.layers=args.layers;this.map.events.register('addlayer',this,this.configureLayers);this.configureLayers();}
+if(args.lat&&args.lon){this.center=new OpenLayers.LonLat(parseFloat(args.lon),parseFloat(args.lat));if(args.zoom){this.zoom=parseInt(args.zoom);}
+this.map.events.register('changebaselayer',this,this.setCenter);this.setCenter();}}},setCenter:function(){if(this.map.baseLayer){this.map.events.unregister('changebaselayer',this,this.setCenter);if(this.displayProjection){this.center.transform(this.displayProjection,this.map.getProjectionObject());}
+this.map.setCenter(this.center,this.zoom);}},configureLayers:function(){if(this.layers.length==this.map.layers.length){this.map.events.unregister('addlayer',this,this.configureLayers);for(var i=0,len=this.layers.length;i<len;i++){var layer=this.map.layers[i];var c=this.layers.charAt(i);if(c=="B"){this.map.setBaseLayer(layer);}else if((c=="T")||(c=="F")){layer.setVisibility(c=="T");}}}},CLASS_NAME:"OpenLayers.Control.ArgParser"});OpenLayers.Control.Permalink=OpenLayers.Class(OpenLayers.Co [...]
+else{OpenLayers.Control.prototype.initialize.apply(this,[options]);this.element=OpenLayers.Util.getElement(element);this.base=base||document.location.href;}},destroy:function(){if(this.element.parentNode==this.div){this.div.removeChild(this.element);}
+this.element=null;this.map.events.unregister('moveend',this,this.updateLink);OpenLayers.Control.prototype.destroy.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0,len=this.map.controls.length;i<len;i++){var control=this.map.controls[i];if(control.CLASS_NAME==this.argParserClass.CLASS_NAME){if(control.displayProjection!=this.displayProjection){this.displayProjection=control.displayProjection;}
+break;}}
+if(i==this.map.controls.length){this.map.addControl(new this.argParserClass({'displayProjection':this.displayProjection}));}},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!this.element&&!this.anchor){this.element=document.createElement("a");this.element.innerHTML=OpenLayers.i18n("Permalink");this.element.href="";this.div.appendChild(this.element);}
+this.map.events.on({'moveend':this.updateLink,'changelayer':this.updateLink,'changebaselayer':this.updateLink,scope:this});this.updateLink();return this.div;},updateLink:function(){var separator=this.anchor?'#':'?';var href=this.base;if(href.indexOf(separator)!=-1){href=href.substring(0,href.indexOf(separator));}
+href+=separator+OpenLayers.Util.getParameterString(this.createParams());if(this.anchor&&!this.element){window.location.href=href;}
+else{this.element.href=href;}},createParams:function(center,zoom,layers){center=center||this.map.getCenter();var params=OpenLayers.Util.getParameters(this.base);if(center){params.zoom=zoom||this.map.getZoom();var lat=center.lat;var lon=center.lon;if(this.displayProjection){var mapPosition=OpenLayers.Projection.transform({x:lon,y:lat},this.map.getProjectionObject(),this.displayProjection);lon=mapPosition.x;lat=mapPosition.y;}
+params.lat=Math.round(lat*100000)/100000;params.lon=Math.round(lon*100000)/100000;layers=layers||this.map.layers;params.layers='';for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];if(layer.isBaseLayer){params.layers+=(layer==this.map.baseLayer)?"B":"0";}else{params.layers+=(layer.getVisibility())?"T":"F";}}}
+return params;},CLASS_NAME:"OpenLayers.Control.Permalink"});OpenLayers.Layer.TMS=OpenLayers.Class(OpenLayers.Layer.Grid,{serviceVersion:"1.0.0",layername:null,type:null,isBaseLayer:true,tileOrigin:null,serverResolutions:null,zoomOffset:0,initialize:function(name,url,options){var newArguments=[];newArguments.push(name,url,{},options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},clon [...]
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){bounds=this.adjustBounds(bounds);var res=this.map.getResolution();var x=Math.round((bounds.left-this.tileOrigin.lon)/(res*this.tileSize.w));var y=Math.round((bounds.bottom-this.tileOrigin.lat)/(res*this.tileSize.h));var z=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,res):this.map.getZoom()+this.zoomOffset;var path=this.serviceVersion+"/"+this.layername+"/"+z+"/" [...]
+return url+path;},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.map.maxExtent.left,this.map.maxExtent.bottom);}},CLASS_NAME:"OpenLayers.Layer.TMS"});OpenLayers.Strategy.Fixed=OpenLayers.Class(OpenLayers.Strategy,{preload:false,activate:function(){if(OpenLayers.Strategy.prototype.activate.apply(this,arguments)){this.layer.events.on({"refresh":this.load,scope:this});if(this.layer.visibility= [...]
+return true;}
+return false;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){this.layer.events.un({"refresh":this.load,"visibilitychanged":this.load,scope:this});}
+return deactivated;},load:function(options){var layer=this.layer;layer.events.triggerEvent("loadstart");layer.protocol.read(OpenLayers.Util.applyDefaults({callback:OpenLayers.Function.bind(this.merge,this,layer.map.getProjectionObject()),filter:layer.filter},options));layer.events.un({"visibilitychanged":this.load,scope:this});},merge:function(mapProjection,resp){var layer=this.layer;layer.destroyFeatures();var features=resp.features;if(features&&features.length>0){if(!mapProjection.equa [...]
+layer.addFeatures(features);}
+layer.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Strategy.Fixed"});OpenLayers.Format.WFSCapabilities=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.1.0",errorProperty:"service",CLASS_NAME:"OpenLayers.Format.WFSCapabilities"});OpenLayers.Format.WFSCapabilities.v1=OpenLayers.Class(OpenLayers.Format.WFSCapabilities,{initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);this.options=options;},read:function(data){if( [...]
+var capabilities={};var root=data.documentElement;this.runChildNodes(capabilities,root);return capabilities;},runChildNodes:function(obj,node){var children=node.childNodes;var childNode,processor;for(var i=0;i<children.length;++i){childNode=children[i];if(childNode.nodeType==1){processor=this["read_cap_"+childNode.nodeName];if(processor){processor.apply(this,[obj,childNode]);}}}},read_cap_FeatureTypeList:function(request,node){var featureTypeList={featureTypes:[]};this.runChildNodes(feat [...]
+var lines=new Array(pointFeatures.length-1);var pointFeature,startPoint,endPoint;for(var i=0,len=pointFeatures.length;i<len;i++){pointFeature=pointFeatures[i];endPoint=pointFeature.geometry;if(!endPoint){var lonlat=pointFeature.lonlat;endPoint=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);}else if(endPoint.CLASS_NAME!="OpenLayers.Geometry.Point"){OpenLayers.Console.error("Only features with point geometries are supported.");return;}
+if(i>0){var attributes=(this.dataFrom!=null)?(pointFeatures[i+this.dataFrom].data||pointFeatures[i+this.dataFrom].attributes):null;var style=(this.styleFrom!=null)?(pointFeatures[i+this.styleFrom].style):null;var line=new OpenLayers.Geometry.LineString([startPoint,endPoint]);lines[i-1]=new OpenLayers.Feature.Vector(line,attributes,style);}
+startPoint=endPoint;}
+this.addFeatures(lines,options);},CLASS_NAME:"OpenLayers.Layer.PointTrack"});OpenLayers.Layer.PointTrack.SOURCE_NODE=-1;OpenLayers.Layer.PointTrack.TARGET_NODE=0;OpenLayers.Layer.PointTrack.dataFrom={'SOURCE_NODE':-1,'TARGET_NODE':0};OpenLayers.Protocol.WFS=function(options){options=OpenLayers.Util.applyDefaults(options,OpenLayers.Protocol.WFS.DEFAULTS);var cls=OpenLayers.Protocol.WFS["v"+options.version.replace(/\./g,"_")];if(!cls){throw"Unsupported WFS version: "+options.version;}
+return new cls(options);};OpenLayers.Protocol.WFS.fromWMSLayer=function(layer,options){var typeName,featurePrefix;var param=layer.params["LAYERS"];var parts=(OpenLayers.Util.isArray(param)?param[0]:param).split(":");if(parts.length>1){featurePrefix=parts[0];}
+typeName=parts.pop();var protocolOptions={url:layer.url,featureType:typeName,featurePrefix:featurePrefix,srsName:layer.projection&&layer.projection.getCode()||layer.map&&layer.map.getProjectionObject().getCode(),version:"1.1.0"};return new OpenLayers.Protocol.WFS(OpenLayers.Util.applyDefaults(options,protocolOptions));};OpenLayers.Protocol.WFS.DEFAULTS={"version":"1.0.0"};OpenLayers.Layer.Markers=OpenLayers.Class(OpenLayers.Layer,{isBaseLayer:false,markers:null,drawn:false,initialize:fun [...]
+this.drawn=true;}},addMarker:function(marker){this.markers.push(marker);if(this.opacity!=null){marker.setOpacity(this.opacity);}
+if(this.map&&this.map.getExtent()){marker.map=this.map;this.drawMarker(marker);}},removeMarker:function(marker){if(this.markers&&this.markers.length){OpenLayers.Util.removeItem(this.markers,marker);marker.erase();}},clearMarkers:function(){if(this.markers!=null){while(this.markers.length>0){this.removeMarker(this.markers[0]);}}},drawMarker:function(marker){var px=this.map.getLayerPxFromLonLat(marker.lonlat);if(px==null){marker.display(false);}else{if(!marker.isDrawn()){var markerImg=mark [...]
+return maxExtent;},CLASS_NAME:"OpenLayers.Layer.Markers"});OpenLayers.Control.Pan=OpenLayers.Class(OpenLayers.Control,{slideFactor:50,slideRatio:null,direction:null,type:OpenLayers.Control.TYPE_BUTTON,initialize:function(direction,options){this.direction=direction;this.CLASS_NAME+=this.direction;OpenLayers.Control.prototype.initialize.apply(this,[options]);},trigger:function(){var getSlideFactor=OpenLayers.Function.bind(function(dim){return this.slideRatio?this.map.getSize()[dim]*this.sl [...]
+newArguments.push(name,url,params,options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);OpenLayers.Util.applyDefaults(this.params,OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS));if(!this.noMagic&&this.params.TRANSPARENT&&this.params.TRANSPARENT.toString().toLowerCase()=="true"){if((options==null)||(!options.isBaseLayer)){this.isBaseLayer=false;}
+if(this.params.FORMAT=="image/jpeg"){this.params.FORMAT=OpenLayers.Util.alphaHack()?"image/gif":"image/png";}}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.WMS(this.name,this.url,this.params,this.getOptions());}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},reverseAxisOrder:function(){return(parseFloat(this.params.VERSION)>=1.3&&!!this.yx[this.map.getProjectionObject().getCode()]);},getURL:function(bounds){bounds=this.adjustBounds(bounds);var imageSize=this.getImageSize();var newParams={};var reverseAxisOrder=this.reverseAxisOrder();newParams.BBOX=this.encodeBBOX?bounds.toBBOX(null,reverseAxisOrder):bounds.toArray(reverseAxisOrder);newParams.WIDTH=imageSize.w;newParams [...]
+if(typeof this.params.TRANSPARENT=="boolean"){newParams.TRANSPARENT=this.params.TRANSPARENT?"TRUE":"FALSE";}
+return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments);},CLASS_NAME:"OpenLayers.Layer.WMS"});OpenLayers.Layer.WMS.Untiled=OpenLayers.Class(OpenLayers.Layer.WMS,{singleTile:true,initialize:function(name,url,params,options){OpenLayers.Layer.WMS.prototype.initialize.apply(this,arguments);var msg="The OpenLayers.Layer.WMS.Untiled class is deprecated and "+"will be removed in 3.0. Instead, you should use the "+"normal OpenLayers.Layer.WMS class, passing it the optio [...]
+obj=OpenLayers.Layer.WMS.prototype.clone.apply(this,[obj]);return obj;},CLASS_NAME:"OpenLayers.Layer.WMS.Untiled"});OpenLayers.Geometry.Surface=OpenLayers.Class(OpenLayers.Geometry,{initialize:function(){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Geometry.Surface"});OpenLayers.Format.ArcXML.Features=OpenLayers.Class(OpenLayers.Format.XML,{initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:funct [...]
+var defaults=OpenLayers.Util.extend({},this.options.defaults);this.defaults=OpenLayers.Util.applyDefaults(defaults,this.DEFAULTS);this.setTargets(this.options.targets);if(this.targets.length===0&&this.layer){this.addTargetLayer(this.layer);}
+this.geoToleranceCache={};},setLayer:function(layer){if(this.active){this.deactivate();this.layer=layer;this.activate();}else{this.layer=layer;}},setTargets:function(targets){this.targets=[];if(targets&&targets.length){var target;for(var i=0,len=targets.length;i<len;++i){target=targets[i];if(target instanceof OpenLayers.Layer.Vector){this.addTargetLayer(target);}else{this.addTarget(target);}}}},addTargetLayer:function(layer){this.addTarget({layer:layer});},addTarget:function(target){targ [...]
+return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.call(this);if(deactivated){if(this.layer&&this.layer.events){this.layer.events.un({sketchstarted:this.onSketchModified,sketchmodified:this.onSketchModified,vertexmodified:this.onVertexModified,scope:this});}}
+this.feature=null;this.point=null;return deactivated;},onSketchModified:function(event){this.feature=event.feature;this.considerSnapping(event.vertex,event.vertex);},onVertexModified:function(event){this.feature=event.feature;var loc=this.layer.map.getLonLatFromViewPortPx(event.pixel);this.considerSnapping(event.vertex,new OpenLayers.Geometry.Point(loc.lon,loc.lat));},considerSnapping:function(point,loc){var best={rank:Number.POSITIVE_INFINITY,dist:Number.POSITIVE_INFINITY,x:null,y:null} [...]
+if(snapped){var proceed=this.events.triggerEvent("beforesnap",{point:point,x:best.x,y:best.y,distance:best.dist,layer:best.target.layer,snapType:this.precedence[best.rank]});if(proceed!==false){point.x=best.x;point.y=best.y;this.point=point;this.events.triggerEvent("snap",{point:point,snapType:this.precedence[best.rank],layer:best.target.layer,distance:best.dist});}else{snapped=false;}}
+if(this.point&&!snapped){point.x=loc.x;point.y=loc.y;this.point=null;this.events.triggerEvent("unsnap",{point:point});}},testTarget:function(target,loc){var resolution=this.layer.map.getResolution();if("minResolution"in target){if(resolution<target.minResolution){return null;}}
+if("maxResolution"in target){if(resolution>=target.maxResolution){return null;}}
+var tolerance={node:this.getGeoTolerance(target.nodeTolerance,resolution),vertex:this.getGeoTolerance(target.vertexTolerance,resolution),edge:this.getGeoTolerance(target.edgeTolerance,resolution)};var maxTolerance=Math.max(tolerance.node,tolerance.vertex,tolerance.edge);var result={rank:Number.POSITIVE_INFINITY,dist:Number.POSITIVE_INFINITY};var eligible=false;var features=target.layer.features;var feature,type,vertices,vertex,closest,dist,found;var numTypes=this.precedence.length;var ll [...]
+if(found){break;}}}}}}}
+return eligible?result:null;},getGeoTolerance:function(tolerance,resolution){if(resolution!==this.resolution){this.resolution=resolution;this.geoToleranceCache={};}
+var geoTolerance=this.geoToleranceCache[tolerance];if(geoTolerance===undefined){geoTolerance=tolerance*resolution;this.geoToleranceCache[tolerance]=geoTolerance;}
+return geoTolerance;},destroy:function(){if(this.active){this.deactivate();}
+delete this.layer;delete this.targets;OpenLayers.Control.prototype.destroy.call(this);},CLASS_NAME:"OpenLayers.Control.Snapping"});OpenLayers.Date={toISOString:(function(){if("toISOString"in Date.prototype){return function(date){return date.toISOString();};}else{function pad(num,len){var str=num+"";while(str.length<len){str="0"+str;}
+return str;}
+return function(date){var str;if(isNaN(date.getTime())){str="Invalid Date";}else{str=date.getUTCFullYear()+"-"+
+pad(date.getUTCMonth()+1,2)+"-"+
+pad(date.getUTCDate(),2)+"T"+
+pad(date.getUTCHours(),2)+":"+
+pad(date.getUTCMinutes(),2)+":"+
+pad(date.getUTCSeconds(),2)+"."+
+pad(date.getUTCMilliseconds(),3)+"Z";}
+return str;};}})(),parse:function(str){var date;var match=str.match(/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|(?:[+-]\d{1,2}(?::(\d{2}))?)))?$/);if(match&&(match[1]||match[7])){var year=parseInt(match[1],10)||0;var month=(parseInt(match[2],10)-1)||0;var day=parseInt(match[3],10)||1;date=new Date(Date.UTC(year,month,day));var type=match[7];if(type){var hours=parseInt(match[4],10);var minutes=parseInt(match[5],10);var secFrac=parseFloat(match[6]);var [...]
+return date;}};(function(){var oXMLHttpRequest=window.XMLHttpRequest;var bGecko=!!window.controllers,bIE=window.document.all&&!window.opera,bIE7=bIE&&window.navigator.userAgent.match(/MSIE 7.0/);function fXMLHttpRequest(){this._object=oXMLHttpRequest&&!bIE7?new oXMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");this._listeners=[];};function cXMLHttpRequest(){return new fXMLHttpRequest;};cXMLHttpRequest.prototype=fXMLHttpRequest.prototype;if(bGecko&&oXMLHttpRequest.wrapped)
+cXMLHttpRequest.wrapped=oXMLHttpRequest.wrapped;cXMLHttpRequest.UNSENT=0;cXMLHttpRequest.OPENED=1;cXMLHttpRequest.HEADERS_RECEIVED=2;cXMLHttpRequest.LOADING=3;cXMLHttpRequest.DONE=4;cXMLHttpRequest.prototype.readyState=cXMLHttpRequest.UNSENT;cXMLHttpRequest.prototype.responseText='';cXMLHttpRequest.prototype.responseXML=null;cXMLHttpRequest.prototype.status=0;cXMLHttpRequest.prototype.statusText='';cXMLHttpRequest.prototype.priority="NORMAL";cXMLHttpRequest.prototype.onreadystatechange=n [...]
+bAsync=true;this._async=bAsync;var oRequest=this,nState=this.readyState,fOnUnload;if(bIE&&bAsync){fOnUnload=function(){if(nState!=cXMLHttpRequest.DONE){fCleanTransport(oRequest);oRequest.abort();}};window.attachEvent("onunload",fOnUnload);}
+if(cXMLHttpRequest.onopen)
+cXMLHttpRequest.onopen.apply(this,arguments);if(arguments.length>4)
+this._object.open(sMethod,sUrl,bAsync,sUser,sPassword);else
+if(arguments.length>3)
+this._object.open(sMethod,sUrl,bAsync,sUser);else
+this._object.open(sMethod,sUrl,bAsync);this.readyState=cXMLHttpRequest.OPENED;fReadyStateChange(this);this._object.onreadystatechange=function(){if(bGecko&&!bAsync)
+return;oRequest.readyState=oRequest._object.readyState;fSynchronizeValues(oRequest);if(oRequest._aborted){oRequest.readyState=cXMLHttpRequest.UNSENT;return;}
+if(oRequest.readyState==cXMLHttpRequest.DONE){delete oRequest._data;fCleanTransport(oRequest);if(bIE&&bAsync)
+window.detachEvent("onunload",fOnUnload);}
+if(nState!=oRequest.readyState)
+fReadyStateChange(oRequest);nState=oRequest.readyState;}};function fXMLHttpRequest_send(oRequest){oRequest._object.send(oRequest._data);if(bGecko&&!oRequest._async){oRequest.readyState=cXMLHttpRequest.OPENED;fSynchronizeValues(oRequest);while(oRequest.readyState<cXMLHttpRequest.DONE){oRequest.readyState++;fReadyStateChange(oRequest);if(oRequest._aborted)
+return;}}};cXMLHttpRequest.prototype.send=function(vData){if(cXMLHttpRequest.onsend)
+cXMLHttpRequest.onsend.apply(this,arguments);if(!arguments.length)
+vData=null;if(vData&&vData.nodeType){vData=window.XMLSerializer?new window.XMLSerializer().serializeToString(vData):vData.xml;if(!oRequest._headers["Content-Type"])
+oRequest._object.setRequestHeader("Content-Type","application/xml");}
+this._data=vData;fXMLHttpRequest_send(this);};cXMLHttpRequest.prototype.abort=function(){if(cXMLHttpRequest.onabort)
+cXMLHttpRequest.onabort.apply(this,arguments);if(this.readyState>cXMLHttpRequest.UNSENT)
+this._aborted=true;this._object.abort();fCleanTransport(this);this.readyState=cXMLHttpRequest.UNSENT;delete this._data;};cXMLHttpRequest.prototype.getAllResponseHeaders=function(){return this._object.getAllResponseHeaders();};cXMLHttpRequest.prototype.getResponseHeader=function(sName){return this._object.getResponseHeader(sName);};cXMLHttpRequest.prototype.setRequestHeader=function(sName,sValue){if(!this._headers)
+this._headers={};this._headers[sName]=sValue;return this._object.setRequestHeader(sName,sValue);};cXMLHttpRequest.prototype.addEventListener=function(sName,fHandler,bUseCapture){for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++)
+if(oListener[0]==sName&&oListener[1]==fHandler&&oListener[2]==bUseCapture)
+return;this._listeners.push([sName,fHandler,bUseCapture]);};cXMLHttpRequest.prototype.removeEventListener=function(sName,fHandler,bUseCapture){for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++)
+if(oListener[0]==sName&&oListener[1]==fHandler&&oListener[2]==bUseCapture)
+break;if(oListener)
+this._listeners.splice(nIndex,1);};cXMLHttpRequest.prototype.dispatchEvent=function(oEvent){var oEventPseudo={'type':oEvent.type,'target':this,'currentTarget':this,'eventPhase':2,'bubbles':oEvent.bubbles,'cancelable':oEvent.cancelable,'timeStamp':oEvent.timeStamp,'stopPropagation':function(){},'preventDefault':function(){},'initEvent':function(){}};if(oEventPseudo.type=="readystatechange"&&this.onreadystatechange)
+(this.onreadystatechange.handleEvent||this.onreadystatechange).apply(this,[oEventPseudo]);for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++)
+if(oListener[0]==oEventPseudo.type&&!oListener[2])
+(oListener[1].handleEvent||oListener[1]).apply(this,[oEventPseudo]);};cXMLHttpRequest.prototype.toString=function(){return'['+"object"+' '+"XMLHttpRequest"+']';};cXMLHttpRequest.toString=function(){return'['+"XMLHttpRequest"+']';};function fReadyStateChange(oRequest){if(cXMLHttpRequest.onreadystatechange)
+cXMLHttpRequest.onreadystatechange.apply(oRequest);oRequest.dispatchEvent({'type':"readystatechange",'bubbles':false,'cancelable':false,'timeStamp':new Date+0});};function fGetDocument(oRequest){var oDocument=oRequest.responseXML,sResponse=oRequest.responseText;if(bIE&&sResponse&&oDocument&&!oDocument.documentElement&&oRequest.getResponseHeader("Content-Type").match(/[^\/]+\/[^\+]+\+xml/)){oDocument=new window.ActiveXObject("Microsoft.XMLDOM");oDocument.async=false;oDocument.validateOnPa [...]
+if(oDocument)
+if((bIE&&oDocument.parseError!=0)||!oDocument.documentElement||(oDocument.documentElement&&oDocument.documentElement.tagName=="parsererror"))
+return null;return oDocument;};function fSynchronizeValues(oRequest){try{oRequest.responseText=oRequest._object.responseText;}catch(e){}
+try{oRequest.responseXML=fGetDocument(oRequest._object);}catch(e){}
+try{oRequest.status=oRequest._object.status;}catch(e){}
+try{oRequest.statusText=oRequest._object.statusText;}catch(e){}};function fCleanTransport(oRequest){oRequest._object.onreadystatechange=new window.Function;};if(!window.Function.prototype.apply){window.Function.prototype.apply=function(oRequest,oArguments){if(!oArguments)
+oArguments=[];oRequest.__func=this;oRequest.__func(oArguments[0],oArguments[1],oArguments[2],oArguments[3],oArguments[4]);delete oRequest.__func;};};OpenLayers.Request.XMLHttpRequest=cXMLHttpRequest;})();OpenLayers.Format.KML=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{kml:"http://www.opengis.net/kml/2.2",gx:"http://www.google.com/kml/ext/2.2"},kmlns:"http://earth.google.com/kml/2.0",placemarksDesc:"No description available",foldersName:"OpenLayers export",foldersDesc:"Exported o [...]
+var types=["Link","NetworkLink","Style","StyleMap","Placemark"];for(var i=0,len=types.length;i<len;++i){var type=types[i];var nodes=this.getElementsByTagNameNS(data,"*",type);if(nodes.length==0){continue;}
+switch(type.toLowerCase()){case"link":case"networklink":this.parseLinks(nodes,options);break;case"style":if(this.extractStyles){this.parseStyles(nodes,options);}
+break;case"stylemap":if(this.extractStyles){this.parseStyleMaps(nodes,options);}
+break;case"placemark":this.parseFeatures(nodes,options);break;}}
+return this.features;},parseLinks:function(nodes,options){if(options.depth>=this.maxDepth){return false;}
+var newOptions=OpenLayers.Util.extend({},options);newOptions.depth++;for(var i=0,len=nodes.length;i<len;i++){var href=this.parseProperty(nodes[i],"*","href");if(href&&!this.fetched[href]){this.fetched[href]=true;var data=this.fetchLink(href);if(data){this.parseData(data,newOptions);}}}},fetchLink:function(href){var request=OpenLayers.Request.GET({url:href,async:false});if(request){return request.responseText;}},parseStyles:function(nodes,options){for(var i=0,len=nodes.length;i<len;i++){v [...]
+return color;},parseStyle:function(node){var style={};var types=["LineStyle","PolyStyle","IconStyle","BalloonStyle","LabelStyle"];var type,styleTypeNode,nodeList,geometry,parser;for(var i=0,len=types.length;i<len;++i){type=types[i];styleTypeNode=this.getElementsByTagNameNS(node,"*",type)[0];if(!styleTypeNode){continue;}
+switch(type.toLowerCase()){case"linestyle":var kmlColor=this.parseProperty(styleTypeNode,"*","color");var color=this.parseKmlColor(kmlColor);if(color){style["strokeColor"]=color.color;style["strokeOpacity"]=color.opacity;}
+var width=this.parseProperty(styleTypeNode,"*","width");if(width){style["strokeWidth"]=width;}
+break;case"polystyle":var kmlColor=this.parseProperty(styleTypeNode,"*","color");var color=this.parseKmlColor(kmlColor);if(color){style["fillOpacity"]=color.opacity;style["fillColor"]=color.color;}
+var fill=this.parseProperty(styleTypeNode,"*","fill");if(fill=="0"){style["fillColor"]="none";}
+var outline=this.parseProperty(styleTypeNode,"*","outline");if(outline=="0"){style["strokeWidth"]="0";}
+break;case"iconstyle":var scale=parseFloat(this.parseProperty(styleTypeNode,"*","scale")||1);var width=32*scale;var height=32*scale;var iconNode=this.getElementsByTagNameNS(styleTypeNode,"*","Icon")[0];if(iconNode){var href=this.parseProperty(iconNode,"*","href");if(href){var w=this.parseProperty(iconNode,"*","w");var h=this.parseProperty(iconNode,"*","h");var google="http://maps.google.com/mapfiles/kml";if(OpenLayers.String.startsWith(href,google)&&!w&&!h){w=64;h=64;scale=scale/2;}
+w=w||h;h=h||w;if(w){width=parseInt(w)*scale;}
+if(h){height=parseInt(h)*scale;}
+var matches=href.match(this.regExes.kmlIconPalette);if(matches){var palette=matches[1];var file_extension=matches[2];var x=this.parseProperty(iconNode,"*","x");var y=this.parseProperty(iconNode,"*","y");var posX=x?x/32:0;var posY=y?(7-y/32):7;var pos=posY*8+posX;href="http://maps.google.com/mapfiles/kml/pal"
++palette+"/icon"+pos+file_extension;}
+style["graphicOpacity"]=1;style["externalGraphic"]=href;}}
+var hotSpotNode=this.getElementsByTagNameNS(styleTypeNode,"*","hotSpot")[0];if(hotSpotNode){var x=parseFloat(hotSpotNode.getAttribute("x"));var y=parseFloat(hotSpotNode.getAttribute("y"));var xUnits=hotSpotNode.getAttribute("xunits");if(xUnits=="pixels"){style["graphicXOffset"]=-x*scale;}
+else if(xUnits=="insetPixels"){style["graphicXOffset"]=-width+(x*scale);}
+else if(xUnits=="fraction"){style["graphicXOffset"]=-width*x;}
+var yUnits=hotSpotNode.getAttribute("yunits");if(yUnits=="pixels"){style["graphicYOffset"]=-height+(y*scale)+1;}
+else if(yUnits=="insetPixels"){style["graphicYOffset"]=-(y*scale)+1;}
+else if(yUnits=="fraction"){style["graphicYOffset"]=-height*(1-y)+1;}}
+style["graphicWidth"]=width;style["graphicHeight"]=height;break;case"balloonstyle":var balloonStyle=OpenLayers.Util.getXmlNodeValue(styleTypeNode);if(balloonStyle){style["balloonStyle"]=balloonStyle.replace(this.regExes.straightBracket,"${$1}");}
+break;case"labelstyle":var kmlColor=this.parseProperty(styleTypeNode,"*","color");var color=this.parseKmlColor(kmlColor);if(color){style["fontColor"]=color.color;style["fontOpacity"]=color.opacity;}
+break;default:}}
+if(!style["strokeColor"]&&style["fillColor"]){style["strokeColor"]=style["fillColor"];}
+var id=node.getAttribute("id");if(id&&style){style.id=id;}
+return style;},parseStyleMaps:function(nodes,options){for(var i=0,len=nodes.length;i<len;i++){var node=nodes[i];var pairs=this.getElementsByTagNameNS(node,"*","Pair");var id=node.getAttribute("id");for(var j=0,jlen=pairs.length;j<jlen;j++){var pair=pairs[j];var key=this.parseProperty(pair,"*","key");var styleUrl=this.parseProperty(pair,"*","styleUrl");if(styleUrl&&key=="normal"){this.styles[(options.styleBaseUrl||"")+"#"+id]=this.styles[(options.styleBaseUrl||"")+styleUrl];}
+if(styleUrl&&key=="highlight"){}}}},parseFeatures:function(nodes,options){var features=[];for(var i=0,len=nodes.length;i<len;i++){var featureNode=nodes[i];var feature=this.parseFeature.apply(this,[featureNode]);if(feature){if(this.extractStyles&&feature.attributes&&feature.attributes.styleUrl){feature.style=this.getStyle(feature.attributes.styleUrl,options);}
+if(this.extractStyles){var inlineStyleNode=this.getElementsByTagNameNS(featureNode,"*","Style")[0];if(inlineStyleNode){var inlineStyle=this.parseStyle(inlineStyleNode);if(inlineStyle){feature.style=OpenLayers.Util.extend(feature.style,inlineStyle);}}}
+if(this.extractTracks){var tracks=this.getElementsByTagNameNS(featureNode,this.namespaces.gx,"Track");if(tracks&&tracks.length>0){var track=tracks[0];var container={features:[],feature:feature};this.readNode(track,container);if(container.features.length>0){features.push.apply(features,container.features);}}}else{features.push(feature);}}else{throw"Bad Placemark: "+i;}}
+this.features=this.features.concat(features);},readers:{"kml":{"when":function(node,container){container.whens.push(OpenLayers.Date.parse(this.getChildValue(node)));},"_trackPointAttribute":function(node,container){var name=node.nodeName.split(":").pop();container.attributes[name].push(this.getChildValue(node));}},"gx":{"Track":function(node,container){var obj={whens:[],points:[],angles:[]};if(this.trackAttributes){var name;obj.attributes={};for(var i=0,ii=this.trackAttributes.length;i<i [...]
+this.readChildNodes(node,obj);if(obj.whens.length!==obj.points.length){throw new Error("gx:Track with unequal number of when ("+obj.whens.length+") and gx:coord ("+obj.points.length+") elements.");}
+var hasAngles=obj.angles.length>0;if(hasAngles&&obj.whens.length!==obj.angles.length){throw new Error("gx:Track with unequal number of when ("+obj.whens.length+") and gx:angles ("+obj.angles.length+") elements.");}
+var feature,point,angles;for(var i=0,ii=obj.whens.length;i<ii;++i){feature=container.feature.clone();feature.fid=container.feature.fid||container.feature.id;point=obj.points[i];feature.geometry=point;if("z"in point){feature.attributes.altitude=point.z;}
+if(this.internalProjection&&this.externalProjection){feature.geometry.transform(this.externalProjection,this.internalProjection);}
+if(this.trackAttributes){for(var j=0,jj=this.trackAttributes.length;j<jj;++j){feature.attributes[name]=obj.attributes[this.trackAttributes[j]][i];}}
+feature.attributes.when=obj.whens[i];feature.attributes.trackId=container.feature.id;if(hasAngles){angles=obj.angles[i];feature.attributes.heading=parseFloat(angles[0]);feature.attributes.tilt=parseFloat(angles[1]);feature.attributes.roll=parseFloat(angles[2]);}
+container.features.push(feature);}},"coord":function(node,container){var str=this.getChildValue(node);var coords=str.replace(this.regExes.trimSpace,"").split(/\s+/);var point=new OpenLayers.Geometry.Point(coords[0],coords[1]);if(coords.length>2){point.z=parseFloat(coords[2]);}
+container.points.push(point);},"angles":function(node,container){var str=this.getChildValue(node);var parts=str.replace(this.regExes.trimSpace,"").split(/\s+/);container.angles.push(parts);}}},parseFeature:function(node){var order=["MultiGeometry","Polygon","LineString","Point"];var type,nodeList,geometry,parser;for(var i=0,len=order.length;i<len;++i){type=order[i];this.internalns=node.namespaceURI?node.namespaceURI:this.kmlns;nodeList=this.getElementsByTagNameNS(node,this.internalns,typ [...]
+break;}}
+var attributes;if(this.extractAttributes){attributes=this.parseAttributes(node);}
+var feature=new OpenLayers.Feature.Vector(geometry,attributes);var fid=node.getAttribute("id")||node.getAttribute("name");if(fid!=null){feature.fid=fid;}
+return feature;},getStyle:function(styleUrl,options){var styleBaseUrl=OpenLayers.Util.removeTail(styleUrl);var newOptions=OpenLayers.Util.extend({},options);newOptions.depth++;newOptions.styleBaseUrl=styleBaseUrl;if(!this.styles[styleUrl]&&!OpenLayers.String.startsWith(styleUrl,"#")&&newOptions.depth<=this.maxDepth&&!this.fetched[styleBaseUrl]){var data=this.fetchLink(styleBaseUrl);if(data){this.parseData(data,newOptions);}}
+var style=OpenLayers.Util.extend({},this.styles[styleUrl]);return style;},parseGeometry:{point:function(node){var nodeList=this.getElementsByTagNameNS(node,this.internalns,"coordinates");var coords=[];if(nodeList.length>0){var coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.removeSpace,"");coords=coordString.split(",");}
+var point=null;if(coords.length>1){if(coords.length==2){coords[2]=null;}
+point=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{throw"Bad coordinate string: "+coordString;}
+return point;},linestring:function(node,ring){var nodeList=this.getElementsByTagNameNS(node,this.internalns,"coordinates");var line=null;if(nodeList.length>0){var coordString=this.getChildValue(nodeList[0]);coordString=coordString.replace(this.regExes.trimSpace,"");coordString=coordString.replace(this.regExes.trimComma,",");var pointList=coordString.split(this.regExes.splitSpace);var numPoints=pointList.length;var points=new Array(numPoints);var coords,numCoords;for(var i=0;i<numPoints;+ [...]
+points[i]=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{throw"Bad LineString point coordinates: "+
+pointList[i];}}
+if(numPoints){if(ring){line=new OpenLayers.Geometry.LinearRing(points);}else{line=new OpenLayers.Geometry.LineString(points);}}else{throw"Bad LineString coordinates: "+coordString;}}
+return line;},polygon:function(node){var nodeList=this.getElementsByTagNameNS(node,this.internalns,"LinearRing");var numRings=nodeList.length;var components=new Array(numRings);if(numRings>0){var ring;for(var i=0,len=nodeList.length;i<len;++i){ring=this.parseGeometry.linestring.apply(this,[nodeList[i],true]);if(ring){components[i]=ring;}else{throw"Bad LinearRing geometry: "+i;}}}
+return new OpenLayers.Geometry.Polygon(components);},multigeometry:function(node){var child,parser;var parts=[];var children=node.childNodes;for(var i=0,len=children.length;i<len;++i){child=children[i];if(child.nodeType==1){var type=(child.prefix)?child.nodeName.split(":")[1]:child.nodeName;var parser=this.parseGeometry[type.toLowerCase()];if(parser){parts.push(parser.apply(this,[child]));}}}
+return new OpenLayers.Geometry.Collection(parts);}},parseAttributes:function(node){var attributes={};var edNodes=node.getElementsByTagName("ExtendedData");if(edNodes.length){attributes=this.parseExtendedData(edNodes[0]);}
+var child,grandchildren,grandchild;var children=node.childNodes;for(var i=0,len=children.length;i<len;++i){child=children[i];if(child.nodeType==1){grandchildren=child.childNodes;if(grandchildren.length>=1&&grandchildren.length<=3){var grandchild;switch(grandchildren.length){case 1:grandchild=grandchildren[0];break;case 2:var c1=grandchildren[0];var c2=grandchildren[1];grandchild=(c1.nodeType==3||c1.nodeType==4)?c1:c2;break;case 3:default:grandchild=grandchildren[1];break;}
+if(grandchild.nodeType==3||grandchild.nodeType==4){var name=(child.prefix)?child.nodeName.split(":")[1]:child.nodeName;var value=OpenLayers.Util.getXmlNodeValue(grandchild);if(value){value=value.replace(this.regExes.trimSpace,"");attributes[name]=value;}}}}}
+return attributes;},parseExtendedData:function(node){var attributes={};var i,len,data,key;var dataNodes=node.getElementsByTagName("Data");for(i=0,len=dataNodes.length;i<len;i++){data=dataNodes[i];key=data.getAttribute("name");var ed={};var valueNode=data.getElementsByTagName("value");if(valueNode.length){ed['value']=this.getChildValue(valueNode[0]);}
+var nameNode=data.getElementsByTagName("displayName");if(nameNode.length){ed['displayName']=this.getChildValue(nameNode[0]);}
+attributes[key]=ed;}
+var simpleDataNodes=node.getElementsByTagName("SimpleData");for(i=0,len=simpleDataNodes.length;i<len;i++){var ed={};data=simpleDataNodes[i];key=data.getAttribute("name");ed['value']=this.getChildValue(data);ed['displayName']=key;attributes[key]=ed;}
+return attributes;},parseProperty:function(xmlNode,namespace,tagName){var value;var nodeList=this.getElementsByTagNameNS(xmlNode,namespace,tagName);try{value=OpenLayers.Util.getXmlNodeValue(nodeList[0]);}catch(e){value=null;}
+return value;},write:function(features){if(!(OpenLayers.Util.isArray(features))){features=[features];}
+var kml=this.createElementNS(this.kmlns,"kml");var folder=this.createFolderXML();for(var i=0,len=features.length;i<len;++i){folder.appendChild(this.createPlacemarkXML(features[i]));}
+kml.appendChild(folder);return OpenLayers.Format.XML.prototype.write.apply(this,[kml]);},createFolderXML:function(){var folder=this.createElementNS(this.kmlns,"Folder");if(this.foldersName){var folderName=this.createElementNS(this.kmlns,"name");var folderNameText=this.createTextNode(this.foldersName);folderName.appendChild(folderNameText);folder.appendChild(folderName);}
+if(this.foldersDesc){var folderDesc=this.createElementNS(this.kmlns,"description");var folderDescText=this.createTextNode(this.foldersDesc);folderDesc.appendChild(folderDescText);folder.appendChild(folderDesc);}
+return folder;},createPlacemarkXML:function(feature){var placemarkName=this.createElementNS(this.kmlns,"name");var name=feature.style&&feature.style.label?feature.style.label:feature.attributes.name||feature.id;placemarkName.appendChild(this.createTextNode(name));var placemarkDesc=this.createElementNS(this.kmlns,"description");var desc=feature.attributes.description||this.placemarksDesc;placemarkDesc.appendChild(this.createTextNode(desc));var placemarkNode=this.createElementNS(this.kmlns [...]
+placemarkNode.appendChild(placemarkName);placemarkNode.appendChild(placemarkDesc);var geometryNode=this.buildGeometryNode(feature.geometry);placemarkNode.appendChild(geometryNode);return placemarkNode;},buildGeometryNode:function(geometry){var className=geometry.CLASS_NAME;var type=className.substring(className.lastIndexOf(".")+1);var builder=this.buildGeometry[type.toLowerCase()];var node=null;if(builder){node=builder.apply(this,[geometry]);}
+return node;},buildGeometry:{point:function(geometry){var kml=this.createElementNS(this.kmlns,"Point");kml.appendChild(this.buildCoordinatesNode(geometry));return kml;},multipoint:function(geometry){return this.buildGeometry.collection.apply(this,[geometry]);},linestring:function(geometry){var kml=this.createElementNS(this.kmlns,"LineString");kml.appendChild(this.buildCoordinatesNode(geometry));return kml;},multilinestring:function(geometry){return this.buildGeometry.collection.apply(thi [...]
+return kml;},multipolygon:function(geometry){return this.buildGeometry.collection.apply(this,[geometry]);},collection:function(geometry){var kml=this.createElementNS(this.kmlns,"MultiGeometry");var child;for(var i=0,len=geometry.components.length;i<len;++i){child=this.buildGeometryNode.apply(this,[geometry.components[i]]);if(child){kml.appendChild(child);}}
+return kml;}},buildCoordinatesNode:function(geometry){var coordinatesNode=this.createElementNS(this.kmlns,"coordinates");var path;var points=geometry.components;if(points){var point;var numPoints=points.length;var parts=new Array(numPoints);for(var i=0;i<numPoints;++i){point=points[i];parts[i]=this.buildCoordinates(point);}
+path=parts.join(" ");}else{path=this.buildCoordinates(geometry);}
+var txtNode=this.createTextNode(path);coordinatesNode.appendChild(txtNode);return coordinatesNode;},buildCoordinates:function(point){if(this.internalProjection&&this.externalProjection){point=point.clone();point.transform(this.internalProjection,this.externalProjection);}
+return point.x+","+point.y;},CLASS_NAME:"OpenLayers.Format.KML"});OpenLayers.Popup=OpenLayers.Class({events:null,id:"",lonlat:null,div:null,contentSize:null,size:null,contentHTML:null,backgroundColor:"",opacity:"",border:"",contentDiv:null,groupDiv:null,closeDiv:null,autoSize:false,minSize:null,maxSize:null,displayClass:"olPopup",contentDisplayClass:"olPopupContent",padding:0,disableFirefoxOverflowHack:false,fixPadding:function(){if(typeof this.padding=="number"){this.padding=new OpenLay [...]
+this.id=id;this.lonlat=lonlat;this.contentSize=(contentSize!=null)?contentSize:new OpenLayers.Size(OpenLayers.Popup.WIDTH,OpenLayers.Popup.HEIGHT);if(contentHTML!=null){this.contentHTML=contentHTML;}
+this.backgroundColor=OpenLayers.Popup.COLOR;this.opacity=OpenLayers.Popup.OPACITY;this.border=OpenLayers.Popup.BORDER;this.div=OpenLayers.Util.createDiv(this.id,null,null,null,null,null,"hidden");this.div.className=this.displayClass;var groupDivId=this.id+"_GroupDiv";this.groupDiv=OpenLayers.Util.createDiv(groupDivId,null,null,null,"relative",null,"hidden");var id=this.div.id+"_contentDiv";this.contentDiv=OpenLayers.Util.createDiv(id,null,this.contentSize.clone(),null,"relative");this.co [...]
+this.registerEvents();},destroy:function(){this.id=null;this.lonlat=null;this.size=null;this.contentHTML=null;this.backgroundColor=null;this.opacity=null;this.border=null;if(this.closeOnMove&&this.map){this.map.events.unregister("movestart",this,this.hide);}
+this.events.destroy();this.events=null;if(this.closeDiv){OpenLayers.Event.stopObservingElement(this.closeDiv);this.groupDiv.removeChild(this.closeDiv);}
+this.closeDiv=null;this.div.removeChild(this.groupDiv);this.groupDiv=null;if(this.map!=null){this.map.removePopup(this);}
+this.map=null;this.div=null;this.autoSize=null;this.minSize=null;this.maxSize=null;this.padding=null;this.panMapIfOutOfView=null;},draw:function(px){if(px==null){if((this.lonlat!=null)&&(this.map!=null)){px=this.map.getLayerPxFromLonLat(this.lonlat);}}
+if(this.closeOnMove){this.map.events.register("movestart",this,this.hide);}
+if(!this.disableFirefoxOverflowHack&&OpenLayers.BROWSER_NAME=='firefox'){this.map.events.register("movestart",this,function(){var style=document.defaultView.getComputedStyle(this.contentDiv,null);var currentOverflow=style.getPropertyValue("overflow");if(currentOverflow!="hidden"){this.contentDiv._oldOverflow=currentOverflow;this.contentDiv.style.overflow="hidden";}});this.map.events.register("moveend",this,function(){var oldOverflow=this.contentDiv._oldOverflow;if(oldOverflow){this.conte [...]
+this.moveTo(px);if(!this.autoSize&&!this.size){this.setSize(this.contentSize);}
+this.setBackgroundColor();this.setOpacity();this.setBorder();this.setContentHTML();if(this.panMapIfOutOfView){this.panIntoView();}
+return this.div;},updatePosition:function(){if((this.lonlat)&&(this.map)){var px=this.map.getLayerPxFromLonLat(this.lonlat);if(px){this.moveTo(px);}}},moveTo:function(px){if((px!=null)&&(this.div!=null)){this.div.style.left=px.x+"px";this.div.style.top=px.y+"px";}},visible:function(){return OpenLayers.Element.visible(this.div);},toggle:function(){if(this.visible()){this.hide();}else{this.show();}},show:function(){this.div.style.display='';if(this.panMapIfOutOfView){this.panIntoView();}}, [...]
+this.size.w+=wPadding;this.size.h+=hPadding;if(OpenLayers.BROWSER_NAME=="msie"){this.contentSize.w+=contentDivPadding.left+contentDivPadding.right;this.contentSize.h+=contentDivPadding.bottom+contentDivPadding.top;}
+if(this.div!=null){this.div.style.width=this.size.w+"px";this.div.style.height=this.size.h+"px";}
+if(this.contentDiv!=null){this.contentDiv.style.width=contentSize.w+"px";this.contentDiv.style.height=contentSize.h+"px";}},updateSize:function(){var preparedHTML="<div class='"+this.contentDisplayClass+"'>"+
+this.contentDiv.innerHTML+"</div>";var containerElement=(this.map)?this.map.layerContainerDiv:document.body;var realSize=OpenLayers.Util.getRenderedDimensions(preparedHTML,null,{displayClass:this.displayClass,containerElement:containerElement});var safeSize=this.getSafeContentSize(realSize);var newSize=null;if(safeSize.equals(realSize)){newSize=realSize;}else{var fixedSize=new OpenLayers.Size();fixedSize.w=(safeSize.w<realSize.w)?safeSize.w:null;fixedSize.h=(safeSize.h<realSize.h)?safeSi [...]
+newSize=this.getSafeContentSize(clippedSize);}}
+this.setSize(newSize);},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;}
+if(this.div!=null){this.div.style.backgroundColor=this.backgroundColor;}},setOpacity:function(opacity){if(opacity!=undefined){this.opacity=opacity;}
+if(this.div!=null){this.div.style.opacity=this.opacity;this.div.style.filter='alpha(opacity='+this.opacity*100+')';}},setBorder:function(border){if(border!=undefined){this.border=border;}
+if(this.div!=null){this.div.style.border=this.border;}},setContentHTML:function(contentHTML){if(contentHTML!=null){this.contentHTML=contentHTML;}
+if((this.contentDiv!=null)&&(this.contentHTML!=null)&&(this.contentHTML!=this.contentDiv.innerHTML)){this.contentDiv.innerHTML=this.contentHTML;if(this.autoSize){this.registerImageListeners();this.updateSize();}}},registerImageListeners:function(){var onImgLoad=function(){this.popup.updateSize();if(this.popup.visible()&&this.popup.panMapIfOutOfView){this.popup.panIntoView();}
+OpenLayers.Event.stopObserving(this.img,"load",this.img._onImageLoad);};var images=this.contentDiv.getElementsByTagName("img");for(var i=0,len=images.length;i<len;i++){var img=images[i];if(img.width==0||img.height==0){var context={'popup':this,'img':img};img._onImgLoad=OpenLayers.Function.bind(onImgLoad,context);OpenLayers.Event.observe(img,'load',img._onImgLoad);}}},getSafeContentSize:function(size){var safeContentSize=size.clone();var contentDivPadding=this.getContentDivPadding();var w [...]
+if(this.minSize){safeContentSize.w=Math.max(safeContentSize.w,(this.minSize.w-wPadding));safeContentSize.h=Math.max(safeContentSize.h,(this.minSize.h-hPadding));}
+if(this.maxSize){safeContentSize.w=Math.min(safeContentSize.w,(this.maxSize.w-wPadding));safeContentSize.h=Math.min(safeContentSize.h,(this.maxSize.h-hPadding));}
+if(this.map&&this.map.size){var extraX=0,extraY=0;if(this.keepInMap&&!this.panMapIfOutOfView){var px=this.map.getPixelFromLonLat(this.lonlat);switch(this.relativePosition){case"tr":extraX=px.x;extraY=this.map.size.h-px.y;break;case"tl":extraX=this.map.size.w-px.x;extraY=this.map.size.h-px.y;break;case"bl":extraX=this.map.size.w-px.x;extraY=px.y;break;case"br":extraX=px.x;extraY=px.y;break;default:extraX=px.x;extraY=this.map.size.h-px.y;break;}}
+var maxY=this.map.size.h-
+this.map.paddingForPopups.top-
+this.map.paddingForPopups.bottom-
+hPadding-extraY;var maxX=this.map.size.w-
+this.map.paddingForPopups.left-
+this.map.paddingForPopups.right-
+wPadding-extraX;safeContentSize.w=Math.min(safeContentSize.w,maxX);safeContentSize.h=Math.min(safeContentSize.h,maxY);}
+return safeContentSize;},getContentDivPadding:function(){var contentDivPadding=this._contentDivPadding;if(!contentDivPadding){if(this.div.parentNode==null){this.div.style.display="none";document.body.appendChild(this.div);}
+contentDivPadding=new OpenLayers.Bounds(OpenLayers.Element.getStyle(this.contentDiv,"padding-left"),OpenLayers.Element.getStyle(this.contentDiv,"padding-bottom"),OpenLayers.Element.getStyle(this.contentDiv,"padding-right"),OpenLayers.Element.getStyle(this.contentDiv,"padding-top"));this._contentDivPadding=contentDivPadding;if(this.div.parentNode==document.body){document.body.removeChild(this.div);this.div.style.display="";}}
+return contentDivPadding;},addCloseBox:function(callback){this.closeDiv=OpenLayers.Util.createDiv(this.id+"_close",null,new OpenLayers.Size(17,17));this.closeDiv.className="olPopupCloseBox";var contentDivPadding=this.getContentDivPadding();this.closeDiv.style.right=contentDivPadding.right+"px";this.closeDiv.style.top=contentDivPadding.top+"px";this.groupDiv.appendChild(this.closeDiv);var closePopup=callback||function(e){this.hide();OpenLayers.Event.stop(e);};OpenLayers.Event.observe(this [...]
+if((origTL.x+this.size.w)>(mapSize.w-this.map.paddingForPopups.right)){newTL.x=mapSize.w-this.map.paddingForPopups.right-this.size.w;}
+if(origTL.y<this.map.paddingForPopups.top){newTL.y=this.map.paddingForPopups.top;}else
+if((origTL.y+this.size.h)>(mapSize.h-this.map.paddingForPopups.bottom)){newTL.y=mapSize.h-this.map.paddingForPopups.bottom-this.size.h;}
+var dx=origTL.x-newTL.x;var dy=origTL.y-newTL.y;this.map.pan(dx,dy);},registerEvents:function(){this.events=new OpenLayers.Events(this,this.div,null,true);function onTouchstart(evt){OpenLayers.Event.stop(evt,true);}
+this.events.on({"mousedown":this.onmousedown,"mousemove":this.onmousemove,"mouseup":this.onmouseup,"click":this.onclick,"mouseout":this.onmouseout,"dblclick":this.ondblclick,"touchstart":onTouchstart,scope:this});},onmousedown:function(evt){this.mousedown=true;OpenLayers.Event.stop(evt,true);},onmousemove:function(evt){if(this.mousedown){OpenLayers.Event.stop(evt,true);}},onmouseup:function(evt){if(this.mousedown){this.mousedown=false;OpenLayers.Event.stop(evt,true);}},onclick:function(e [...]
+shortHexCode.charAt(i));}}
+if(hexCode.indexOf('#')==0){hexCode=hexCode.substring(1);}
+var red=hexCode.substring(0,2);var green=hexCode.substring(2,4);var blue=hexCode.substring(4,6);return new OpenLayers.Rico.Color(parseInt(red,16),parseInt(green,16),parseInt(blue,16));};OpenLayers.Rico.Color.createColorFromBackground=function(elem){var actualColor=OpenLayers.Element.getStyle(OpenLayers.Util.getElement(elem),"backgroundColor");if(actualColor=="transparent"&&elem.parentNode){return OpenLayers.Rico.Color.createColorFromBackground(elem.parentNode);}
+if(actualColor==null){return new OpenLayers.Rico.Color(255,255,255);}
+if(actualColor.indexOf("rgb(")==0){var colors=actualColor.substring(4,actualColor.length-1);var colorArray=colors.split(",");return new OpenLayers.Rico.Color(parseInt(colorArray[0]),parseInt(colorArray[1]),parseInt(colorArray[2]));}
+else if(actualColor.indexOf("#")==0){return OpenLayers.Rico.Color.createFromHex(actualColor);}
+else{return new OpenLayers.Rico.Color(255,255,255);}};OpenLayers.Rico.Color.HSBtoRGB=function(hue,saturation,brightness){var red=0;var green=0;var blue=0;if(saturation==0){red=parseInt(brightness*255.0+0.5);green=red;blue=red;}
+else{var h=(hue-Math.floor(hue))*6.0;var f=h-Math.floor(h);var p=brightness*(1.0-saturation);var q=brightness*(1.0-saturation*f);var t=brightness*(1.0-(saturation*(1.0-f)));switch(parseInt(h)){case 0:red=(brightness*255.0+0.5);green=(t*255.0+0.5);blue=(p*255.0+0.5);break;case 1:red=(q*255.0+0.5);green=(brightness*255.0+0.5);blue=(p*255.0+0.5);break;case 2:red=(p*255.0+0.5);green=(brightness*255.0+0.5);blue=(t*255.0+0.5);break;case 3:red=(p*255.0+0.5);green=(q*255.0+0.5);blue=(brightness* [...]
+return{r:parseInt(red),g:parseInt(green),b:parseInt(blue)};};OpenLayers.Rico.Color.RGBtoHSB=function(r,g,b){var hue;var saturation;var brightness;var cmax=(r>g)?r:g;if(b>cmax){cmax=b;}
+var cmin=(r<g)?r:g;if(b<cmin){cmin=b;}
+brightness=cmax/255.0;if(cmax!=0){saturation=(cmax-cmin)/cmax;}else{saturation=0;}
+if(saturation==0){hue=0;}else{var redc=(cmax-r)/(cmax-cmin);var greenc=(cmax-g)/(cmax-cmin);var bluec=(cmax-b)/(cmax-cmin);if(r==cmax){hue=bluec-greenc;}else if(g==cmax){hue=2.0+redc-bluec;}else{hue=4.0+greenc-redc;}
+hue=hue/6.0;if(hue<0){hue=hue+1.0;}}
+return{h:hue,s:saturation,b:brightness};};OpenLayers.Rico=OpenLayers.Rico||{};OpenLayers.Rico.Corner={round:function(e,options){e=OpenLayers.Util.getElement(e);this._setOptions(options);var color=this.options.color;if(this.options.color=="fromElement"){color=this._background(e);}
+var bgColor=this.options.bgColor;if(this.options.bgColor=="fromParent"){bgColor=this._background(e.offsetParent);}
+this._roundCornersImpl(e,color,bgColor);},changeColor:function(theDiv,newColor){theDiv.style.backgroundColor=newColor;var spanElements=theDiv.parentNode.getElementsByTagName("span");for(var currIdx=0;currIdx<spanElements.length;currIdx++){spanElements[currIdx].style.backgroundColor=newColor;}},changeOpacity:function(theDiv,newOpacity){var mozillaOpacity=newOpacity;var ieOpacity='alpha(opacity='+newOpacity*100+')';theDiv.style.opacity=mozillaOpacity;theDiv.style.filter=ieOpacity;var spanE [...]
+if(this._isTopRounded()){this._roundTopCorners(e,color,bgColor);}
+if(this._isBottomRounded()){this._roundBottomCorners(e,color,bgColor);}},_renderBorder:function(el,bgColor){var borderValue="1px solid "+this._borderColor(bgColor);var borderL="border-left: "+borderValue;var borderR="border-right: "+borderValue;var style="style='"+borderL+";"+borderR+"'";el.innerHTML="<div "+style+">"+el.innerHTML+"</div>";},_roundTopCorners:function(el,color,bgColor){var corner=this._createCorner(bgColor);for(var i=0;i<this.options.numSlices;i++){corner.appendChild(this [...]
+el.style.paddingTop=0;el.insertBefore(corner,el.firstChild);},_roundBottomCorners:function(el,color,bgColor){var corner=this._createCorner(bgColor);for(var i=(this.options.numSlices-1);i>=0;i--){corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom"));}
+el.style.paddingBottom=0;el.appendChild(corner);},_createCorner:function(bgColor){var corner=document.createElement("div");corner.style.backgroundColor=(this._isTransparent()?"transparent":bgColor);return corner;},_createCornerSlice:function(color,bgColor,n,position){var slice=document.createElement("span");var inStyle=slice.style;inStyle.backgroundColor=color;inStyle.display="block";inStyle.height="1px";inStyle.overflow="hidden";inStyle.fontSize="1px";var borderColor=this._borderColor(c [...]
+else if(borderColor){inStyle.borderColor=borderColor;inStyle.borderStyle="solid";inStyle.borderWidth="0px 1px";}
+if(!this.options.compact&&(n==(this.options.numSlices-1))){inStyle.height="2px";}
+this._setMargin(slice,n,position);this._setBorder(slice,n,position);return slice;},_setOptions:function(options){this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false};OpenLayers.Util.extend(this.options,options||{});this.options.numSlices=this.options.compact?2:4;if(this._isTransparent()){this.options.blend=false;}},_whichSideTop:function(){if(this._hasString(this.options.corners,"all","top")){return"";}
+if(this.options.corners.indexOf("tl")>=0&&this.options.corners.indexOf("tr")>=0){return"";}
+if(this.options.corners.indexOf("tl")>=0){return"left";}else if(this.options.corners.indexOf("tr")>=0){return"right";}
+return"";},_whichSideBottom:function(){if(this._hasString(this.options.corners,"all","bottom")){return"";}
+if(this.options.corners.indexOf("bl")>=0&&this.options.corners.indexOf("br")>=0){return"";}
+if(this.options.corners.indexOf("bl")>=0){return"left";}else if(this.options.corners.indexOf("br")>=0){return"right";}
+return"";},_borderColor:function(color,bgColor){if(color=="transparent"){return bgColor;}else if(this.options.border){return this.options.border;}else if(this.options.blend){return this._blend(bgColor,color);}else{return"";}},_setMargin:function(el,n,corners){var marginSize=this._marginSize(n);var whichSide=corners=="top"?this._whichSideTop():this._whichSideBottom();if(whichSide=="left"){el.style.marginLeft=marginSize+"px";el.style.marginRight="0px";}
+else if(whichSide=="right"){el.style.marginRight=marginSize+"px";el.style.marginLeft="0px";}
+else{el.style.marginLeft=marginSize+"px";el.style.marginRight=marginSize+"px";}},_setBorder:function(el,n,corners){var borderSize=this._borderSize(n);var whichSide=corners=="top"?this._whichSideTop():this._whichSideBottom();if(whichSide=="left"){el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth="0px";}
+else if(whichSide=="right"){el.style.borderRightWidth=borderSize+"px";el.style.borderLeftWidth="0px";}
+else{el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";}
+if(this.options.border!=false){el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";}},_marginSize:function(n){if(this._isTransparent()){return 0;}
+var marginSizes=[5,3,2,1];var blendedMarginSizes=[3,2,1,0];var compactMarginSizes=[2,1];var smBlendedMarginSizes=[1,0];if(this.options.compact&&this.options.blend){return smBlendedMarginSizes[n];}else if(this.options.compact){return compactMarginSizes[n];}else if(this.options.blend){return blendedMarginSizes[n];}else{return marginSizes[n];}},_borderSize:function(n){var transparentBorderSizes=[5,3,2,1];var blendedBorderSizes=[2,1,1,1];var compactBorderSizes=[1,0];var actualBorderSizes=[0, [...]
+return 0;},_hasString:function(str){for(var i=1;i<arguments.length;i++)if(str.indexOf(arguments[i])>=0){return true;}return false;},_blend:function(c1,c2){var cc1=OpenLayers.Rico.Color.createFromHex(c1);cc1.blend(OpenLayers.Rico.Color.createFromHex(c2));return cc1;},_background:function(el){try{return OpenLayers.Rico.Color.createColorFromBackground(el).asHex();}catch(err){return"#ffffff";}},_isTransparent:function(){return this.options.color=="transparent";},_isTopRounded:function(){retu [...]
+if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor);}}},setOpacity:function(opacity){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,opacity);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity);}}},setBorder:function(border){this.border=0;},setRicoCorners:function(){var corners=this.getCornersToRound(this.relativePosition [...]
+if(!options.geometryName&&parseFloat(this.format.version)>1.0){this.setGeometryName(null);}},destroy:function(){if(this.options&&!this.options.format){this.format.destroy();}
+this.format=null;OpenLayers.Protocol.prototype.destroy.apply(this);},read:function(options){OpenLayers.Protocol.prototype.read.apply(this,arguments);options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options||{});var response=new OpenLayers.Protocol.Response({requestType:"read"});var data=OpenLayers.Format.XML.prototype.write.apply(this.format,[this.format.writeNode("wfs:GetFeature",options)]);response.priv=OpenLayers.Request.POST({url:options.url,callb [...]
+response.code=OpenLayers.Protocol.Response.SUCCESS;}else{response.code=OpenLayers.Protocol.Response.FAILURE;response.error=result;}}else{response.code=OpenLayers.Protocol.Response.FAILURE;}
+options.callback.call(options.scope,response);}},parseResponse:function(request,options){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+if(!doc||doc.length<=0){return null;}
+var result=(this.readFormat!==null)?this.readFormat.read(doc):this.format.read(doc,options);if(!this.featureNS){var format=this.readFormat||this.format;this.featureNS=format.featureNS;format.autoConfig=false;if(!this.geometryName){this.setGeometryName(format.geometryName);}}
+return result;},commit:function(features,options){options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options);var response=new OpenLayers.Protocol.Response({requestType:"commit",reqFeatures:features});response.priv=OpenLayers.Request.POST({url:options.url,headers:options.headers,data:this.format.write(features,options),callback:this.createCallback(this.handleCommit,response,options)});return response;},handleCommit:function(response,options){if(options. [...]
+var obj=this.format.read(data)||{};response.insertIds=obj.insertIds||[];if(obj.success){response.code=OpenLayers.Protocol.Response.SUCCESS;}else{response.code=OpenLayers.Protocol.Response.FAILURE;response.error=obj;}
+options.callback.call(options.scope,response);}},filterDelete:function(filter,options){options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options);var response=new OpenLayers.Protocol.Response({requestType:"commit"});var root=this.format.createElementNSPlus("wfs:Transaction",{attributes:{service:"WFS",version:this.version}});var deleteNode=this.format.createElementNSPlus("wfs:Delete",{attributes:{typeName:(options.featureNS?this.featurePrefix+":":"")+
+options.featureType}});if(options.featureNS){deleteNode.setAttribute("xmlns:"+this.featurePrefix,options.featureNS);}
+var filterNode=this.format.writeNode("ogc:Filter",filter);deleteNode.appendChild(filterNode);root.appendChild(deleteNode);var data=OpenLayers.Format.XML.prototype.write.apply(this.format,[root]);return OpenLayers.Request.POST({url:this.url,callback:options.callback||function(){},data:data});},abort:function(response){if(response){response.priv.abort();}},CLASS_NAME:"OpenLayers.Protocol.WFS.v1"});OpenLayers.Handler.Point=OpenLayers.Class(OpenLayers.Handler,{point:null,layer:null,multi:fal [...]
+OpenLayers.Handler.prototype.initialize.apply(this,arguments);},activate:function(){if(!OpenLayers.Handler.prototype.activate.apply(this,arguments)){return false;}
+var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);return true;},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);var geometry=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);this.point=new OpenLayers.Feature.Vector(geometry);this.callback("create",[this.point.geometry,this.point]);this.po [...]
+this.cancel();if(this.layer.map!=null){this.destroyFeature(true);this.layer.destroy(false);}
+this.layer=null;this.touch=false;return true;},destroyFeature:function(force){if(this.layer&&(force||!this.persist)){this.layer.destroyFeatures();}
+this.point=null;},destroyPersistedFeature:function(){var layer=this.layer;if(layer&&layer.features.length>1){this.layer.features[0].destroy();}},finalize:function(cancel){var key=cancel?"cancel":"done";this.mouseDown=false;this.lastDown=null;this.lastUp=null;this.lastTouchPx=null;this.callback(key,[this.geometryClone()]);this.destroyFeature(cancel);},cancel:function(){this.finalize(true);},click:function(evt){OpenLayers.Event.stop(evt);return false;},dblclick:function(evt){OpenLayers.Eve [...]
+var lonlat=this.map.getLonLatFromPixel(pixel);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.callback("modify",[this.point.geometry,this.point,false]);this.point.geometry.clearBounds();this.drawFeature();},drawFeature:function(){this.layer.drawFeature(this.point,this.style);},getGeometry:function(){var geometry=this.point&&this.point.geometry;if(geometry&&this.multi){geometry=new OpenLayers.Geometry.MultiPoint([geometry]);}
+return geometry;},geometryClone:function(){var geom=this.getGeometry();return geom&&geom.clone();},mousedown:function(evt){return this.down(evt);},touchstart:function(evt){if(!this.touch){this.touch=true;this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,mousemove:this.mousemove,click:this.click,dblclick:this.dblclick,scope:this});}
+this.lastTouchPx=evt.xy;return this.down(evt);},mousemove:function(evt){return this.move(evt);},touchmove:function(evt){this.lastTouchPx=evt.xy;return this.move(evt);},mouseup:function(evt){return this.up(evt);},touchend:function(evt){evt.xy=this.lastTouchPx;return this.up(evt);},down:function(evt){this.mouseDown=true;this.lastDown=evt.xy;if(!this.touch){this.modifyFeature(evt.xy);}
+this.stoppedDown=this.stopDown;return!this.stopDown;},move:function(evt){if(!this.touch&&(!this.mouseDown||this.stoppedDown)){this.modifyFeature(evt.xy);}
+return true;},up:function(evt){this.mouseDown=false;this.stoppedDown=this.stopDown;if(!this.checkModifiers(evt)){return true;}
+if(this.lastUp&&this.lastUp.equals(evt.xy)){return true;}
+if(this.lastDown&&this.passesTolerance(this.lastDown,evt.xy,this.pixelTolerance)){if(this.touch){this.modifyFeature(evt.xy);}
+if(this.persist){this.destroyPersistedFeature();}
+this.lastUp=evt.xy;this.finalize();return!this.stopUp;}else{return true;}},mouseout:function(evt){if(OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){this.stoppedDown=this.stopDown;this.mouseDown=false;}},passesTolerance:function(pixel1,pixel2,tolerance){var passes=true;if(tolerance!=null&&pixel1&&pixel2){var dist=pixel1.distanceTo(pixel2);if(dist>tolerance){passes=false;}}
+return passes;},CLASS_NAME:"OpenLayers.Handler.Point"});OpenLayers.Handler.Path=OpenLayers.Class(OpenLayers.Handler.Point,{line:null,maxVertices:null,doubleTouchTolerance:20,freehand:false,freehandToggle:'shiftKey',timerId:null,redoStack:null,initialize:function(control,callbacks,options){OpenLayers.Handler.Point.prototype.initialize.apply(this,arguments);},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);var geometry=new OpenLayers.Geometry.Point(lonlat.lon,lo [...]
+this.redoStack.push(target);this.drawFeature();}
+return undone;},redo:function(){var target=this.redoStack&&this.redoStack.pop();if(target){this.line.geometry.addComponent(target,this.getCurrentPointIndex());this.drawFeature();}
+return!!target;},freehandMode:function(evt){return(this.freehandToggle&&evt[this.freehandToggle])?!this.freehand:this.freehand;},modifyFeature:function(pixel,drawing){if(!this.line){this.createFeature(pixel);}
+var lonlat=this.control.map.getLonLatFromPixel(pixel);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.callback("modify",[this.point.geometry,this.getSketch(),drawing]);this.point.geometry.clearBounds();this.drawFeature();},drawFeature:function(){this.layer.drawFeature(this.line,this.style);this.layer.drawFeature(this.point,this.style);},getSketch:function(){return this.line;},getGeometry:function(){var geometry=this.line&&this.line.geometry;if(geometry&&this.multi) [...]
+return geometry;},touchstart:function(evt){if(this.timerId&&this.passesTolerance(this.lastTouchPx,evt.xy,this.doubleTouchTolerance)){this.finishGeometry();window.clearTimeout(this.timerId);this.timerId=null;return false;}else{if(this.timerId){window.clearTimeout(this.timerId);this.timerId=null;}
+this.timerId=window.setTimeout(OpenLayers.Function.bind(function(){this.timerId=null;},this),300);return OpenLayers.Handler.Point.prototype.touchstart.call(this,evt);}},down:function(evt){var stopDown=this.stopDown;if(this.freehandMode(evt)){stopDown=true;}
+if(!this.touch&&(!this.lastDown||!this.passesTolerance(this.lastDown,evt.xy,this.pixelTolerance))){this.modifyFeature(evt.xy,!!this.lastUp);}
+this.mouseDown=true;this.lastDown=evt.xy;this.stoppedDown=stopDown;return!stopDown;},move:function(evt){if(this.stoppedDown&&this.freehandMode(evt)){if(this.persist){this.destroyPersistedFeature();}
+this.addPoint(evt.xy);return false;}
+if(!this.touch&&(!this.mouseDown||this.stoppedDown)){this.modifyFeature(evt.xy,!!this.lastUp);}
+return true;},up:function(evt){if(this.mouseDown&&(!this.lastUp||!this.lastUp.equals(evt.xy))){if(this.stoppedDown&&this.freehandMode(evt)){if(this.persist){this.destroyPersistedFeature();}
+this.removePoint();this.finalize();}else{if(this.passesTolerance(this.lastDown,evt.xy,this.pixelTolerance)){if(this.touch){this.modifyFeature(evt.xy);}
+if(this.lastUp==null&&this.persist){this.destroyPersistedFeature();}
+this.addPoint(evt.xy);this.lastUp=evt.xy;if(this.line.geometry.components.length===this.maxVertices+1){this.finishGeometry();}}}}
+this.stoppedDown=this.stopDown;this.mouseDown=false;return!this.stopUp;},finishGeometry:function(){var index=this.line.geometry.components.length-1;this.line.geometry.removeComponent(this.line.geometry.components[index]);this.removePoint();this.finalize();},dblclick:function(evt){if(!this.freehandMode(evt)){this.finishGeometry();}
+return false;},CLASS_NAME:"OpenLayers.Handler.Path"});OpenLayers.Layer.GML=OpenLayers.Class(OpenLayers.Layer.Vector,{loaded:false,format:null,formatOptions:null,initialize:function(name,url,options){var newArguments=[];newArguments.push(name,options);OpenLayers.Layer.Vector.prototype.initialize.apply(this,newArguments);this.url=url;},setVisibility:function(visibility,noEvent){OpenLayers.Layer.Vector.prototype.setVisibility.apply(this,arguments);if(this.visibility&&!this.loaded){this.load [...]
+var options={};OpenLayers.Util.extend(options,this.formatOptions);if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectionObject();}
+var gml=this.format?new this.format(options):new OpenLayers.Format.GML(options);this.addFeatures(gml.read(doc));this.events.triggerEvent("loadend");},requestFailure:function(request){OpenLayers.Console.userError(OpenLayers.i18n("errorLoadingGML",{'url':this.url}));this.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Layer.GML"});OpenLayers.Format.Context=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{layerOptions:null,layerParams:null,read:function(data,options){var context [...]
+map=this.contextToMap(context,mapOptions);}}else{map=context;}
+return map;},getLayerFromContext:function(layerContext){var i,len;var options={queryable:layerContext.queryable,visibility:layerContext.visibility,maxExtent:layerContext.maxExtent,metadata:OpenLayers.Util.applyDefaults(layerContext.metadata,{styles:layerContext.styles,formats:layerContext.formats,"abstract":layerContext["abstract"],dataURL:layerContext.dataURL}),numZoomLevels:layerContext.numZoomLevels,units:layerContext.units,isBaseLayer:layerContext.isBaseLayer,opacity:layerContext.opa [...]
+var params={layers:layerContext.name,transparent:layerContext.transparent,version:layerContext.version};if(layerContext.formats&&layerContext.formats.length>0){params.format=layerContext.formats[0].value;for(i=0,len=layerContext.formats.length;i<len;i++){var format=layerContext.formats[i];if(format.current==true){params.format=format.value;break;}}}
+if(layerContext.styles&&layerContext.styles.length>0){for(i=0,len=layerContext.styles.length;i<len;i++){var style=layerContext.styles[i];if(style.current==true){if(style.href){params.sld=style.href;}else if(style.body){params.sld_body=style.body;}else{params.styles=style.name;}
+break;}}}
+if(this.layerParams){OpenLayers.Util.applyDefaults(params,this.layerParams);}
+var layer=null;var service=layerContext.service;if(service==OpenLayers.Format.Context.serviceTypes.WFS){options.strategies=[new OpenLayers.Strategy.BBOX()];options.protocol=new OpenLayers.Protocol.WFS({url:layerContext.url,featurePrefix:layerContext.name.split(":")[0],featureType:layerContext.name.split(":").pop()});layer=new OpenLayers.Layer.Vector(layerContext.title||layerContext.name,options);}else if(service==OpenLayers.Format.Context.serviceTypes.KML){options.strategies=[new OpenLay [...]
+return layer;},getLayersFromContext:function(layersContext){var layers=[];for(var i=0,len=layersContext.length;i<len;i++){var layer=this.getLayerFromContext(layersContext[i]);if(layer!==null){layers.push(layer);}}
+return layers;},contextToMap:function(context,options){options=OpenLayers.Util.applyDefaults({maxExtent:context.maxExtent,projection:context.projection,units:context.units},options);if(options.maxExtent){options.maxResolution=options.maxExtent.getWidth()/OpenLayers.Map.TILE_WIDTH;}
+var metadata={contactInformation:context.contactInformation,"abstract":context["abstract"],keywords:context.keywords,logo:context.logo,descriptionURL:context.descriptionURL}
+options.metadata=metadata;var map=new OpenLayers.Map(options);map.addLayers(this.getLayersFromContext(context.layersContext));map.setCenter(context.bounds.getCenterLonLat(),map.getZoomForExtent(context.bounds,true));return map;},mergeContextToMap:function(context,map){map.addLayers(this.getLayersFromContext(context.layersContext));return map;},write:function(obj,options){obj=this.toContext(obj);return OpenLayers.Format.XML.VersionedOGC.prototype.write.apply(this,arguments);},CLASS_NAME:" [...]
+if(layer.metadata.formats&&layer.metadata.formats.length>0){for(var i=0,len=layer.metadata.formats.length;i<len;i++){var format=layer.metadata.formats[i];layerContext.formats.push({value:format.value,current:(format.value==layer.params["FORMAT"])});}}else{layerContext.formats.push({value:layer.params["FORMAT"],current:true});}
+if(layer.metadata.styles&&layer.metadata.styles.length>0){for(var i=0,len=layer.metadata.styles.length;i<len;i++){var style=layer.metadata.styles[i];if((style.href==layer.params["SLD"])||(style.body==layer.params["SLD_BODY"])||(style.name==layer.params["STYLES"])){style.current=true;}else{style.current=false;}
+layerContext.styles.push(style);}}else{layerContext.styles.push({href:layer.params["SLD"],body:layer.params["SLD_BODY"],name:layer.params["STYLES"]||parser.defaultStyleName,title:parser.defaultStyleTitle,current:true});}
+return layerContext;},toContext:function(obj){var context={};var layers=obj.layers;if(obj.CLASS_NAME=="OpenLayers.Map"){var metadata=obj.metadata||{};context.size=obj.getSize();context.bounds=obj.getExtent();context.projection=obj.projection;context.title=obj.title;context.keywords=metadata.keywords;context["abstract"]=metadata["abstract"];context.logo=metadata.logo;context.descriptionURL=metadata.descriptionURL;context.contactInformation=metadata.contactInformation;context.maxExtent=obj [...]
+if(context.layersContext==undefined){context.layersContext=[];}
+if(layers!=undefined&&OpenLayers.Util.isArray(layers)){for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];if(layer instanceof OpenLayers.Layer.WMS){context.layersContext.push(this.layerToContext(layer));}}}
+return context;},CLASS_NAME:"OpenLayers.Format.WMC"});OpenLayers.Format.WMC.v1=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{ol:"http://openlayers.org/context",wmc:"http://www.opengis.net/context",sld:"http://www.opengis.net/sld",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},schemaLocation:"",getNamespacePrefix:function(uri){var prefix=null;if(uri==null){prefix=this.namespaces[this.defaultPrefix];}else{for(prefix in this.namespaces){if(this.n [...]
+return prefix;},defaultPrefix:"wmc",rootPrefix:null,defaultStyleName:"",defaultStyleTitle:"Default",initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+var root=data.documentElement;this.rootPrefix=root.prefix;var context={version:root.getAttribute("version")};this.runChildNodes(context,root);return context;},runChildNodes:function(obj,node){var children=node.childNodes;var childNode,processor,prefix,local;for(var i=0,len=children.length;i<len;++i){childNode=children[i];if(childNode.nodeType==1){prefix=this.getNamespacePrefix(childNode.namespaceURI);local=childNode.nodeName.split(":").pop();processor=this["read_"+prefix+"_"+local];if(pr [...]
+layerContext.formats.push(format);},read_wmc_StyleList:function(layerContext,node){this.runChildNodes(layerContext,node);},read_wmc_Style:function(layerContext,node){var style={};this.runChildNodes(style,node);if(node.getAttribute("current")=="1"){style.current=true;}
+layerContext.styles.push(style);},read_wmc_SLD:function(style,node){this.runChildNodes(style,node);},read_sld_StyledLayerDescriptor:function(sld,node){var xml=OpenLayers.Format.XML.prototype.write.apply(this,[node]);sld.body=xml;},read_sld_FeatureTypeStyle:function(sld,node){var xml=OpenLayers.Format.XML.prototype.write.apply(this,[node]);sld.body=xml;},read_wmc_OnlineResource:function(obj,node){obj.href=this.getAttributeNS(node,this.namespaces.xlink,"href");},read_wmc_Name:function(obj, [...]
+if(attributes){this.setAttributes(node,attributes);}
+return node;},setAttributes:function(node,obj){var value;for(var name in obj){value=obj[name].toString();if(value.match(/[A-Z]/)){this.setAttributeNS(node,null,name,value);}else{node.setAttribute(name,value);}}},write_wmc_General:function(context){var node=this.createElementDefaultNS("General");if(context.size){node.appendChild(this.createElementDefaultNS("Window",null,{width:context.size.w,height:context.size.h}));}
+var bounds=context.bounds;node.appendChild(this.createElementDefaultNS("BoundingBox",null,{minx:bounds.left.toPrecision(18),miny:bounds.bottom.toPrecision(18),maxx:bounds.right.toPrecision(18),maxy:bounds.top.toPrecision(18),SRS:context.projection}));node.appendChild(this.createElementDefaultNS("Title",context.title));if(context.keywords){node.appendChild(this.write_wmc_KeywordList(context.keywords));}
+if(context["abstract"]){node.appendChild(this.createElementDefaultNS("Abstract",context["abstract"]));}
+if(context.logo){node.appendChild(this.write_wmc_URLType("LogoURL",context.logo.href,context.logo));}
+if(context.descriptionURL){node.appendChild(this.write_wmc_URLType("DescriptionURL",context.descriptionURL));}
+if(context.contactInformation){node.appendChild(this.write_wmc_ContactInformation(context.contactInformation));}
+node.appendChild(this.write_ol_MapExtension(context));return node;},write_wmc_KeywordList:function(keywords){var node=this.createElementDefaultNS("KeywordList");for(var i=0,len=keywords.length;i<len;i++){node.appendChild(this.createElementDefaultNS("Keyword",keywords[i]));}
+return node;},write_wmc_ContactInformation:function(contact){var node=this.createElementDefaultNS("ContactInformation");if(contact.personPrimary){node.appendChild(this.write_wmc_ContactPersonPrimary(contact.personPrimary));}
+if(contact.position){node.appendChild(this.createElementDefaultNS("ContactPosition",contact.position));}
+if(contact.contactAddress){node.appendChild(this.write_wmc_ContactAddress(contact.contactAddress));}
+if(contact.phone){node.appendChild(this.createElementDefaultNS("ContactVoiceTelephone",contact.phone));}
+if(contact.fax){node.appendChild(this.createElementDefaultNS("ContactFacsimileTelephone",contact.fax));}
+if(contact.email){node.appendChild(this.createElementDefaultNS("ContactElectronicMailAddress",contact.email));}
+return node;},write_wmc_ContactPersonPrimary:function(personPrimary){var node=this.createElementDefaultNS("ContactPersonPrimary");if(personPrimary.person){node.appendChild(this.createElementDefaultNS("ContactPerson",personPrimary.person));}
+if(personPrimary.organization){node.appendChild(this.createElementDefaultNS("ContactOrganization",personPrimary.organization));}
+return node;},write_wmc_ContactAddress:function(contactAddress){var node=this.createElementDefaultNS("ContactAddress");if(contactAddress.type){node.appendChild(this.createElementDefaultNS("AddressType",contactAddress.type));}
+if(contactAddress.address){node.appendChild(this.createElementDefaultNS("Address",contactAddress.address));}
+if(contactAddress.city){node.appendChild(this.createElementDefaultNS("City",contactAddress.city));}
+if(contactAddress.stateOrProvince){node.appendChild(this.createElementDefaultNS("StateOrProvince",contactAddress.stateOrProvince));}
+if(contactAddress.postcode){node.appendChild(this.createElementDefaultNS("PostCode",contactAddress.postcode));}
+if(contactAddress.country){node.appendChild(this.createElementDefaultNS("Country",contactAddress.country));}
+return node;},write_ol_MapExtension:function(context){var node=this.createElementDefaultNS("Extension");var bounds=context.maxExtent;if(bounds){var maxExtent=this.createElementNS(this.namespaces.ol,"ol:maxExtent");this.setAttributes(maxExtent,{minx:bounds.left.toPrecision(18),miny:bounds.bottom.toPrecision(18),maxx:bounds.right.toPrecision(18),maxy:bounds.top.toPrecision(18)});node.appendChild(maxExtent);}
+return node;},write_wmc_LayerList:function(context){var list=this.createElementDefaultNS("LayerList");for(var i=0,len=context.layersContext.length;i<len;++i){list.appendChild(this.write_wmc_Layer(context.layersContext[i]));}
+return list;},write_wmc_Layer:function(context){var node=this.createElementDefaultNS("Layer",null,{queryable:context.queryable?"1":"0",hidden:context.visibility?"0":"1"});node.appendChild(this.write_wmc_Server(context));node.appendChild(this.createElementDefaultNS("Name",context.name));node.appendChild(this.createElementDefaultNS("Title",context.title));if(context["abstract"]){node.appendChild(this.createElementDefaultNS("Abstract",context["abstract"]));}
+if(context.dataURL){node.appendChild(this.write_wmc_URLType("DataURL",context.dataURL));}
+if(context.metadataURL){node.appendChild(this.write_wmc_URLType("MetadataURL",context.metadataURL));}
+return node;},write_wmc_LayerExtension:function(context){var node=this.createElementDefaultNS("Extension");var bounds=context.maxExtent;var maxExtent=this.createElementNS(this.namespaces.ol,"ol:maxExtent");this.setAttributes(maxExtent,{minx:bounds.left.toPrecision(18),miny:bounds.bottom.toPrecision(18),maxx:bounds.right.toPrecision(18),maxy:bounds.top.toPrecision(18)});node.appendChild(maxExtent);if(context.tileSize&&!context.singleTile){var size=this.createElementNS(this.namespaces.ol," [...]
+var properties=["transparent","numZoomLevels","units","isBaseLayer","opacity","displayInLayerSwitcher","singleTile"];var child;for(var i=0,len=properties.length;i<len;++i){child=this.createOLPropertyNode(context,properties[i]);if(child){node.appendChild(child);}}
+return node;},createOLPropertyNode:function(obj,prop){var node=null;if(obj[prop]!=null){node=this.createElementNS(this.namespaces.ol,"ol:"+prop);node.appendChild(this.createTextNode(obj[prop].toString()));}
+return node;},write_wmc_Server:function(context){var server=context.server;var node=this.createElementDefaultNS("Server");var attributes={service:"OGC:WMS",version:server.version};if(server.title){attributes.title=server.title}
+this.setAttributes(node,attributes);node.appendChild(this.write_wmc_OnlineResource(server.url));return node;},write_wmc_URLType:function(elName,url,attr){var node=this.createElementDefaultNS(elName);node.appendChild(this.write_wmc_OnlineResource(url));if(attr){var optionalAttributes=["width","height","format"];for(var i=0;i<optionalAttributes.length;i++){if(optionalAttributes[i]in attr){node.setAttribute(optionalAttributes[i],attr[optionalAttributes[i]]);}}}
+return node;},write_wmc_DimensionList:function(context){var node=this.createElementDefaultNS("DimensionList");var required_attributes={name:true,units:true,unitSymbol:true,userValue:true};for(var dim in context.dimensions){var attributes={};var dimension=context.dimensions[dim];for(var name in dimension){if(typeof dimension[name]=="boolean"){attributes[name]=Number(dimension[name]);}else{attributes[name]=dimension[name];}}
+var values="";if(attributes.values){values=attributes.values.join(",");delete attributes.values;}
+node.appendChild(this.createElementDefaultNS("Dimension",values,attributes));}
+return node;},write_wmc_FormatList:function(context){var node=this.createElementDefaultNS("FormatList");for(var i=0,len=context.formats.length;i<len;i++){var format=context.formats[i];node.appendChild(this.createElementDefaultNS("Format",format.value,(format.current&&format.current==true)?{current:"1"}:null));}
+return node;},write_wmc_StyleList:function(layer){var node=this.createElementDefaultNS("StyleList");var styles=layer.styles;if(styles&&OpenLayers.Util.isArray(styles)){var sld;for(var i=0,len=styles.length;i<len;i++){var s=styles[i];var style=this.createElementDefaultNS("Style",null,(s.current&&s.current==true)?{current:"1"}:null);if(s.href){sld=this.createElementDefaultNS("SLD");if(s.name){sld.appendChild(this.createElementDefaultNS("Name",s.name));}
+if(s.title){sld.appendChild(this.createElementDefaultNS("Title",s.title));}
+if(s.legend){sld.appendChild(this.write_wmc_URLType("LegendURL",s.legend.href,s.legend));}
+var link=this.write_wmc_OnlineResource(s.href);sld.appendChild(link);style.appendChild(sld);}else if(s.body){sld=this.createElementDefaultNS("SLD");if(s.name){sld.appendChild(this.createElementDefaultNS("Name",s.name));}
+if(s.title){sld.appendChild(this.createElementDefaultNS("Title",s.title));}
+if(s.legend){sld.appendChild(this.write_wmc_URLType("LegendURL",s.legend.href,s.legend));}
+var doc=OpenLayers.Format.XML.prototype.read.apply(this,[s.body]);var imported=doc.documentElement;if(sld.ownerDocument&&sld.ownerDocument.importNode){imported=sld.ownerDocument.importNode(imported,true);}
+sld.appendChild(imported);style.appendChild(sld);}else{style.appendChild(this.createElementDefaultNS("Name",s.name));style.appendChild(this.createElementDefaultNS("Title",s.title));if(s['abstract']){style.appendChild(this.createElementDefaultNS("Abstract",s['abstract']));}
+if(s.legend){style.appendChild(this.write_wmc_URLType("LegendURL",s.legend.href,s.legend));}}
+node.appendChild(style);}}
+return node;},write_wmc_OnlineResource:function(href){var node=this.createElementDefaultNS("OnlineResource");this.setAttributeNS(node,this.namespaces.xlink,"xlink:type","simple");this.setAttributeNS(node,this.namespaces.xlink,"xlink:href",href);return node;},getOnlineResource_href:function(node){var object={};var links=node.getElementsByTagName("OnlineResource");if(links.length>0){this.read_wmc_OnlineResource(object,links[0]);}
+return object.href;},CLASS_NAME:"OpenLayers.Format.WMC.v1"});OpenLayers.Control.PanPanel=OpenLayers.Class(OpenLayers.Control.Panel,{slideFactor:50,slideRatio:null,initialize:function(options){OpenLayers.Control.Panel.prototype.initialize.apply(this,[options]);var options={slideFactor:this.slideFactor,slideRatio:this.slideRatio};this.addControls([new OpenLayers.Control.Pan(OpenLayers.Control.Pan.NORTH,options),new OpenLayers.Control.Pan(OpenLayers.Control.Pan.SOUTH,options),new OpenLayers [...]
+this.div.innerHTML=attributions.join(this.separator);}},CLASS_NAME:"OpenLayers.Control.Attribution"});OpenLayers.Renderer.NG=OpenLayers.Class(OpenLayers.Renderer.Elements,{labelNodeType:null,updateDimensions:function(zoomChanged){var mapExtent=this.map.getExtent();var renderExtent=mapExtent.scale(3);this.setExtent(renderExtent,true);var res=this.getResolution();var div=this.rendererRoot.parentNode;var layerLeft=parseFloat(div.parentNode.style.left);var layerTop=parseFloat(div.parentNode. [...]
+if(feature.geometry){var rendered=this.drawGeometry(feature.geometry,style,feature.id);if(rendered!==false&&style.label){var location=feature.geometry.getCentroid();this.drawText(feature.id,style,location);}else{this.removeText(feature.id);}
+return rendered;}},drawText:function(featureId,style,location){var label;if(typeof featureId!=="string"){label=featureId;}else{label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,this.labelNodeType);label._featureId=featureId;}
+label._style=style;label._x=location.x;label._y=location.y;if(style.labelXOffset||style.labelYOffset){var xOffset=isNaN(style.labelXOffset)?0:style.labelXOffset;var yOffset=isNaN(style.labelYOffset)?0:style.labelYOffset;var res=this.getResolution();location.move(xOffset*res,yOffset*res);}
+if(label.parentNode!==this.textRoot){this.textRoot.appendChild(label);}
+return label;},CLASS_NAME:"OpenLayers.Renderer.NG"});OpenLayers.Renderer.SVG2=OpenLayers.Class(OpenLayers.Renderer.NG,{xmlns:"http://www.w3.org/2000/svg",xlinkns:"http://www.w3.org/1999/xlink",symbolMetrics:null,labelNodeType:"g",initialize:function(containerID){if(!this.supported()){return;}
+OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);this.symbolMetrics={};},supported:function(){var svgFeature="http://www.w3.org/TR/SVG11/feature#";return(document.implementation&&(document.implementation.hasFeature("org.w3c.svg","1.0")||document.implementation.hasFeature(svgFeature+"SVG","1.1")||document.implementation.hasFeature(svgFeature+"BasicStructure","1.1")));},updateDimensions:function(zoomChanged){OpenLayers.Renderer.NG.prototype.updateDimensions.apply(thi [...]
+var textNodes=this.textRoot.childNodes;var label;for(i=0,len=textNodes.length;i<len;++i){label=textNodes[i];this.drawText(label,label._style,new OpenLayers.Geometry.Point(label._x,label._y));}}},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="image";}else if(this.isComplexSymbol(style.graphicName)){nodeType="svg";}else{nodeType="circle";}
+break;case"OpenLayers.Geometry.Rectangle":nodeType="rect";break;case"OpenLayers.Geometry.LineString":nodeType="polyline";break;case"OpenLayers.Geometry.LinearRing":nodeType="polygon";break;case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="path";break;default:break;}
+return nodeType;},setStyle:function(node,style,options){style=style||node._style;options=options||node._options;var resolution=this.getResolution();var r=node._radius;var widthFactor=resolution;if(node._geometryClass=="OpenLayers.Geometry.Point"&&r){node.style.visibility="";if(style.graphic===false){node.style.visibility="hidden";}else if(style.externalGraphic){if(style.graphicTitle){node.setAttributeNS(null,"title",style.graphicTitle);var label=this.nodeFactory(null,"title");label.textC [...]
+if(style.graphicWidth&&style.graphicHeight){node.setAttributeNS(null,"preserveAspectRatio","none");}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;width*=resolution;height*=resolution;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset*resolution:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset*resolution:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;node.setAttributeNS(null,"x",node._x+xOf [...]
+node.firstChild&&node.removeChild(node.firstChild);node.appendChild(src.firstChild.cloneNode(true));node.setAttributeNS(null,"viewBox",src.getAttributeNS(null,"viewBox"));node.setAttributeNS(null,"width",size);node.setAttributeNS(null,"height",size);node.setAttributeNS(null,"x",node._x-offset);node.setAttributeNS(null,"y",node._y-offset);if(nextSibling){parent.insertBefore(node,nextSibling);}else if(parent){parent.appendChild(node);}}else{node.setAttributeNS(null,"r",style.pointRadius*re [...]
+var rotation=style.rotation;if(rotation!==undefined||node._rotation!==undefined){node._rotation=rotation;rotation|=0;if(node.nodeName!=="svg"){node.setAttributeNS(null,"transform",["rotate(",rotation,node._x,node._y,")"].join(" "));}else{var metrics=this.symbolMetrics[src.id];node.firstChild.setAttributeNS(null,"transform",["rotate(",rotation,metrics.x,metrics.y,")"].join(" "));}}}
+if(options.isFilled){node.setAttributeNS(null,"fill",style.fillColor);node.setAttributeNS(null,"fill-opacity",style.fillOpacity);}else{node.setAttributeNS(null,"fill","none");}
+if(options.isStroked){node.setAttributeNS(null,"stroke",style.strokeColor);node.setAttributeNS(null,"stroke-opacity",style.strokeOpacity);node.setAttributeNS(null,"stroke-width",style.strokeWidth*widthFactor);node.setAttributeNS(null,"stroke-linecap",style.strokeLinecap||"round");node.setAttributeNS(null,"stroke-linejoin","round");style.strokeDashstyle&&node.setAttributeNS(null,"stroke-dasharray",this.dashStyle(style,widthFactor));}else{node.setAttributeNS(null,"stroke","none");}
+if(style.pointerEvents){node.setAttributeNS(null,"pointer-events",style.pointerEvents);}
+if(style.cursor!=null){node.setAttributeNS(null,"cursor",style.cursor);}
+return node;},dashStyle:function(style,widthFactor){var w=style.strokeWidth*widthFactor;var str=style.strokeDashstyle;switch(str){case'solid':return'none';case'dot':return[widthFactor,4*w].join();case'dash':return[4*w,4*w].join();case'dashdot':return[4*w,4*w,widthFactor,4*w].join();case'longdash':return[8*w,4*w].join();case'longdashdot':return[8*w,4*w,widthFactor,4*w].join();default:var parts=OpenLayers.String.trim(str).split(/\s+/g);for(var i=0,ii=parts.length;i<ii;i++){parts[i]=parts[i [...]
+return parts.join();}},createNode:function(type,id){var node=document.createElementNS(this.xmlns,type);if(id){node.setAttributeNS(null,"id",id);}
+return node;},nodeTypeCompare:function(node,type){return(type==node.nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_svgRoot","svg");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"g");},createDefs:function(){var defs=this.nodeFactory(this.container.id+"_defs","defs");this.rendererRoot.appendChild(defs);return defs;},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geome [...]
+d.push("z");node.setAttributeNS(null,"d",d.join(" "));node.setAttributeNS(null,"fill-rule","evenodd");return node;},drawRectangle:function(node,geometry){node.setAttributeNS(null,"x",geometry.x);node.setAttributeNS(null,"y",-geometry.y);node.setAttributeNS(null,"width",geometry.width);node.setAttributeNS(null,"height",geometry.height);return node;},drawSurface:function(node,geometry){var d=[];var draw=true;for(var i=0,len=geometry.components.length;i<len;i++){if((i%3)==0&&(i/3)==0){var c [...]
+d.push("Z");node.setAttributeNS(null,"d",d.join(" "));return node;},drawText:function(featureId,style,location){var g=OpenLayers.Renderer.NG.prototype.drawText.apply(this,arguments);var text=g.firstChild||this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_text","text");var res=this.getResolution();text.setAttributeNS(null,"x",location.x/res);text.setAttributeNS(null,"y",-location.y/res);g.setAttributeNS(null,"transform","scale("+res+")");if(style.fontColor){text.setAttributeNS(null,"fill" [...]
+if(style.fontOpacity){text.setAttributeNS(null,"opacity",style.fontOpacity);}
+if(style.fontFamily){text.setAttributeNS(null,"font-family",style.fontFamily);}
+if(style.fontSize){text.setAttributeNS(null,"font-size",style.fontSize);}
+if(style.fontWeight){text.setAttributeNS(null,"font-weight",style.fontWeight);}
+if(style.fontStyle){text.setAttributeNS(null,"font-style",style.fontStyle);}
+if(style.labelSelect===true){text.setAttributeNS(null,"pointer-events","visible");text._featureId=featureId;}else{text.setAttributeNS(null,"pointer-events","none");}
+var align=style.labelAlign||"cm";text.setAttributeNS(null,"text-anchor",OpenLayers.Renderer.SVG2.LABEL_ALIGN[align[0]]||"middle");if(OpenLayers.IS_GECKO===true){text.setAttributeNS(null,"dominant-baseline",OpenLayers.Renderer.SVG2.LABEL_ALIGN[align[1]]||"central");}
+var labelRows=style.label.split('\n');var numRows=labelRows.length;while(text.childNodes.length>numRows){text.removeChild(text.lastChild);}
+for(var i=0;i<numRows;i++){var tspan=text.childNodes[i]||this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_tspan_"+i,"tspan");if(style.labelSelect===true){tspan._featureId=featureId;}
+if(OpenLayers.IS_GECKO===false){tspan.setAttributeNS(null,"baseline-shift",OpenLayers.Renderer.SVG2.LABEL_VSHIFT[align[1]]||"-35%");}
+tspan.setAttribute("x",location.x/res);if(i==0){var vfactor=OpenLayers.Renderer.SVG2.LABEL_VFACTOR[align[1]];if(vfactor==null){vfactor=-.5;}
+tspan.setAttribute("dy",(vfactor*(numRows-1))+"em");}else{tspan.setAttribute("dy","1em");}
+tspan.textContent=(labelRows[i]==='')?' ':labelRows[i];if(!tspan.parentNode){text.appendChild(tspan);}}
+if(!text.parentNode){g.appendChild(text);}
+return g;},getComponentsString:function(components,separator){var len=components.length;var strings=new Array(len);for(var i=0;i<len;i++){strings[i]=this.getShortString(components[i]);}
+return strings.join(separator||",");},getShortString:function(point){return point.x+","+(-point.y);},importSymbol:function(graphicName){if(!this.defs){this.defs=this.createDefs();}
+var id=this.container.id+"-"+graphicName;var existing=document.getElementById(id);if(existing!=null){return existing;}
+var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');}
+var symbolNode=this.nodeFactory(id,"symbol");var node=this.nodeFactory(null,"polygon");symbolNode.appendChild(node);var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var points=[];var x,y;for(var i=0,len=symbol.length;i<len;i=i+2){x=symbol[i];y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);points.push [...]
+node.setAttributeNS(null,"points",points.join(" "));var width=symbolExtent.getWidth();var height=symbolExtent.getHeight();var viewBox=[symbolExtent.left-width,symbolExtent.bottom-height,width*3,height*3];symbolNode.setAttributeNS(null,"viewBox",viewBox.join(" "));this.symbolMetrics[id]={size:Math.max(width,height),x:symbolExtent.getCenterLonLat().lon,y:symbolExtent.getCenterLonLat().lat};this.defs.appendChild(symbolNode);return symbolNode;},getFeatureIdFromEvent:function(evt){var feature [...]
+return featureId;},CLASS_NAME:"OpenLayers.Renderer.SVG2"});OpenLayers.Renderer.SVG2.LABEL_ALIGN={"l":"start","r":"end","b":"bottom","t":"hanging"};OpenLayers.Renderer.SVG2.LABEL_VSHIFT={"t":"-70%","b":"0"};OpenLayers.Renderer.SVG2.LABEL_VFACTOR={"t":0,"b":-1};OpenLayers.Renderer.SVG2.preventDefault=function(e){e.preventDefault&&e.preventDefault();};OpenLayers.Kinetic=OpenLayers.Class({threshold:0,interval:10,deceleration:0.0035,nbPoints:100,delay:200,points:undefined,timerId:undefined,in [...]
+last=point;}
+if(!last){return;}
+var time=new Date().getTime()-last.tick;var dist=Math.sqrt(Math.pow(xy.x-last.xy.x,2)+
+Math.pow(xy.y-last.xy.y,2));var speed=dist/time;if(speed==0||speed<this.threshold){return;}
+var theta=Math.asin((xy.y-last.xy.y)/dist);if(last.xy.x<=xy.x){theta=Math.PI-theta;}
+return{speed:speed,theta:theta};},move:function(info,callback){var v0=info.speed;var fx=Math.cos(info.theta);var fy=-Math.sin(info.theta);var time=0;var initialTime=new Date().getTime();var lastX=0;var lastY=0;var timerCallback=function(){if(this.timerId==null){return;}
+time+=this.interval;var realTime=new Date().getTime()-initialTime;var t=(time+realTime)/2.0;var p=(-this.deceleration*Math.pow(t,2))/2.0+v0*t;var x=p*fx;var y=p*fy;var args={};args.end=false;var v=-this.deceleration*t+v0;if(v<=0){clearInterval(this.timerId);this.timerId=null;args.end=true;}
+args.x=x-lastX;args.y=y-lastY;lastX=x;lastY=y;callback(args.x,args.y,args.end);};this.timerId=window.setInterval(OpenLayers.Function.bind(timerCallback,this),this.interval);},CLASS_NAME:"OpenLayers.Kinetic"});OpenLayers.ProxyHost="";OpenLayers.nullHandler=function(request){OpenLayers.Console.userError(OpenLayers.i18n("unhandledRequest",{'statusText':request.statusText}));};OpenLayers.loadURL=function(uri,params,caller,onComplete,onFailure){if(typeof params=='string'){params=OpenLayers.Ut [...]
+var success=(onComplete)?onComplete:OpenLayers.nullHandler;var failure=(onFailure)?onFailure:OpenLayers.nullHandler;return OpenLayers.Request.GET({url:uri,params:params,success:success,failure:failure,scope:caller});};OpenLayers.parseXMLString=function(text){var index=text.indexOf('<');if(index>0){text=text.substring(index);}
+var ajaxResponse=OpenLayers.Util.Try(function(){var xmldom=new ActiveXObject('Microsoft.XMLDOM');xmldom.loadXML(text);return xmldom;},function(){return new DOMParser().parseFromString(text,'text/xml');},function(){var req=new XMLHttpRequest();req.open("GET","data:"+"text/xml"+";charset=utf-8,"+encodeURIComponent(text),false);if(req.overrideMimeType){req.overrideMimeType("text/xml");}
+req.send(null);return req.responseXML;});return ajaxResponse;};OpenLayers.Ajax={emptyFunction:function(){},getTransport:function(){return OpenLayers.Util.Try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject('Msxml2.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP');})||false;},activeRequestCount:0};OpenLayers.Ajax.Responders={responders:[],register:function(responderToAdd){for(var i=0;i<this.responders.length;i++){if(responderToAdd==this.resp [...]
+this.responders.push(responderToAdd);},unregister:function(responderToRemove){OpenLayers.Util.removeItem(this.reponders,responderToRemove);},dispatch:function(callback,request,transport){var responder;for(var i=0;i<this.responders.length;i++){responder=this.responders[i];if(responder[callback]&&typeof responder[callback]=='function'){try{responder[callback].apply(responder,[request,transport]);}catch(e){}}}}};OpenLayers.Ajax.Responders.register({onCreate:function(){OpenLayers.Ajax.active [...]
+this.transport=OpenLayers.Ajax.getTransport();this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var params=OpenLayers.Util.extend({},this.options.parameters);if(this.method!='get'&&this.method!='post'){params['_method']=this.method;this.method='post';}
+this.parameters=params;if(params=OpenLayers.Util.getParameterString(params)){if(this.method=='get'){this.url+=((this.url.indexOf('?')>-1)?'&':'?')+params;}else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){params+='&_=';}}
+try{var response=new OpenLayers.Ajax.Response(this);if(this.options.onCreate){this.options.onCreate(response);}
+OpenLayers.Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous){window.setTimeout(OpenLayers.Function.bind(this.respondToReadyState,this,1),10);}
+this.transport.onreadystatechange=OpenLayers.Function.bind(this.onStateChange,this);this.setRequestHeaders();this.body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType){this.onStateChange();}}catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete)){this.respondToReadyState(this.transport.r [...]
+(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){headers['Connection']='close';}}
+if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(typeof extras.push=='function'){for(var i=0,length=extras.length;i<length;i+=2){headers[extras[i]]=extras[i+1];}}else{for(var i in extras){headers[i]=extras[i];}}}
+for(var name in headers){this.transport.setRequestHeader(name,headers[name]);}},success:function(){var status=this.getStatus();return!status||(status>=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0;}},respondToReadyState:function(readyState){var state=OpenLayers.Ajax.Request.Events[readyState];var response=new OpenLayers.Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+ [...]
+var contentType=response.getHeader('Content-type');}
+try{(this.options['on'+state]||OpenLayers.Ajax.emptyFunction)(response);OpenLayers.Ajax.Responders.dispatch('on'+state,this,response);}catch(e){this.dispatchException(e);}
+if(state=='Complete'){this.transport.onreadystatechange=OpenLayers.Ajax.emptyFunction;}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null;}},dispatchException:function(exception){var handler=this.options.onException;if(handler){handler(this,exception);OpenLayers.Ajax.Responders.dispatch('onException',this,exception);}else{var listener=false;var responders=OpenLayers.Ajax.Responders.responders;for(var i=0;i<responders.length;i++){if(responde [...]
+if(listener){OpenLayers.Ajax.Responders.dispatch('onException',this,exception);}else{throw exception;}}}});OpenLayers.Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];OpenLayers.Ajax.Response=OpenLayers.Class({status:0,statusText:'',initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!(!!(window.attachEvent&&!window.opera)))||readyState==4){this. [...]
+if(readyState==4){var xml=transport.responseXML;this.responseXML=xml===undefined?null:xml;}},getStatus:OpenLayers.Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return'';}},getHeader:OpenLayers.Ajax.Request.prototype.getHeader,getResponseHeader:function(name){return this.transport.getResponseHeader(name);}});OpenLayers.Ajax.getElementsByTagNameNS=function(parentnode,nsuri,nsprefix,tagname){var elem=null;if(parentnode.getElemen [...]
+return elem;};OpenLayers.Ajax.serializeXMLToString=function(xmldom){var serializer=new XMLSerializer();var data=serializer.serializeToString(xmldom);return data;};OpenLayers.Layer.GeoRSS=OpenLayers.Class(OpenLayers.Layer.Markers,{location:null,features:null,formatOptions:null,selectedFeature:null,icon:null,popupSize:null,useFeedTitle:true,initialize:function(name,location,options){OpenLayers.Layer.Markers.prototype.initialize.apply(this,[name,options]);this.location=location;this.feature [...]
+if(this.useFeedTitle){var name=null;try{name=doc.getElementsByTagNameNS('*','title')[0].firstChild.nodeValue;}
+catch(e){name=doc.getElementsByTagName('title')[0].firstChild.nodeValue;}
+if(name){this.setName(name);}}
+var options={};OpenLayers.Util.extend(options,this.formatOptions);if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectionObject();}
+var format=new OpenLayers.Format.GeoRSS(options);var features=format.read(doc);for(var i=0,len=features.length;i<len;i++){var data={};var feature=features[i];if(!feature.geometry){continue;}
+var title=feature.attributes.title?feature.attributes.title:"Untitled";var description=feature.attributes.description?feature.attributes.description:"No description.";var link=feature.attributes.link?feature.attributes.link:"";var location=feature.geometry.getBounds().getCenterLonLat();data.icon=this.icon==null?OpenLayers.Marker.defaultIcon():this.icon.clone();data.popupSize=this.popupSize?this.popupSize.clone():new OpenLayers.Size(250,120);if(title||description){data.title=title;data.de [...]
+contentHTML+=title;if(link){contentHTML+='</a>';}
+contentHTML+='</div>';contentHTML+='<div style="" class="olLayerGeoRSSDescription">';contentHTML+=description;contentHTML+='</div>';data['popupContentHTML']=contentHTML;}
+var feature=new OpenLayers.Feature(this,location,data);this.features.push(feature);var marker=feature.createMarker();marker.events.register('click',feature,this.markerClick);this.addMarker(marker);}
+this.events.triggerEvent("loadend");},markerClick:function(evt){var sameMarkerClicked=(this==this.layer.selectedFeature);this.layer.selectedFeature=(!sameMarkerClicked)?this:null;for(var i=0,len=this.layer.map.popups.length;i<len;i++){this.layer.map.removePopup(this.layer.map.popups[i]);}
+if(!sameMarkerClicked){var popup=this.createPopup();OpenLayers.Event.observe(popup.div,"click",OpenLayers.Function.bind(function(){for(var i=0,len=this.layer.map.popups.length;i<len;i++){this.layer.map.removePopup(this.layer.map.popups[i]);}},this));this.layer.map.addPopup(popup);}
+OpenLayers.Event.stop(evt);},clearFeatures:function(){if(this.features!=null){while(this.features.length>0){var feature=this.features[0];OpenLayers.Util.removeItem(this.features,feature);feature.destroy();}}},CLASS_NAME:"OpenLayers.Layer.GeoRSS"});OpenLayers.Format.SLD.v1=OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0,{namespaces:{sld:"http://www.opengis.net/sld",ogc:"http://www.opengis.net/ogc",gml:"http://www.opengis.net/gml",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.or [...]
+if(OpenLayers.Util.isArray(sld.namedLayers)){sld.namedLayers.push(layer);}else{sld.namedLayers[layer.name]=layer;}},"NamedStyle":function(node,layer){layer.namedStyles.push(this.getChildName(node.firstChild));},"UserStyle":function(node,layer){var obj={defaultsPerSymbolizer:true,rules:[]};this.featureTypeCounter=-1;this.readChildNodes(node,obj);var style;if(this.multipleSymbolizers){delete obj.defaultsPerSymbolizer;style=new OpenLayers.Style2(obj);}else{style=new OpenLayers.Style(this.de [...]
+layer.userStyles.push(style);},"IsDefault":function(node,style){if(this.getChildValue(node)=="1"){style.isDefault=true;}},"FeatureTypeStyle":function(node,style){++this.featureTypeCounter;var obj={rules:this.multipleSymbolizers?style.rules:[]};this.readChildNodes(node,obj);if(!this.multipleSymbolizers){style.rules=obj.rules;}},"Rule":function(node,obj){var config;if(this.multipleSymbolizers){config={symbolizers:[]};}
+var rule=new OpenLayers.Rule(config);this.readChildNodes(node,rule);obj.rules.push(rule);},"ElseFilter":function(node,rule){rule.elseFilter=true;},"MinScaleDenominator":function(node,rule){rule.minScaleDenominator=parseFloat(this.getChildValue(node));},"MaxScaleDenominator":function(node,rule){rule.maxScaleDenominator=parseFloat(this.getChildValue(node));},"TextSymbolizer":function(node,rule){var config={};this.readChildNodes(node,config);if(this.multipleSymbolizers){config.zIndex=this.f [...]
+this.readChildNodes(node,config);if(this.multipleSymbolizers){config.zIndex=this.featureTypeCounter;rule.symbolizers.push(new OpenLayers.Symbolizer.Polygon(config));}else{rule.symbolizer["Polygon"]=config;}},"PointSymbolizer":function(node,rule){var config={fill:false,stroke:false,graphic:false};if(!this.multipleSymbolizers){config=rule.symbolizer["Point"]||config;}
+this.readChildNodes(node,config);if(this.multipleSymbolizers){config.zIndex=this.featureTypeCounter;rule.symbolizers.push(new OpenLayers.Symbolizer.Point(config));}else{rule.symbolizer["Point"]=config;}},"Stroke":function(node,symbolizer){symbolizer.stroke=true;this.readChildNodes(node,symbolizer);},"Fill":function(node,symbolizer){symbolizer.fill=true;this.readChildNodes(node,symbolizer);},"CssParameter":function(node,symbolizer){var cssProperty=node.getAttribute("name");var symProperty [...]
+if(graphic.opacity!=undefined){symbolizer.graphicOpacity=graphic.opacity;}
+if(graphic.size!=undefined){symbolizer.pointRadius=graphic.size/2;}
+if(graphic.href!=undefined){symbolizer.externalGraphic=graphic.href;}
+if(graphic.rotation!=undefined){symbolizer.rotation=graphic.rotation;}},"ExternalGraphic":function(node,graphic){this.readChildNodes(node,graphic);},"Mark":function(node,graphic){this.readChildNodes(node,graphic);},"WellKnownName":function(node,graphic){graphic.graphicName=this.getChildValue(node);},"Opacity":function(node,obj){var opacity=this.readOgcExpression(node);if(opacity){obj.opacity=opacity;}},"Size":function(node,obj){var size=this.readOgcExpression(node);if(size){obj.size=size [...]
+return css;},getGraphicFormat:function(href){var format,regex;for(var key in this.graphicFormats){if(this.graphicFormats[key].test(href)){format=key;break;}}
+return format||this.defautlGraphicFormat;},defaultGraphicFormat:"image/png",graphicFormats:{"image/jpeg":/\.jpe?g$/i,"image/gif":/\.gif$/i,"image/png":/\.png$/i},write:function(sld){return this.writers.sld.StyledLayerDescriptor.apply(this,[sld]);},writers:OpenLayers.Util.applyDefaults({"sld":{"StyledLayerDescriptor":function(sld){var root=this.createElementNSPlus("sld:StyledLayerDescriptor",{attributes:{"version":this.VERSION,"xsi:schemaLocation":this.schemaLocation}});root.setAttribute( [...]
+if(sld.title){this.writeNode("Title",sld.title,root);}
+if(sld.description){this.writeNode("Abstract",sld.description,root);}
+if(OpenLayers.Util.isArray(sld.namedLayers)){for(var i=0,len=sld.namedLayers.length;i<len;++i){this.writeNode("NamedLayer",sld.namedLayers[i],root);}}else{for(var name in sld.namedLayers){this.writeNode("NamedLayer",sld.namedLayers[name],root);}}
+return root;},"Name":function(name){return this.createElementNSPlus("sld:Name",{value:name});},"Title":function(title){return this.createElementNSPlus("sld:Title",{value:title});},"Abstract":function(description){return this.createElementNSPlus("sld:Abstract",{value:description});},"NamedLayer":function(layer){var node=this.createElementNSPlus("sld:NamedLayer");this.writeNode("Name",layer.name,node);if(layer.namedStyles){for(var i=0,len=layer.namedStyles.length;i<len;++i){this.writeNode( [...]
+if(layer.userStyles){for(var i=0,len=layer.userStyles.length;i<len;++i){this.writeNode("UserStyle",layer.userStyles[i],node);}}
+return node;},"NamedStyle":function(name){var node=this.createElementNSPlus("sld:NamedStyle");this.writeNode("Name",name,node);return node;},"UserStyle":function(style){var node=this.createElementNSPlus("sld:UserStyle");if(style.name){this.writeNode("Name",style.name,node);}
+if(style.title){this.writeNode("Title",style.title,node);}
+if(style.description){this.writeNode("Abstract",style.description,node);}
+if(style.isDefault){this.writeNode("IsDefault",style.isDefault,node);}
+if(this.multipleSymbolizers&&style.rules){var rulesByZ={0:[]};var zValues=[0];var rule,ruleMap,symbolizer,zIndex,clone;for(var i=0,ii=style.rules.length;i<ii;++i){rule=style.rules[i];if(rule.symbolizers){ruleMap={};for(var j=0,jj=rule.symbolizers.length;j<jj;++j){symbolizer=rule.symbolizers[j];zIndex=symbolizer.zIndex;if(!(zIndex in ruleMap)){clone=rule.clone();clone.symbolizers=[];ruleMap[zIndex]=clone;}
+ruleMap[zIndex].symbolizers.push(symbolizer.clone());}
+for(zIndex in ruleMap){if(!(zIndex in rulesByZ)){zValues.push(zIndex);rulesByZ[zIndex]=[];}
+rulesByZ[zIndex].push(ruleMap[zIndex]);}}else{rulesByZ[0].push(rule.clone());}}
+zValues.sort();var rules;for(var i=0,ii=zValues.length;i<ii;++i){rules=rulesByZ[zValues[i]];if(rules.length>0){clone=style.clone();clone.rules=rulesByZ[zValues[i]];this.writeNode("FeatureTypeStyle",clone,node);}}}else{this.writeNode("FeatureTypeStyle",style,node);}
+return node;},"IsDefault":function(bool){return this.createElementNSPlus("sld:IsDefault",{value:(bool)?"1":"0"});},"FeatureTypeStyle":function(style){var node=this.createElementNSPlus("sld:FeatureTypeStyle");for(var i=0,len=style.rules.length;i<len;++i){this.writeNode("Rule",style.rules[i],node);}
+return node;},"Rule":function(rule){var node=this.createElementNSPlus("sld:Rule");if(rule.name){this.writeNode("Name",rule.name,node);}
+if(rule.title){this.writeNode("Title",rule.title,node);}
+if(rule.description){this.writeNode("Abstract",rule.description,node);}
+if(rule.elseFilter){this.writeNode("ElseFilter",null,node);}else if(rule.filter){this.writeNode("ogc:Filter",rule.filter,node);}
+if(rule.minScaleDenominator!=undefined){this.writeNode("MinScaleDenominator",rule.minScaleDenominator,node);}
+if(rule.maxScaleDenominator!=undefined){this.writeNode("MaxScaleDenominator",rule.maxScaleDenominator,node);}
+var type,symbolizer;if(this.multipleSymbolizers&&rule.symbolizers){var symbolizer;for(var i=0,ii=rule.symbolizers.length;i<ii;++i){symbolizer=rule.symbolizers[i];type=symbolizer.CLASS_NAME.split(".").pop();this.writeNode(type+"Symbolizer",symbolizer,node);}}else{var types=OpenLayers.Style.SYMBOLIZER_PREFIXES;for(var i=0,len=types.length;i<len;++i){type=types[i];symbolizer=rule.symbolizer[type];if(symbolizer){this.writeNode(type+"Symbolizer",symbolizer,node);}}}
+return node;},"ElseFilter":function(){return this.createElementNSPlus("sld:ElseFilter");},"MinScaleDenominator":function(scale){return this.createElementNSPlus("sld:MinScaleDenominator",{value:scale});},"MaxScaleDenominator":function(scale){return this.createElementNSPlus("sld:MaxScaleDenominator",{value:scale});},"LineSymbolizer":function(symbolizer){var node=this.createElementNSPlus("sld:LineSymbolizer");this.writeNode("Stroke",symbolizer,node);return node;},"Stroke":function(symbolize [...]
+if(symbolizer.strokeOpacity!=undefined){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"strokeOpacity"},node);}
+if(symbolizer.strokeWidth!=undefined){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"strokeWidth"},node);}
+if(symbolizer.strokeDashstyle!=undefined&&symbolizer.strokeDashstyle!=="solid"){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"strokeDashstyle"},node);}
+if(symbolizer.strokeLinecap!=undefined){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"strokeLinecap"},node);}
+return node;},"CssParameter":function(obj){return this.createElementNSPlus("sld:CssParameter",{attributes:{name:this.getCssProperty(obj.key)},value:obj.symbolizer[obj.key]});},"TextSymbolizer":function(symbolizer){var node=this.createElementNSPlus("sld:TextSymbolizer");if(symbolizer.label!=null){this.writeNode("Label",symbolizer.label,node);}
+if(symbolizer.fontFamily!=null||symbolizer.fontSize!=null||symbolizer.fontWeight!=null||symbolizer.fontStyle!=null){this.writeNode("Font",symbolizer,node);}
+if(symbolizer.haloRadius!=null||symbolizer.haloColor!=null||symbolizer.haloOpacity!=null){this.writeNode("Halo",symbolizer,node);}
+if(symbolizer.fillColor!=null||symbolizer.fillOpacity!=null){this.writeNode("Fill",symbolizer,node);}
+return node;},"Font":function(symbolizer){var node=this.createElementNSPlus("sld:Font");if(symbolizer.fontFamily){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"fontFamily"},node);}
+if(symbolizer.fontSize){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"fontSize"},node);}
+if(symbolizer.fontWeight){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"fontWeight"},node);}
+if(symbolizer.fontStyle){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"fontStyle"},node);}
+return node;},"Label":function(label){var node=this.createElementNSPlus("sld:Label");var tokens=label.split("${");node.appendChild(this.createTextNode(tokens[0]));var item,last;for(var i=1,len=tokens.length;i<len;i++){item=tokens[i];last=item.indexOf("}");if(last>0){this.writeNode("ogc:PropertyName",{property:item.substring(0,last)},node);node.appendChild(this.createTextNode(item.substring(++last)));}else{node.appendChild(this.createTextNode("${"+item));}}
+return node;},"Halo":function(symbolizer){var node=this.createElementNSPlus("sld:Halo");if(symbolizer.haloRadius){this.writeNode("Radius",symbolizer.haloRadius,node);}
+if(symbolizer.haloColor||symbolizer.haloOpacity){this.writeNode("Fill",{fillColor:symbolizer.haloColor,fillOpacity:symbolizer.haloOpacity},node);}
+return node;},"Radius":function(value){return this.createElementNSPlus("sld:Radius",{value:value});},"RasterSymbolizer":function(symbolizer){var node=this.createElementNSPlus("sld:RasterSymbolizer");if(symbolizer.geometry){this.writeNode("Geometry",symbolizer.geometry,node);}
+if(symbolizer.opacity){this.writeNode("Opacity",symbolizer.opacity,node);}
+if(symbolizer.colorMap){this.writeNode("ColorMap",symbolizer.colorMap,node);}
+return node;},"Geometry":function(geometry){var node=this.createElementNSPlus("sld:Geometry");if(geometry.property){this.writeNode("ogc:PropertyName",geometry,node);}
+return node;},"ColorMap":function(colorMap){var node=this.createElementNSPlus("sld:ColorMap");for(var i=0,len=colorMap.length;i<len;++i){this.writeNode("ColorMapEntry",colorMap[i],node);}
+return node;},"ColorMapEntry":function(colorMapEntry){var node=this.createElementNSPlus("sld:ColorMapEntry");var a=colorMapEntry;node.setAttribute("color",a.color);a.opacity!==undefined&&node.setAttribute("opacity",parseFloat(a.opacity));a.quantity!==undefined&&node.setAttribute("quantity",parseFloat(a.quantity));a.label!==undefined&&node.setAttribute("label",a.label);return node;},"PolygonSymbolizer":function(symbolizer){var node=this.createElementNSPlus("sld:PolygonSymbolizer");if(symb [...]
+if(symbolizer.stroke!==false){this.writeNode("Stroke",symbolizer,node);}
+return node;},"Fill":function(symbolizer){var node=this.createElementNSPlus("sld:Fill");if(symbolizer.fillColor){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"fillColor"},node);}
+if(symbolizer.fillOpacity!=null){this.writeNode("CssParameter",{symbolizer:symbolizer,key:"fillOpacity"},node);}
+return node;},"PointSymbolizer":function(symbolizer){var node=this.createElementNSPlus("sld:PointSymbolizer");this.writeNode("Graphic",symbolizer,node);return node;},"Graphic":function(symbolizer){var node=this.createElementNSPlus("sld:Graphic");if(symbolizer.externalGraphic!=undefined){this.writeNode("ExternalGraphic",symbolizer,node);}else{this.writeNode("Mark",symbolizer,node);}
+if(symbolizer.graphicOpacity!=undefined){this.writeNode("Opacity",symbolizer.graphicOpacity,node);}
+if(symbolizer.pointRadius!=undefined){this.writeNode("Size",symbolizer.pointRadius*2,node);}
+if(symbolizer.rotation!=undefined){this.writeNode("Rotation",symbolizer.rotation,node);}
+return node;},"ExternalGraphic":function(symbolizer){var node=this.createElementNSPlus("sld:ExternalGraphic");this.writeNode("OnlineResource",symbolizer.externalGraphic,node);var format=symbolizer.graphicFormat||this.getGraphicFormat(symbolizer.externalGraphic);this.writeNode("Format",format,node);return node;},"Mark":function(symbolizer){var node=this.createElementNSPlus("sld:Mark");if(symbolizer.graphicName){this.writeNode("WellKnownName",symbolizer.graphicName,node);}
+if(symbolizer.fill!==false){this.writeNode("Fill",symbolizer,node);}
+if(symbolizer.stroke!==false){this.writeNode("Stroke",symbolizer,node);}
+return node;},"WellKnownName":function(name){return this.createElementNSPlus("sld:WellKnownName",{value:name});},"Opacity":function(value){return this.createElementNSPlus("sld:Opacity",{value:value});},"Size":function(value){return this.createElementNSPlus("sld:Size",{value:value});},"Rotation":function(value){return this.createElementNSPlus("sld:Rotation",{value:value});},"OnlineResource":function(href){return this.createElementNSPlus("sld:OnlineResource",{attributes:{"xlink:type":"simp [...]
+layerContext.srs[this.getChildValue(node)]=true;},write_wmc_Layer:function(context){var node=OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(this,[context]);if(context.maxScale){var minSD=this.createElementNS(this.namespaces.sld,"sld:MinScaleDenominator");minSD.appendChild(this.createTextNode(context.maxScale.toPrecision(16)));node.appendChild(minSD);}
+if(context.minScale){var maxSD=this.createElementNS(this.namespaces.sld,"sld:MaxScaleDenominator");maxSD.appendChild(this.createTextNode(context.minScale.toPrecision(16)));node.appendChild(maxSD);}
+if(context.srs){for(var name in context.srs){node.appendChild(this.createElementDefaultNS("SRS",name));}}
+node.appendChild(this.write_wmc_FormatList(context));node.appendChild(this.write_wmc_StyleList(context));if(context.dimensions){node.appendChild(this.write_wmc_DimensionList(context));}
+node.appendChild(this.write_wmc_LayerExtension(context));return node;},CLASS_NAME:"OpenLayers.Format.WMC.v1_1_0"});OpenLayers.Format.XLS.v1_1_0=OpenLayers.Class(OpenLayers.Format.XLS.v1,{VERSION:"1.1",schemaLocation:"http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd",initialize:function(options){OpenLayers.Format.XLS.v1.prototype.initialize.apply(this,[options]);},CLASS_NAME:"OpenLayers.Format.XLS.v1_1_0"});OpenLayers.Format.XLS.v1_1=OpenLayers.Fo [...]
+OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);this.translationParameters={x:0,y:0};this.symbolMetrics={};},supported:function(){var svgFeature="http://www.w3.org/TR/SVG11/feature#";return(document.implementation&&(document.implementation.hasFeature("org.w3c.svg","1.0")||document.implementation.hasFeature(svgFeature+"SVG","1.1")||document.implementation.hasFeature(svgFeature+"BasicStructure","1.1")));},inValidRange:function(x,y,xyOnly){var left=x+(xyOnly?0:this.t [...]
+return inRange;}},translate:function(x,y){if(!this.inValidRange(x,y,true)){return false;}else{var transformString="";if(x||y){transformString="translate("+x+","+y+")";}
+this.root.setAttributeNS(null,"transform",transformString);this.translationParameters={x:x,y:y};return true;}},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);this.rendererRoot.setAttributeNS(null,"width",this.size.w);this.rendererRoot.setAttributeNS(null,"height",this.size.h);},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="image";}else if(this.isCom [...]
+break;case"OpenLayers.Geometry.Rectangle":nodeType="rect";break;case"OpenLayers.Geometry.LineString":nodeType="polyline";break;case"OpenLayers.Geometry.LinearRing":nodeType="polygon";break;case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="path";break;default:break;}
+return nodeType;},setStyle:function(node,style,options){style=style||node._style;options=options||node._options;var r=parseFloat(node.getAttributeNS(null,"r"));var widthFactor=1;var pos;if(node._geometryClass=="OpenLayers.Geometry.Point"&&r){node.style.visibility="";if(style.graphic===false){node.style.visibility="hidden";}else if(style.externalGraphic){pos=this.getPosition(node);if(style.graphicTitle){node.setAttributeNS(null,"title",style.graphicTitle);var label=this.nodeFactory(null," [...]
+if(style.graphicWidth&&style.graphicHeight){node.setAttributeNS(null,"preserveAspectRatio","none");}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;node.setAttributeNS(null,"x",(pos.x+xOffset).toFixed());node.setAttributeNS(null,"y",(pos.y+yOffset [...]
+node.firstChild&&node.removeChild(node.firstChild);node.appendChild(src.firstChild.cloneNode(true));node.setAttributeNS(null,"viewBox",src.getAttributeNS(null,"viewBox"));node.setAttributeNS(null,"width",size);node.setAttributeNS(null,"height",size);node.setAttributeNS(null,"x",pos.x-offset);node.setAttributeNS(null,"y",pos.y-offset);if(nextSibling){parent.insertBefore(node,nextSibling);}else if(parent){parent.appendChild(node);}}else{node.setAttributeNS(null,"r",style.pointRadius);}
+var rotation=style.rotation;if((rotation!==undefined||node._rotation!==undefined)&&pos){node._rotation=rotation;rotation|=0;if(node.nodeName!=="svg"){node.setAttributeNS(null,"transform","rotate("+rotation+" "+pos.x+" "+
+pos.y+")");}else{var metrics=this.symbolMetrics[src.id];node.firstChild.setAttributeNS(null,"transform","rotate("
++rotation+" "
++metrics[1]+" "
++metrics[2]+")");}}}
+if(options.isFilled){node.setAttributeNS(null,"fill",style.fillColor);node.setAttributeNS(null,"fill-opacity",style.fillOpacity);}else{node.setAttributeNS(null,"fill","none");}
+if(options.isStroked){node.setAttributeNS(null,"stroke",style.strokeColor);node.setAttributeNS(null,"stroke-opacity",style.strokeOpacity);node.setAttributeNS(null,"stroke-width",style.strokeWidth*widthFactor);node.setAttributeNS(null,"stroke-linecap",style.strokeLinecap||"round");node.setAttributeNS(null,"stroke-linejoin","round");style.strokeDashstyle&&node.setAttributeNS(null,"stroke-dasharray",this.dashStyle(style,widthFactor));}else{node.setAttributeNS(null,"stroke","none");}
+if(style.pointerEvents){node.setAttributeNS(null,"pointer-events",style.pointerEvents);}
+if(style.cursor!=null){node.setAttributeNS(null,"cursor",style.cursor);}
+return node;},dashStyle:function(style,widthFactor){var w=style.strokeWidth*widthFactor;var str=style.strokeDashstyle;switch(str){case'solid':return'none';case'dot':return[1,4*w].join();case'dash':return[4*w,4*w].join();case'dashdot':return[4*w,4*w,1,4*w].join();case'longdash':return[8*w,4*w].join();case'longdashdot':return[8*w,4*w,1,4*w].join();default:return OpenLayers.String.trim(str).replace(/\s+/g,",");}},createNode:function(type,id){var node=document.createElementNS(this.xmlns,type [...]
+return node;},nodeTypeCompare:function(node,type){return(type==node.nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_svgRoot","svg");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"g");},createDefs:function(){var defs=this.nodeFactory(this.container.id+"_defs","defs");this.rendererRoot.appendChild(defs);return defs;},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geome [...]
+d+=" z";if(draw){node.setAttributeNS(null,"d",d);node.setAttributeNS(null,"fill-rule","evenodd");return complete?node:null;}else{return false;}},drawRectangle:function(node,geometry){var resolution=this.getResolution();var x=(geometry.x/resolution+this.left);var y=(this.top-geometry.y/resolution);if(this.inValidRange(x,y)){node.setAttributeNS(null,"x",x);node.setAttributeNS(null,"y",y);node.setAttributeNS(null,"width",geometry.width/resolution);node.setAttributeNS(null,"height",geometry. [...]
+d="M "+component;}else if((i%3)==1){var component=this.getShortString(geometry.components[i]);if(!component){draw=false;}
+d+=" C "+component;}else{var component=this.getShortString(geometry.components[i]);if(!component){draw=false;}
+d+=" "+component;}}
+d+=" Z";if(draw){node.setAttributeNS(null,"d",d);return node;}else{return false;}},drawText:function(featureId,style,location){var resolution=this.getResolution();var x=(location.x/resolution+this.left);var y=(location.y/resolution-this.top);var label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,"text");label.setAttributeNS(null,"x",x);label.setAttributeNS(null,"y",-y);if(style.fontColor){label.setAttributeNS(null,"fill",style.fontColor);}
+if(style.fontOpacity){label.setAttributeNS(null,"opacity",style.fontOpacity);}
+if(style.fontFamily){label.setAttributeNS(null,"font-family",style.fontFamily);}
+if(style.fontSize){label.setAttributeNS(null,"font-size",style.fontSize);}
+if(style.fontWeight){label.setAttributeNS(null,"font-weight",style.fontWeight);}
+if(style.fontStyle){label.setAttributeNS(null,"font-style",style.fontStyle);}
+if(style.labelSelect===true){label.setAttributeNS(null,"pointer-events","visible");label._featureId=featureId;}else{label.setAttributeNS(null,"pointer-events","none");}
+var align=style.labelAlign||"cm";label.setAttributeNS(null,"text-anchor",OpenLayers.Renderer.SVG.LABEL_ALIGN[align[0]]||"middle");if(OpenLayers.IS_GECKO===true){label.setAttributeNS(null,"dominant-baseline",OpenLayers.Renderer.SVG.LABEL_ALIGN[align[1]]||"central");}
+var labelRows=style.label.split('\n');var numRows=labelRows.length;while(label.childNodes.length>numRows){label.removeChild(label.lastChild);}
+for(var i=0;i<numRows;i++){var tspan=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_tspan_"+i,"tspan");if(style.labelSelect===true){tspan._featureId=featureId;tspan._geometry=location;tspan._geometryClass=location.CLASS_NAME;}
+if(OpenLayers.IS_GECKO===false){tspan.setAttributeNS(null,"baseline-shift",OpenLayers.Renderer.SVG.LABEL_VSHIFT[align[1]]||"-35%");}
+tspan.setAttribute("x",x);if(i==0){var vfactor=OpenLayers.Renderer.SVG.LABEL_VFACTOR[align[1]];if(vfactor==null){vfactor=-.5;}
+tspan.setAttribute("dy",(vfactor*(numRows-1))+"em");}else{tspan.setAttribute("dy","1em");}
+tspan.textContent=(labelRows[i]==='')?' ':labelRows[i];if(!tspan.parentNode){label.appendChild(tspan);}}
+if(!label.parentNode){this.textRoot.appendChild(label);}},getComponentsString:function(components,separator){var renderCmp=[];var complete=true;var len=components.length;var strings=[];var str,component;for(var i=0;i<len;i++){component=components[i];renderCmp.push(component);str=this.getShortString(component);if(str){strings.push(str);}else{if(i>0){if(this.getShortString(components[i-1])){strings.push(this.clipLine(components[i],components[i-1]));}}
+if(i<len-1){if(this.getShortString(components[i+1])){strings.push(this.clipLine(components[i],components[i+1]));}}
+complete=false;}}
+return{path:strings.join(separator||","),complete:complete};},clipLine:function(badComponent,goodComponent){if(goodComponent.equals(badComponent)){return"";}
+var resolution=this.getResolution();var maxX=this.MAX_PIXEL-this.translationParameters.x;var maxY=this.MAX_PIXEL-this.translationParameters.y;var x1=goodComponent.x/resolution+this.left;var y1=this.top-goodComponent.y/resolution;var x2=badComponent.x/resolution+this.left;var y2=this.top-badComponent.y/resolution;var k;if(x2<-maxX||x2>maxX){k=(y2-y1)/(x2-x1);x2=x2<0?-maxX:maxX;y2=y1+(x2-x1)*k;}
+if(y2<-maxY||y2>maxY){k=(x2-x1)/(y2-y1);y2=y2<0?-maxY:maxY;x2=x1+(y2-y1)*k;}
+return x2+","+y2;},getShortString:function(point){var resolution=this.getResolution();var x=(point.x/resolution+this.left);var y=(this.top-point.y/resolution);if(this.inValidRange(x,y)){return x+","+y;}else{return false;}},getPosition:function(node){return({x:parseFloat(node.getAttributeNS(null,"cx")),y:parseFloat(node.getAttributeNS(null,"cy"))});},importSymbol:function(graphicName){if(!this.defs){this.defs=this.createDefs();}
+var id=this.container.id+"-"+graphicName;var existing=document.getElementById(id)
+if(existing!=null){return existing;}
+var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');}
+var symbolNode=this.nodeFactory(id,"symbol");var node=this.nodeFactory(null,"polygon");symbolNode.appendChild(node);var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var points=[];var x,y;for(var i=0;i<symbol.length;i=i+2){x=symbol[i];y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);points.push(x,",",y);}
+node.setAttributeNS(null,"points",points.join(" "));var width=symbolExtent.getWidth();var height=symbolExtent.getHeight();var viewBox=[symbolExtent.left-width,symbolExtent.bottom-height,width*3,height*3];symbolNode.setAttributeNS(null,"viewBox",viewBox.join(" "));this.symbolMetrics[id]=[Math.max(width,height),symbolExtent.getCenterLonLat().lon,symbolExtent.getCenterLonLat().lat];this.defs.appendChild(symbolNode);return symbolNode;},getFeatureIdFromEvent:function(evt){var featureId=OpenLa [...]
+return featureId;},CLASS_NAME:"OpenLayers.Renderer.SVG"});OpenLayers.Renderer.SVG.LABEL_ALIGN={"l":"start","r":"end","b":"bottom","t":"hanging"};OpenLayers.Renderer.SVG.LABEL_VSHIFT={"t":"-70%","b":"0"};OpenLayers.Renderer.SVG.LABEL_VFACTOR={"t":0,"b":-1};OpenLayers.Renderer.SVG.preventDefault=function(e){e.preventDefault&&e.preventDefault();};OpenLayers.Format.SLD.v1_0_0=OpenLayers.Class(OpenLayers.Format.SLD.v1,{VERSION:"1.0.0",schemaLocation:"http://www.opengis.net/sld http://schemas. [...]
+return version;},toContext:function(obj){var context={};if(obj.CLASS_NAME=="OpenLayers.Map"){context.bounds=obj.getExtent();context.maxExtent=obj.maxExtent;context.projection=obj.projection;context.size=obj.getSize();context.layers=obj.layers;}
+return context;},CLASS_NAME:"OpenLayers.Format.OWSContext"});OpenLayers.Format.OWSContext.v0_3_1=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{owc:"http://www.opengis.net/ows-context",gml:"http://www.opengis.net/gml",kml:"http://www.opengis.net/kml/2.2",ogc:"http://www.opengis.net/ogc",ows:"http://www.opengis.net/ows",sld:"http://www.opengis.net/sld",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},VERSION:"0.3.1",schemaLocation:"http://www.open [...]
+if(nTitle!=""){nPath.push(nTitle);}
+layerContext.metadata.nestingPath=nPath;if(layerContext.layersContext){this.setNestingPath(layerContext);}}}},decomposeNestingPath:function(nPath){var a=[];if(OpenLayers.Util.isArray(nPath)){var path=nPath.slice();while(path.length>0){a.push(path.slice());path.pop();}
+a.reverse();}
+return a;},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+if(data&&data.nodeType==9){data=data.documentElement;}
+var context={};this.readNode(data,context);this.setNestingPath({layersContext:context.layersContext});var layers=[];this.processLayer(layers,context);delete context.layersContext;context.layersContext=layers;return context;},processLayer:function(layerArray,layer){if(layer.layersContext){for(var i=0,len=layer.layersContext.length;i<len;i++){var l=layer.layersContext[i];layerArray.push(l);if(l.layersContext){this.processLayer(layerArray,l);}}}},write:function(context,options){var name="OW [...]
+obj.layersContext.push(layerContext);this.readChildNodes(node,layerContext);},"InlineGeometry":function(node,obj){obj.features=[];var elements=this.getElementsByTagNameNS(node,this.namespaces.gml,"featureMember");var el;if(elements.length>=1){el=elements[0];}
+if(el&&el.firstChild){var featurenode=(el.firstChild.nextSibling)?el.firstChild.nextSibling:el.firstChild;this.setNamespace("feature",featurenode.namespaceURI);this.featureType=featurenode.localName||featurenode.nodeName.split(":").pop();this.readChildNodes(node,obj);}},"Server":function(node,obj){if((!obj.service&&!obj.version)||(obj.service!=OpenLayers.Format.Context.serviceTypes.WMS)){obj.service=node.getAttribute("service");obj.version=node.getAttribute("version");this.readChildNodes [...]
+return node;},"Server":function(options){var node=this.createElementNSPlus("Server",{attributes:{version:options.version,service:options.service}});this.writeNode("OnlineResource",options,node);return node;},"OnlineResource":function(options){var node=this.createElementNSPlus("OnlineResource",{attributes:{"xlink:href":options.url}});return node;},"InlineGeometry":function(layer){var node=this.createElementNSPlus("InlineGeometry");this.writeNode("gml:boundedBy",layer.getDataExtent(),node) [...]
+return node;},"StyleList":function(styles){var node=this.createElementNSPlus("StyleList");for(var i=0,len=styles.length;i<len;i++){this.writeNode("Style",styles[i],node);}
+return node;},"Style":function(style){var node=this.createElementNSPlus("Style");this.writeNode("Name",style,node);this.writeNode("Title",style,node);if(style.legend){this.writeNode("LegendURL",style,node);}
+return node;},"Name":function(obj){var node=this.createElementNSPlus("Name",{value:obj.name});return node;},"Title":function(obj){var node=this.createElementNSPlus("Title",{value:obj.title});return node;},"LegendURL":function(style){var node=this.createElementNSPlus("LegendURL");this.writeNode("OnlineResource",style.legend,node);return node;},"_WMS":function(layer){var node=this.createElementNSPlus("Layer",{attributes:{name:layer.params.LAYERS,queryable:layer.queryable?"1":"0",hidden:lay [...]
+return node;},"_Layer":function(options){var layer,subPaths,node,title;layer=options.layer;subPaths=options.subPaths;node=null;title=null;if(subPaths.length>0){var path=subPaths[0].join("/");var index=path.lastIndexOf("/");node=this.nestingLayerLookup[path];title=(index>0)?path.substring(index+1,path.length):path;if(!node){node=this.createElementNSPlus("Layer");this.writeNode("ows:Title",title,node);this.nestingLayerLookup[path]=node;}
+options.subPaths.shift();this.writeNode("_Layer",options,node);return node;}else{if(layer instanceof OpenLayers.Layer.WMS){node=this.writeNode("_WMS",layer);}else if(layer instanceof OpenLayers.Layer.Vector){if(layer.protocol instanceof OpenLayers.Protocol.WFS.v1){node=this.writeNode("_WFS",layer);}else if(layer.protocol instanceof OpenLayers.Protocol.HTTP){if(layer.protocol.format instanceof OpenLayers.Format.GML){layer.protocol.format.version="2.1.2";node=this.writeNode("_GML",layer);} [...]
+if(layer.options.maxScale){this.writeNode("sld:MinScaleDenominator",layer.options.maxScale,node);}
+if(layer.options.minScale){this.writeNode("sld:MaxScaleDenominator",layer.options.minScale,node);}
+this.nestingLayerLookup[layer.name]=node;return node;}},"_WFS":function(layer){var node=this.createElementNSPlus("Layer",{attributes:{name:layer.protocol.featurePrefix+":"+layer.protocol.featureType,hidden:layer.visibility?"0":"1"}});this.writeNode("ows:Title",layer.name,node);this.writeNode("Server",{service:OpenLayers.Format.Context.serviceTypes.WFS,version:layer.protocol.version,url:layer.protocol.url},node);return node;},"_InlineGeometry":function(layer){var node=this.createElementNS [...]
+this.eBottom=document.createElement("div");this.eBottom.className=this.displayClass+"Bottom";this.div.appendChild(this.eBottom);if((this.bottomOutUnits=="")||(this.bottomInUnits=="")){this.eBottom.style.visibility="hidden";}else{this.eBottom.style.visibility="visible";}}
+this.map.events.register('moveend',this,this.update);this.update();return this.div;},getBarLen:function(maxLen){var digits=parseInt(Math.log(maxLen)/Math.log(10));var pow10=Math.pow(10,digits);var firstChar=parseInt(maxLen/pow10);var barLen;if(firstChar>5){barLen=5;}else if(firstChar>2){barLen=2;}else{barLen=1;}
+return barLen*pow10;},update:function(){var res=this.map.getResolution();if(!res){return;}
+var curMapUnits=this.map.getUnits();var inches=OpenLayers.INCHES_PER_UNIT;var maxSizeData=this.maxWidth*res*inches[curMapUnits];var geodesicRatio=1;if(this.geodesic===true){var maxSizeGeodesic=(this.map.getGeodesicPixelSize().w||0.000001)*this.maxWidth;var maxSizeKilometers=maxSizeData/inches["km"];geodesicRatio=maxSizeGeodesic/maxSizeKilometers;maxSizeData*=geodesicRatio;}
+var topUnits;var bottomUnits;if(maxSizeData>100000){topUnits=this.topOutUnits;bottomUnits=this.bottomOutUnits;}else{topUnits=this.topInUnits;bottomUnits=this.bottomInUnits;}
+var topMax=maxSizeData/inches[topUnits];var bottomMax=maxSizeData/inches[bottomUnits];var topRounded=this.getBarLen(topMax);var bottomRounded=this.getBarLen(bottomMax);topMax=topRounded/inches[curMapUnits]*inches[topUnits];bottomMax=bottomRounded/inches[curMapUnits]*inches[bottomUnits];var topPx=topMax/res/geodesicRatio;var bottomPx=bottomMax/res/geodesicRatio;if(this.eBottom.style.visibility=="visible"){this.eBottom.style.width=Math.round(bottomPx)+"px";this.eBottom.innerHTML=bottomRoun [...]
+if(this.eTop.style.visibility=="visible"){this.eTop.style.width=Math.round(topPx)+"px";this.eTop.innerHTML=topRounded+" "+topUnits;}},CLASS_NAME:"OpenLayers.Control.ScaleLine"});OpenLayers.Icon=OpenLayers.Class({url:null,size:null,offset:null,calculateOffset:null,imageDiv:null,px:null,initialize:function(url,size,offset,calculateOffset){this.url=url;this.size=(size)?size:new OpenLayers.Size(20,20);this.offset=offset?offset:new OpenLayers.Pixel(-(this.size.w/2),-(this.size.h/2));this.calc [...]
+this.draw();},setUrl:function(url){if(url!=null){this.url=url;}
+this.draw();},draw:function(px){OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,null,null,this.size,this.url,"absolute");this.moveTo(px);return this.imageDiv;},erase:function(){if(this.imageDiv!=null&&this.imageDiv.parentNode!=null){OpenLayers.Element.remove(this.imageDiv);}},setOpacity:function(opacity){OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,null,null,null,null,null,null,null,opacity);},moveTo:function(px){if(px!=null){this.px=px;}
+if(this.imageDiv!=null){if(this.px==null){this.display(false);}else{if(this.calculateOffset){this.offset=this.calculateOffset(this.size);}
+var offsetPx=this.px.offset(this.offset);OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,null,offsetPx);}}},display:function(display){this.imageDiv.style.display=(display)?"":"none";},isDrawn:function(){var isDrawn=(this.imageDiv&&this.imageDiv.parentNode&&(this.imageDiv.parentNode.nodeType!=11));return isDrawn;},CLASS_NAME:"OpenLayers.Icon"});OpenLayers.Marker=OpenLayers.Class({icon:null,lonlat:null,events:null,map:null,initialize:function(lonlat,icon){this.lonlat=lonlat;var newIcon=( [...]
+this.events=new OpenLayers.Events(this,this.icon.imageDiv,null);},destroy:function(){this.erase();this.map=null;this.events.destroy();this.events=null;if(this.icon!=null){this.icon.destroy();this.icon=null;}},draw:function(px){return this.icon.draw(px);},erase:function(){if(this.icon!=null){this.icon.erase();}},moveTo:function(px){if((px!=null)&&(this.icon!=null)){this.icon.moveTo(px);}
+this.lonlat=this.map.getLonLatFromLayerPx(px);},isDrawn:function(){var isDrawn=(this.icon&&this.icon.isDrawn());return isDrawn;},onScreen:function(){var onScreen=false;if(this.map){var screenBounds=this.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);}
+return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size( [...]
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var res=this.map.getResolution();var bbox=this.maxExtent;var size=this.tileSize;var tileX=Math.round((bounds.left-bbox.left)/(res*size.w));var tileY=Math.round((bounds.bottom-bbox.bottom)/(res*size.h));var tileZ=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,res):this.map.getZoom();function zeroPad(number,length){number=String(number);var zeros=[];for(var i=0;i<le [...]
+return zeros.join('').substring(0,length-number.length)+number;}
+var components=[this.layername,zeroPad(tileZ,2),zeroPad(parseInt(tileX/1000000),3),zeroPad((parseInt(tileX/1000)%1000),3),zeroPad((parseInt(tileX)%1000),3),zeroPad(parseInt(tileY/1000000),3),zeroPad((parseInt(tileY/1000)%1000),3),zeroPad((parseInt(tileY)%1000),3)+'.'+this.extension];var path=components.join('/');var url=this.url;if(OpenLayers.Util.isArray(url)){url=this.selectUrl(path,url);}
+url=(url.charAt(url.length-1)=='/')?url:url+'/';return url+path;},CLASS_NAME:"OpenLayers.Layer.TileCache"});OpenLayers.Strategy.Paging=OpenLayers.Class(OpenLayers.Strategy,{features:null,length:10,num:null,paging:false,activate:function(){var activated=OpenLayers.Strategy.prototype.activate.call(this);if(activated){this.layer.events.on({"beforefeaturesadded":this.cacheFeatures,scope:this});}
+return activated;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){this.clearCache();this.layer.events.un({"beforefeaturesadded":this.cacheFeatures,scope:this});}
+return deactivated;},cacheFeatures:function(event){if(!this.paging){this.clearCache();this.features=event.features;this.pageNext(event);}},clearCache:function(){if(this.features){for(var i=0;i<this.features.length;++i){this.features[i].destroy();}}
+this.features=null;this.num=null;},pageCount:function(){var numFeatures=this.features?this.features.length:0;return Math.ceil(numFeatures/this.length);},pageNum:function(){return this.num;},pageLength:function(newLength){if(newLength&&newLength>0){this.length=newLength;}
+return this.length;},pageNext:function(event){var changed=false;if(this.features){if(this.num===null){this.num=-1;}
+var start=(this.num+1)*this.length;changed=this.page(start,event);}
+return changed;},pagePrevious:function(){var changed=false;if(this.features){if(this.num===null){this.num=this.pageCount();}
+var start=(this.num-1)*this.length;changed=this.page(start);}
+return changed;},page:function(start,event){var changed=false;if(this.features){if(start>=0&&start<this.features.length){var num=Math.floor(start/this.length);if(num!=this.num){this.paging=true;var features=this.features.slice(start,start+this.length);this.layer.removeFeatures(this.layer.features);this.num=num;if(event&&event.features){event.features=features;}else{this.layer.addFeatures(features);}
+this.paging=false;changed=true;}}}
+return changed;},CLASS_NAME:"OpenLayers.Strategy.Paging"});OpenLayers.Control.TransformFeature=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:["beforesetfeature","setfeature","beforetransform","transform","transformcomplete"],geometryTypes:null,layer:null,preserveAspectRatio:false,rotate:true,feature:null,renderIntent:"temporary",rotationHandleSymbolizer:null,box:null,center:null,scale:1,ratio:1,rotation:0,handles:null,rotationHandles:null,dragControl:null,initialize:function(layer,opt [...]
+this.createBox();this.createControl();},activate:function(){var activated=false;if(OpenLayers.Control.prototype.activate.apply(this,arguments)){this.dragControl.activate();this.layer.addFeatures([this.box]);this.rotate&&this.layer.addFeatures(this.rotationHandles);this.layer.addFeatures(this.handles);activated=true;}
+return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Control.prototype.deactivate.apply(this,arguments)){this.layer.removeFeatures(this.handles);this.rotate&&this.layer.removeFeatures(this.rotationHandles);this.layer.removeFeatures([this.box]);this.dragControl.deactivate();deactivated=true;}
+if(deactivated){this.unsetFeature();}
+return deactivated;},setMap:function(map){this.dragControl.setMap(map);OpenLayers.Control.prototype.setMap.apply(this,arguments);},setFeature:function(feature,initialParams){initialParams=OpenLayers.Util.applyDefaults(initialParams,{rotation:0,scale:1,ratio:1});var oldRotation=this.rotation;var oldCenter=this.center;OpenLayers.Util.extend(this,initialParams);var cont=this.events.triggerEvent("beforesetfeature",{feature:feature});if(cont===false){return;}
+this.feature=feature;this.activate();this._setfeature=true;var featureBounds=this.feature.geometry.getBounds();this.box.move(featureBounds.getCenterLonLat());this.box.geometry.rotate(-oldRotation,oldCenter);this._angle=0;var ll;if(this.rotation){var geom=feature.geometry.clone();geom.rotate(-this.rotation,this.center);var box=new OpenLayers.Feature.Vector(geom.getBounds().toGeometry());box.geometry.rotate(this.rotation,this.center);this.box.geometry.rotate(this.rotation,this.center);this [...]
+this.handles[0].move(ll);delete this._setfeature;this.events.triggerEvent("setfeature",{feature:feature});},unsetFeature:function(){if(this.active){this.deactivate();}else{this.feature=null;this.rotation=0;this.scale=1;this.ratio=1;}},createBox:function(){var control=this;this.center=new OpenLayers.Geometry.Point(0,0);var box=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([new OpenLayers.Geometry.Point(-1,-1),new OpenLayers.Geometry.Point(0,-1),new OpenLayers.Geometry.P [...]
+var evt=control.dragControl.handlers.drag.evt;var preserveAspectRatio=!control._setfeature&&control.preserveAspectRatio;var reshape=!preserveAspectRatio&&!(evt&&evt.shiftKey);var oldGeom=new OpenLayers.Geometry.Point(oldX,oldY);var centerGeometry=control.center;this.rotate(-control.rotation,centerGeometry);oldGeom.rotate(-control.rotation,centerGeometry);var dx1=this.x-centerGeometry.x;var dy1=this.y-centerGeometry.y;var dx0=dx1-(this.x-oldGeom.x);var dy0=dy1-(this.y-oldGeom.y);this.x=ol [...]
+control._moving=true;control.box.geometry.rotate(-control.rotation,centerGeometry);delete control._moving;control.box.geometry.resize(scale,centerGeometry,ratio);control.box.geometry.rotate(control.rotation,centerGeometry);control.transformFeature({scale:scale,ratio:ratio});};var rotationHandleMoveFn=function(x,y){var oldX=this.x,oldY=this.y;OpenLayers.Geometry.Point.prototype.move.call(this,x,y);if(control._moving){return;}
+var evt=control.dragControl.handlers.drag.evt;var constrain=(evt&&evt.shiftKey)?45:1;var centerGeometry=control.center;var dx1=this.x-centerGeometry.x;var dy1=this.y-centerGeometry.y;var dx0=dx1-x;var dy0=dy1-y;this.x=oldX;this.y=oldY;var a0=Math.atan2(dy0,dx0);var a1=Math.atan2(dy1,dx1);var angle=a1-a0;angle*=180/Math.PI;control._angle=(control._angle+angle)%360;var diff=control.rotation%constrain;if(Math.abs(control._angle)>=constrain||diff!==0){angle=Math.round(control._angle/constrai [...]
+diff;control._angle=0;control.box.geometry.rotate(angle,centerGeometry);control.transformFeature({rotation:angle});}};var handles=new Array(8);var rotationHandles=new Array(4);var geom,handle,rotationHandle;for(var i=0;i<8;++i){geom=box.geometry.components[i];handle=new OpenLayers.Feature.Vector(geom.clone(),null,typeof this.renderIntent=="string"?null:this.renderIntent);if(i%2==0){rotationHandle=new OpenLayers.Feature.Vector(geom.clone(),null,typeof this.rotationHandleSymbolizer=="strin [...]
+geom.move=vertexMoveFn;geom.resize=vertexResizeFn;geom.rotate=vertexRotateFn;handle.geometry.move=handleMoveFn;geom._handle=handle;handles[i]=handle;}
+this.box=box;this.rotationHandles=rotationHandles;this.handles=handles;},createControl:function(){var control=this;this.dragControl=new OpenLayers.Control.DragFeature(this.layer,{documentDrag:true,moveFeature:function(pixel){if(this.feature===control.feature){this.feature=control.box;}
+OpenLayers.Control.DragFeature.prototype.moveFeature.apply(this,arguments);},onDrag:function(feature,pixel){if(feature===control.box){control.transformFeature({center:control.center});control.drawHandles();}},onStart:function(feature,pixel){var eligible=!control.geometryTypes||OpenLayers.Util.indexOf(control.geometryTypes,feature.geometry.CLASS_NAME)!==-1;var i=OpenLayers.Util.indexOf(control.handles,feature);i+=OpenLayers.Util.indexOf(control.rotationHandles,feature);if(feature!==contro [...]
+layer.drawFeature(this.handles[i],this.renderIntent);}},transformFeature:function(mods){if(!this._setfeature){this.scale*=(mods.scale||1);this.ratio*=(mods.ratio||1);var oldRotation=this.rotation;this.rotation=(this.rotation+(mods.rotation||0))%360;if(this.events.triggerEvent("beforetransform",mods)!==false){var feature=this.feature;var geom=feature.geometry;var center=this.center;geom.rotate(-oldRotation,center);if(mods.scale||mods.ratio){geom.resize(mods.scale,center,mods.ratio);}else  [...]
+geom.rotate(this.rotation,center);this.layer.drawFeature(feature);feature.toState(OpenLayers.State.UPDATE);this.events.triggerEvent("transform",mods);}}
+this.layer.drawFeature(this.box,this.renderIntent);this.drawHandles();},destroy:function(){var geom;for(var i=0;i<8;++i){geom=this.box.geometry.components[i];geom._handle.destroy();geom._handle=null;geom._rotationHandle&&geom._rotationHandle.destroy();geom._rotationHandle=null;}
+this.box.destroy();this.box=null;this.layer=null;this.dragControl.destroy();OpenLayers.Control.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.TransformFeature"});OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,sphericalMercator:false,zoomOffset:0,serverResolutions:null,initialize:function(name,url,options){if(options&&options.sphericalMercator||this.sphericalMercator){options=OpenLayers.Util.extend({maxExtent:new OpenLayers.Bounds(- [...]
+url=url||this.url;name=name||this.name;var newArguments=[name,url,{},options];OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions());}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var xyz=this.getXYZ(bounds);var url=this.url;if(OpenLayers.Util.isArray(url)){var s=''+xyz.x+xyz.y+xyz.z;url=this.selectUrl(s,url);}
+return OpenLayers.String.format(url,xyz);},getXYZ:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,res):this.map.getZoom()+this.zoomOffset;var limit=Math.pow(2,z);if(this.wrapDateLine)
+{x=((x%limit)+limit)%limit;}
+return{'x':x,'y':y,'z':z};},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom);}},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",attribution:"Data CC-By-SA by <a href='http://openstreetmap.org/'>OpenStreetMap</a>",sphericalMercator:true,url:'http://tile.openstreetmap.org/${z}/${x}/${y}.pn [...]
+obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},wrapDateLine:true,CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Handler.Box=OpenLayers.Class(OpenLayers.Handler,{dragHandler:null,boxDivClassName:'olHandlerBoxZoomBox',boxOffsets:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.dragHandler=new OpenLayers.Handler.Drag(this,{down:this.startBox,move:this.moveBox,out:this.removeBox,up:this.endBox},{ke [...]
+this.removeBox();this.callback("done",[result]);},removeBox:function(){this.map.eventsDiv.removeChild(this.zoomBox);this.zoomBox=null;this.boxOffsets=null;OpenLayers.Element.removeClass(this.map.eventsDiv,"olDrawBox");},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragHandler.activate();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){if(this.dragHandler.deactivate()){if(t [...]
+return true;}else{return false;}},getBoxOffsets:function(){if(!this.boxOffsets){var testDiv=document.createElement("div");testDiv.style.position="absolute";testDiv.style.border="1px solid black";testDiv.style.width="3px";document.body.appendChild(testDiv);var w3cBoxModel=testDiv.clientWidth==3;document.body.removeChild(testDiv);var left=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-left-width"));var right=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-right-width") [...]
+return this.boxOffsets;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Control.ZoomBox=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,out:false,alwaysZoom:false,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.zoomBox},{keyMask:this.keyMask});},zoomBox:function(position){if(position instanceof OpenLayers.Bounds){var bounds;if(!this.out){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=th [...]
+var lastZoom=this.map.getZoom();this.map.zoomToExtent(bounds);if(lastZoom==this.map.getZoom()&&this.alwaysZoom==true){this.map.zoomTo(lastZoom+(this.out?-1:1));}}else{if(!this.out){this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()+1);}else{this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()-1);}}},CLASS_NAME:"OpenLayers.Control.ZoomBox"});OpenLayers.Control.DragPan=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,pan [...]
+this.kinetic=new OpenLayers.Kinetic(config);}
+this.handler=new OpenLayers.Handler.Drag(this,{"move":this.panMap,"done":this.panMapDone,"down":this.panMapStart},{interval:this.interval,documentDrag:this.documentDrag});},panMapStart:function(){if(this.kinetic){this.kinetic.begin();}},panMap:function(xy){if(this.kinetic){this.kinetic.update(xy);}
+this.panned=true;this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:true,animate:false});},panMapDone:function(xy){if(this.panned){var res=null;if(this.kinetic){res=this.kinetic.end(xy);}
+this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:!!res,animate:false});if(res){var self=this;this.kinetic.move(res,function(x,y,end){self.map.pan(x,y,{dragging:!end,animate:false});});}
+this.panned=false;}},CLASS_NAME:"OpenLayers.Control.DragPan"});OpenLayers.Handler.Click=OpenLayers.Class(OpenLayers.Handler,{delay:300,single:true,'double':false,pixelTolerance:0,dblclickTolerance:13,stopSingle:false,stopDouble:false,timerId:null,touch:false,down:null,last:null,first:null,rightclickTimerId:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},touchstart:function(evt){if(!this.touch){this.unregisterMouseListene [...]
+this.down=this.getEventInfo(evt);this.last=this.getEventInfo(evt);return true;},touchmove:function(evt){this.last=this.getEventInfo(evt);return true;},touchend:function(evt){if(this.down){evt.xy=this.last.xy;evt.lastTouches=this.last.touches;this.handleSingle(evt);this.down=null;}
+return true;},unregisterMouseListeners:function(){this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,click:this.click,dblclick:this.dblclick,scope:this});},mousedown:function(evt){this.down=this.getEventInfo(evt);this.last=this.getEventInfo(evt);return true;},mouseup:function(evt){var propagate=true;if(this.checkModifiers(evt)&&this.control.handleRightClicks&&OpenLayers.Event.isRightClick(evt)){propagate=this.rightclick(evt);}
+return propagate;},rightclick:function(evt){if(this.passesTolerance(evt)){if(this.rightclickTimerId!=null){this.clearTimer();this.callback('dblrightclick',[evt]);return!this.stopDouble;}else{var clickEvent=this['double']?OpenLayers.Util.extend({},evt):this.callback('rightclick',[evt]);var delayedRightCall=OpenLayers.Function.bind(this.delayedRightCall,this,clickEvent);this.rightclickTimerId=window.setTimeout(delayedRightCall,this.delay);}}
+return!this.stopSingle;},delayedRightCall:function(evt){this.rightclickTimerId=null;if(evt){this.callback('rightclick',[evt]);}},click:function(evt){if(!this.last){this.last=this.getEventInfo(evt);}
+this.handleSingle(evt);return!this.stopSingle;},dblclick:function(evt){this.handleDouble(evt);return!this.stopDouble;},handleDouble:function(evt){if(this["double"]&&this.passesDblclickTolerance(evt)){this.callback("dblclick",[evt]);}},handleSingle:function(evt){if(this.passesTolerance(evt)){if(this.timerId!=null){if(this.last.touches&&this.last.touches.length===1){if(this["double"]){OpenLayers.Event.stop(evt);}
+this.handleDouble(evt);}
+if(!this.last.touches||this.last.touches.length!==2){this.clearTimer();}}else{this.first=this.getEventInfo(evt);var clickEvent=this.single?OpenLayers.Util.extend({},evt):null;this.queuePotentialClick(clickEvent);}}},queuePotentialClick:function(evt){this.timerId=window.setTimeout(OpenLayers.Function.bind(this.delayedCall,this,evt),this.delay);},passesTolerance:function(evt){var passes=true;if(this.pixelTolerance!=null&&this.down&&this.down.xy){passes=this.pixelTolerance>=this.down.xy.dis [...]
+return passes;},getTouchDistance:function(from,to){return Math.sqrt(Math.pow(from.clientX-to.clientX,2)+
+Math.pow(from.clientY-to.clientY,2));},passesDblclickTolerance:function(evt){var passes=true;if(this.down&&this.first){passes=this.down.xy.distanceTo(this.first.xy)<=this.dblclickTolerance;}
+return passes;},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null;}
+if(this.rightclickTimerId!=null){window.clearTimeout(this.rightclickTimerId);this.rightclickTimerId=null;}},delayedCall:function(evt){this.timerId=null;if(evt){this.callback("click",[evt]);}},getEventInfo:function(evt){var touches;if(evt.touches){var len=evt.touches.length;touches=new Array(len);var touch;for(var i=0;i<len;i++){touch=evt.touches[i];touches[i]={clientX:touch.clientX,clientY:touch.clientY};}}
+return{xy:evt.xy,touches:touches};},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.clearTimer();this.down=null;this.first=null;this.last=null;this.touch=false;deactivated=true;}
+return deactivated;},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Control.Navigation=OpenLayers.Class(OpenLayers.Control,{dragPan:null,dragPanOptions:null,pinchZoom:null,pinchZoomOptions:null,documentDrag:false,zoomBox:null,zoomBoxEnabled:true,zoomWheelEnabled:true,mouseWheelOptions:null,handleRightClicks:false,zoomBoxKeyMask:OpenLayers.Handler.MOD_SHIFT,autoActivate:true,initialize:function(options){this.handlers={};OpenLayers.Control.prototype.initialize.apply(this,arguments);},d [...]
+this.dragPan=null;if(this.zoomBox){this.zoomBox.destroy();}
+this.zoomBox=null;if(this.pinchZoom){this.pinchZoom.destroy();}
+this.pinchZoom=null;OpenLayers.Control.prototype.destroy.apply(this,arguments);},activate:function(){this.dragPan.activate();if(this.zoomWheelEnabled){this.handlers.wheel.activate();}
+this.handlers.click.activate();if(this.zoomBoxEnabled){this.zoomBox.activate();}
+if(this.pinchZoom){this.pinchZoom.activate();}
+return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){if(this.pinchZoom){this.pinchZoom.deactivate();}
+this.zoomBox.deactivate();this.dragPan.deactivate();this.handlers.click.deactivate();this.handlers.wheel.deactivate();return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},draw:function(){if(this.handleRightClicks){this.map.viewPortDiv.oncontextmenu=OpenLayers.Function.False;}
+var clickCallbacks={'click':this.defaultClick,'dblclick':this.defaultDblClick,'dblrightclick':this.defaultDblRightClick};var clickOptions={'double':true,'stopDouble':true};this.handlers.click=new OpenLayers.Handler.Click(this,clickCallbacks,clickOptions);this.dragPan=new OpenLayers.Control.DragPan(OpenLayers.Util.extend({map:this.map,documentDrag:this.documentDrag},this.dragPanOptions));this.zoomBox=new OpenLayers.Control.ZoomBox({map:this.map,keyMask:this.zoomBoxKeyMask});this.dragPan.d [...]
+var size=this.map.getSize();var deltaX=size.w/2-evt.xy.x;var deltaY=evt.xy.y-size.h/2;var newRes=this.map.baseLayer.getResolutionForZoom(newZoom);var zoomPoint=this.map.getLonLatFromPixel(evt.xy);var newCenter=new OpenLayers.LonLat(zoomPoint.lon+deltaX*newRes,zoomPoint.lat+deltaY*newRes);this.map.setCenter(newCenter,newZoom);},wheelUp:function(evt,delta){this.wheelChange(evt,delta||1);},wheelDown:function(evt,delta){this.wheelChange(evt,delta||-1);},disableZoomBox:function(){this.zoomBox [...]
+var sketchStyle=this.layer.styleMap&&this.layer.styleMap.styles.temporary;if(sketchStyle){this.handlerOptions.layerOptions=OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions,{styleMap:new OpenLayers.StyleMap({"default":sketchStyle})});}
+this.handler=new handler(this,this.callbacks,this.handlerOptions);},drawFeature:function(geometry){var feature=new OpenLayers.Feature.Vector(geometry);var proceed=this.layer.events.triggerEvent("sketchcomplete",{feature:feature});if(proceed!==false){feature.state=OpenLayers.State.INSERT;this.layer.addFeatures([feature]);this.featureAdded(feature);this.events.triggerEvent("featureadded",{feature:feature});}},insertXY:function(x,y){if(this.handler&&this.handler.line){this.handler.insertXY( [...]
+OpenLayers.Handler.Path.prototype.addPoint.apply(this,arguments);},getCurrentPointIndex:function(){return this.line.geometry.components.length-2;},enforceTopology:function(event){var point=event.vertex;var components=this.line.geometry.components;if(!this.polygon.geometry.intersects(point)){var last=components[components.length-3];point.x=last.x;point.y=last.y;}},finishGeometry:function(){var index=this.line.geometry.components.length-2;this.line.geometry.removeComponent(this.line.geomet [...]
+if(modified){var target;outer:for(var i=rings.length-2;i>0;--i){var points=rings[i].components;for(var j=0,jj=points.length;j<jj;++j){if(ring.containsPoint(points[j])){modified=false;break outer;}}}}}
+if(modified){if(this.polygon.state!==OpenLayers.State.INSERT){this.polygon.state=OpenLayers.State.UPDATE;}}else{this.polygon.geometry.removeComponent(ring);}
+this.restoreFeature();return false;},cancel:function(){if(this.drawingHole){this.polygon.geometry.removeComponent(this.line.geometry);this.restoreFeature(true);}
+return OpenLayers.Handler.Path.prototype.cancel.apply(this,arguments);},restoreFeature:function(cancel){this.control.layer.events.unregister("sketchcomplete",this,this.finalizeInteriorRing);this.control.layer.events.unregister("sketchmodified",this,this.enforceTopology);this.layer.removeFeatures([this.polygon],{silent:true});this.control.layer.addFeatures([this.polygon],{silent:true});this.drawingHole=false;if(!cancel){this.control.layer.events.triggerEvent("sketchcomplete",{feature:this [...]
+return geometry;},CLASS_NAME:"OpenLayers.Handler.Polygon"});OpenLayers.Control.EditingToolbar=OpenLayers.Class(OpenLayers.Control.Panel,{initialize:function(layer,options){OpenLayers.Control.Panel.prototype.initialize.apply(this,[options]);this.addControls([new OpenLayers.Control.Navigation()]);var controls=[new OpenLayers.Control.DrawFeature(layer,OpenLayers.Handler.Point,{'displayClass':'olControlDrawFeaturePoint'}),new OpenLayers.Control.DrawFeature(layer,OpenLayers.Handler.Path,{'dis [...]
+return div;},CLASS_NAME:"OpenLayers.Control.EditingToolbar"});OpenLayers.Strategy.BBOX=OpenLayers.Class(OpenLayers.Strategy,{bounds:null,resolution:null,ratio:2,resFactor:null,response:null,activate:function(){var activated=OpenLayers.Strategy.prototype.activate.call(this);if(activated){this.layer.events.on({"moveend":this.update,scope:this});this.layer.events.on({"refresh":this.update,scope:this});if(this.layer.visibility===true&&this.layer.inRange===true){this.update();}else{this.layer [...]
+return activated;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){this.layer.events.un({"moveend":this.update,"refresh":this.update,"visibilitychanged":this.update,scope:this});}
+return deactivated;},update:function(options){var mapBounds=this.getMapBounds();if(mapBounds!==null&&((options&&options.force)||this.invalidBounds(mapBounds))){this.calculateBounds(mapBounds);this.resolution=this.layer.map.getResolution();this.triggerRead(options);}},getMapBounds:function(){if(this.layer.map===null){return null;}
+var bounds=this.layer.map.getExtent();if(bounds&&!this.layer.projection.equals(this.layer.map.getProjectionObject())){bounds=bounds.clone().transform(this.layer.map.getProjectionObject(),this.layer.projection);}
+return bounds;},invalidBounds:function(mapBounds){if(!mapBounds){mapBounds=this.getMapBounds();}
+var invalid=!this.bounds||!this.bounds.containsBounds(mapBounds);if(!invalid&&this.resFactor){var ratio=this.resolution/this.layer.map.getResolution();invalid=(ratio>=this.resFactor||ratio<=(1/this.resFactor));}
+return invalid;},calculateBounds:function(mapBounds){if(!mapBounds){mapBounds=this.getMapBounds();}
+var center=mapBounds.getCenterLonLat();var dataWidth=mapBounds.getWidth()*this.ratio;var dataHeight=mapBounds.getHeight()*this.ratio;this.bounds=new OpenLayers.Bounds(center.lon-(dataWidth/2),center.lat-(dataHeight/2),center.lon+(dataWidth/2),center.lat+(dataHeight/2));},triggerRead:function(options){if(this.response){this.layer.protocol.abort(this.response);this.layer.events.triggerEvent("loadend");}
+this.layer.events.triggerEvent("loadstart");this.response=this.layer.protocol.read(OpenLayers.Util.applyDefaults({filter:this.createFilter(),callback:this.merge,scope:this},options));},createFilter:function(){var filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.BBOX,value:this.bounds,projection:this.layer.projection});if(this.layer.filter){filter=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.AND,filters:[this.layer.filter,filter]});}
+return filter;},merge:function(resp){this.layer.destroyFeatures();var features=resp.features;if(features&&features.length>0){var remote=this.layer.projection;var local=this.layer.map.getProjectionObject();if(!local.equals(remote)){var geom;for(var i=0,len=features.length;i<len;++i){geom=features[i].geometry;if(geom){geom.transform(remote,local);}}}
+this.layer.addFeatures(features);}
+this.response=null;this.layer.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Strategy.BBOX"});OpenLayers.Layer.WorldWind=OpenLayers.Class(OpenLayers.Layer.Grid,{DEFAULT_PARAMS:{},isBaseLayer:true,lzd:null,zoomLevels:null,initialize:function(name,url,lzd,zoomLevels,params,options){this.lzd=lzd;this.zoomLevels=zoomLevels;var newArguments=[];newArguments.push(name,url,params,options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);this.params=OpenLayers.Util.app [...]
+var contents=capabilities.contents;var matrixSet=contents.tileMatrixSets[config.matrixSet];var layers=contents.layers;var layerDef;for(var i=0,ii=contents.layers.length;i<ii;++i){if(contents.layers[i].identifier===config.layer){layerDef=contents.layers[i];break;}}
+if(layerDef&&matrixSet){var style;for(var i=0,ii=layerDef.styles.length;i<ii;++i){style=layerDef.styles[i];if(style.isDefault){break;}}
+layer=new OpenLayers.Layer.WMTS(OpenLayers.Util.applyDefaults(config,{url:capabilities.operationsMetadata.GetTile.dcp.http.get,name:layerDef.title,style:style.identifier,matrixIds:matrixSet.matrixIds}));}
+return layer;},CLASS_NAME:"OpenLayers.Format.WMTSCapabilities"});OpenLayers.Layer.Google.v3={DEFAULTS:{maxExtent:new OpenLayers.Bounds(-128*156543.03390625,-128*156543.03390625,128*156543.03390625,128*156543.03390625),sphericalMercator:true,maxResolution:156543.03390625,units:"m",projection:"EPSG:900913"},animationEnabled:true,loadMapObject:function(){if(!this.type){this.type=google.maps.MapTypeId.ROADMAP;}
+var mapObject;var cache=OpenLayers.Layer.Google.cache[this.map.id];if(cache){mapObject=cache.mapObject;++cache.count;}else{var container=this.map.viewPortDiv;var div=document.createElement("div");div.id=this.map.id+"_GMapContainer";div.style.position="absolute";div.style.width="100%";div.style.height="100%";container.appendChild(div);var center=this.map.getCenter();mapObject=new google.maps.Map(div,{center:center?new google.maps.LatLng(center.lat,center.lon):new google.maps.LatLng(0,0),z [...]
+this.mapObject=mapObject;this.setGMapVisibility(this.visibility);},repositionMapElements:function(){google.maps.event.trigger(this.mapObject,"resize");var div=this.mapObject.getDiv().firstChild;if(!div||div.childNodes.length<3){this.repositionTimer=window.setTimeout(OpenLayers.Function.bind(this.repositionMapElements,this),250);return false;}
+var cache=OpenLayers.Layer.Google.cache[this.map.id];var container=this.map.viewPortDiv;while(div.lastChild.style.display=="none"){container.appendChild(div.lastChild);}
+var termsOfUse=div.lastChild;container.appendChild(termsOfUse);termsOfUse.style.zIndex="1100";termsOfUse.style.bottom="";termsOfUse.className="olLayerGoogleCopyright olLayerGoogleV3";termsOfUse.style.display="";cache.termsOfUse=termsOfUse;var poweredBy=div.lastChild;container.appendChild(poweredBy);poweredBy.style.zIndex="1100";poweredBy.style.bottom="";poweredBy.className="olLayerGooglePoweredBy olLayerGoogleV3 gmnoprint";poweredBy.style.display="";cache.poweredBy=poweredBy;this.setGMap [...]
+cache.resized=true;}},setGMapVisibility:function(visible){var cache=OpenLayers.Layer.Google.cache[this.map.id];if(cache){var type=this.type;var layers=this.map.layers;var layer;for(var i=layers.length-1;i>=0;--i){layer=layers[i];if(layer instanceof OpenLayers.Layer.Google&&layer.visibility===true&&layer.inRange===true){type=layer.type;visible=true;break;}}
+var container=this.mapObject.getDiv();if(visible===true){this.mapObject.setMapTypeId(type);container.style.left="";if(cache.termsOfUse&&cache.termsOfUse.style){cache.termsOfUse.style.left="";cache.termsOfUse.style.display="";cache.poweredBy.style.display="";}
+cache.displayed=this.id;}else{delete cache.displayed;container.style.left="-9999px";if(cache.termsOfUse&&cache.termsOfUse.style){cache.termsOfUse.style.display="none";cache.termsOfUse.style.left="-9999px";cache.poweredBy.style.display="none";}}}},getMapContainer:function(){return this.mapObject.getDiv();},getMapObjectBoundsFromOLBounds:function(olBounds){var moBounds=null;if(olBounds!=null){var sw=this.sphericalMercator?this.inverseMercator(olBounds.bottom,olBounds.left):new OpenLayers.L [...]
+return moBounds;},getMapObjectLonLatFromMapObjectPixel:function(moPixel){var size=this.map.getSize();var lon=this.getLongitudeFromMapObjectLonLat(this.mapObject.center);var lat=this.getLatitudeFromMapObjectLonLat(this.mapObject.center);var res=this.map.getResolution();var delta_x=moPixel.x-(size.w/2);var delta_y=moPixel.y-(size.h/2);var lonlat=new OpenLayers.LonLat(lon+delta_x*res,lat-delta_y*res);if(this.wrapDateLine){lonlat=lonlat.wrapDateLine(this.maxExtent);}
+return this.getMapObjectLonLatFromLonLat(lonlat.lon,lonlat.lat);},getMapObjectPixelFromMapObjectLonLat:function(moLonLat){var lon=this.getLongitudeFromMapObjectLonLat(moLonLat);var lat=this.getLatitudeFromMapObjectLonLat(moLonLat);var res=this.map.getResolution();var extent=this.map.getExtent();var px=new OpenLayers.Pixel((1/res*(lon-extent.left)),(1/res*(extent.top-lat)));return this.getMapObjectPixelFromXY(px.x,px.y);},setMapObjectCenter:function(center,zoom){if(this.animationEnabled== [...]
+this.mapObject.setOptions({center:center,zoom:zoom});},getMapObjectZoomFromMapObjectBounds:function(moBounds){return this.mapObject.getBoundsZoomLevel(moBounds);},getMapObjectLonLatFromLonLat:function(lon,lat){var gLatLng;if(this.sphericalMercator){var lonlat=this.inverseMercator(lon,lat);gLatLng=new google.maps.LatLng(lonlat.lat,lonlat.lon);}else{gLatLng=new google.maps.LatLng(lat,lon);}
+return gLatLng;},getMapObjectPixelFromXY:function(x,y){return new google.maps.Point(x,y);},destroy:function(){if(this.repositionListener){google.maps.event.removeListener(this.repositionListener);}
+if(this.repositionTimer){window.clearTimeout(this.repositionTimer);}
+OpenLayers.Layer.Google.prototype.destroy.apply(this,arguments);}};OpenLayers.Format.WPSDescribeProcess=OpenLayers.Class(OpenLayers.Format.XML,{VERSION:"1.0.0",namespaces:{wps:"http://www.opengis.net/wps/1.0.0",ows:"http://www.opengis.net/ows/1.1",xsi:"http://www.w3.org/2001/XMLSchema-instance"},schemaLocation:"http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",defaultPrefix:"wps",regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),tri [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var info={};this.readNode(data,info);return info;},readers:{"wps":{"ProcessDescriptions":function(node,obj){obj.processDescriptions={};this.readChildNodes(node,obj.processDescriptions);},"ProcessDescription":function(node,processDescriptions){var processVersion=this.getAttributeNS(node,this.namespaces.wps,"processVersion");var processDescription={processVersion:processVersion,statusSupported:(node.getAttribute("statusSupported")==="true"),storeSupported:(node.getAttribute("storeSupported [...]
+obj.CRSs[this.getChildValue(node)]=true;},"LiteralData":function(node,input){input.literalData={};this.readChildNodes(node,input.literalData);},"ComplexData":function(node,input){input.complexData={};this.readChildNodes(node,input.complexData);},"Default":function(node,complexData){complexData["default"]={};this.readChildNodes(node,complexData["default"]);},"Supported":function(node,complexData){complexData["supported"]={};this.readChildNodes(node,complexData["supported"]);},"Format":fun [...]
+obj.formats[format.mimeType]=true;},"MimeType":function(node,format){format.mimeType=this.getChildValue(node);}},"ows":OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]},CLASS_NAME:"OpenLayers.Format.WPSDescribeProcess"});OpenLayers.Control.NavToolbar=OpenLayers.Class(OpenLayers.Control.Panel,{initialize:function(options){OpenLayers.Control.Panel.prototype.initialize.apply(this,[options]);this.addControls([new OpenLayers.Control.Navigation(),new OpenLayers.Control.ZoomBox()]);} [...]
+return div;},CLASS_NAME:"OpenLayers.Control.NavToolbar"});OpenLayers.Format.CSWGetRecords.v2_0_2=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{csw:"http://www.opengis.net/cat/csw/2.0.2",dc:"http://purl.org/dc/elements/1.1/",dct:"http://purl.org/dc/terms/",geonet:"http://www.fao.org/geonetwork",ogc:"http://www.opengis.net/ogc",ows:"http://www.opengis.net/ows",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},defaultPrefix:"csw",version:"2.0.2",sch [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var obj={};this.readNode(data,obj);return obj;},readers:{"csw":{"GetRecordsResponse":function(node,obj){obj.records=[];this.readChildNodes(node,obj);var version=this.getAttributeNS(node,"",'version');if(version!=""){obj.version=version;}},"RequestId":function(node,obj){obj.RequestId=this.getChildValue(node);},"SearchStatus":function(node,obj){obj.SearchStatus={};var timestamp=this.getAttributeNS(node,"",'timestamp');if(timestamp!=""){obj.SearchStatus.timestamp=timestamp;}},"SearchResults [...]
+obj.SearchResults=SearchResults;},"SummaryRecord":function(node,obj){var record={type:"SummaryRecord"};this.readChildNodes(node,record);obj.records.push(record);},"BriefRecord":function(node,obj){var record={type:"BriefRecord"};this.readChildNodes(node,record);obj.records.push(record);},"DCMIRecord":function(node,obj){var record={type:"DCMIRecord"};this.readChildNodes(node,record);obj.records.push(record);},"Record":function(node,obj){var record={type:"Record"};this.readChildNodes(node,r [...]
+var dc_element={};var attrs=node.attributes;for(var i=0,len=attrs.length;i<len;++i){dc_element[attrs[i].name]=attrs[i].nodeValue;}
+dc_element.value=this.getChildValue(node);obj[name].push(dc_element);}},"dct":{"*":function(node,obj){var name=node.localName||node.nodeName.split(":").pop();if(!(OpenLayers.Util.isArray(obj[name]))){obj[name]=new Array();}
+obj[name].push(this.getChildValue(node));}},"ows":OpenLayers.Util.applyDefaults({"BoundingBox":function(node,obj){if(obj.bounds){obj.BoundingBox=[{crs:obj.projection,value:[obj.bounds.left,obj.bounds.bottom,obj.bounds.right,obj.bounds.top]}];delete obj.projection;delete obj.bounds;}
+OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers["ows"]["BoundingBox"].apply(this,arguments);}},OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers["ows"])},write:function(options){var node=this.writeNode("csw:GetRecords",options);return OpenLayers.Format.XML.prototype.write.apply(this,[node]);},writers:{"csw":{"GetRecords":function(options){if(!options){options={};}
+var node=this.createElementNSPlus("csw:GetRecords",{attributes:{service:"CSW",version:this.version,requestId:options.requestId||this.requestId,resultType:options.resultType||this.resultType,outputFormat:options.outputFormat||this.outputFormat,outputSchema:options.outputSchema||this.outputSchema,startPosition:options.startPosition||this.startPosition,maxRecords:options.maxRecords||this.maxRecords}});if(options.DistributedSearch||this.DistributedSearch){this.writeNode("csw:DistributedSearc [...]
+var ResponseHandler=options.ResponseHandler||this.ResponseHandler;if(OpenLayers.Util.isArray(ResponseHandler)&&ResponseHandler.length>0){for(var i=0,len=ResponseHandler.length;i<len;i++){this.writeNode("csw:ResponseHandler",ResponseHandler[i],node);}}
+this.writeNode("Query",options.Query||this.Query,node);return node;},"DistributedSearch":function(options){var node=this.createElementNSPlus("csw:DistributedSearch",{attributes:{hopCount:options.hopCount}});return node;},"ResponseHandler":function(options){var node=this.createElementNSPlus("csw:ResponseHandler",{value:options.value});return node;},"Query":function(options){if(!options){options={};}
+var node=this.createElementNSPlus("csw:Query",{attributes:{typeNames:options.typeNames||"csw:Record"}});var ElementName=options.ElementName;if(OpenLayers.Util.isArray(ElementName)&&ElementName.length>0){for(var i=0,len=ElementName.length;i<len;i++){this.writeNode("csw:ElementName",ElementName[i],node);}}else{this.writeNode("csw:ElementSetName",options.ElementSetName||{value:'summary'},node);}
+if(options.Constraint){this.writeNode("csw:Constraint",options.Constraint,node);}
+if(options.SortBy){this.writeNode("ogc:SortBy",options.SortBy,node);}
+return node;},"ElementName":function(options){var node=this.createElementNSPlus("csw:ElementName",{value:options.value});return node;},"ElementSetName":function(options){var node=this.createElementNSPlus("csw:ElementSetName",{attributes:{typeNames:options.typeNames},value:options.value});return node;},"Constraint":function(options){var node=this.createElementNSPlus("csw:Constraint",{attributes:{version:options.version}});if(options.Filter){var format=new OpenLayers.Format.Filter({version [...]
+return node;}},"ogc":OpenLayers.Format.Filter.v1_1_0.prototype.writers["ogc"]},CLASS_NAME:"OpenLayers.Format.CSWGetRecords.v2_0_2"});OpenLayers.Marker.Box=OpenLayers.Class(OpenLayers.Marker,{bounds:null,div:null,initialize:function(bounds,borderColor,borderWidth){this.bounds=bounds;this.div=OpenLayers.Util.createDiv();this.div.style.overflow='hidden';this.events=new OpenLayers.Events(this,this.div,null);this.setBorder(borderColor,borderWidth);},destroy:function(){this.bounds=null;this.di [...]
+if(!width){width=2;}
+this.div.style.border=width+"px solid "+color;},draw:function(px,sz){OpenLayers.Util.modifyDOMElement(this.div,null,px,sz);return this.div;},onScreen:function(){var onScreen=false;if(this.map){var screenBounds=this.map.getExtent();onScreen=screenBounds.containsBounds(this.bounds,true,true);}
+return onScreen;},display:function(display){this.div.style.display=(display)?"":"none";},CLASS_NAME:"OpenLayers.Marker.Box"});OpenLayers.Format.Text=OpenLayers.Class(OpenLayers.Format,{defaultStyle:null,extractStyles:true,initialize:function(options){options=options||{};if(options.extractStyles!==false){options.defaultStyle={'externalGraphic':OpenLayers.Util.getImagesLocation()+"marker.png",'graphicWidth':21,'graphicHeight':25,'graphicXOffset':-10.5,'graphicYOffset':-12.5};}
+OpenLayers.Format.prototype.initialize.apply(this,[options]);},read:function(text){var lines=text.split('\n');var columns;var features=[];for(var lcv=0;lcv<(lines.length-1);lcv++){var currLine=lines[lcv].replace(/^\s*/,'').replace(/\s*$/,'');if(currLine.charAt(0)!='#'){if(!columns){columns=currLine.split('\t');}else{var vals=currLine.split('\t');var geometry=new OpenLayers.Geometry.Point(0,0);var attributes={};var style=this.defaultStyle?OpenLayers.Util.applyDefaults({},this.defaultStyle [...]
+attributes['title']=vals[valIndex];else if(columns[valIndex]=='image'||columns[valIndex]=='icon'&&style){style['externalGraphic']=vals[valIndex];}else if(columns[valIndex]=='iconSize'&&style){var size=vals[valIndex].split(',');style['graphicWidth']=parseFloat(size[0]);style['graphicHeight']=parseFloat(size[1]);}else if(columns[valIndex]=='iconOffset'&&style){var offset=vals[valIndex].split(',');style['graphicXOffset']=parseFloat(offset[0]);style['graphicYOffset']=parseFloat(offset[1]);}e [...]
+if(set){if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}
+var feature=new OpenLayers.Feature.Vector(geometry,attributes,style);features.push(feature);}}}}
+return features;},CLASS_NAME:"OpenLayers.Format.Text"});OpenLayers.Layer.Text=OpenLayers.Class(OpenLayers.Layer.Markers,{location:null,features:null,formatOptions:null,selectedFeature:null,initialize:function(name,options){OpenLayers.Layer.Markers.prototype.initialize.apply(this,arguments);this.features=new Array();},destroy:function(){OpenLayers.Layer.Markers.prototype.destroy.apply(this,arguments);this.clearFeatures();this.features=null;},loadText:function(){if(!this.loaded){if(this.lo [...]
+var parser=new OpenLayers.Format.Text(options);var features=parser.read(text);for(var i=0,len=features.length;i<len;i++){var data={};var feature=features[i];var location;var iconSize,iconOffset;location=new OpenLayers.LonLat(feature.geometry.x,feature.geometry.y);if(feature.style.graphicWidth&&feature.style.graphicHeight){iconSize=new OpenLayers.Size(feature.style.graphicWidth,feature.style.graphicHeight);}
+if(feature.style.graphicXOffset!==undefined&&feature.style.graphicYOffset!==undefined){iconOffset=new OpenLayers.Pixel(feature.style.graphicXOffset,feature.style.graphicYOffset);}
+if(feature.style.externalGraphic!=null){data.icon=new OpenLayers.Icon(feature.style.externalGraphic,iconSize,iconOffset);}else{data.icon=OpenLayers.Marker.defaultIcon();if(iconSize!=null){data.icon.setSize(iconSize);}}
+if((feature.attributes.title!=null)&&(feature.attributes.description!=null)){data['popupContentHTML']='<h2>'+feature.attributes.title+'</h2>'+'<p>'+feature.attributes.description+'</p>';}
+data['overflow']=feature.attributes.overflow||"auto";var markerFeature=new OpenLayers.Feature(this,location,data);this.features.push(markerFeature);var marker=markerFeature.createMarker();if((feature.attributes.title!=null)&&(feature.attributes.description!=null)){marker.events.register('click',markerFeature,this.markerClick);}
+this.addMarker(marker);}
+this.events.triggerEvent("loadend");},markerClick:function(evt){var sameMarkerClicked=(this==this.layer.selectedFeature);this.layer.selectedFeature=(!sameMarkerClicked)?this:null;for(var i=0,len=this.layer.map.popups.length;i<len;i++){this.layer.map.removePopup(this.layer.map.popups[i]);}
+if(!sameMarkerClicked){this.layer.map.addPopup(this.createPopup());}
+OpenLayers.Event.stop(evt);},clearFeatures:function(){if(this.features!=null){while(this.features.length>0){var feature=this.features[0];OpenLayers.Util.removeItem(this.features,feature);feature.destroy();}}},CLASS_NAME:"OpenLayers.Layer.Text"});OpenLayers.Handler.RegularPolygon=OpenLayers.Class(OpenLayers.Handler.Drag,{sides:4,radius:null,snapAngle:null,snapToggle:'shiftKey',layerOptions:null,persist:false,irregular:false,angle:null,fixedRadius:false,feature:null,layer:null,origin:null, [...]
+OpenLayers.Handler.Drag.prototype.initialize.apply(this,[control,callbacks,options]);this.options=(options)?options:{};},setOptions:function(newOptions){OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},activate:function(){var activated=false;if(OpenLayers.Handler.Drag.prototype.activate.apply(this,arguments)){var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=ne [...]
+return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.Drag.prototype.deactivate.apply(this,arguments)){if(this.dragging){this.cancel();}
+if(this.layer.map!=null){this.layer.destroy(false);if(this.feature){this.feature.destroy();}}
+this.layer=null;this.feature=null;deactivated=true;}
+return deactivated;},down:function(evt){this.fixedRadius=!!(this.radius);var maploc=this.map.getLonLatFromPixel(evt.xy);this.origin=new OpenLayers.Geometry.Point(maploc.lon,maploc.lat);if(!this.fixedRadius||this.irregular){this.radius=this.map.getResolution();}
+if(this.persist){this.clear();}
+this.feature=new OpenLayers.Feature.Vector();this.createGeometry();this.callback("create",[this.origin,this.feature]);this.layer.addFeatures([this.feature],{silent:true});this.layer.drawFeature(this.feature,this.style);},move:function(evt){var maploc=this.map.getLonLatFromPixel(evt.xy);var point=new OpenLayers.Geometry.Point(maploc.lon,maploc.lat);if(this.irregular){var ry=Math.sqrt(2)*Math.abs(point.y-this.origin.y)/2;this.radius=Math.max(this.map.getResolution()/2,ry);}else if(this.fix [...]
+this.modifyGeometry();if(this.irregular){var dx=point.x-this.origin.x;var dy=point.y-this.origin.y;var ratio;if(dy==0){ratio=dx/(this.radius*Math.sqrt(2));}else{ratio=dx/dy;}
+this.feature.geometry.resize(1,this.origin,ratio);this.feature.geometry.move(dx/2,dy/2);}
+this.layer.drawFeature(this.feature,this.style);},up:function(evt){this.finalize();if(this.start==this.last){this.callback("done",[evt.xy]);}},out:function(evt){this.finalize();},createGeometry:function(){this.angle=Math.PI*((1/this.sides)-(1/2));if(this.snapAngle){this.angle+=this.snapAngle*(Math.PI/180);}
+this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle);},modifyGeometry:function(){var angle,point;var ring=this.feature.geometry.components[0];if(ring.components.length!=(this.sides+1)){this.createGeometry();ring=this.feature.geometry.components[0];}
+for(var i=0;i<this.sides;++i){point=ring.components[i];angle=this.angle+(i*2*Math.PI/this.sides);point.x=this.origin.x+(this.radius*Math.cos(angle));point.y=this.origin.y+(this.radius*Math.sin(angle));point.clearBounds();}},calculateAngle:function(point,evt){var alpha=Math.atan2(point.y-this.origin.y,point.x-this.origin.x);if(this.snapAngle&&(this.snapToggle&&!evt[this.snapToggle])){var snapAngleRad=(Math.PI/180)*this.snapAngle;this.angle=Math.round(alpha/snapAngleRad)*snapAngleRad;}else [...]
+if(!this.persist&&(name=="done"||name=="cancel")){this.clear();}},CLASS_NAME:"OpenLayers.Handler.RegularPolygon"});OpenLayers.Control.SLDSelect=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:["selected"],clearOnDeactivate:false,layers:null,callbacks:null,selectionSymbolizer:{'Polygon':{fillColor:'#FF0000',stroke:false},'Line':{strokeColor:'#FF0000',strokeWidth:2},'Point':{graphicName:'square',fillColor:'#FF0000',pointRadius:5}},layerOptions:null,handlerOptions:null,sketchStyle:null,wfs [...]
+this.handler=new handler(this,this.callbacks,this.handlerOptions);},destroy:function(){for(var key in this.layerCache){delete this.layerCache[key];}
+for(var key in this.wfsCache){delete this.wfsCache[key];}
+OpenLayers.Control.prototype.destroy.apply(this,arguments);},coupleLayerVisiblity:function(evt){this.setVisibility(evt.object.getVisibility());},createSelectionLayer:function(source){var selectionLayer;if(!this.layerCache[source.id]){selectionLayer=new OpenLayers.Layer.WMS(source.name,source.url,source.params,OpenLayers.Util.applyDefaults(this.layerOptions,source.getOptions()));this.layerCache[source.id]=selectionLayer;if(this.layerOptions.displayInLayerSwitcher===false){source.events.on [...]
+this.map.addLayer(selectionLayer);}else{selectionLayer=this.layerCache[source.id];}
+return selectionLayer;},createSLD:function(layer,filters,geometryAttributes){var sld={version:"1.0.0",namedLayers:{}};var layerNames=[layer.params.LAYERS].join(",").split(",");for(var i=0,len=layerNames.length;i<len;i++){var name=layerNames[i];sld.namedLayers[name]={name:name,userStyles:[]};var symbolizer=this.selectionSymbolizer;var geometryAttribute=geometryAttributes[i];if(geometryAttribute.type.indexOf('Polygon')>=0){symbolizer={Polygon:this.selectionSymbolizer['Polygon']};}else if(g [...]
+var filter=filters[i];sld.namedLayers[name].userStyles.push({name:'default',rules:[new OpenLayers.Rule({symbolizer:symbolizer,filter:filter,maxScaleDenominator:layer.options.minScale})]});}
+return new OpenLayers.Format.SLD({srsName:this.map.getProjection()}).write(sld);},parseDescribeLayer:function(request){var format=new OpenLayers.Format.WMSDescribeLayer();var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+var describeLayer=format.read(doc);var typeNames=[];var url=null;for(var i=0,len=describeLayer.length;i<len;i++){if(describeLayer[i].owsType=="WFS"){typeNames.push(describeLayer[i].typeName);url=describeLayer[i].owsURL;}}
+var options={url:url,params:{SERVICE:"WFS",TYPENAME:typeNames.toString(),REQUEST:"DescribeFeatureType",VERSION:"1.0.0"},callback:function(request){var format=new OpenLayers.Format.WFSDescribeFeatureType();var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+var describeFeatureType=format.read(doc);this.control.wfsCache[this.layer.id]=describeFeatureType;this.control._queue&&this.control.applySelection();},scope:this};OpenLayers.Request.GET(options);},getGeometryAttributes:function(layer){var result=[];var cache=this.wfsCache[layer.id];for(var i=0,len=cache.featureTypes.length;i<len;i++){var typeName=cache.featureTypes[i];var properties=typeName.properties;for(var j=0,lenj=properties.length;j<lenj;j++){var property=properties[j];var type=pro [...]
+return result;},activate:function(){var activated=OpenLayers.Control.prototype.activate.call(this);if(activated){for(var i=0,len=this.layers.length;i<len;i++){var layer=this.layers[i];if(layer&&!this.wfsCache[layer.id]){var options={url:layer.url,params:{SERVICE:"WMS",VERSION:layer.params.VERSION,LAYERS:layer.params.LAYERS,REQUEST:"DescribeLayer"},callback:this.parseDescribeLayer,scope:{layer:layer,control:this}};OpenLayers.Request.GET(options);}}}
+return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.call(this);if(deactivated){for(var i=0,len=this.layers.length;i<len;i++){var layer=this.layers[i];if(layer&&this.clearOnDeactivate===true){var layerCache=this.layerCache;var selectionLayer=layerCache[layer.id];if(selectionLayer){layer.events.un({"visibilitychanged":this.coupleLayerVisiblity,scope:selectionLayer});selectionLayer.destroy();delete layerCache[layer.id];}}}}
+return deactivated;},setLayers:function(layers){if(this.active){this.deactivate();this.layers=layers;this.activate();}else{this.layers=layers;}},createFilter:function(geometryAttribute,geometry){var filter=null;if(this.handler instanceof OpenLayers.Handler.RegularPolygon){if(this.handler.irregular===true){filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.BBOX,property:geometryAttribute.name,value:geometry.getBounds()});}else{filter=new OpenLayers.Filter.Spatial({type:O [...]
+return filter;},select:function(geometry){this._queue=function(){for(var i=0,len=this.layers.length;i<len;i++){var layer=this.layers[i];var geometryAttributes=this.getGeometryAttributes(layer);var filters=[];for(var j=0,lenj=geometryAttributes.length;j<lenj;j++){var geometryAttribute=geometryAttributes[j];if(geometryAttribute!==null){if(!(geometry instanceof OpenLayers.Geometry)){var point=this.map.getLonLatFromPixel(geometry.xy);geometry=new OpenLayers.Geometry.Point(point.lon,point.lat);}
+var filter=this.createFilter(geometryAttribute,geometry);if(filter!==null){filters.push(filter);}}}
+var selectionLayer=this.createSelectionLayer(layer);var sld=this.createSLD(layer,filters,geometryAttributes);this.events.triggerEvent("selected",{layer:layer,filters:filters});selectionLayer.mergeNewParams({SLD_BODY:sld});delete this._queue;}};this.applySelection();},applySelection:function(){var canApply=true;for(var i=0,len=this.layers.length;i<len;i++){if(!this.wfsCache[this.layers[i].id]){canApply=false;break;}}
+canApply&&this._queue.call(this);},CLASS_NAME:"OpenLayers.Control.SLDSelect"});OpenLayers.Control.Scale=OpenLayers.Class(OpenLayers.Control,{element:null,geodesic:false,initialize:function(element,options){OpenLayers.Control.prototype.initialize.apply(this,[options]);this.element=OpenLayers.Util.getElement(element);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!this.element){this.element=document.createElement("div");this.div.appendChild(this.element);}
+this.map.events.register('moveend',this,this.updateScale);this.updateScale();return this.div;},updateScale:function(){var scale;if(this.geodesic===true){var units=this.map.getUnits();if(!units){return;}
+var inches=OpenLayers.INCHES_PER_UNIT;scale=(this.map.getGeodesicPixelSize().w||0.000001)*inches["km"]*OpenLayers.DOTS_PER_INCH;}else{scale=this.map.getScale();}
+if(!scale){return;}
+if(scale>=9500&&scale<=950000){scale=Math.round(scale/1000)+"K";}else if(scale>=950000){scale=Math.round(scale/1000000)+"M";}else{scale=Math.round(scale);}
+this.element.innerHTML=OpenLayers.i18n("Scale = 1 : ${scaleDenom}",{'scaleDenom':scale});},CLASS_NAME:"OpenLayers.Control.Scale"});OpenLayers.Control.Button=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_BUTTON,trigger:function(){},CLASS_NAME:"OpenLayers.Control.Button"});OpenLayers.Layer.MapGuide=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,useHttpTile:false,singleTile:false,useOverlay:false,useAsyncOverlay:true,TILE_PARAMS:{operation:'GETTILEIMAGE',versio [...]
+if(options&&options.useOverlay!=null){this.useOverlay=options.useOverlay;}
+if(this.singleTile){if(this.useOverlay){OpenLayers.Util.applyDefaults(this.params,this.OVERLAY_PARAMS);if(!this.useAsyncOverlay){this.params.version="1.0.0";}}else{OpenLayers.Util.applyDefaults(this.params,this.SINGLE_TILE_PARAMS);}}else{if(this.useHttpTile){OpenLayers.Util.applyDefaults(this.params,this.FOLDER_PARAMS);}else{OpenLayers.Util.applyDefaults(this.params,this.TILE_PARAMS);}
+this.setTileSize(this.defaultSize);}},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.MapGuide(this.name,this.url,this.params,this.getOptions());}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var url;var center=bounds.getCenterLonLat();var mapSize=this.map.getSize();if(this.singleTile){var params={setdisplaydpi:OpenLayers.DOTS_PER_INCH,setdisplayheight:mapSize.h*this.ratio,setdisplaywidth:mapSize.w*this.ratio,setviewcenterx:center.lon,setviewcentery:center.lat,setviewscale:this.map.getScale()};if(this.useOverlay&&!this.useAsyncOverlay){var getVisParams={};getVisParams=OpenLayers.U [...]
+url=this.getFullRequestString(params);}else{var currentRes=this.map.getResolution();var colidx=Math.floor((bounds.left-this.maxExtent.left)/currentRes);colidx=Math.round(colidx/this.tileSize.w);var rowidx=Math.floor((this.maxExtent.top-bounds.top)/currentRes);rowidx=Math.round(rowidx/this.tileSize.h);if(this.useHttpTile){url=this.getImageFilePath({tilecol:colidx,tilerow:rowidx,scaleindex:this.resolutions.length-this.map.zoom-1});}else{url=this.getFullRequestString({tilecol:colidx,tilerow [...]
+return url;},getFullRequestString:function(newParams,altUrl){var url=(altUrl==null)?this.url:altUrl;if(typeof url=="object"){url=url[Math.floor(Math.random()*url.length)];}
+var requestString=url;var allParams=OpenLayers.Util.extend({},this.params);allParams=OpenLayers.Util.extend(allParams,newParams);var urlParams=OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));for(var key in allParams){if(key.toUpperCase()in urlParams){delete allParams[key];}}
+var paramsString=OpenLayers.Util.getParameterString(allParams);paramsString=paramsString.replace(/,/g,"+");if(paramsString!=""){var lastServerChar=url.charAt(url.length-1);if((lastServerChar=="&")||(lastServerChar=="?")){requestString+=paramsString;}else{if(url.indexOf('?')==-1){requestString+='?'+paramsString;}else{requestString+='&'+paramsString;}}}
+return requestString;},getImageFilePath:function(newParams,altUrl){var url=(altUrl==null)?this.url:altUrl;if(typeof url=="object"){url=url[Math.floor(Math.random()*url.length)];}
+var requestString=url;var tileRowGroup="";var tileColGroup="";if(newParams.tilerow<0){tileRowGroup='-';}
+if(newParams.tilerow==0){tileRowGroup+='0';}else{tileRowGroup+=Math.floor(Math.abs(newParams.tilerow/this.params.tileRowsPerFolder))*this.params.tileRowsPerFolder;}
+if(newParams.tilecol<0){tileColGroup='-';}
+if(newParams.tilecol==0){tileColGroup+='0';}else{tileColGroup+=Math.floor(Math.abs(newParams.tilecol/this.params.tileColumnsPerFolder))*this.params.tileColumnsPerFolder;}
+var tilePath='/S'+Math.floor(newParams.scaleindex)
++'/'+this.params.basemaplayergroupname
++'/R'+tileRowGroup
++'/C'+tileColGroup
++'/'+(newParams.tilerow%this.params.tileRowsPerFolder)
++'_'+(newParams.tilecol%this.params.tileColumnsPerFolder)
++'.'+this.params.format;if(this.params.querystring){tilePath+="?"+this.params.querystring;}
+requestString+=tilePath;return requestString;},calculateGridLayout:function(bounds,origin,resolution){var tilelon=resolution*this.tileSize.w;var tilelat=resolution*this.tileSize.h;var offsetlon=bounds.left-origin.lon;var tilecol=Math.floor(offsetlon/tilelon)-this.buffer;var tilecolremain=offsetlon/tilelon-tilecol;var tileoffsetx=-tilecolremain*this.tileSize.w;var tileoffsetlon=origin.lon+tilecol*tilelon;var offsetlat=origin.lat-bounds.top+tilelat;var tilerow=Math.floor(offsetlat/tilelat) [...]
+this.callbacks=OpenLayers.Util.extend(callbacks,this.callbacks);this.handlerOptions=OpenLayers.Util.extend({persist:this.persist},this.handlerOptions);this.handler=new handler(this,this.callbacks,this.handlerOptions);},deactivate:function(){this.cancelDelay();return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},cancel:function(){this.cancelDelay();this.handler.cancel();},setImmediate:function(immediate){this.immediate=immediate;if(this.immediate){this.callbacks.modify=t [...]
+this.handler=new handler(this,this.callbacks,options);if(active){this.activate();}},measureComplete:function(geometry){this.cancelDelay();this.measure(geometry,"measure");},measurePartial:function(point,geometry){this.cancelDelay();geometry=geometry.clone();if(this.handler.freehandMode(this.handler.evt)){this.measure(geometry,"measurepartial");}else{this.delayedTrigger=window.setTimeout(OpenLayers.Function.bind(function(){this.delayedTrigger=null;this.measure(geometry,"measurepartial");} [...]
+this.events.triggerEvent(eventType,{measure:stat[0],units:stat[1],order:order,geometry:geometry});},getBestArea:function(geometry){var units=this.displaySystemUnits[this.displaySystem];var unit,area;for(var i=0,len=units.length;i<len;++i){unit=units[i];area=this.getArea(geometry,unit);if(area>1){break;}}
+return[area,unit];},getArea:function(geometry,units){var area,geomUnits;if(this.geodesic){area=geometry.getGeodesicArea(this.map.getProjectionObject());geomUnits="m";}else{area=geometry.getArea();geomUnits=this.map.getUnits();}
+var inPerDisplayUnit=OpenLayers.INCHES_PER_UNIT[units];if(inPerDisplayUnit){var inPerMapUnit=OpenLayers.INCHES_PER_UNIT[geomUnits];area*=Math.pow((inPerMapUnit/inPerDisplayUnit),2);}
+return area;},getBestLength:function(geometry){var units=this.displaySystemUnits[this.displaySystem];var unit,length;for(var i=0,len=units.length;i<len;++i){unit=units[i];length=this.getLength(geometry,unit);if(length>1){break;}}
+return[length,unit];},getLength:function(geometry,units){var length,geomUnits;if(this.geodesic){length=geometry.getGeodesicLength(this.map.getProjectionObject());geomUnits="m";}else{length=geometry.getLength();geomUnits=this.map.getUnits();}
+var inPerDisplayUnit=OpenLayers.INCHES_PER_UNIT[units];if(inPerDisplayUnit){var inPerMapUnit=OpenLayers.INCHES_PER_UNIT[geomUnits];length*=(inPerMapUnit/inPerDisplayUnit);}
+return length;},CLASS_NAME:"OpenLayers.Control.Measure"});OpenLayers.Layer.KaMap=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,units:null,resolution:OpenLayers.DOTS_PER_INCH,DEFAULT_PARAMS:{i:'jpeg',map:''},initialize:function(name,url,params,options){var newArguments=[];newArguments.push(name,url,params,options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);this.params=OpenLayers.Util.applyDefaults(this.params,this.DEFAULT_PARAMS);},getURL:function(bound [...]
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();}
+obj.grid=[];return obj;},getTileBounds:function(viewPortPx){var resolution=this.getResolution();var tileMapWidth=resolution*this.tileSize.w;var tileMapHeight=resolution*this.tileSize.h;var mapPoint=this.getLonLatFromViewPortPx(viewPortPx);var tileLeft=tileMapWidth*Math.floor(mapPoint.lon/tileMapWidth);var tileBottom=tileMapHeight*Math.floor(mapPoint.lat/tileMapHeight);return new OpenLayers.Bounds(tileLeft,tileBottom,tileLeft+tileMapWidth,tileBottom+tileMapHeight);},CLASS_NAME:"OpenLayers [...]
+this.contentDiv.style.position="absolute";this.contentDiv.style.zIndex=1;if(closeBox){this.closeDiv.style.zIndex=1;}
+this.groupDiv.style.position="absolute";this.groupDiv.style.top="0px";this.groupDiv.style.left="0px";this.groupDiv.style.height="100%";this.groupDiv.style.width="100%";},destroy:function(){this.imageSrc=null;this.imageSize=null;this.isAlphaImage=null;this.fixedRelativePosition=false;this.positionBlocks=null;for(var i=0;i<this.blocks.length;i++){var block=this.blocks[i];if(block.image){block.div.removeChild(block.image);}
+block.image=null;if(block.div){this.groupDiv.removeChild(block.div);}
+block.div=null;}
+this.blocks=null;OpenLayers.Popup.Anchored.prototype.destroy.apply(this,arguments);},setBackgroundColor:function(color){},setBorder:function(){},setOpacity:function(opacity){},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.updateBlocks();},updateRelativePosition:function(){this.padding=this.positionBlocks[this.relativePosition].padding;if(this.closeDiv){var contentDivPadding=this.getContentDivPadding();this.closeDiv.style.right=conten [...]
+this.padding.right+"px";this.closeDiv.style.top=contentDivPadding.top+
+this.padding.top+"px";}
+this.updateBlocks();},calculateNewPx:function(px){var newPx=OpenLayers.Popup.Anchored.prototype.calculateNewPx.apply(this,arguments);newPx=newPx.offset(this.positionBlocks[this.relativePosition].offset);return newPx;},createBlocks:function(){this.blocks=[];var firstPosition=null;for(var key in this.positionBlocks){firstPosition=key;break;}
+var position=this.positionBlocks[firstPosition];for(var i=0;i<position.blocks.length;i++){var block={};this.blocks.push(block);var divId=this.id+'_FrameDecorationDiv_'+i;block.div=OpenLayers.Util.createDiv(divId,null,null,null,"absolute",null,"hidden",null);var imgId=this.id+'_FrameDecorationImg_'+i;var imageCreator=(this.isAlphaImage)?OpenLayers.Util.createAlphaImageDiv:OpenLayers.Util.createImage;block.image=imageCreator(imgId,null,this.imageSize,this.imageSrc,"absolute",null,null,null [...]
+if(this.size&&this.relativePosition){var position=this.positionBlocks[this.relativePosition];for(var i=0;i<position.blocks.length;i++){var positionBlock=position.blocks[i];var block=this.blocks[i];var l=positionBlock.anchor.left;var b=positionBlock.anchor.bottom;var r=positionBlock.anchor.right;var t=positionBlock.anchor.top;var w=(isNaN(positionBlock.size.w))?this.size.w-(r+l):positionBlock.size.w;var h=(isNaN(positionBlock.size.h))?this.size.h-(b+t):positionBlock.size.h;block.div.style [...]
+this.contentDiv.style.left=this.padding.left+"px";this.contentDiv.style.top=this.padding.top+"px";}},CLASS_NAME:"OpenLayers.Popup.Framed"});OpenLayers.Popup.FramedCloud=OpenLayers.Class(OpenLayers.Popup.Framed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:true,panMapIfOutOfView:true,imageSize:new OpenLayers.Size(1276,736),isAlphaImage:false,fixedRelativePosition:false,positionBlocks:{"tl":{'offset':new OpenLayers.Pixel(44,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks': [...]
+return true;},initImgDiv:function(){this.useIFrame=this.maxGetUrlLength!==null&&!this.layer.async&&this.url.length>this.maxGetUrlLength;if(this.imgDiv!=null){var nodeName=this.imgDiv.nodeName.toLowerCase();if((this.useIFrame&&nodeName=="img")||(!this.useIFrame&&nodeName=="div")){this.removeImgDiv();this.imgDiv=null;}}
+if(this.useIFrame){if(this.imgDiv==null){var eventPane=document.createElement("div");if(OpenLayers.BROWSER_NAME=="msie"){eventPane.style.backgroundColor='#FFFFFF';eventPane.style.filter='chroma(color=#FFFFFF)';}
+OpenLayers.Util.modifyDOMElement(eventPane,null,new OpenLayers.Pixel(0,0),this.layer.getImageSize(),"absolute");this.imgDiv=document.createElement("div");this.imgDiv.appendChild(eventPane);OpenLayers.Util.modifyDOMElement(this.imgDiv,this.id,null,this.layer.getImageSize(),"relative");this.imgDiv.className='olTileImage';this.frame.appendChild(this.imgDiv);this.layer.div.appendChild(this.frame);if(this.layer.opacity!=null){OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,null,null,nu [...]
+this.imgDiv.map=this.layer.map;}
+this.imgDiv.viewRequestID=this.layer.map.viewRequestID;}else{OpenLayers.Tile.Image.prototype.initImgDiv.apply(this,arguments);}},createIFrame:function(){var id=this.id+'_iFrame';var iframe;if(OpenLayers.BROWSER_NAME=="msie"){iframe=document.createElement('<iframe name="'+id+'">');iframe.style.backgroundColor='#FFFFFF';iframe.style.filter='chroma(color=#FFFFFF)';}
+else{iframe=document.createElement('iframe');iframe.style.backgroundColor='transparent';iframe.name=id;}
+iframe.id=id;iframe.scrolling='no';iframe.marginWidth='0px';iframe.marginHeight='0px';iframe.frameBorder='0';OpenLayers.Util.modifyDOMElement(iframe,id,new OpenLayers.Pixel(0,0),this.layer.getImageSize(),"absolute");var onload=function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("loadend");}};OpenLayers.Event.observe(iframe,'load',OpenLayers.Function.bind(onload,this));return iframe;},createRequestForm:function(){var form=document.createElement('form');form.method= [...]
+return form;}};OpenLayers.Geometry.Rectangle=OpenLayers.Class(OpenLayers.Geometry,{x:null,y:null,width:null,height:null,initialize:function(x,y,width,height){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.x=x;this.y=y;this.width=width;this.height=height;},calculateBounds:function(){this.bounds=new OpenLayers.Bounds(this.x,this.y,this.x+this.width,this.y+this.height);},getLength:function(){var length=(2*this.width)+(2*this.height);return length;},getArea:function(){va [...]
+this.loadFeaturesForRegion(this.requestSuccess);}},loadFeaturesForRegion:function(success,failure){if(this.request){this.request.abort();}
+this.request=OpenLayers.Request.GET({url:this.url,success:success,failure:failure,scope:this});},requestSuccess:function(request){if(this.features){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+if(this.layer.vectorMode){this.layer.addFeatures(this.layer.formatObject.read(doc));}else{var xml=new OpenLayers.Format.XML();if(typeof doc=="string"){doc=xml.read(doc);}
+var resultFeatures=xml.getElementsByTagNameNS(doc,"http://www.opengis.net/gml","featureMember");this.addResults(resultFeatures);}}
+if(this.events){this.events.triggerEvent("loadend");}
+this.request=null;},addResults:function(results){for(var i=0;i<results.length;i++){var feature=new this.layer.featureClass(this.layer,results[i]);this.features.push(feature);}},destroyAllFeatures:function(){while(this.features.length>0){var feature=this.features.shift();feature.destroy();}},CLASS_NAME:"OpenLayers.Tile.WFS"});OpenLayers.Format.SOSCapabilities=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.0.0",CLASS_NAME:"OpenLayers.Format.SOSCapabilities"});OpenLa [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var capabilities={};this.readNode(data,capabilities);return capabilities;},readers:{"gml":OpenLayers.Util.applyDefaults({"name":function(node,obj){obj.name=this.getChildValue(node);},"TimePeriod":function(node,obj){obj.timePeriod={};this.readChildNodes(node,obj.timePeriod);},"beginPosition":function(node,timePeriod){timePeriod.beginPosition=this.getChildValue(node);},"endPosition":function(node,timePeriod){timePeriod.endPosition=this.getChildValue(node);}},OpenLayers.Format.GML.v3.protot [...]
+OpenLayers.Event.stop(evt);return propagate;},touchmove:function(evt){if(this.started&&OpenLayers.Event.isMultiTouch(evt)){this.pinching=true;var current=this.getPinchData(evt);this.callback("move",[evt,current]);this.last=current;OpenLayers.Event.stop(evt);}
+return true;},touchend:function(evt){if(this.started){this.started=false;this.pinching=false;this.callback("done",[evt,this.start,this.last]);this.start=null;this.last=null;}
+return true;},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.pinching=false;activated=true;}
+return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.started=false;this.pinching=false;this.start=null;this.last=null;deactivated=true;}
+return deactivated;},getDistance:function(touches){var t0=touches[0];var t1=touches[1];return Math.sqrt(Math.pow(t0.clientX-t1.clientX,2)+
+Math.pow(t0.clientY-t1.clientY,2));},getPinchData:function(evt){var distance=this.getDistance(evt.touches);var scale=distance/this.start.distance;return{distance:distance,delta:this.last.distance-distance,scale:scale};},CLASS_NAME:"OpenLayers.Handler.Pinch"});OpenLayers.Control.MouseDefaults=OpenLayers.Class(OpenLayers.Control,{performedDrag:false,wheelObserver:null,initialize:function(){OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){if(this.handler){t [...]
+this.handler=null;this.map.events.un({"click":this.defaultClick,"dblclick":this.defaultDblClick,"mousedown":this.defaultMouseDown,"mouseup":this.defaultMouseUp,"mousemove":this.defaultMouseMove,"mouseout":this.defaultMouseOut,scope:this});OpenLayers.Event.stopObserving(window,"DOMMouseScroll",this.wheelObserver);OpenLayers.Event.stopObserving(window,"mousewheel",this.wheelObserver);OpenLayers.Event.stopObserving(document,"mousewheel",this.wheelObserver);this.wheelObserver=null;OpenLayers [...]
+var notAfterDrag=!this.performedDrag;this.performedDrag=false;return notAfterDrag;},defaultDblClick:function(evt){var newCenter=this.map.getLonLatFromViewPortPx(evt.xy);this.map.setCenter(newCenter,this.map.zoom+1);OpenLayers.Event.stop(evt);return false;},defaultMouseDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+this.mouseDragStart=evt.xy.clone();this.performedDrag=false;if(evt.shiftKey){this.map.div.style.cursor="crosshair";this.zoomBox=OpenLayers.Util.createDiv('zoomBox',this.mouseDragStart,null,null,"absolute","2px solid red");this.zoomBox.style.backgroundColor="white";this.zoomBox.style.filter="alpha(opacity=50)";this.zoomBox.style.opacity="0.50";this.zoomBox.style.fontSize="1px";this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.eventsDiv.appendChild(this.zoomBox);}
+document.onselectstart=OpenLayers.Function.False;OpenLayers.Event.stop(evt);},defaultMouseMove:function(evt){this.mousePosition=evt.xy.clone();if(this.mouseDragStart!=null){if(this.zoomBox){var deltaX=Math.abs(this.mouseDragStart.x-evt.xy.x);var deltaY=Math.abs(this.mouseDragStart.y-evt.xy.y);this.zoomBox.style.width=Math.max(1,deltaX)+"px";this.zoomBox.style.height=Math.max(1,deltaY)+"px";if(evt.xy.x<this.mouseDragStart.x){this.zoomBox.style.left=evt.xy.x+"px";}
+if(evt.xy.y<this.mouseDragStart.y){this.zoomBox.style.top=evt.xy.y+"px";}}else{var deltaX=this.mouseDragStart.x-evt.xy.x;var deltaY=this.mouseDragStart.y-evt.xy.y;var size=this.map.getSize();var newXY=new OpenLayers.Pixel(size.w/2+deltaX,size.h/2+deltaY);var newCenter=this.map.getLonLatFromViewPortPx(newXY);this.map.setCenter(newCenter,null,true);this.mouseDragStart=evt.xy.clone();this.map.div.style.cursor="move";}
+this.performedDrag=true;}},defaultMouseUp:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+if(this.zoomBox){this.zoomBoxEnd(evt);}else{if(this.performedDrag){this.map.setCenter(this.map.center);}}
+document.onselectstart=null;this.mouseDragStart=null;this.map.div.style.cursor="";},defaultMouseOut:function(evt){if(this.mouseDragStart!=null&&OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){if(this.zoomBox){this.removeZoomBox();}
+this.mouseDragStart=null;}},defaultWheelUp:function(evt){if(this.map.getZoom()<=this.map.getNumZoomLevels()){this.map.setCenter(this.map.getLonLatFromPixel(evt.xy),this.map.getZoom()+1);}},defaultWheelDown:function(evt){if(this.map.getZoom()>0){this.map.setCenter(this.map.getLonLatFromPixel(evt.xy),this.map.getZoom()-1);}},zoomBoxEnd:function(evt){if(this.mouseDragStart!=null){if(Math.abs(this.mouseDragStart.x-evt.xy.x)>5||Math.abs(this.mouseDragStart.y-evt.xy.y)>5){var start=this.map.ge [...]
+this.removeZoomBox();}},removeZoomBox:function(){this.map.eventsDiv.removeChild(this.zoomBox);this.zoomBox=null;},onWheelEvent:function(e){var inMap=false;var elem=OpenLayers.Event.element(e);while(elem!=null){if(this.map&&elem==this.map.div){inMap=true;break;}
+elem=elem.parentNode;}
+if(inMap){var delta=0;if(!e){e=window.event;}
+if(e.wheelDelta){delta=e.wheelDelta/120;if(window.opera&&window.opera.version()<9.2){delta=-delta;}}else if(e.detail){delta=-e.detail/3;}
+if(delta){e.xy=this.mousePosition;if(delta<0){this.defaultWheelDown(e);}else{this.defaultWheelUp(e);}}
+OpenLayers.Event.stop(e);}},CLASS_NAME:"OpenLayers.Control.MouseDefaults"});OpenLayers.Format.WFSDescribeFeatureType=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{xsd:"http://www.w3.org/2001/XMLSchema"},readers:{"xsd":{"schema":function(node,obj){var complexTypes=[];var customTypes={};var schema={complexTypes:complexTypes,customTypes:customTypes};this.readChildNodes(node,schema);var attributes=node.attributes;var attr,name;for(var i=0,len=attributes.length;i<len;++i){attr=attribute [...]
+obj.featureTypes=complexTypes;obj.targetPrefix=this.namespaceAlias[obj.targetNamespace];var complexType,customType;for(var i=0,len=complexTypes.length;i<len;++i){complexType=complexTypes[i];customType=customTypes[complexType.typeName];if(customTypes[complexType.typeName]){complexType.typeName=customType.name;}}},"complexType":function(node,obj){var complexType={"typeName":node.getAttribute("name")};this.readChildNodes(node,complexType);obj.complexTypes.push(complexType);},"complexContent [...]
+var type=element.type;if(!type){type={};this.readChildNodes(node,type);element.restriction=type;element.type=type.base;}
+var fullType=type.base||type;element.localType=fullType.split(":").pop();obj.elements.push(element);}
+if(obj.complexTypes){var type=node.getAttribute("type");var localType=type.split(":").pop();obj.customTypes[localType]={"name":node.getAttribute("name"),"type":type};}},"simpleType":function(node,obj){this.readChildNodes(node,obj);},"restriction":function(node,obj){obj.base=node.getAttribute("base");this.readRestriction(node,obj);}}},readRestriction:function(node,obj){var children=node.childNodes;var child,nodeName,value;for(var i=0,len=children.length;i<len;++i){child=children[i];if(chi [...]
+obj[nodeName].push(value);}}}},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
+if(data&&data.nodeType==9){data=data.documentElement;}
+var schema={};this.readNode(data,schema);return schema;},CLASS_NAME:"OpenLayers.Format.WFSDescribeFeatureType"});OpenLayers.Strategy.Refresh=OpenLayers.Class(OpenLayers.Strategy,{force:false,interval:0,timer:null,activate:function(){var activated=OpenLayers.Strategy.prototype.activate.call(this);if(activated){if(this.layer.visibility===true){this.start();}
+this.layer.events.on({"visibilitychanged":this.reset,scope:this});}
+return activated;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){this.stop();}
+return deactivated;},reset:function(){if(this.layer.visibility===true){this.start();}else{this.stop();}},start:function(){if(this.interval&&typeof this.interval==="number"&&this.interval>0){this.timer=window.setInterval(OpenLayers.Function.bind(this.refresh,this),this.interval);}},refresh:function(){if(this.layer&&this.layer.refresh&&typeof this.layer.refresh=="function"){this.layer.refresh({force:this.force});}},stop:function(){if(this.timer!==null){window.clearInterval(this.timer);this [...]
+if(this.params.FORMAT=="jpg"){this.params.FORMAT=OpenLayers.Util.alphaHack()?"gif":"png";}}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.ArcGIS93Rest(this.name,this.url,this.params,this.getOptions());}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){bounds=this.adjustBounds(bounds);var projWords=this.projection.getCode().split(":");var srid=projWords[projWords.length-1];var imageSize=this.getImageSize();var newParams={'BBOX':bounds.toBBOX(),'SIZE':imageSize.w+","+imageSize.h,'F':"image",'BBOXSR':srid,'IMAGESR':srid};if(this.layerDefs){var layerDefStrList=[];var layerID;for(layerID in this.layerDefs){if(this.layerDefs.hasOwnProperty(layer [...]
+if(layerDefStrList.length>0){newParams['LAYERDEFS']=layerDefStrList.join("");}}
+var requestString=this.getFullRequestString(newParams);return requestString;},setLayerFilter:function(id,queryDef){if(!this.layerDefs){this.layerDefs={};}
+if(queryDef){this.layerDefs[id]=queryDef;}else{delete this.layerDefs[id];}},clearLayerFilter:function(id){if(id){delete this.layerDefs[id];}else{delete this.layerDefs;}},mergeNewParams:function(newParams){var upperParams=OpenLayers.Util.upperCaseObject(newParams);var newArguments=[upperParams];return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,newArguments);},CLASS_NAME:"OpenLayers.Layer.ArcGIS93Rest"});OpenLayers.Layer.MapServer=OpenLayers.Class(OpenLayers.Layer.Grid,{DEFA [...]
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){bounds=this.adjustBounds(bounds);var extent=[bounds.left,bounds.bottom,bounds.right,bounds.top];var imageSize=this.getImageSize();var url=this.getFullRequestString({mapext:extent,imgext:extent,map_size:[imageSize.w,imageSize.h],imgx:imageSize.w/2,imgy:imageSize.h/2,imgxy:[imageSize.w,imageSize.h]});return url;},getFullRequestString:function(newParams,altUrl){var url=(altUrl==null)?this.url:al [...]
+var urlParams=OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));for(var key in allParams){if(key.toUpperCase()in urlParams){delete allParams[key];}}
+paramsString=OpenLayers.Util.getParameterString(allParams);var requestString=url;paramsString=paramsString.replace(/,/g,"+");if(paramsString!=""){var lastServerChar=url.charAt(url.length-1);if((lastServerChar=="&")||(lastServerChar=="?")){requestString+=paramsString;}else{if(url.indexOf('?')==-1){requestString+='?'+paramsString;}else{requestString+='&'+paramsString;}}}
+return requestString;},CLASS_NAME:"OpenLayers.Layer.MapServer"});OpenLayers.Layer.MapServer.Untiled=OpenLayers.Class(OpenLayers.Layer.MapServer,{singleTile:true,initialize:function(name,url,params,options){OpenLayers.Layer.MapServer.prototype.initialize.apply(this,arguments);var msg="The OpenLayers.Layer.MapServer.Untiled class is deprecated and "+"will be removed in 3.0. Instead, you should use the "+"normal OpenLayers.Layer.MapServer class, passing it the option "+"'singleTile' as true [...]
+obj=OpenLayers.Layer.MapServer.prototype.clone.apply(this,[obj]);return obj;},CLASS_NAME:"OpenLayers.Layer.MapServer.Untiled"});OpenLayers.Handler.Hover=OpenLayers.Class(OpenLayers.Handler,{delay:500,pixelTolerance:null,stopMove:false,px:null,timerId:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},mousemove:function(evt){if(this.passesTolerance(evt.xy)){this.clearTimer();this.callback('move',[evt]);this.px=evt.xy;evt=Ope [...]
+return!this.stopMove;},mouseout:function(evt){if(OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){this.clearTimer();this.callback('move',[evt]);}
+return true;},passesTolerance:function(px){var passes=true;if(this.pixelTolerance&&this.px){var dpx=Math.sqrt(Math.pow(this.px.x-px.x,2)+
+Math.pow(this.px.y-px.y,2));if(dpx<this.pixelTolerance){passes=false;}}
+return passes;},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null;}},delayedCall:function(evt){this.callback('pause',[evt]);},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.clearTimer();deactivated=true;}
+return deactivated;},CLASS_NAME:"OpenLayers.Handler.Hover"});OpenLayers.Control.GetFeature=OpenLayers.Class(OpenLayers.Control,{protocol:null,multipleKey:null,toggleKey:null,modifiers:null,multiple:false,click:true,single:true,clickout:true,toggle:false,clickTolerance:5,hover:false,box:false,maxFeatures:10,features:null,hoverFeature:null,handlerOptions:null,handlers:null,hoverResponse:null,filterType:OpenLayers.Filter.Spatial.BBOX,EVENT_TYPES:["featureselected","featuresselected","featur [...]
+if(this.box){this.handlers.box=new OpenLayers.Handler.Box(this,{done:this.selectBox},OpenLayers.Util.extend(this.handlerOptions.box,{boxDivClassName:"olHandlerBoxSelectFeature"}));}
+if(this.hover){this.handlers.hover=new OpenLayers.Handler.Hover(this,{'move':this.cancelHover,'pause':this.selectHover},OpenLayers.Util.extend(this.handlerOptions.hover,{'delay':250}));}},activate:function(){if(!this.active){for(var i in this.handlers){this.handlers[i].activate();}}
+return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){if(this.active){for(var i in this.handlers){this.handlers[i].deactivate();}}
+return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},selectClick:function(evt){var bounds=this.pixelToBounds(evt.xy);this.setModifiers(evt);this.request(bounds,{single:this.single});},selectBox:function(position){var bounds;if(position instanceof OpenLayers.Bounds){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));bounds=new OpenLayers.Bounds [...]
+bounds=this.pixelToBounds(position);}
+this.setModifiers(this.handlers.box.dragHandler.evt);this.request(bounds);},selectHover:function(evt){var bounds=this.pixelToBounds(evt.xy);this.request(bounds,{single:true,hover:true});},cancelHover:function(){if(this.hoverResponse){this.protocol.abort(this.hoverResponse);this.hoverResponse=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olCursorWait");}},request:function(bounds,options){options=options||{};var filter=new OpenLayers.Filter.Spatial({type:this.filterType,value:b [...]
+OpenLayers.Element.removeClass(this.map.viewPortDiv,"olCursorWait");},scope:this});if(options.hover==true){this.hoverResponse=response;}},selectBestFeature:function(features,clickPosition,options){options=options||{};if(features.length){var point=new OpenLayers.Geometry.Point(clickPosition.lon,clickPosition.lat);var feature,resultFeature,dist;var minDist=Number.MAX_VALUE;for(var i=0;i<features.length;++i){feature=features[i];if(feature.geometry){dist=point.distanceTo(feature.geometry,{ed [...]
+if(options.hover==true){this.hoverSelect(resultFeature);}else{this.select(resultFeature||features);}}},setModifiers:function(evt){this.modifiers={multiple:this.multiple||(this.multipleKey&&evt[this.multipleKey]),toggle:this.toggle||(this.toggleKey&&evt[this.toggleKey])};},select:function(features){if(!this.modifiers.multiple&&!this.modifiers.toggle){this.unselectAll();}
+if(!(OpenLayers.Util.isArray(features))){features=[features];}
+var cont=this.events.triggerEvent("beforefeaturesselected",{features:features});if(cont!==false){var selectedFeatures=[];var feature;for(var i=0,len=features.length;i<len;++i){feature=features[i];if(this.features[feature.fid||feature.id]){if(this.modifiers.toggle){this.unselect(this.features[feature.fid||feature.id]);}}else{cont=this.events.triggerEvent("beforefeatureselected",{feature:feature});if(cont!==false){this.features[feature.fid||feature.id]=feature;selectedFeatures.push(feature [...]
+this.events.triggerEvent("featuresselected",{features:selectedFeatures});}},hoverSelect:function(feature){var fid=feature?feature.fid||feature.id:null;var hfid=this.hoverFeature?this.hoverFeature.fid||this.hoverFeature.id:null;if(hfid&&hfid!=fid){this.events.triggerEvent("outfeature",{feature:this.hoverFeature});this.hoverFeature=null;}
+if(fid&&fid!=hfid){this.events.triggerEvent("hoverfeature",{feature:feature});this.hoverFeature=feature;}},unselect:function(feature){delete this.features[feature.fid||feature.id];this.events.triggerEvent("featureunselected",{feature:feature});},unselectAll:function(){for(var fid in this.features){this.unselect(this.features[fid]);}},setMap:function(map){for(var i in this.handlers){this.handlers[i].setMap(map);}
+OpenLayers.Control.prototype.setMap.apply(this,arguments);},pixelToBounds:function(pixel){var llPx=pixel.add(-this.clickTolerance/2,this.clickTolerance/2);var urPx=pixel.add(this.clickTolerance/2,-this.clickTolerance/2);var ll=this.map.getLonLatFromPixel(llPx);var ur=this.map.getLonLatFromPixel(urPx);return new OpenLayers.Bounds(ll.lon,ll.lat,ur.lon,ur.lat);},CLASS_NAME:"OpenLayers.Control.GetFeature"});OpenLayers.Format.QueryStringFilter=(function(){var cmpToStr={};cmpToStr[OpenLayers.F [...]
+return OpenLayers.Class(OpenLayers.Format,{wildcarded:false,srsInBBOX:false,write:function(filter,params){params=params||{};var className=filter.CLASS_NAME;var filterType=className.substring(className.lastIndexOf(".")+1);switch(filterType){case"Spatial":switch(filter.type){case OpenLayers.Filter.Spatial.BBOX:params.bbox=filter.value.toArray();if(this.srsInBBOX&&filter.projection){params.bbox.push(filter.projection.getCode());}
+break;case OpenLayers.Filter.Spatial.DWITHIN:params.tolerance=filter.distance;case OpenLayers.Filter.Spatial.WITHIN:params.lon=filter.value.x;params.lat=filter.value.y;break;default:OpenLayers.Console.warn("Unknown spatial filter type "+filter.type);}
+break;case"Comparison":var op=cmpToStr[filter.type];if(op!==undefined){var value=filter.value;if(filter.type==OpenLayers.Filter.Comparison.LIKE){value=regex2value(value);if(this.wildcarded){value="%"+value+"%";}}
+params[filter.property+"__"+op]=value;params.queryable=params.queryable||[];params.queryable.push(filter.property);}else{OpenLayers.Console.warn("Unknown comparison filter type "+filter.type);}
+break;case"Logical":if(filter.type===OpenLayers.Filter.Logical.AND){for(var i=0,len=filter.filters.length;i<len;i++){params=this.write(filter.filters[i],params);}}else{OpenLayers.Console.warn("Unsupported logical filter type "+filter.type);}
+break;default:OpenLayers.Console.warn("Unknown filter type "+filterType);}
+return params;},CLASS_NAME:"OpenLayers.Format.QueryStringFilter"});})();OpenLayers.Format.SOSGetFeatureOfInterest=OpenLayers.Class(OpenLayers.Format.XML,{VERSION:"1.0.0",namespaces:{sos:"http://www.opengis.net/sos/1.0",gml:"http://www.opengis.net/gml",sa:"http://www.opengis.net/sampling/1.0",xsi:"http://www.w3.org/2001/XMLSchema-instance"},schemaLocation:"http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosAll.xsd",defaultPrefix:"sos",regExes:{trimSpace:(/^\s*|\s*$/g), [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var info={features:[]};this.readNode(data,info);var features=[];for(var i=0,len=info.features.length;i<len;i++){var container=info.features[i];if(this.internalProjection&&this.externalProjection&&container.components[0]){container.components[0].transform(this.externalProjection,this.internalProjection);}
+var feature=new OpenLayers.Feature.Vector(container.components[0],container.attributes);features.push(feature);}
+return features;},readers:{"sa":{"SamplingPoint":function(node,obj){if(!obj.attributes){var feature={attributes:{}};obj.features.push(feature);obj=feature;}
+obj.attributes.id=this.getAttributeNS(node,this.namespaces.gml,"id");this.readChildNodes(node,obj);},"position":function(node,obj){this.readChildNodes(node,obj);}},"gml":OpenLayers.Util.applyDefaults({"FeatureCollection":function(node,obj){this.readChildNodes(node,obj);},"featureMember":function(node,obj){var feature={attributes:{}};obj.features.push(feature);this.readChildNodes(node,feature);},"name":function(node,obj){obj.attributes.name=this.getChildValue(node);},"pos":function(node,o [...]
+OpenLayers.Format.GML.v3.prototype.readers.gml.pos.apply(this,[node,obj]);}},OpenLayers.Format.GML.v3.prototype.readers.gml)},writers:{"sos":{"GetFeatureOfInterest":function(options){var node=this.createElementNSPlus("GetFeatureOfInterest",{attributes:{version:this.VERSION,service:'SOS',"xsi:schemaLocation":this.schemaLocation}});for(var i=0,len=options.fois.length;i<len;i++){this.writeNode("FeatureOfInterestId",{foi:options.fois[i]},node);}
+return node;},"FeatureOfInterestId":function(options){var node=this.createElementNSPlus("FeatureOfInterestId",{value:options.foi});return node;}}},CLASS_NAME:"OpenLayers.Format.SOSGetFeatureOfInterest"});OpenLayers.Format.SOSGetObservation=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{ows:"http://www.opengis.net/ows",gml:"http://www.opengis.net/gml",sos:"http://www.opengis.net/sos/1.0",ogc:"http://www.opengis.net/ogc",om:"http://www.opengis.net/om/1.0",sa:"http://www.opengis.net/sa [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var info={measurements:[],observations:[]};this.readNode(data,info);return info;},write:function(options){var node=this.writeNode("sos:GetObservation",options);node.setAttribute("xmlns:om",this.namespaces.om);node.setAttribute("xmlns:ogc",this.namespaces.ogc);this.setAttributeNS(node,this.namespaces.xsi,"xsi:schemaLocation",this.schemaLocation);return OpenLayers.Format.XML.prototype.write.apply(this,[node]);},readers:{"om":{"ObservationCollection":function(node,obj){obj.id=this.getAttrib [...]
+foi.features=features;},"result":function(node,measurement){var result={};measurement.result=result;if(this.getChildValue(node)!==''){result.value=this.getChildValue(node);result.uom=node.getAttribute("uom");}else{this.readChildNodes(node,result);}}},"sa":OpenLayers.Format.SOSGetFeatureOfInterest.prototype.readers.sa,"gml":OpenLayers.Util.applyDefaults({"TimeInstant":function(node,samplingTime){var timeInstant={};samplingTime.timeInstant=timeInstant;this.readChildNodes(node,timeInstant); [...]
+for(var procedure in options.procedures){this.writeNode("procedure",options.procedures[procedure],node);}
+for(var observedProperty in options.observedProperties){this.writeNode("observedProperty",options.observedProperties[observedProperty],node);}
+if(options.foi){this.writeNode("featureOfInterest",options.foi,node);}
+this.writeNode("responseFormat",options,node);if(options.resultModel){this.writeNode("resultModel",options,node);}
+if(options.responseMode){this.writeNode("responseMode",options,node);}
+return node;},"featureOfInterest":function(foi){var node=this.createElementNSPlus("featureOfInterest");this.writeNode("ObjectID",foi.objectId,node);return node;},"ObjectID":function(options){return this.createElementNSPlus("ObjectID",{value:options});},"responseFormat":function(options){return this.createElementNSPlus("responseFormat",{value:options.responseFormat});},"procedure":function(procedure){return this.createElementNSPlus("procedure",{value:procedure});},"offering":function(opti [...]
+return node;},"resultModel":function(options){return this.createElementNSPlus("resultModel",{value:options.resultModel});},"responseMode":function(options){return this.createElementNSPlus("responseMode",{value:options.responseMode});}},"ogc":{"TM_Equals":function(options){var node=this.createElementNSPlus("ogc:TM_Equals");this.writeNode("ogc:PropertyName",{property:"urn:ogc:data:time:iso8601"},node);if(options.eventTime==='latest'){this.writeNode("gml:TimeInstant",{value:'latest'},node);}
+return node;},"PropertyName":function(options){return this.createElementNSPlus("ogc:PropertyName",{value:options.property});}},"gml":{"TimeInstant":function(options){var node=this.createElementNSPlus("gml:TimeInstant");this.writeNode("gml:timePosition",options,node);return node;},"timePosition":function(options){var node=this.createElementNSPlus("gml:timePosition",{value:options.value});return node;}}},CLASS_NAME:"OpenLayers.Format.SOSGetObservation"});OpenLayers.Control.MousePosition=Op [...]
+return this.div;},redraw:function(evt){var lonLat;if(evt==null){this.reset();return;}else{if(this.lastXy==null||Math.abs(evt.xy.x-this.lastXy.x)>this.granularity||Math.abs(evt.xy.y-this.lastXy.y)>this.granularity)
+{this.lastXy=evt.xy;return;}
+lonLat=this.map.getLonLatFromPixel(evt.xy);if(!lonLat){return;}
+if(this.displayProjection){lonLat.transform(this.map.getProjectionObject(),this.displayProjection);}
+this.lastXy=evt.xy;}
+var newHtml=this.formatOutput(lonLat);if(newHtml!=this.element.innerHTML){this.element.innerHTML=newHtml;}},reset:function(evt){if(this.emptyString!=null){this.element.innerHTML=this.emptyString;}},formatOutput:function(lonLat){var digits=parseInt(this.numDigits);var newHtml=this.prefix+
+lonLat.lon.toFixed(digits)+
+this.separator+
+lonLat.lat.toFixed(digits)+
+this.suffix;return newHtml;},CLASS_NAME:"OpenLayers.Control.MousePosition"});OpenLayers.Control.Geolocate=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:["locationupdated","locationfailed","locationuncapable"],geolocation:navigator.geolocation,bind:true,watch:false,geolocationOptions:null,initialize:function(options){this.EVENT_TYPES=OpenLayers.Control.Geolocate.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);this.geolocationOptions={};OpenLayers.Control.prototyp [...]
+if(OpenLayers.Control.prototype.activate.apply(this,arguments)){if(this.watch){this.watchId=this.geolocation.watchPosition(OpenLayers.Function.bind(this.geolocate,this),OpenLayers.Function.bind(this.failure,this),this.geolocationOptions);}else{this.getCurrentLocation();}
+return true;}
+return false;},deactivate:function(){if(this.active&&this.watchId!==null){this.geolocation.clearWatch(this.watchId);}
+return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},geolocate:function(position){var center=new OpenLayers.LonLat(position.coords.longitude,position.coords.latitude).transform(new OpenLayers.Projection("EPSG:4326"),this.map.getProjectionObject());if(this.bind){this.map.setCenter(center);}
+this.events.triggerEvent("locationupdated",{position:position,point:new OpenLayers.Geometry.Point(center.lon,center.lat)});},getCurrentLocation:function(){if(!this.active||this.watch){return false;}
+this.geolocation.getCurrentPosition(OpenLayers.Function.bind(this.geolocate,this),OpenLayers.Function.bind(this.failure,this),this.geolocationOptions);return true;},failure:function(error){this.events.triggerEvent("locationfailed",{error:error});},CLASS_NAME:"OpenLayers.Control.Geolocate"});OpenLayers.Control.NavigationHistory=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOGGLE,previous:null,previousOptions:null,next:null,nextOptions:null,limit:50,autoActivate:true,c [...]
+return state;},nextTrigger:function(){var state=this.nextStack.shift();if(state!=undefined){this.previousStack.unshift(state);this.restoring=true;this.restore(state);this.restoring=false;this.onNextChange(this.nextStack[0],this.nextStack.length);this.onPreviousChange(this.previousStack[1],this.previousStack.length-1);}
+return state;},clear:function(){this.previousStack=[];this.previous.deactivate();this.nextStack=[];this.next.deactivate();},getState:function(){return{center:this.map.getCenter(),resolution:this.map.getResolution(),projection:this.map.getProjectionObject(),units:this.map.getProjectionObject().getUnits()||this.map.units||this.map.baseLayer.units};},restore:function(state){var center,zoom;if(this.map.getProjectionObject()==state.projection){zoom=this.map.getZoomForResolution(state.resoluti [...]
+this.map.setCenter(center,zoom);},setListeners:function(){this.listeners={};for(var type in this.registry){this.listeners[type]=OpenLayers.Function.bind(function(){if(!this.restoring){var state=this.registry[type].apply(this,arguments);this.previousStack.unshift(state);if(this.previousStack.length>1){this.onPreviousChange(this.previousStack[1],this.previousStack.length-1);}
+if(this.previousStack.length>(this.limit+1)){this.previousStack.pop();}
+if(this.nextStack.length>0){this.nextStack=[];this.onNextChange(null,0);}}
+return true;},this);}},activate:function(){var activated=false;if(this.map){if(OpenLayers.Control.prototype.activate.apply(this)){if(this.listeners==null){this.setListeners();}
+for(var type in this.listeners){this.map.events.register(type,this,this.listeners[type]);}
+activated=true;if(this.previousStack.length==0){this.initStack();}}}
+return activated;},initStack:function(){if(this.map.getCenter()){this.listeners.moveend();}},deactivate:function(){var deactivated=false;if(this.map){if(OpenLayers.Control.prototype.deactivate.apply(this)){for(var type in this.listeners){this.map.events.unregister(type,this,this.listeners[type]);}
+if(this.clearOnDeactivate){this.clear();}
+deactivated=true;}}
+return deactivated;},CLASS_NAME:"OpenLayers.Control.NavigationHistory"});OpenLayers.Protocol.HTTP=OpenLayers.Class(OpenLayers.Protocol,{url:null,headers:null,params:null,callback:null,scope:null,readWithPOST:false,wildcarded:false,srsInBBOX:false,initialize:function(options){options=options||{};this.params={};this.headers={};OpenLayers.Protocol.prototype.initialize.apply(this,arguments);if(!this.filterToParams&&OpenLayers.Format.QueryStringFilter){var format=new OpenLayers.Format.QuerySt [...]
+var readWithPOST=(options.readWithPOST!==undefined)?options.readWithPOST:this.readWithPOST;var resp=new OpenLayers.Protocol.Response({requestType:"read"});if(readWithPOST){resp.priv=OpenLayers.Request.POST({url:options.url,callback:this.createCallback(this.handleRead,resp,options),data:OpenLayers.Util.getParameterString(options.params),headers:{"Content-Type":"application/x-www-form-urlencoded"}});}else{resp.priv=OpenLayers.Request.GET({url:options.url,callback:this.createCallback(this.h [...]
+return resp;},handleRead:function(resp,options){this.handleResponse(resp,options);},create:function(features,options){options=OpenLayers.Util.applyDefaults(options,this.options);var resp=new OpenLayers.Protocol.Response({reqFeatures:features,requestType:"create"});resp.priv=OpenLayers.Request.POST({url:options.url,callback:this.createCallback(this.handleCreate,resp,options),headers:options.headers,data:this.format.write(features)});return resp;},handleCreate:function(resp,options){this.h [...]
+resp.code=OpenLayers.Protocol.Response.SUCCESS;}else{resp.code=OpenLayers.Protocol.Response.FAILURE;}
+options.callback.call(options.scope,resp);}},parseFeatures:function(request){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+if(!doc||doc.length<=0){return null;}
+return this.format.read(doc);},commit:function(features,options){options=OpenLayers.Util.applyDefaults(options,this.options);var resp=[],nResponses=0;var types={};types[OpenLayers.State.INSERT]=[];types[OpenLayers.State.UPDATE]=[];types[OpenLayers.State.DELETE]=[];var feature,list,requestFeatures=[];for(var i=0,len=features.length;i<len;++i){feature=features[i];list=types[feature.state];if(list){list.push(feature);requestFeatures.push(feature);}}
+var nRequests=(types[OpenLayers.State.INSERT].length>0?1:0)+
+types[OpenLayers.State.UPDATE].length+
+types[OpenLayers.State.DELETE].length;var success=true;var finalResponse=new OpenLayers.Protocol.Response({reqFeatures:requestFeatures});function insertCallback(response){var len=response.features?response.features.length:0;var fids=new Array(len);for(var i=0;i<len;++i){fids[i]=response.features[i].fid;}
+finalResponse.insertIds=fids;callback.apply(this,[response]);}
+function callback(response){this.callUserCallback(response,options);success=success&&response.success();nResponses++;if(nResponses>=nRequests){if(options.callback){finalResponse.code=success?OpenLayers.Protocol.Response.SUCCESS:OpenLayers.Protocol.Response.FAILURE;options.callback.apply(options.scope,[finalResponse]);}}}
+var queue=types[OpenLayers.State.INSERT];if(queue.length>0){resp.push(this.create(queue,OpenLayers.Util.applyDefaults({callback:insertCallback,scope:this},options.create)));}
+queue=types[OpenLayers.State.UPDATE];for(var i=queue.length-1;i>=0;--i){resp.push(this.update(queue[i],OpenLayers.Util.applyDefaults({callback:callback,scope:this},options.update)));}
+queue=types[OpenLayers.State.DELETE];for(var i=queue.length-1;i>=0;--i){resp.push(this["delete"](queue[i],OpenLayers.Util.applyDefaults({callback:callback,scope:this},options["delete"])));}
+return resp;},abort:function(response){if(response){response.priv.abort();}},callUserCallback:function(resp,options){var opt=options[resp.requestType];if(opt&&opt.callback){opt.callback.call(opt.scope,resp);}},CLASS_NAME:"OpenLayers.Protocol.HTTP"});OpenLayers.Format.CSWGetDomain=function(options){options=OpenLayers.Util.applyDefaults(options,OpenLayers.Format.CSWGetDomain.DEFAULTS);var cls=OpenLayers.Format.CSWGetDomain["v"+options.version.replace(/\./g,"_")];if(!cls){throw"Unsupported  [...]
+return new cls(options);};OpenLayers.Format.CSWGetDomain.DEFAULTS={"version":"2.0.2"};OpenLayers.Format.CSWGetDomain.v2_0_2=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",csw:"http://www.opengis.net/cat/csw/2.0.2"},defaultPrefix:"csw",version:"2.0.2",schemaLocation:"http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",PropertyName:null,ParameterName:null,initi [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var obj={};this.readNode(data,obj);return obj;},readers:{"csw":{"GetDomainResponse":function(node,obj){this.readChildNodes(node,obj);},"DomainValues":function(node,obj){if(!(OpenLayers.Util.isArray(obj.DomainValues))){obj.DomainValues=[];}
+var attrs=node.attributes;var domainValue={};for(var i=0,len=attrs.length;i<len;++i){domainValue[attrs[i].name]=attrs[i].nodeValue;}
+this.readChildNodes(node,domainValue);obj.DomainValues.push(domainValue);},"PropertyName":function(node,obj){obj.PropertyName=this.getChildValue(node);},"ParameterName":function(node,obj){obj.ParameterName=this.getChildValue(node);},"ListOfValues":function(node,obj){if(!(OpenLayers.Util.isArray(obj.ListOfValues))){obj.ListOfValues=[];}
+this.readChildNodes(node,obj.ListOfValues);},"Value":function(node,obj){var attrs=node.attributes;var value={};for(var i=0,len=attrs.length;i<len;++i){value[attrs[i].name]=attrs[i].nodeValue;}
+value.value=this.getChildValue(node);obj.push({Value:value});},"ConceptualScheme":function(node,obj){obj.ConceptualScheme={};this.readChildNodes(node,obj.ConceptualScheme);},"Name":function(node,obj){obj.Name=this.getChildValue(node);},"Document":function(node,obj){obj.Document=this.getChildValue(node);},"Authority":function(node,obj){obj.Authority=this.getChildValue(node);},"RangeOfValues":function(node,obj){obj.RangeOfValues={};this.readChildNodes(node,obj.RangeOfValues);},"MinValue":f [...]
+value.value=this.getChildValue(node);obj.MinValue=value;},"MaxValue":function(node,obj){var attrs=node.attributes;var value={};for(var i=0,len=attrs.length;i<len;++i){value[attrs[i].name]=attrs[i].nodeValue;}
+value.value=this.getChildValue(node);obj.MaxValue=value;}}},write:function(options){var node=this.writeNode("csw:GetDomain",options);return OpenLayers.Format.XML.prototype.write.apply(this,[node]);},writers:{"csw":{"GetDomain":function(options){var node=this.createElementNSPlus("csw:GetDomain",{attributes:{service:"CSW",version:this.version}});if(options.PropertyName||this.PropertyName){this.writeNode("csw:PropertyName",options.PropertyName||this.PropertyName,node);}else if(options.Param [...]
+this.readChildNodes(node,options);return node;},"PropertyName":function(value){var node=this.createElementNSPlus("csw:PropertyName",{value:value});return node;},"ParameterName":function(value){var node=this.createElementNSPlus("csw:ParameterName",{value:value});return node;}}},CLASS_NAME:"OpenLayers.Format.CSWGetDomain.v2_0_2"});OpenLayers.Strategy.Cluster=OpenLayers.Class(OpenLayers.Strategy,{distance:20,threshold:null,features:null,clusters:null,clustering:false,resolution:null,activat [...]
+return activated;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){this.clearCache();this.layer.events.un({"beforefeaturesadded":this.cacheFeatures,"moveend":this.cluster,scope:this});}
+return deactivated;},cacheFeatures:function(event){var propagate=true;if(!this.clustering){this.clearCache();this.features=event.features;this.cluster();propagate=false;}
+return propagate;},clearCache:function(){this.features=null;},cluster:function(event){if((!event||event.zoomChanged)&&this.features){var resolution=this.layer.map.getResolution();if(resolution!=this.resolution||!this.clustersExist()){this.resolution=resolution;var clusters=[];var feature,clustered,cluster;for(var i=0;i<this.features.length;++i){feature=this.features[i];if(feature.geometry){clustered=false;for(var j=clusters.length-1;j>=0;--j){cluster=clusters[j];if(this.shouldCluster(clu [...]
+if(!clustered){clusters.push(this.createCluster(this.features[i]));}}}
+this.layer.removeAllFeatures();if(clusters.length>0){if(this.threshold>1){var clone=clusters.slice();clusters=[];var candidate;for(var i=0,len=clone.length;i<len;++i){candidate=clone[i];if(candidate.attributes.count<this.threshold){Array.prototype.push.apply(clusters,candidate.cluster);}else{clusters.push(candidate);}}}
+this.clustering=true;this.layer.addFeatures(clusters);this.clustering=false;}
+this.clusters=clusters;}}},clustersExist:function(){var exist=false;if(this.clusters&&this.clusters.length>0&&this.clusters.length==this.layer.features.length){exist=true;for(var i=0;i<this.clusters.length;++i){if(this.clusters[i]!=this.layer.features[i]){exist=false;break;}}}
+return exist;},shouldCluster:function(cluster,feature){var cc=cluster.geometry.getBounds().getCenterLonLat();var fc=feature.geometry.getBounds().getCenterLonLat();var distance=(Math.sqrt(Math.pow((cc.lon-fc.lon),2)+Math.pow((cc.lat-fc.lat),2))/this.resolution);return(distance<=this.distance);},addToCluster:function(cluster,feature){cluster.cluster.push(feature);cluster.attributes.count+=1;},createCluster:function(feature){var center=feature.geometry.getBounds().getCenterLonLat();var clus [...]
+return activated;},deactivate:function(){this.cache=null;if(this.layer&&this.layer.events){this.layer.events.un({"beforefeaturesadded":this.handleAdd,"beforefeaturesremoved":this.handleRemove,scope:this});}
+return OpenLayers.Strategy.prototype.deactivate.apply(this,arguments);},handleAdd:function(event){if(!this.caching&&this.filter){var features=event.features;event.features=[];var feature;for(var i=0,ii=features.length;i<ii;++i){feature=features[i];if(this.filter.evaluate(feature)){event.features.push(feature);}else{this.cache.push(feature);}}}},handleRemove:function(event){if(!this.caching){this.cache=[];}},setFilter:function(filter){this.filter=filter;var previousCache=this.cache;this.c [...]
+if(previousCache.length>0){var event={features:previousCache};this.handleAdd(event);if(event.features.length>0){this.caching=true;this.layer.addFeatures(event.features);this.caching=false;}}},CLASS_NAME:"OpenLayers.Strategy.Filter"});OpenLayers.Protocol.SOS=function(options){options=OpenLayers.Util.applyDefaults(options,OpenLayers.Protocol.SOS.DEFAULTS);var cls=OpenLayers.Protocol.SOS["v"+options.version.replace(/\./g,"_")];if(!cls){throw"Unsupported SOS version: "+options.version;}
+return new cls(options);};OpenLayers.Protocol.SOS.DEFAULTS={"version":"1.0.0"};OpenLayers.Format.GeoRSS=OpenLayers.Class(OpenLayers.Format.XML,{rssns:"http://backend.userland.com/rss2",featureNS:"http://mapserver.gis.umn.edu/mapserver",georssns:"http://www.georss.org/georss",geons:"http://www.w3.org/2003/01/geo/wgs84_pos#",featureTitle:"Untitled",featureDescription:"No Description",gmlParser:null,xy:false,createGeometryFromItem:function(item){var point=this.getElementsByTagNameNS(item,th [...]
+var geometry=new OpenLayers.Geometry.Point(parseFloat(location[1]),parseFloat(location[0]));}else if(line.length>0){var coords=OpenLayers.String.trim(this.concatChildValues(line[0])).split(/\s+/);var components=[];var point;for(var i=0,len=coords.length;i<len;i+=2){point=new OpenLayers.Geometry.Point(parseFloat(coords[i+1]),parseFloat(coords[i]));components.push(point);}
+geometry=new OpenLayers.Geometry.LineString(components);}else if(polygon.length>0){var coords=OpenLayers.String.trim(this.concatChildValues(polygon[0])).split(/\s+/);var components=[];var point;for(var i=0,len=coords.length;i<len;i+=2){point=new OpenLayers.Geometry.Point(parseFloat(coords[i+1]),parseFloat(coords[i]));components.push(point);}
+geometry=new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(components)]);}else if(where.length>0){if(!this.gmlParser){this.gmlParser=new OpenLayers.Format.GML({'xy':this.xy});}
+var feature=this.gmlParser.parseFeature(where[0]);geometry=feature.geometry;}else if(box.length>0){var coords=OpenLayers.String.trim(box[0].firstChild.nodeValue).split(/\s+/);var components=[];var point;if(coords.length>3){point=new OpenLayers.Geometry.Point(parseFloat(coords[1]),parseFloat(coords[0]));components.push(point);point=new OpenLayers.Geometry.Point(parseFloat(coords[1]),parseFloat(coords[2]));components.push(point);point=new OpenLayers.Geometry.Point(parseFloat(coords[3]),par [...]
+geometry=new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(components)]);}
+if(geometry&&this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}
+return geometry;},createFeatureFromItem:function(item){var geometry=this.createGeometryFromItem(item);var title=this.getChildValue(item,"*","title",this.featureTitle);var description=this.getChildValue(item,"*","description",this.getChildValue(item,"*","content",this.getChildValue(item,"*","summary",this.featureDescription)));var link=this.getChildValue(item,"*","link");if(!link){try{link=this.getElementsByTagNameNS(item,"*","link")[0].getAttribute("href");}catch(e){link=null;}}
+var id=this.getChildValue(item,"*","id",null);var data={"title":title,"description":description,"link":link};var feature=new OpenLayers.Feature.Vector(geometry,data);feature.fid=id;return feature;},getChildValue:function(node,nsuri,name,def){var value;var eles=this.getElementsByTagNameNS(node,nsuri,name);if(eles&&eles[0]&&eles[0].firstChild&&eles[0].firstChild.nodeValue){value=OpenLayers.Format.XML.prototype.getChildValue(eles[0]);}else{value=(def==undefined)?"":def;}
+return value;},read:function(doc){if(typeof doc=="string"){doc=OpenLayers.Format.XML.prototype.read.apply(this,[doc]);}
+var itemlist=null;itemlist=this.getElementsByTagNameNS(doc,'*','item');if(itemlist.length==0){itemlist=this.getElementsByTagNameNS(doc,'*','entry');}
+var numItems=itemlist.length;var features=new Array(numItems);for(var i=0;i<numItems;i++){features[i]=this.createFeatureFromItem(itemlist[i]);}
+return features;},write:function(features){var georss;if(OpenLayers.Util.isArray(features)){georss=this.createElementNS(this.rssns,"rss");for(var i=0,len=features.length;i<len;i++){georss.appendChild(this.createFeatureXML(features[i]));}}else{georss=this.createFeatureXML(features);}
+return OpenLayers.Format.XML.prototype.write.apply(this,[georss]);},createFeatureXML:function(feature){var geometryNode=this.buildGeometryNode(feature.geometry);var featureNode=this.createElementNS(this.rssns,"item");var titleNode=this.createElementNS(this.rssns,"title");titleNode.appendChild(this.createTextNode(feature.attributes.title?feature.attributes.title:""));var descNode=this.createElementNS(this.rssns,"description");descNode.appendChild(this.createTextNode(feature.attributes.des [...]
+for(var attr in feature.attributes){if(attr=="link"||attr=="title"||attr=="description"){continue;}
+var attrText=this.createTextNode(feature.attributes[attr]);var nodename=attr;if(attr.search(":")!=-1){nodename=attr.split(":")[1];}
+var attrContainer=this.createElementNS(this.featureNS,"feature:"+nodename);attrContainer.appendChild(attrText);featureNode.appendChild(attrContainer);}
+featureNode.appendChild(geometryNode);return featureNode;},buildGeometryNode:function(geometry){if(this.internalProjection&&this.externalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);}
+var node;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Polygon"){node=this.createElementNS(this.georssns,'georss:polygon');node.appendChild(this.buildCoordinatesNode(geometry.components[0]));}
+else if(geometry.CLASS_NAME=="OpenLayers.Geometry.LineString"){node=this.createElementNS(this.georssns,'georss:line');node.appendChild(this.buildCoordinatesNode(geometry));}
+else if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){node=this.createElementNS(this.georssns,'georss:point');node.appendChild(this.buildCoordinatesNode(geometry));}else{throw"Couldn't parse "+geometry.CLASS_NAME;}
+return node;},buildCoordinatesNode:function(geometry){var points=null;if(geometry.components){points=geometry.components;}
+var path;if(points){var numPoints=points.length;var parts=new Array(numPoints);for(var i=0;i<numPoints;i++){parts[i]=points[i].y+" "+points[i].x;}
+path=parts.join(" ");}else{path=geometry.y+" "+geometry.x;}
+return this.createTextNode(path);},CLASS_NAME:"OpenLayers.Format.GeoRSS"});OpenLayers.Format.WPSCapabilities=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.0.0",CLASS_NAME:"OpenLayers.Format.WPSCapabilities"});OpenLayers.Format.WPSCapabilities.v1_0_0=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{ows:"http://www.opengis.net/ows/1.1",wps:"http://www.opengis.net/wps/1.0.0",xlink:"http://www.w3.org/1999/xlink"},regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s* [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var capabilities={};this.readNode(data,capabilities);return capabilities;},readers:{"wps":{"Capabilities":function(node,obj){this.readChildNodes(node,obj);},"ProcessOfferings":function(node,obj){obj.processOfferings={};this.readChildNodes(node,obj.processOfferings);},"Process":function(node,processOfferings){var processVersion=this.getAttributeNS(node,this.namespaces.wps,"processVersion");var process={processVersion:processVersion};this.readChildNodes(node,process);processOfferings[proce [...]
+return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.apply(this,arguments);if(this.map&&this.map.events){this.map.events.un({moveend:this.updateContainerOrigin,scope:this});}
+return deactivated;},updateContainerOrigin:function(){var container=this.map.layerContainerDiv;this.containerOrigin={x:parseInt(container.style.left,10),y:parseInt(container.style.top,10)};},pinchStart:function(evt,pinchData){this.pinchOrigin=evt.xy;this.currentCenter=evt.xy;},pinchMove:function(evt,pinchData){var scale=pinchData.scale;var containerOrigin=this.containerOrigin;var pinchOrigin=this.pinchOrigin;var current=evt.xy;var dx=Math.round((current.x-pinchOrigin.x)+(scale-1)*(contai [...]
+this.dragPan=null;if(this.pinchZoom){this.pinchZoom.destroy();delete this.pinchZoom;}
+OpenLayers.Control.prototype.destroy.apply(this,arguments);},activate:function(){if(OpenLayers.Control.prototype.activate.apply(this,arguments)){this.dragPan.activate();this.handlers.click.activate();this.pinchZoom.activate();return true;}
+return false;},deactivate:function(){if(OpenLayers.Control.prototype.deactivate.apply(this,arguments)){this.dragPan.deactivate();this.handlers.click.deactivate();this.pinchZoom.deactivate();return true;}
+return false;},draw:function(){var clickCallbacks={click:this.defaultClick,dblclick:this.defaultDblClick};var clickOptions=OpenLayers.Util.extend({"double":true,stopDouble:true,pixelTolerance:2},this.clickHandlerOptions);this.handlers.click=new OpenLayers.Handler.Click(this,clickCallbacks,clickOptions);this.dragPan=new OpenLayers.Control.DragPan(OpenLayers.Util.extend({map:this.map,documentDrag:this.documentDrag},this.dragPanOptions));this.dragPan.draw();this.pinchZoom=new OpenLayers.Con [...]
+delete this.rules;},clone:function(){var config=OpenLayers.Util.extend({},this);if(this.rules){config.rules=[];for(var i=0,len=this.rules.length;i<len;++i){config.rules.push(this.rules[i].clone());}}
+return new OpenLayers.Style2(config);},CLASS_NAME:"OpenLayers.Style2"});OpenLayers.Layer.Boxes=OpenLayers.Class(OpenLayers.Layer.Markers,{initialize:function(name,options){OpenLayers.Layer.Markers.prototype.initialize.apply(this,arguments);},drawMarker:function(marker){var bounds=marker.bounds;var topleft=this.map.getLayerPxFromLonLat(new OpenLayers.LonLat(bounds.left,bounds.top));var botright=this.map.getLayerPxFromLonLat(new OpenLayers.LonLat(bounds.right,bounds.bottom));if(botright==n [...]
+var raw=data;if(data&&data.nodeType==9){data=data.documentElement;}
+var capabilities={};this.readNode(data,capabilities);if(capabilities.service===undefined){var parser=new OpenLayers.Format.OGCExceptionReport();capabilities.error=parser.read(raw);}else{this.postProcessLayers(capabilities);}
+return capabilities;},postProcessLayers:function(capabilities){if(capabilities.capability){capabilities.capability.layers=[];var layers=capabilities.capability.nestedLayers;for(var i=0,len=layers.length;i<len;++i){var layer=layers[i];this.processLayer(capabilities.capability,layer);}}},processLayer:function(capability,layer,parentLayer){if(layer.formats===undefined){layer.formats=capability.request.getmap.formats;}
+var i,len;if(parentLayer){layer.styles=layer.styles.concat(parentLayer.styles);var attributes=["queryable","cascaded","fixedWidth","fixedHeight","opaque","noSubsets","llbbox","minScale","maxScale","attribution"];var complexAttr=["srs","bbox","dimensions","authorityURLs"];var key;for(i=0,len=attributes.length;i<len;i++){key=attributes[i];if(key in parentLayer){if(layer[key]==null){layer[key]=parentLayer[key];}
+if(layer[key]==null){var intAttr=["cascaded","fixedWidth","fixedHeight"];var boolAttr=["queryable","opaque","noSubsets"];if(OpenLayers.Util.indexOf(intAttr,key)!=-1){layer[key]=0;}
+if(OpenLayers.Util.indexOf(boolAttr,key)!=-1){layer[key]=false;}}}}
+for(i=0,len=complexAttr.length;i<len;i++){key=complexAttr[i];layer[key]=OpenLayers.Util.applyDefaults(layer[key],parentLayer[key]);}}
+for(i=0,len=layer.nestedLayers.length;i<len;i++){var childLayer=layer.nestedLayers[i];this.processLayer(capability,childLayer,layer);}
+if(layer.name){capability.layers.push(layer);}},readers:{"wms":{"Service":function(node,obj){obj.service={};this.readChildNodes(node,obj.service);},"Name":function(node,obj){obj.name=this.getChildValue(node);},"Title":function(node,obj){obj.title=this.getChildValue(node);},"Abstract":function(node,obj){obj["abstract"]=this.getChildValue(node);},"BoundingBox":function(node,obj){var bbox={};bbox.bbox=[parseFloat(node.getAttribute("minx")),parseFloat(node.getAttribute("miny")),parseFloat(no [...]
+return bbox;},"OnlineResource":function(node,obj){obj.href=this.getAttributeNS(node,this.namespaces.xlink,"href");},"ContactInformation":function(node,obj){obj.contactInformation={};this.readChildNodes(node,obj.contactInformation);},"ContactPersonPrimary":function(node,obj){obj.personPrimary={};this.readChildNodes(node,obj.personPrimary);},"ContactPerson":function(node,obj){obj.person=this.getChildValue(node);},"ContactOrganization":function(node,obj){obj.organization=this.getChildValue( [...]
+this.map.events.unregister("moveend",this,this.fixYahooEventPane);}},getWarningHTML:function(){return OpenLayers.i18n("getLayerWarning",{'layerType':'Yahoo','layerLib':'Yahoo'});},getOLZoomFromMapObjectZoom:function(moZoom){var zoom=null;if(moZoom!=null){zoom=OpenLayers.Layer.FixedZoomLevels.prototype.getOLZoomFromMapObjectZoom.apply(this,[moZoom]);zoom=18-zoom;}
+return zoom;},getMapObjectZoomFromOLZoom:function(olZoom){var zoom=null;if(olZoom!=null){zoom=OpenLayers.Layer.FixedZoomLevels.prototype.getMapObjectZoomFromOLZoom.apply(this,[olZoom]);zoom=18-zoom;}
+return zoom;},setMapObjectCenter:function(center,zoom){this.mapObject.drawZoomAndCenter(center,zoom);},getMapObjectCenter:function(){return this.mapObject.getCenterLatLon();},dragPanMapObject:function(dX,dY){this.mapObject.moveByXY({'x':-dX,'y':dY});},getMapObjectZoom:function(){return this.mapObject.getZoomLevel();},getMapObjectLonLatFromMapObjectPixel:function(moPixel){return this.mapObject.convertXYLatLon(moPixel);},getMapObjectPixelFromMapObjectLonLat:function(moLonLat){return this.m [...]
+return yLatLong;},getXFromMapObjectPixel:function(moPixel){return moPixel.x;},getYFromMapObjectPixel:function(moPixel){return moPixel.y;},getMapObjectPixelFromXY:function(x,y){return new YCoordPoint(x,y);},getMapObjectSizeFromOLSize:function(olSize){return new YSize(olSize.w,olSize.h);},CLASS_NAME:"OpenLayers.Layer.Yahoo"});OpenLayers.Layer.Zoomify=OpenLayers.Class(OpenLayers.Layer.Grid,{url:null,size:null,isBaseLayer:true,standardTileSize:256,tileOriginCorner:"tl",numberOfTiers:0,tileCo [...]
+this.tierSizeInTiles.reverse();this.tierImageSize.reverse();this.numberOfTiers=this.tierSizeInTiles.length;this.tileCountUpToTier[0]=0;for(var i=1;i<this.numberOfTiers;i++){this.tileCountUpToTier.push(this.tierSizeInTiles[i-1].w*this.tierSizeInTiles[i-1].h+
+this.tileCountUpToTier[i-1]);}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);this.tileCountUpToTier.length=0;this.tierSizeInTiles.length=0;this.tierImageSize.length=0;},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Zoomify(this.name,this.url,this.size,this.options);}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){bounds=this.adjustBounds(bounds);var res=this.map.getResolution();var x=Math.round((bounds.left-this.tileOrigin.lon)/(res*this.tileSize.w));var y=Math.round((this.tileOrigin.lat-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom();var tileIndex=x+y*this.tierSizeInTiles[z].w+this.tileCountUpToTier[z];var path="TileGroup"+Math.floor((tileIndex)/256)+"/"+z+"-"+x+"-"+y+".jpg";var url=this. [...]
+return url+path;},getImageSize:function(){if(arguments.length>0){var bounds=this.adjustBounds(arguments[0]);var res=this.map.getResolution();var x=Math.round((bounds.left-this.tileOrigin.lon)/(res*this.tileSize.w));var y=Math.round((this.tileOrigin.lat-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom();var w=this.standardTileSize;var h=this.standardTileSize;if(x==this.tierSizeInTiles[z].w-1){var w=this.tierImageSize[z].w%this.standardTileSize;};if(y==this.tierSizeInTiles[z].h-1) [...]
+if(!document.namespaces.olv){document.namespaces.add("olv",this.xmlns);var style=document.createStyleSheet();var shapes=['shape','rect','oval','fill','stroke','imagedata','group','textbox'];for(var i=0,len=shapes.length;i<len;i++){style.addRule('olv\\:'+shapes[i],"behavior: url(#default#VML); "+"position: absolute; display: inline-block;");}}
+OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);},supported:function(){return!!(document.namespaces);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=(extent.left/resolution)|0;var top=(extent.top/resolution-this.size.h)|0;if(resolutionChanged||!this.offset){this.offset={x:left,y:top};left=0;top=0;}else{left=left-this.offset.x;top=top-this.offset.y;}
+var org=left+" "+top;this.root.coordorigin=org;var roots=[this.root,this.vectorRoot,this.textRoot];var root;for(var i=0,len=roots.length;i<len;++i){root=roots[i];var size=this.size.w+" "+this.size.h;root.coordsize=size;}
+this.root.style.flip="y";return true;},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);var roots=[this.rendererRoot,this.root,this.vectorRoot,this.textRoot];var w=this.size.w+"px";var h=this.size.h+"px";var root;for(var i=0,len=roots.length;i<len;++i){root=roots[i];root.style.width=w;root.style.height=h;}},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType [...]
+break;case"OpenLayers.Geometry.Rectangle":nodeType="olv:rect";break;case"OpenLayers.Geometry.LineString":case"OpenLayers.Geometry.LinearRing":case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="olv:shape";break;default:break;}
+return nodeType;},setStyle:function(node,style,options,geometry){style=style||node._style;options=options||node._options;var fillColor=style.fillColor;if(node._geometryClass==="OpenLayers.Geometry.Point"){if(style.externalGraphic){options.isFilled=true;if(style.graphicTitle){node.title=style.graphicTitle;}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var resolution=this.getResolution();var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);node.style.left=(((geometry.x/resolution-this.offset.x)+xOffset)|0)+"px";node.style.top=(((geometry.y/resolution-th [...]
+if(options.isFilled){node.fillcolor=fillColor;}else{node.filled="false";}
+var fills=node.getElementsByTagName("fill");var fill=(fills.length==0)?null:fills[0];if(!options.isFilled){if(fill){node.removeChild(fill);}}else{if(!fill){fill=this.createNode('olv:fill',node.id+"_fill");}
+fill.opacity=style.fillOpacity;if(node._geometryClass==="OpenLayers.Geometry.Point"&&style.externalGraphic){if(style.graphicOpacity){fill.opacity=style.graphicOpacity;}
+fill.src=style.externalGraphic;fill.type="frame";if(!(style.graphicWidth&&style.graphicHeight)){fill.aspect="atmost";}}
+if(fill.parentNode!=node){node.appendChild(fill);}}
+var rotation=style.rotation;if((rotation!==undefined||node._rotation!==undefined)){node._rotation=rotation;if(style.externalGraphic){this.graphicRotate(node,xOffset,yOffset,style);fill.opacity=0;}else if(node._geometryClass==="OpenLayers.Geometry.Point"){node.style.rotation=rotation||0;}}
+var strokes=node.getElementsByTagName("stroke");var stroke=(strokes.length==0)?null:strokes[0];if(!options.isStroked){node.stroked=false;if(stroke){stroke.on=false;}}else{if(!stroke){stroke=this.createNode('olv:stroke',node.id+"_stroke");node.appendChild(stroke);}
+stroke.on=true;stroke.color=style.strokeColor;stroke.weight=style.strokeWidth+"px";stroke.opacity=style.strokeOpacity;stroke.endcap=style.strokeLinecap=='butt'?'flat':(style.strokeLinecap||'round');if(style.strokeDashstyle){stroke.dashstyle=this.dashStyle(style);}}
+if(style.cursor!="inherit"&&style.cursor!=null){node.style.cursor=style.cursor;}
+return node;},graphicRotate:function(node,xOffset,yOffset,style){var style=style||node._style;var rotation=style.rotation||0;var aspectRatio,size;if(!(style.graphicWidth&&style.graphicHeight)){var img=new Image();img.onreadystatechange=OpenLayers.Function.bind(function(){if(img.readyState=="complete"||img.readyState=="interactive"){aspectRatio=img.width/img.height;size=Math.max(style.pointRadius*2,style.graphicWidth||0,style.graphicHeight||0);xOffset=xOffset*aspectRatio;style.graphicWidt [...]
+var width=Math.round(style.graphicWidth||size*aspectRatio);var height=Math.round(style.graphicHeight||size);node.style.width=width+"px";node.style.height=height+"px";var image=document.getElementById(node.id+"_image");if(!image){image=this.createNode("olv:imagedata",node.id+"_image");node.appendChild(image);}
+image.style.width=width+"px";image.style.height=height+"px";image.src=style.externalGraphic;image.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader("+"src='', sizingMethod='scale')";var rot=rotation*Math.PI/180;var sintheta=Math.sin(rot);var costheta=Math.cos(rot);var filter="progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')\n";var opacity=style.graphicOpacity||style.fillOpacity;if(op [...]
+opacity+")\n";}
+node.style.filter=filter;var centerPoint=new OpenLayers.Geometry.Point(-xOffset,-yOffset);var imgBox=new OpenLayers.Bounds(0,0,width,height).toGeometry();imgBox.rotate(style.rotation,centerPoint);var imgBounds=imgBox.getBounds();node.style.left=Math.round(parseInt(node.style.left)+imgBounds.left)+"px";node.style.top=Math.round(parseInt(node.style.top)-imgBounds.bottom)+"px";},postDraw:function(node){node.style.visibility="visible";var fillColor=node._style.fillColor;var strokeColor=node. [...]
+if(strokeColor=="none"&&node.strokecolor!=strokeColor){node.strokecolor=strokeColor;}},setNodeDimension:function(node,geometry){var bbox=geometry.getBounds();if(bbox){var resolution=this.getResolution();var scaledBox=new OpenLayers.Bounds((bbox.left/resolution-this.offset.x)|0,(bbox.bottom/resolution-this.offset.y)|0,(bbox.right/resolution-this.offset.x)|0,(bbox.top/resolution-this.offset.y)|0);node.style.left=scaledBox.left+"px";node.style.top=scaledBox.top+"px";node.style.width=scaledB [...]
+return(parts[0]==1||parts[1]==1)?"dot":"dash";}else if(parts.length==4){return(1*parts[0]>=2*parts[1])?"longdashdot":"dashdot";}
+return"solid";}},createNode:function(type,id){var node=document.createElement(type);if(id){node.id=id;}
+node.unselectable='on';node.onselectstart=OpenLayers.Function.False;return node;},nodeTypeCompare:function(node,type){var subType=type;var splitIndex=subType.indexOf(":");if(splitIndex!=-1){subType=subType.substr(splitIndex+1);}
+var nodeName=node.nodeName;splitIndex=nodeName.indexOf(":");if(splitIndex!=-1){nodeName=nodeName.substr(splitIndex+1);}
+return(subType==nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_vmlRoot","div");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"olv:group");},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geometry,radius){if(!isNaN(geometry.x)&&!isNaN(geometry.y)){var resolution=this.getResolution();node.style.left=(((geometry.x/resolution-this.offset.x)|0)-radius)+"px";node.style.to [...]
+return false;},drawLineString:function(node,geometry){return this.drawLine(node,geometry,false);},drawLinearRing:function(node,geometry){return this.drawLine(node,geometry,true);},drawLine:function(node,geometry,closeLine){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var numComponents=geometry.components.length;var parts=new Array(numComponents);var comp,x,y;for(var i=0;i<numComponents;i++){comp=geometry.components[i];x=(comp.x/resolution-this.offset.x)|0;y=(c [...]
+var end=(closeLine)?" x e":" e";node.path="m"+parts.join("")+end;return node;},drawPolygon:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var j,jj,points,area,first,second,i,ii,comp,pathComp,x,y;for(j=0,jj=geometry.components.length;j<jj;j++){path.push("m");points=geometry.components[j].components;area=(j===0);first=null;second=null;for(i=0,ii=points.length;i<ii;i++){comp=points[i];x=(comp.x/resolution-this.offset.x)|0;y=(comp [...]
+if(!area){if(!first){first=pathComp;}else if(first!=pathComp){if(!second){second=pathComp;}else if(second!=pathComp){area=true;}}}}
+path.push(area?" x ":" ");}
+path.push("e");node.path=path.join("");return node;},drawRectangle:function(node,geometry){var resolution=this.getResolution();node.style.left=((geometry.x/resolution-this.offset.x)|0)+"px";node.style.top=((geometry.y/resolution-this.offset.y)|0)+"px";node.style.width=((geometry.width/resolution)|0)+"px";node.style.height=((geometry.height/resolution)|0)+"px";return node;},drawText:function(featureId,style,location){var label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,"olv:rect");va [...]
+if(style.fontColor){textbox.style.color=style.fontColor;}
+if(style.fontOpacity){textbox.style.filter='alpha(opacity='+(style.fontOpacity*100)+')';}
+if(style.fontFamily){textbox.style.fontFamily=style.fontFamily;}
+if(style.fontSize){textbox.style.fontSize=style.fontSize;}
+if(style.fontWeight){textbox.style.fontWeight=style.fontWeight;}
+if(style.fontStyle){textbox.style.fontStyle=style.fontStyle;}
+if(style.labelSelect===true){label._featureId=featureId;textbox._featureId=featureId;textbox._geometry=location;textbox._geometryClass=location.CLASS_NAME;}
+textbox.style.whiteSpace="nowrap";textbox.inset="1px,0px,0px,0px";if(!label.parentNode){label.appendChild(textbox);this.textRoot.appendChild(label);}
+var align=style.labelAlign||"cm";if(align.length==1){align+="m";}
+var xshift=textbox.clientWidth*(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(0,1)]);var yshift=textbox.clientHeight*(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(1,1)]);label.style.left=parseInt(label.style.left)-xshift-1+"px";label.style.top=parseInt(label.style.top)+yshift+"px";},drawSurface:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var comp,x,y;for(var i=0,len=geometry.components.length;i<len;i++){comp=geometry [...]
+path.push(" "+x+","+y);}
+path.push(" x e");node.path=path.join("");return node;},moveRoot:function(renderer){var layer=this.map.getLayer(renderer.container.id);if(layer instanceof OpenLayers.Layer.Vector.RootContainer){layer=this.map.getLayer(this.container.id);}
+layer&&layer.renderer.clear();OpenLayers.Renderer.Elements.prototype.moveRoot.apply(this,arguments);layer&&layer.redraw();},importSymbol:function(graphicName){var id=this.container.id+"-"+graphicName;var cache=this.symbolCache[id];if(cache){return cache;}
+var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');}
+var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var pathitems=["m"];for(var i=0;i<symbol.length;i=i+2){var x=symbol[i];var y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);pathitems.push(x);pathitems.push(y);if(i==0){pathitems.push("l");}}
+pathitems.push("x e");var path=pathitems.join(" ");var diff=(symbolExtent.getWidth()-symbolExtent.getHeight())/2;if(diff>0){symbolExtent.bottom=symbolExtent.bottom-diff;symbolExtent.top=symbolExtent.top+diff;}else{symbolExtent.left=symbolExtent.left+diff;symbolExtent.right=symbolExtent.right-diff;}
+cache={path:path,size:symbolExtent.getWidth(),left:symbolExtent.left,bottom:symbolExtent.bottom};this.symbolCache[id]=cache;return cache;},CLASS_NAME:"OpenLayers.Renderer.VML"});OpenLayers.Renderer.VML.LABEL_SHIFT={"l":0,"c":.5,"r":1,"t":0,"m":.5,"b":1};OpenLayers.Layer.MultiMap=OpenLayers.Class(OpenLayers.Layer.EventPane,OpenLayers.Layer.FixedZoomLevels,{MIN_ZOOM_LEVEL:1,MAX_ZOOM_LEVEL:17,RESOLUTIONS:[9,1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.01098 [...]
+return mmLatLon;},getXFromMapObjectPixel:function(moPixel){return moPixel.x;},getYFromMapObjectPixel:function(moPixel){return moPixel.y;},getMapObjectPixelFromXY:function(x,y){return new MMPoint(x,y);},CLASS_NAME:"OpenLayers.Layer.MultiMap"});OpenLayers.Control.MouseToolbar=OpenLayers.Class(OpenLayers.Control.MouseDefaults,{mode:null,buttons:null,direction:"vertical",buttonClicked:null,initialize:function(position,direction){OpenLayers.Control.prototype.initialize.apply(this,arguments);t [...]
+if(direction){this.direction=direction;}
+this.measureDivs=[];},destroy:function(){for(var btnId in this.buttons){var btn=this.buttons[btnId];btn.map=null;btn.events.destroy();}
+OpenLayers.Control.MouseDefaults.prototype.destroy.apply(this,arguments);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);OpenLayers.Control.MouseDefaults.prototype.draw.apply(this,arguments);this.buttons={};var sz=new OpenLayers.Size(28,28);var centered=new OpenLayers.Pixel(OpenLayers.Control.MouseToolbar.X,0);this._addButton("zoombox","drag-rectangle-off.png","drag-rectangle-on.png",centered,sz,"Shift->Drag to zoom to area");centered=centered.add((this.directio [...]
+this.buttonClicked=evt.element.action;OpenLayers.Event.stop(evt);},buttonUp:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+if(this.buttonClicked!=null){if(this.buttonClicked==evt.element.action){this.switchModeTo(evt.element.action);}
+OpenLayers.Event.stop(evt);this.buttonClicked=null;}},defaultDblClick:function(evt){this.switchModeTo("pan");this.performedDrag=false;var newCenter=this.map.getLonLatFromViewPortPx(evt.xy);this.map.setCenter(newCenter,this.map.zoom+1);OpenLayers.Event.stop(evt);return false;},defaultMouseDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+this.mouseDragStart=evt.xy.clone();this.performedDrag=false;this.startViaKeyboard=false;if(evt.shiftKey&&this.mode!="zoombox"){this.switchModeTo("zoombox");this.startViaKeyboard=true;}else if(evt.altKey&&this.mode!="measure"){this.switchModeTo("measure");}else if(!this.mode){this.switchModeTo("pan");}
+switch(this.mode){case"zoombox":this.map.div.style.cursor="crosshair";this.zoomBox=OpenLayers.Util.createDiv('zoomBox',this.mouseDragStart,null,null,"absolute","2px solid red");this.zoomBox.style.backgroundColor="white";this.zoomBox.style.filter="alpha(opacity=50)";this.zoomBox.style.opacity="0.50";this.zoomBox.style.fontSize="1px";this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.eventsDiv.appendChild(this.zoomBox);this.performedDrag=true;break;case"measure":var distan [...]
+this.measureStart=this.map.getLonLatFromViewPortPx(this.mouseDragStart);;this.measureBox=OpenLayers.Util.createDiv(null,this.mouseDragStart.add(-2-parseInt(this.map.layerContainerDiv.style.left),-2-parseInt(this.map.layerContainerDiv.style.top)),null,null,"absolute");this.measureBox.style.width="4px";this.measureBox.style.height="4px";this.measureBox.style.fontSize="1px";this.measureBox.style.backgroundColor="red";this.measureBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.lay [...]
+this.measureBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.layerContainerDiv.appendChild(this.measureBox);this.measureDivs.push(this.measureBox);break;default:this.map.div.style.cursor="move";break;}
+document.onselectstart=OpenLayers.Function.False;OpenLayers.Event.stop(evt);},switchModeTo:function(mode){if(mode!=this.mode){if(this.mode&&this.buttons[this.mode]){OpenLayers.Util.modifyAlphaImageDiv(this.buttons[this.mode],null,null,null,this.buttons[this.mode].imgLocation);}
+if(this.mode=="measure"&&mode!="measure"){for(var i=0,len=this.measureDivs.length;i<len;i++){if(this.measureDivs[i]){this.map.layerContainerDiv.removeChild(this.measureDivs[i]);}}
+this.measureDivs=[];this.measureStart=null;}
+this.mode=mode;if(this.buttons[mode]){OpenLayers.Util.modifyAlphaImageDiv(this.buttons[mode],null,null,null,this.buttons[mode].activeImgLocation);}
+switch(this.mode){case"zoombox":this.map.div.style.cursor="crosshair";break;default:this.map.div.style.cursor="";break;}}},leaveMode:function(){this.switchModeTo("pan");},defaultMouseMove:function(evt){if(this.mouseDragStart!=null){switch(this.mode){case"zoombox":var deltaX=Math.abs(this.mouseDragStart.x-evt.xy.x);var deltaY=Math.abs(this.mouseDragStart.y-evt.xy.y);this.zoomBox.style.width=Math.max(1,deltaX)+"px";this.zoomBox.style.height=Math.max(1,deltaY)+"px";if(evt.xy.x<this.mouseDra [...]
+if(evt.xy.y<this.mouseDragStart.y){this.zoomBox.style.top=evt.xy.y+"px";}
+break;default:var deltaX=this.mouseDragStart.x-evt.xy.x;var deltaY=this.mouseDragStart.y-evt.xy.y;var size=this.map.getSize();var newXY=new OpenLayers.Pixel(size.w/2+deltaX,size.h/2+deltaY);var newCenter=this.map.getLonLatFromViewPortPx(newXY);this.map.setCenter(newCenter,null,true);this.mouseDragStart=evt.xy.clone();}
+this.performedDrag=true;}},defaultMouseUp:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+switch(this.mode){case"zoombox":this.zoomBoxEnd(evt);if(this.startViaKeyboard){this.leaveMode();}
+break;case"pan":if(this.performedDrag){this.map.setCenter(this.map.center);}}
+document.onselectstart=null;this.mouseDragStart=null;this.map.div.style.cursor="default";},defaultMouseOut:function(evt){if(this.mouseDragStart!=null&&OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){if(this.zoomBox){this.removeZoomBox();if(this.startViaKeyboard){this.leaveMode();}}
+this.mouseDragStart=null;this.map.div.style.cursor="default";}},defaultClick:function(evt){if(this.performedDrag){this.performedDrag=false;return false;}},CLASS_NAME:"OpenLayers.Control.MouseToolbar"});OpenLayers.Control.MouseToolbar.X=6;OpenLayers.Control.MouseToolbar.Y=300;OpenLayers.Protocol.WFS.v1_0_0=OpenLayers.Class(OpenLayers.Protocol.WFS.v1,{version:"1.0.0",CLASS_NAME:"OpenLayers.Protocol.WFS.v1_0_0"});OpenLayers.Format.WMSGetFeatureInfo=OpenLayers.Class(OpenLayers.Format.XML,{la [...]
+var root=data.documentElement;if(root){var scope=this;var read=this["read_"+root.nodeName];if(read){result=read.call(this,root);}else{result=new OpenLayers.Format.GML((this.options?this.options:{})).read(data);}}else{result=data;}
+return result;},read_msGMLOutput:function(data){var response=[];var layerNodes=this.getSiblingNodesByTagCriteria(data,this.layerIdentifier);if(layerNodes){for(var i=0,len=layerNodes.length;i<len;++i){var node=layerNodes[i];var layerName=node.nodeName;if(node.prefix){layerName=layerName.split(':')[1];}
+var layerName=layerName.replace(this.layerIdentifier,'');var featureNodes=this.getSiblingNodesByTagCriteria(node,this.featureIdentifier);if(featureNodes){for(var j=0;j<featureNodes.length;j++){var featureNode=featureNodes[j];var geomInfo=this.parseGeometry(featureNode);var attributes=this.parseAttributes(featureNode);var feature=new OpenLayers.Feature.Vector(geomInfo.geometry,attributes,null);feature.bounds=geomInfo.bounds;feature.type=layerName;response.push(feature);}}}}
+return response;},read_FeatureInfoResponse:function(data){var response=[];var featureNodes=this.getElementsByTagNameNS(data,'*','FIELDS');for(var i=0,len=featureNodes.length;i<len;i++){var featureNode=featureNodes[i];var geom=null;var attributes={};var j;var jlen=featureNode.attributes.length;if(jlen>0){for(j=0;j<jlen;j++){var attribute=featureNode.attributes[j];attributes[attribute.nodeName]=attribute.nodeValue;}}else{var nodes=featureNode.childNodes;for(j=0,jlen=nodes.length;j<jlen;++j [...]
+response.push(new OpenLayers.Feature.Vector(geom,attributes,null));}
+return response;},getSiblingNodesByTagCriteria:function(node,criteria){var nodes=[];var children,tagName,n,matchNodes,child;if(node&&node.hasChildNodes()){children=node.childNodes;n=children.length;for(var k=0;k<n;k++){child=children[k];while(child&&child.nodeType!=1){child=child.nextSibling;k++;}
+tagName=(child?child.nodeName:'');if(tagName.length>0&&tagName.indexOf(criteria)>-1){nodes.push(child);}else{matchNodes=this.getSiblingNodesByTagCriteria(child,criteria);if(matchNodes.length>0){(nodes.length==0)?nodes=matchNodes:nodes.push(matchNodes);}}}}
+return nodes;},parseAttributes:function(node){var attributes={};if(node.nodeType==1){var children=node.childNodes;var n=children.length;for(var i=0;i<n;++i){var child=children[i];if(child.nodeType==1){var grandchildren=child.childNodes;var name=(child.prefix)?child.nodeName.split(":")[1]:child.nodeName;if(grandchildren.length==0){attributes[name]=null}else if(grandchildren.length==1){var grandchild=grandchildren[0];if(grandchild.nodeType==3||grandchild.nodeType==4){var value=grandchild.n [...]
+return attributes;},parseGeometry:function(node){if(!this.gmlFormat){this.gmlFormat=new OpenLayers.Format.GML();}
+var feature=this.gmlFormat.parseFeature(node);var geometry,bounds=null;if(feature){geometry=feature.geometry&&feature.geometry.clone();bounds=feature.bounds&&feature.bounds.clone();feature.destroy();}
+return{geometry:geometry,bounds:bounds};},CLASS_NAME:"OpenLayers.Format.WMSGetFeatureInfo"});OpenLayers.Control.WMTSGetFeatureInfo=OpenLayers.Class(OpenLayers.Control,{hover:false,requestEncoding:"KVP",drillDown:false,maxFeatures:10,clickCallback:"click",layers:null,queryVisible:true,infoFormat:'text/html',vendorParams:{},format:null,formatOptions:null,handlerOptions:null,handler:null,hoverRequest:null,EVENT_TYPES:["beforegetfeatureinfo","getfeatureinfo","exception"],pending:0,initialize [...]
+if(this.drillDown===true){this.hover=false;}
+if(this.hover){this.handler=new OpenLayers.Handler.Hover(this,{move:this.cancelHover,pause:this.getInfoForHover},OpenLayers.Util.extend(this.handlerOptions.hover||{},{delay:250}));}else{var callbacks={};callbacks[this.clickCallback]=this.getInfoForClick;this.handler=new OpenLayers.Handler.Click(this,callbacks,this.handlerOptions.click||{});}},getInfoForClick:function(evt){this.request(evt.xy,{});},getInfoForHover:function(evt){this.request(evt.xy,{hover:true});},cancelHover:function(){if [...]
+this.hoverRequest.abort();this.hoverRequest=null;}},findLayers:function(){var candidates=this.layers||this.map.layers;var layers=[];var layer;for(var i=candidates.length-1;i>=0;--i){layer=candidates[i];if(layer instanceof OpenLayers.Layer.WMTS&&layer.requestEncoding===this.requestEncoding&&(!this.queryVisible||layer.getVisibility())){layers.push(layer);if(!this.drillDown||this.hover){break;}}}
+return layers;},buildRequestOptions:function(layer,xy){var loc=this.map.getLonLatFromPixel(xy);var getTileUrl=layer.getURL(new OpenLayers.Bounds(loc.lon,loc.lat,loc.lon,loc.lat));var params=OpenLayers.Util.getParameters(getTileUrl);var tileInfo=layer.getTileInfo(loc);OpenLayers.Util.extend(params,{service:"WMTS",version:layer.version,request:"GetFeatureInfo",infoFormat:this.infoFormat,i:tileInfo.i,j:tileInfo.j});OpenLayers.Util.applyDefaults(params,this.vendorParams);return{url:OpenLayer [...]
+if(this.pending>0){OpenLayers.Element.addClass(this.map.viewPortDiv,"olCursorWait");}}},handleResponse:function(xy,request,layer){--this.pending;if(this.pending<=0){OpenLayers.Element.removeClass(this.map.viewPortDiv,"olCursorWait");this.pending=0;}
+if(request.status&&(request.status<200||request.status>=300)){this.events.triggerEvent("exception",{xy:xy,request:request,layer:layer});}else{var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+var features,except;try{features=this.format.read(doc);}catch(error){except=true;this.events.triggerEvent("exception",{xy:xy,request:request,error:error,layer:layer});}
+if(!except){this.events.triggerEvent("getfeatureinfo",{text:request.responseText,features:features,request:request,xy:xy,layer:layer});}}},CLASS_NAME:"OpenLayers.Control.WMTSGetFeatureInfo"});OpenLayers.Format.WMSCapabilities.v1_1=OpenLayers.Class(OpenLayers.Format.WMSCapabilities.v1,{readers:{"wms":OpenLayers.Util.applyDefaults({"WMT_MS_Capabilities":function(node,obj){this.readChildNodes(node,obj);},"Keyword":function(node,obj){if(obj.keywords){obj.keywords.push(this.getChildValue(node [...]
+return this.div;},activate:function(){if(OpenLayers.Control.prototype.activate.apply(this,arguments)){this.map.addLayer(this.gratLayer);this.map.events.register('moveend',this,this.update);this.update();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Control.prototype.deactivate.apply(this,arguments)){this.map.events.unregister('moveend',this,this.update);this.map.removeLayer(this.gratLayer);return true;}else{return false;}},update:function(){var mapBounds=this.map. [...]
+this.gratLayer.destroyFeatures();var llProj=new OpenLayers.Projection("EPSG:4326");var mapProj=this.map.getProjectionObject();var mapRes=this.map.getResolution();if(mapProj.proj&&mapProj.proj.projName=="longlat"){this.numPoints=1;}
+var mapCenter=this.map.getCenter();var mapCenterLL=new OpenLayers.Pixel(mapCenter.lon,mapCenter.lat);OpenLayers.Projection.transform(mapCenterLL,mapProj,llProj);var testSq=this.targetSize*mapRes;testSq*=testSq;var llInterval;for(var i=0;i<this.intervals.length;++i){llInterval=this.intervals[i];var delta=llInterval/2;var p1=mapCenterLL.offset(new OpenLayers.Pixel(-delta,-delta));var p2=mapCenterLL.offset(new OpenLayers.Pixel(delta,delta));OpenLayers.Projection.transform(p1,llProj,mapProj) [...]
+mapCenterLL.x=Math.floor(mapCenterLL.x/llInterval)*llInterval;mapCenterLL.y=Math.floor(mapCenterLL.y/llInterval)*llInterval;var iter=0;var centerLonPoints=[mapCenterLL.clone()];var newPoint=mapCenterLL.clone();var mapXY;do{newPoint=newPoint.offset(new OpenLayers.Pixel(0,llInterval));mapXY=OpenLayers.Projection.transform(newPoint.clone(),llProj,mapProj);centerLonPoints.unshift(newPoint);}while(mapBounds.containsPixel(mapXY)&&++iter<1000);newPoint=mapCenterLL.clone();do{newPoint=newPoint.o [...]
+if(this.labelled){var labelPos=new OpenLayers.Geometry.Point(labelPoint.x,mapBounds.bottom);var labelAttrs={value:lon,label:this.labelled?OpenLayers.Util.getFormattedLonLat(lon,"lon",this.labelFormat):"",labelAlign:"cb",xOffset:0,yOffset:2};this.gratLayer.addFeatures(new OpenLayers.Feature.Vector(labelPos,labelAttrs));}
+var geom=new OpenLayers.Geometry.LineString(pointList);lines.push(new OpenLayers.Feature.Vector(geom));}
+for(var j=0;j<centerLonPoints.length;++j){lat=centerLonPoints[j].y;if(lat<-90||lat>90){continue;}
+var pointList=[];var lonStart=centerLatPoints[0].x;var lonEnd=centerLatPoints[centerLatPoints.length-1].x;var lonDelta=(lonEnd-lonStart)/this.numPoints;var lon=lonStart;var labelPoint=null;for(var i=0;i<=this.numPoints;++i){var gridPoint=new OpenLayers.Geometry.Point(lon,lat);gridPoint.transform(llProj,mapProj);pointList.push(gridPoint);lon+=lonDelta;if(gridPoint.x<mapBounds.right){labelPoint=gridPoint;}}
+if(this.labelled){var labelPos=new OpenLayers.Geometry.Point(mapBounds.right,labelPoint.y);var labelAttrs={value:lat,label:this.labelled?OpenLayers.Util.getFormattedLonLat(lat,"lat",this.labelFormat):"",labelAlign:"rb",xOffset:-2,yOffset:2};this.gratLayer.addFeatures(new OpenLayers.Feature.Vector(labelPos,labelAttrs));}
+var geom=new OpenLayers.Geometry.LineString(pointList);lines.push(new OpenLayers.Feature.Vector(geom));}
+this.gratLayer.addFeatures(lines);},CLASS_NAME:"OpenLayers.Control.Graticule"});OpenLayers.Layer.WMS.Post=OpenLayers.Class(OpenLayers.Layer.WMS,{unsupportedBrowsers:["mozilla","firefox","opera"],SUPPORTED_TRANSITIONS:[],usePost:null,initialize:function(name,url,params,options){var newArguments=[];newArguments.push(name,url,params,options);OpenLayers.Layer.WMS.prototype.initialize.apply(this,newArguments);this.usePost=OpenLayers.Util.indexOf(this.unsupportedBrowsers,OpenLayers.BROWSER_NAM [...]
+if(this.layerInfo){var info=this.layerInfo;var startingTileExtent=new OpenLayers.Bounds(info.fullExtent.xmin,info.fullExtent.ymin,info.fullExtent.xmax,info.fullExtent.ymax);this.projection='EPSG:'+info.spatialReference.wkid;this.sphericalMercator=(info.spatialReference.wkid==102100);this.units=(info.units=="esriFeet")?'ft':'m';if(!!info.tileInfo){this.tileSize=new OpenLayers.Size(info.tileInfo.width||info.tileInfo.cols,info.tileInfo.height||info.tileInfo.rows);this.tileOrigin=new OpenLay [...]
+this.lods=[];for(var key in info.tileInfo.lods){if(info.tileInfo.lods.hasOwnProperty(key)){var lod=info.tileInfo.lods[key];if(this.useScales){this.scales.push(lod.scale);}else{this.resolutions.push(lod.resolution);}
+var start=this.getContainingTileCoords(upperLeft,lod.resolution);lod.startTileCol=start.x;lod.startTileRow=start.y;var end=this.getContainingTileCoords(bottomRight,lod.resolution);lod.endTileCol=end.x;lod.endTileRow=end.y;this.lods.push(lod);}}
+this.maxExtent=this.calculateMaxExtentWithLOD(this.lods[0]);this.serverResolutions=this.resolutions;if(this.overrideDPI&&info.tileInfo.dpi){OpenLayers.DOTS_PER_INCH=info.tileInfo.dpi;}}}},getContainingTileCoords:function(point,res){return new OpenLayers.Pixel(Math.max(Math.floor((point.x-this.tileOrigin.lon)/(this.tileSize.w*res)),0),Math.max(Math.floor((this.tileOrigin.lat-point.y)/(this.tileSize.h*res)),0));},calculateMaxExtentWithLOD:function(lod){var numTileCols=(lod.endTileCol-lod.s [...]
+return OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);},getMaxExtent:function(){var resolution=this.map.getResolution();return this.maxExtent=this.getMaxExtentForResolution(resolution);},getTileOrigin:function(){var extent=this.getMaxExtent();return new OpenLayers.LonLat(extent.left,extent.bottom);},getURL:function(bounds){var res=this.getResolution();var originTileX=(this.tileOrigin.lon+(res*this.tileSize.w/2));var originTileY=(this.tileOrigin.lat-(res*this.tileSize.h/2));var ce [...]
+else{var start=this.getUpperLeftTileCoord(res);var end=this.getLowerRightTileCoord(res);if((x<start.x||x>=end.x)||(y<start.y||y>=end.y)){return null;}}
+var url=this.url;var s=''+x+y+z;if(OpenLayers.Util.isArray(url)){url=this.selectUrl(s,url);}
+if(this.useArcGISServer){url=url+'/tile/${z}/${y}/${x}';}else{x='C'+this.zeroPad(x,8,16);y='R'+this.zeroPad(y,8,16);z='L'+this.zeroPad(z,2,16);url=url+'/${z}/${y}/${x}.'+this.type;}
+url=OpenLayers.String.format(url,{'x':x,'y':y,'z':z});return url;},zeroPad:function(num,len,radix){var str=num.toString(radix||10);while(str.length<len){str="0"+str;}
+return str;},CLASS_NAME:'OpenLayers.Layer.ArcGISCache'});OpenLayers.Control.WMSGetFeatureInfo=OpenLayers.Class(OpenLayers.Control,{hover:false,drillDown:false,maxFeatures:10,clickCallback:"click",output:"features",layers:null,queryVisible:false,url:null,layerUrls:null,infoFormat:'text/html',vendorParams:{},format:null,formatOptions:null,handlerOptions:null,handler:null,hoverRequest:null,EVENT_TYPES:["beforegetfeatureinfo","nogetfeatureinfo","getfeatureinfo"],initialize:function(options){ [...]
+if(this.drillDown===true){this.hover=false;}
+if(this.hover){this.handler=new OpenLayers.Handler.Hover(this,{'move':this.cancelHover,'pause':this.getInfoForHover},OpenLayers.Util.extend(this.handlerOptions.hover||{},{'delay':250}));}else{var callbacks={};callbacks[this.clickCallback]=this.getInfoForClick;this.handler=new OpenLayers.Handler.Click(this,callbacks,this.handlerOptions.click||{});}},activate:function(){if(!this.active){this.handler.activate();}
+return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},getInfoForClick:function(evt){this.events.triggerEvent("beforegetfeatureinfo",{xy:evt.xy});OpenLayers.Element.addClass(this.map.viewPortDiv,"olCursorWait");this.request(evt.xy,{});},getInfoForHover:function(evt){this.events.triggerEvent("beforegetfeatureinfo",{xy:evt.xy});this.request(evt.xy,{hover:true});},cancelHover:function( [...]
+if(this.drillDown===true||this.urlMatches(url)){layers.push(layer);}}}
+return layers;},urlMatches:function(url){var matches=OpenLayers.Util.isEquivalentUrl(this.url,url);if(!matches&&this.layerUrls){for(var i=0,len=this.layerUrls.length;i<len;++i){if(OpenLayers.Util.isEquivalentUrl(this.layerUrls[i],url)){matches=true;break;}}}
+return matches;},buildWMSOptions:function(url,layers,clickPosition,format){var layerNames=[],styleNames=[];for(var i=0,len=layers.length;i<len;i++){layerNames=layerNames.concat(layers[i].params.LAYERS);styleNames=styleNames.concat(this.getStyleNames(layers[i]));}
+var firstLayer=layers[0];var projection=this.map.getProjection();var layerProj=firstLayer.projection;if(layerProj&&layerProj.equals(this.map.getProjectionObject())){projection=layerProj.getCode();}
+var params=OpenLayers.Util.extend({service:"WMS",version:firstLayer.params.VERSION,request:"GetFeatureInfo",layers:layerNames,query_layers:layerNames,styles:styleNames,bbox:this.map.getExtent().toBBOX(null,firstLayer.reverseAxisOrder()),feature_count:this.maxFeatures,height:this.map.getSize().h,width:this.map.getSize().w,format:format,info_format:firstLayer.params.INFO_FORMAT||this.infoFormat},(parseFloat(firstLayer.params.VERSION)>=1.3)?{crs:projection,i:parseInt(clickPosition.x),j:pars [...]
+return styleNames;},request:function(clickPosition,options){var layers=this.findLayers();if(layers.length==0){this.events.triggerEvent("nogetfeatureinfo");OpenLayers.Element.removeClass(this.map.viewPortDiv,"olCursorWait");return;}
+options=options||{};if(this.drillDown===false){var wmsOptions=this.buildWMSOptions(this.url,layers,clickPosition,layers[0].params.FORMAT);var request=OpenLayers.Request.GET(wmsOptions);if(options.hover===true){this.hoverRequest=request;}}else{this._requestCount=0;this._numRequests=0;this.features=[];var services={},url;for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];var service,found=false;url=OpenLayers.Util.isArray(layer.url)?layer.url[0]:layer.url;if(url in services){serv [...]
+var layers;for(var url in services){layers=services[url];var wmsOptions=this.buildWMSOptions(url,layers,clickPosition,layers[0].params.FORMAT);OpenLayers.Request.GET(wmsOptions);}}},triggerGetFeatureInfo:function(request,xy,features){this.events.triggerEvent("getfeatureinfo",{text:request.responseText,features:features,request:request,xy:xy});OpenLayers.Element.removeClass(this.map.viewPortDiv,"olCursorWait");},handleResponse:function(xy,request,url){var doc=request.responseXML;if(!doc|| [...]
+var features=this.format.read(doc);if(this.drillDown===false){this.triggerGetFeatureInfo(request,xy,features);}else{this._requestCount++;if(this.output==="object"){this._features=(this._features||[]).concat({url:url,features:features});}else{this._features=(this._features||[]).concat(features);}
+if(this._requestCount===this._numRequests){this.triggerGetFeatureInfo(request,xy,this._features.concat());delete this._features;delete this._requestCount;delete this._numRequests;}}},CLASS_NAME:"OpenLayers.Control.WMSGetFeatureInfo"});OpenLayers.Format.WMSCapabilities.v1_3_0=OpenLayers.Class(OpenLayers.Format.WMSCapabilities.v1_3,{version:"1.3.0",CLASS_NAME:"OpenLayers.Format.WMSCapabilities.v1_3_0"});OpenLayers.Format.CQL=(function(){var tokens=["PROPERTY","COMPARISON","VALUE","LOGICAL" [...]
+return[text.substr(0,idx+1)];}},END:/^$/},follows={LPAREN:['GEOMETRY','SPATIAL','PROPERTY','VALUE','LPAREN'],RPAREN:['NOT','LOGICAL','END','RPAREN'],PROPERTY:['COMPARISON','BETWEEN','COMMA'],BETWEEN:['VALUE'],COMPARISON:['VALUE'],COMMA:['GEOMETRY','VALUE','PROPERTY'],VALUE:['LOGICAL','COMMA','RPAREN','END'],SPATIAL:['LPAREN'],LOGICAL:['NOT','VALUE','SPATIAL','PROPERTY','LPAREN'],NOT:['PROPERTY','LPAREN'],GEOMETRY:['COMMA','RPAREN']},operators={'=':OpenLayers.Filter.Comparison.EQUAL_TO,'< [...]
+for(i in logicals){if(logicals.hasOwnProperty(i)){logicalReverse[logicals[i]]=i;}}
+function tryToken(text,pattern){if(pattern instanceof RegExp){return pattern.exec(text);}else{return pattern(text);}}
+function nextToken(text,tokens){var i,token,len=tokens.length;for(i=0;i<len;i++){token=tokens[i];var pat=patterns[token];var matches=tryToken(text,pat);if(matches){var match=matches[0];var remainder=text.substr(match.length).replace(/^\s*/,"");return{type:token,text:match,remainder:remainder};}}
+var msg="ERROR: In parsing: ["+text+"], expected one of: ";for(i=0;i<len;i++){token=tokens[i];msg+="\n    "+token+": "+patterns[token];}
+throw new Error(msg);}
+function tokenize(text){var results=[];var token,expect=["NOT","GEOMETRY","SPATIAL","PROPERTY","LPAREN"];do{token=nextToken(text,expect);text=token.remainder;expect=follows[token.type];if(token.type!="END"&&!expect){throw new Error("No follows list for "+token.type);}
+results.push(token);}while(token.type!="END");return results;}
+function buildAst(tokens){var operatorStack=[],postfix=[];while(tokens.length){var tok=tokens.shift();switch(tok.type){case"PROPERTY":case"GEOMETRY":case"VALUE":postfix.push(tok);break;case"COMPARISON":case"BETWEEN":case"LOGICAL":var p=precedence[tok.type];while(operatorStack.length>0&&(precedence[operatorStack[operatorStack.length-1].type]<=p)){postfix.push(operatorStack.pop());}
+operatorStack.push(tok);break;case"SPATIAL":case"NOT":case"LPAREN":operatorStack.push(tok);break;case"RPAREN":while(operatorStack.length>0&&(operatorStack[operatorStack.length-1].type!="LPAREN")){postfix.push(operatorStack.pop());}
+operatorStack.pop();if(operatorStack.length>0&&operatorStack[operatorStack.length-1].type=="SPATIAL"){postfix.push(operatorStack.pop());}
+case"COMMA":case"END":break;default:throw new Error("Unknown token type "+tok.type);}}
+while(operatorStack.length>0){postfix.push(operatorStack.pop());}
+function buildTree(){var tok=postfix.pop();switch(tok.type){case"LOGICAL":var rhs=buildTree(),lhs=buildTree();return new OpenLayers.Filter.Logical({filters:[lhs,rhs],type:logicals[tok.text.toUpperCase()]});case"NOT":var operand=buildTree();return new OpenLayers.Filter.Logical({filters:[operand],type:OpenLayers.Filter.Logical.NOT});case"BETWEEN":var min,max,property;postfix.pop();max=buildTree();min=buildTree();property=buildTree();return new OpenLayers.Filter.Comparison({property:propert [...]
+case"SPATIAL":switch(tok.text.toUpperCase()){case"BBOX":var maxy=buildTree(),maxx=buildTree(),miny=buildTree(),minx=buildTree(),prop=buildTree();return new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.BBOX,property:prop,value:OpenLayers.Bounds.fromArray([minx,miny,maxx,maxy])});case"INTERSECTS":var value=buildTree(),property=buildTree();return new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.INTERSECTS,property:property,value:value});case"WITHIN":var value=build [...]
+case"GEOMETRY":return OpenLayers.Geometry.fromWKT(tok.text);default:return tok.text;}}
+var result=buildTree();if(postfix.length>0){var msg="Remaining tokens after building AST: \n";for(var i=postfix.length-1;i>=0;i--){msg+=postfix[i].type+": "+postfix[i].text+"\n";}
+throw new Error(msg);}
+return result;}
+return OpenLayers.Class(OpenLayers.Format,{read:function(text){var result=buildAst(tokenize(text));if(this.keepData){this.data=result;};return result;},write:function(filter){if(filter instanceof OpenLayers.Geometry){return filter.toString();}
+switch(filter.CLASS_NAME){case"OpenLayers.Filter.Spatial":switch(filter.type){case OpenLayers.Filter.Spatial.BBOX:return"BBOX("+
+filter.property+","+
+filter.value.toBBOX()+")";case OpenLayers.Filter.Spatial.DWITHIN:return"DWITHIN("+
+filter.property+", "+
+this.write(filter.value)+", "+
+filter.distance+")";case OpenLayers.Filter.Spatial.WITHIN:return"WITHIN("+
+filter.property+", "+
+this.write(filter.value)+")";case OpenLayers.Filter.Spatial.INTERSECTS:return"INTERSECTS("+
+filter.property+", "+
+this.write(filter.value)+")";case OpenLayers.Filter.Spatial.CONTAINS:return"CONTAINS("+
+filter.property+", "+
+this.write(filter.value)+")";default:throw new Error("Unknown spatial filter type: "+filter.type);}
+case"OpenLayers.Filter.Logical":if(filter.type==OpenLayers.Filter.Logical.NOT){return"NOT ("+this.write(filter.filters[0])+")";}else{var res="(";var first=true;for(var i=0;i<filter.filters.length;i++){if(first){first=false;}else{res+=") "+logicalReverse[filter.type]+" (";}
+res+=this.write(filter.filters[i]);}
+return res+")";}
+case"OpenLayers.Filter.Comparison":if(filter.type==OpenLayers.Filter.Comparison.BETWEEN){return filter.property+" BETWEEN "+
+this.write(filter.lowerBoundary)+" AND "+
+this.write(filter.upperBoundary);}else{return filter.property+" "+operatorReverse[filter.type]+" "+
+this.write(filter.value);}
+case undefined:if(typeof filter==="string"){return"'"+filter+"'";}else if(typeof filter==="number"){return String(filter);}
+default:throw new Error("Can't encode: "+filter.CLASS_NAME+" "+filter);}},CLASS_NAME:"OpenLayers.Format.CQL"});})();OpenLayers.Control.Split=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:["beforesplit","split","aftersplit"],layer:null,source:null,sourceOptions:null,tolerance:null,edge:true,deferDelete:false,mutual:true,targetFilter:null,sourceFilter:null,handler:null,initialize:function(options){Array.prototype.push.apply(this.EVENT_TYPES,OpenLayers.Control.prototype.EVENT_TYPES);Open [...]
+this.source=layer;this.activate();}else{this.source=layer;}},activate:function(){var activated=OpenLayers.Control.prototype.activate.call(this);if(activated){if(!this.source){if(!this.handler){this.handler=new OpenLayers.Handler.Path(this,{done:function(geometry){this.onSketchComplete({feature:new OpenLayers.Feature.Vector(geometry)});}},{layerOptions:this.sourceOptions});}
+this.handler.activate();}else if(this.source.events){this.source.events.on({sketchcomplete:this.onSketchComplete,afterfeaturemodified:this.afterFeatureModified,scope:this});}}
+return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.call(this);if(deactivated){if(this.source&&this.source.events){this.layer.events.un({sketchcomplete:this.onSketchComplete,afterfeaturemodified:this.afterFeatureModified,scope:this});}}
+return deactivated;},onSketchComplete:function(event){this.feature=null;return!this.considerSplit(event.feature);},afterFeatureModified:function(event){if(event.modified){var feature=event.feature;if(feature.geometry instanceof OpenLayers.Geometry.LineString||feature.geometry instanceof OpenLayers.Geometry.MultiLineString){this.feature=event.feature;this.considerSplit(event.feature);}}},removeByGeometry:function(features,geometry){for(var i=0,len=features.length;i<len;++i){if(features[i] [...]
+results=results[1];}
+if(results.length>1){results.unshift(k,1);Array.prototype.splice.apply(targetParts,results);k+=results.length-3;}}}}}}
+if(targetParts&&targetParts.length>1){this.geomsToFeatures(targetFeature,targetParts);this.events.triggerEvent("split",{original:targetFeature,features:targetParts});Array.prototype.push.apply(additions,targetParts);removals.push(targetFeature);targetSplit=true;}}}
+if(sourceParts&&sourceParts.length>1){this.geomsToFeatures(feature,sourceParts);this.events.triggerEvent("split",{original:feature,features:sourceParts});Array.prototype.push.apply(additions,sourceParts);removals.push(feature);sourceSplit=true;}
+if(sourceSplit||targetSplit){if(this.deferDelete){var feat,destroys=[];for(var i=0,len=removals.length;i<len;++i){feat=removals[i];if(feat.state===OpenLayers.State.INSERT){destroys.push(feat);}else{feat.state=OpenLayers.State.DELETE;this.layer.drawFeature(feat);}}
+this.layer.destroyFeatures(destroys,{silent:true});for(var i=0,len=additions.length;i<len;++i){additions[i].state=OpenLayers.State.INSERT;}}else{this.layer.destroyFeatures(removals,{silent:true});}
+this.layer.addFeatures(additions,{silent:true});this.events.triggerEvent("aftersplit",{source:feature,features:additions});}}
+return sourceSplit;},geomsToFeatures:function(feature,geoms){var clone=feature.clone();delete clone.geometry;var newFeature;for(var i=0,len=geoms.length;i<len;++i){newFeature=clone.clone();newFeature.geometry=geoms[i];newFeature.state=OpenLayers.State.INSERT;geoms[i]=newFeature;}},destroy:function(){if(this.active){this.deactivate();}
+OpenLayers.Control.prototype.destroy.call(this);},CLASS_NAME:"OpenLayers.Control.Split"});OpenLayers.Layer.WMTS=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,version:"1.0.0",requestEncoding:"KVP",url:null,layer:null,matrixSet:null,style:null,format:"image/jpeg",tileOrigin:null,tileFullExtent:null,formatSuffix:null,matrixIds:null,dimensions:null,params:null,zoomOffset:0,formatSuffixMap:{"image/png":"png","image/png8":"png","image/png24":"png","image/png32":"png","png":"png","im [...]
+config.params=OpenLayers.Util.upperCaseObject(config.params);var args=[config.name,config.url,config.params,config];OpenLayers.Layer.Grid.prototype.initialize.apply(this,args);if(!this.formatSuffix){this.formatSuffix=this.formatSuffixMap[this.format]||this.format.split("/").pop();}
+if(this.matrixIds){var len=this.matrixIds.length;if(len&&typeof this.matrixIds[0]==="string"){var ids=this.matrixIds;this.matrixIds=new Array(len);for(var i=0;i<len;++i){this.matrixIds[i]={identifier:ids[i]};}}}},setMap:function(){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);this.updateMatrixProperties();},updateMatrixProperties:function(){this.matrix=this.getMatrix();if(this.matrix){if(this.matrix.topLeftCorner){this.tileOrigin=this.matrix.topLeftCorner;}
+if(this.matrix.tileWidth&&this.matrix.tileHeight){this.tileSize=new OpenLayers.Size(this.matrix.tileWidth,this.matrix.tileHeight);}
+if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.top);}
+if(!this.tileFullExtent){this.tileFullExtent=this.maxExtent;}}},moveTo:function(bounds,zoomChanged,dragging){if(zoomChanged||!this.matrix){this.updateMatrixProperties();}
+return OpenLayers.Layer.Grid.prototype.moveTo.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.WMTS(this.options);}
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getMatrix:function(){var matrix;if(!this.matrixIds||this.matrixIds.length===0){matrix={identifier:this.map.getZoom()+this.zoomOffset};}else{if("scaleDenominator"in this.matrixIds[0]){var denom=OpenLayers.METERS_PER_INCH*OpenLayers.INCHES_PER_UNIT[this.units]*this.map.getResolution()/0.28E-3;var diff=Number.POSITIVE_INFINITY;var delta;for(var i=0,ii=this.matrixIds.length;i<ii;++i){delta=Math.abs(1-(this.matrixIds[i]. [...]
+return matrix;},getTileInfo:function(loc){var res=this.map.getResolution();var fx=(loc.lon-this.tileOrigin.lon)/(res*this.tileSize.w);var fy=(this.tileOrigin.lat-loc.lat)/(res*this.tileSize.h);var col=Math.floor(fx);var row=Math.floor(fy);return{col:col,row:row,i:Math.floor((fx-col)*this.tileSize.w),j:Math.floor((fy-row)*this.tileSize.h)};},getURL:function(bounds){bounds=this.adjustBounds(bounds);var url="";if(!this.tileFullExtent||this.tileFullExtent.intersectsBounds(bounds)){var center [...]
+path=path+this.matrixSet+"/"+this.matrix.identifier+"/"+info.row+"/"+info.col+"."+this.formatSuffix;if(OpenLayers.Util.isArray(this.url)){url=this.selectUrl(path,this.url);}else{url=this.url;}
+if(!url.match(/\/$/)){url=url+"/";}
+url=url+path;}else if(this.requestEncoding.toUpperCase()==="KVP"){var params={SERVICE:"WMTS",REQUEST:"GetTile",VERSION:this.version,LAYER:this.layer,STYLE:this.style,TILEMATRIXSET:this.matrixSet,TILEMATRIX:this.matrix.identifier,TILEROW:info.row,TILECOL:info.col,FORMAT:this.format};url=OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,[params]);}}
+return url;},mergeNewParams:function(newParams){if(this.requestEncoding.toUpperCase()==="KVP"){return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,[OpenLayers.Util.upperCaseObject(newParams)]);}},CLASS_NAME:"OpenLayers.Layer.WMTS"});OpenLayers.Protocol.SOS.v1_0_0=OpenLayers.Class(OpenLayers.Protocol,{fois:null,formatOptions:null,initialize:function(options){OpenLayers.Protocol.prototype.initialize.apply(this,[options]);if(!options.format){this.format=new OpenLayers.Format.SO [...]
+this.format=null;OpenLayers.Protocol.prototype.destroy.apply(this);},read:function(options){options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options||{});var response=new OpenLayers.Protocol.Response({requestType:"read"});var format=this.format;var data=OpenLayers.Format.XML.prototype.write.apply(format,[format.writeNode("sos:GetFeatureOfInterest",{fois:this.fois})]);response.priv=OpenLayers.Request.POST({url:options.url,callback:this.createCallback(t [...]
+options.callback.call(options.scope,response);}},parseFeatures:function(request){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
+if(!doc||doc.length<=0){return null;}
+return this.format.read(doc);},CLASS_NAME:"OpenLayers.Protocol.SOS.v1_0_0"});OpenLayers.Layer.KaMapCache=OpenLayers.Class(OpenLayers.Layer.KaMap,{IMAGE_EXTENSIONS:{'jpeg':'jpg','gif':'gif','png':'png','png8':'png','png24':'png','dithered':'png'},DEFAULT_FORMAT:'jpeg',initialize:function(name,url,params,options){OpenLayers.Layer.KaMap.prototype.initialize.apply(this,arguments);this.extension=this.IMAGE_EXTENSIONS[this.params.i.toLowerCase()||DEFAULT_FORMAT];},getURL:function(bounds){bound [...]
+var components=[url,"/",this.params.map,"/",scale,"/",this.params.g.replace(/\s/g,'_'),"/def/t",metaY,"/l",metaX,"/t",pY,"l",pX,".",this.extension];return components.join("");},CLASS_NAME:"OpenLayers.Layer.KaMapCache"});OpenLayers.Protocol.WFS.v1_1_0=OpenLayers.Class(OpenLayers.Protocol.WFS.v1,{version:"1.1.0",initialize:function(options){OpenLayers.Protocol.WFS.v1.prototype.initialize.apply(this,arguments);if(this.outputFormat&&!this.readFormat){if(this.outputFormat.toLowerCase()=="gml2 [...]
+if(options.featureClass||!OpenLayers.Layer.Vector||!OpenLayers.Feature.Vector){this.vectorMode=false;}
+params=OpenLayers.Util.upperCaseObject(params);OpenLayers.Util.extend(options,{'reportError':false});var newArguments=[];newArguments.push(name,options);OpenLayers.Layer.Vector.prototype.initialize.apply(this,newArguments);if(!this.renderer||!this.vectorMode){this.vectorMode=false;if(!options.featureClass){options.featureClass=OpenLayers.Feature.WFS;}
+OpenLayers.Layer.Markers.prototype.initialize.apply(this,newArguments);}
+if(this.params&&this.params.typename&&!this.options.typename){this.options.typename=this.params.typename;}
+if(!this.options.geometry_column){this.options.geometry_column="the_geom";}
+this.params=OpenLayers.Util.applyDefaults(params,OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS));this.url=url;},destroy:function(){if(this.vectorMode){OpenLayers.Layer.Vector.prototype.destroy.apply(this,arguments);}else{OpenLayers.Layer.Markers.prototype.destroy.apply(this,arguments);}
+if(this.tile){this.tile.destroy();}
+this.tile=null;this.ratio=null;this.featureClass=null;this.format=null;if(this.formatObject&&this.formatObject.destroy){this.formatObject.destroy();}
+this.formatObject=null;this.formatOptions=null;this.vectorMode=null;this.encodeBBOX=null;this.extractAttributes=null;},setMap:function(map){if(this.vectorMode){OpenLayers.Layer.Vector.prototype.setMap.apply(this,arguments);var options={'extractAttributes':this.extractAttributes};OpenLayers.Util.extend(options,this.formatOptions);if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectio [...]
+this.formatObject=this.format?new this.format(options):new OpenLayers.Format.GML(options);}else{OpenLayers.Layer.Markers.prototype.setMap.apply(this,arguments);}},moveTo:function(bounds,zoomChanged,dragging){if(this.vectorMode){OpenLayers.Layer.Vector.prototype.moveTo.apply(this,arguments);}else{OpenLayers.Layer.Markers.prototype.moveTo.apply(this,arguments);}
+if(dragging){return false;}
+if(zoomChanged){if(this.vectorMode){this.renderer.clear();}}
+if(this.options.minZoomLevel){OpenLayers.Console.warn(OpenLayers.i18n('minZoomLevelError'));if(this.map.getZoom()<this.options.minZoomLevel){return null;}}
+if(bounds==null){bounds=this.map.getExtent();}
+var firstRendering=(this.tile==null);var outOfBounds=(!firstRendering&&!this.tile.bounds.containsBounds(bounds));if(zoomChanged||firstRendering||(!dragging&&outOfBounds)){var center=bounds.getCenterLonLat();var tileWidth=bounds.getWidth()*this.ratio;var tileHeight=bounds.getHeight()*this.ratio;var tileBounds=new OpenLayers.Bounds(center.lon-(tileWidth/2),center.lat-(tileHeight/2),center.lon+(tileWidth/2),center.lat+(tileHeight/2));var tileSize=this.map.getSize();tileSize.w=tileSize.w*thi [...]
+else{params={BBOX:this.encodeBBOX?tileBounds.toBBOX():tileBounds.toArray()};}
+if(this.map&&!this.projection.equals(this.map.getProjectionObject())){var projectedBounds=tileBounds.clone();projectedBounds.transform(this.map.getProjectionObject(),this.projection);if(!filter){params.BBOX=this.encodeBBOX?projectedBounds.toBBOX():projectedBounds.toArray();}}
+url+="&"+OpenLayers.Util.getParameterString(params);if(!this.tile){this.tile=new OpenLayers.Tile.WFS(this,pos,tileBounds,url,tileSize);this.addTileMonitoringHooks(this.tile);this.tile.draw();}else{if(this.vectorMode){this.destroyFeatures();this.renderer.clear();}else{this.clearMarkers();}
+this.removeTileMonitoringHooks(this.tile);this.tile.destroy();this.tile=null;this.tile=new OpenLayers.Tile.WFS(this,pos,tileBounds,url,tileSize);this.addTileMonitoringHooks(this.tile);this.tile.draw();}}},addTileMonitoringHooks:function(tile){tile.onLoadStart=function(){if(this==this.layer.tile){this.layer.events.triggerEvent("loadstart");}};tile.events.register("loadstart",tile,tile.onLoadStart);tile.onLoadEnd=function(){if(this==this.layer.tile){this.layer.events.triggerEvent("tileload [...]
+if(this.vectorMode){obj=OpenLayers.Layer.Vector.prototype.clone.apply(this,[obj]);}else{obj=OpenLayers.Layer.Markers.prototype.clone.apply(this,[obj]);}
+return obj;},getFullRequestString:function(newParams,altUrl){var projectionCode=this.projection.getCode()||this.map.getProjection();this.params.SRS=(projectionCode=="none")?null:projectionCode;return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments);},commit:function(){if(!this.writer){var options={};if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectionObject();}
+this.writer=new OpenLayers.Format.WFS(options,this);}
+var data=this.writer.write(this.features);OpenLayers.Request.POST({url:this.url,data:data,success:this.commitSuccess,failure:this.commitFailure,scope:this});},commitSuccess:function(request){var response=request.responseText;if(response.indexOf('SUCCESS')!=-1){this.commitReport(OpenLayers.i18n("commitSuccess",{'response':response}));for(var i=0;i<this.features.length;i++){this.features[i].state=null;}}else if(response.indexOf('FAILED')!=-1||response.indexOf('Exception')!=-1){this.commitR [...]
+this.tile.draw();}},getDataExtent:function(){var extent;if(this.vectorMode){extent=OpenLayers.Layer.Vector.prototype.getDataExtent.apply(this);}else{extent=OpenLayers.Layer.Markers.prototype.getDataExtent.apply(this);}
+return extent;},setOpacity:function(opacity){if(this.vectorMode){OpenLayers.Layer.Vector.prototype.setOpacity.apply(this,[opacity]);}else{OpenLayers.Layer.Markers.prototype.setOpacity.apply(this,[opacity]);}},CLASS_NAME:"OpenLayers.Layer.WFS"});OpenLayers.Control.LayerSwitcher=OpenLayers.Class(OpenLayers.Control,{roundedCorner:true,roundedCornerColor:"darkblue",layerStates:null,layersDiv:null,baseLayersDiv:null,baseLayers:null,dataLbl:null,dataLayersDiv:null,dataLayers:null,minimizeDiv:n [...]
+this.redraw();return this.div;},clearLayersArray:function(layersType){var layers=this[layersType+"Layers"];if(layers){for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];OpenLayers.Event.stopObservingElement(layer.inputElem);OpenLayers.Event.stopObservingElement(layer.labelSpan);}}
+this[layersType+"LayersDiv"].innerHTML="";this[layersType+"Layers"]=[];},checkRedraw:function(){var redraw=false;if(!this.layerStates.length||(this.map.layers.length!=this.layerStates.length)){redraw=true;}else{for(var i=0,len=this.layerStates.length;i<len;i++){var layerState=this.layerStates[i];var layer=this.map.layers[i];if((layerState.name!=layer.name)||(layerState.inRange!=layer.inRange)||(layerState.id!=layer.id)||(layerState.visibility!=layer.visibility)){redraw=true;break;}}}
+return redraw;},redraw:function(){if(!this.checkRedraw()){return this.div;}
+this.clearLayersArray("base");this.clearLayersArray("data");var containsOverlays=false;var containsBaseLayers=false;var len=this.map.layers.length;this.layerStates=new Array(len);for(var i=0;i<len;i++){var layer=this.map.layers[i];this.layerStates[i]={'name':layer.name,'visibility':layer.visibility,'inRange':layer.inRange,'id':layer.id};}
+var layers=this.map.layers.slice();if(!this.ascending){layers.reverse();}
+for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];var baseLayer=layer.isBaseLayer;if(layer.displayInLayerSwitcher){if(baseLayer){containsBaseLayers=true;}else{containsOverlays=true;}
+var checked=(baseLayer)?(layer==this.map.baseLayer):layer.getVisibility();var inputElem=document.createElement("input");inputElem.id=this.id+"_input_"+layer.name;inputElem.name=(baseLayer)?this.id+"_baseLayers":layer.name;inputElem.type=(baseLayer)?"radio":"checkbox";inputElem.value=layer.name;inputElem.checked=checked;inputElem.defaultChecked=checked;if(!baseLayer&&!layer.inRange){inputElem.disabled=true;}
+var context={'inputElem':inputElem,'layer':layer,'layerSwitcher':this};OpenLayers.Event.observe(inputElem,"mouseup",OpenLayers.Function.bindAsEventListener(this.onInputClick,context));var labelSpan=document.createElement("span");OpenLayers.Element.addClass(labelSpan,"labelSpan");if(!baseLayer&&!layer.inRange){labelSpan.style.color="gray";}
+labelSpan.innerHTML=layer.name;labelSpan.style.verticalAlign=(baseLayer)?"bottom":"baseline";OpenLayers.Event.observe(labelSpan,"click",OpenLayers.Function.bindAsEventListener(this.onInputClick,context));var br=document.createElement("br");var groupArray=(baseLayer)?this.baseLayers:this.dataLayers;groupArray.push({'layer':layer,'inputElem':inputElem,'labelSpan':labelSpan});var groupDiv=(baseLayer)?this.baseLayersDiv:this.dataLayersDiv;groupDiv.appendChild(inputElem);groupDiv.appendChild( [...]
+this.dataLbl.style.display=(containsOverlays)?"":"none";this.baseLbl.style.display=(containsBaseLayers)?"":"none";return this.div;},onInputClick:function(e){if(!this.inputElem.disabled){if(this.inputElem.type=="radio"){this.inputElem.checked=true;this.layer.map.setBaseLayer(this.layer);}else{this.inputElem.checked=!this.inputElem.checked;this.layerSwitcher.updateMap();}}
+OpenLayers.Event.stop(e);},onLayerClick:function(e){this.updateMap();},updateMap:function(){for(var i=0,len=this.baseLayers.length;i<len;i++){var layerEntry=this.baseLayers[i];if(layerEntry.inputElem.checked){this.map.setBaseLayer(layerEntry.layer,false);}}
+for(var i=0,len=this.dataLayers.length;i<len;i++){var layerEntry=this.dataLayers[i];layerEntry.layer.setVisibility(layerEntry.inputElem.checked);}},maximizeControl:function(e){this.div.style.width="";this.div.style.height="";this.showControls(false);if(e!=null){OpenLayers.Event.stop(e);}},minimizeControl:function(e){this.div.style.width="0px";this.div.style.height="0px";this.showControls(true);if(e!=null){OpenLayers.Event.stop(e);}},showControls:function(minimize){this.maximizeDiv.style. [...]
+this.div.appendChild(this.layersDiv);if(this.roundedCorner){OpenLayers.Rico.Corner.round(this.div,{corners:"tl bl",bgColor:"transparent",color:this.roundedCornerColor,blend:false});OpenLayers.Rico.Corner.changeOpacity(this.layersDiv,0.75);}
+var imgLocation=OpenLayers.Util.getImagesLocation();var sz=new OpenLayers.Size(18,18);var img=imgLocation+'layer-switcher-maximize.png';this.maximizeDiv=OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MaximizeDiv",null,sz,img,"absolute");OpenLayers.Element.addClass(this.maximizeDiv,"maximizeDiv");this.maximizeDiv.style.display="none";OpenLayers.Event.observe(this.maximizeDiv,"click",OpenLayers.Function.bindAsEventListener(this.maximizeControl,this));this.div.appendChild(this.maxi [...]
+if(this.layer.options.geometry_column){this.geometryName=this.layer.options.geometry_column;}
+if(this.layer.options.typename){this.featureName=this.layer.options.typename;}},write:function(features){var transaction=this.createElementNS(this.wfsns,'wfs:Transaction');transaction.setAttribute("version","1.0.0");transaction.setAttribute("service","WFS");for(var i=0;i<features.length;i++){switch(features[i].state){case OpenLayers.State.INSERT:transaction.appendChild(this.insert(features[i]));break;case OpenLayers.State.UPDATE:transaction.appendChild(this.update(features[i]));break;cas [...]
+return OpenLayers.Format.XML.prototype.write.apply(this,[transaction]);},createFeatureXML:function(feature){var geometryNode=this.buildGeometryNode(feature.geometry);var geomContainer=this.createElementNS(this.featureNS,"feature:"+this.geometryName);geomContainer.appendChild(geometryNode);var featureContainer=this.createElementNS(this.featureNS,"feature:"+this.featureName);featureContainer.appendChild(geomContainer);for(var attr in feature.attributes){var attrText=this.createTextNode(fea [...]
+var attrContainer=this.createElementNS(this.featureNS,"feature:"+nodename);attrContainer.appendChild(attrText);featureContainer.appendChild(attrContainer);}
+return featureContainer;},insert:function(feature){var insertNode=this.createElementNS(this.wfsns,'wfs:Insert');insertNode.appendChild(this.createFeatureXML(feature));return insertNode;},update:function(feature){if(!feature.fid){OpenLayers.Console.userError(OpenLayers.i18n("noFID"));}
+var updateNode=this.createElementNS(this.wfsns,'wfs:Update');updateNode.setAttribute("typeName",this.featurePrefix+':'+this.featureName);updateNode.setAttribute("xmlns:"+this.featurePrefix,this.featureNS);var propertyNode=this.createElementNS(this.wfsns,'wfs:Property');var nameNode=this.createElementNS(this.wfsns,'wfs:Name');var txtNode=this.createTextNode(this.geometryName);nameNode.appendChild(txtNode);propertyNode.appendChild(nameNode);var valueNode=this.createElementNS(this.wfsns,'wf [...]
+valueNode.appendChild(geometryNode);propertyNode.appendChild(valueNode);updateNode.appendChild(propertyNode);for(var propName in feature.attributes){propertyNode=this.createElementNS(this.wfsns,'wfs:Property');nameNode=this.createElementNS(this.wfsns,'wfs:Name');nameNode.appendChild(this.createTextNode(propName));propertyNode.appendChild(nameNode);valueNode=this.createElementNS(this.wfsns,'wfs:Value');valueNode.appendChild(this.createTextNode(feature.attributes[propName]));propertyNode.a [...]
+var filterNode=this.createElementNS(this.ogcns,'ogc:Filter');var filterIdNode=this.createElementNS(this.ogcns,'ogc:FeatureId');filterIdNode.setAttribute("fid",feature.fid);filterNode.appendChild(filterIdNode);updateNode.appendChild(filterNode);return updateNode;},remove:function(feature){if(!feature.fid){OpenLayers.Console.userError(OpenLayers.i18n("noFID"));return false;}
+var deleteNode=this.createElementNS(this.wfsns,'wfs:Delete');deleteNode.setAttribute("typeName",this.featurePrefix+':'+this.featureName);deleteNode.setAttribute("xmlns:"+this.featurePrefix,this.featureNS);var filterNode=this.createElementNS(this.ogcns,'ogc:Filter');var filterIdNode=this.createElementNS(this.ogcns,'ogc:FeatureId');filterIdNode.setAttribute("fid",feature.fid);filterNode.appendChild(filterIdNode);deleteNode.appendChild(filterNode);return deleteNode;},destroy:function(){this [...]
+return this.parseFeatures(doc);},write:function(features){var doc;if(OpenLayers.Util.isArray(features)){doc=this.createElementNSPlus("atom:feed");doc.appendChild(this.createElementNSPlus("atom:title",{value:this.feedTitle}));for(var i=0,ii=features.length;i<ii;i++){doc.appendChild(this.buildEntryNode(features[i]));}}
+else{doc=this.buildEntryNode(features);}
+return OpenLayers.Format.XML.prototype.write.apply(this,[doc]);},buildContentNode:function(content){var node=this.createElementNSPlus("atom:content",{attributes:{type:content.type||null}});if(content.src){node.setAttribute("src",content.src);}else{if(content.type=="text"||content.type==null){node.appendChild(this.createTextNode(content.value));}else if(content.type=="html"){if(typeof content.value!="string"){throw"HTML content must be in form of an escaped string";}
+node.appendChild(this.createTextNode(content.value));}else if(content.type=="xhtml"){node.appendChild(content.value);}else if(content.type=="xhtml"||content.type.match(/(\+|\/)xml$/)){node.appendChild(content.value);}
+else{node.appendChild(this.createTextNode(content.value));}}
+return node;},buildEntryNode:function(feature){var attrib=feature.attributes;var atomAttrib=attrib.atom||{};var entryNode=this.createElementNSPlus("atom:entry");if(atomAttrib.authors){var authors=OpenLayers.Util.isArray(atomAttrib.authors)?atomAttrib.authors:[atomAttrib.authors];for(var i=0,ii=authors.length;i<ii;i++){entryNode.appendChild(this.buildPersonConstructNode("author",authors[i]));}}
+if(atomAttrib.categories){var categories=OpenLayers.Util.isArray(atomAttrib.categories)?atomAttrib.categories:[atomAttrib.categories];var category;for(var i=0,ii=categories.length;i<ii;i++){category=categories[i];entryNode.appendChild(this.createElementNSPlus("atom:category",{attributes:{term:category.term,scheme:category.scheme||null,label:category.label||null}}));}}
+if(atomAttrib.content){entryNode.appendChild(this.buildContentNode(atomAttrib.content));}
+if(atomAttrib.contributors){var contributors=OpenLayers.Util.isArray(atomAttrib.contributors)?atomAttrib.contributors:[atomAttrib.contributors];for(var i=0,ii=contributors.length;i<ii;i++){entryNode.appendChild(this.buildPersonConstructNode("contributor",contributors[i]));}}
+if(feature.fid){entryNode.appendChild(this.createElementNSPlus("atom:id",{value:feature.fid}));}
+if(atomAttrib.links){var links=OpenLayers.Util.isArray(atomAttrib.links)?atomAttrib.links:[atomAttrib.links];var link;for(var i=0,ii=links.length;i<ii;i++){link=links[i];entryNode.appendChild(this.createElementNSPlus("atom:link",{attributes:{href:link.href,rel:link.rel||null,type:link.type||null,hreflang:link.hreflang||null,title:link.title||null,length:link.length||null}}));}}
+if(atomAttrib.published){entryNode.appendChild(this.createElementNSPlus("atom:published",{value:atomAttrib.published}));}
+if(atomAttrib.rights){entryNode.appendChild(this.createElementNSPlus("atom:rights",{value:atomAttrib.rights}));}
+if(atomAttrib.summary||attrib.description){entryNode.appendChild(this.createElementNSPlus("atom:summary",{value:atomAttrib.summary||attrib.description}));}
+entryNode.appendChild(this.createElementNSPlus("atom:title",{value:atomAttrib.title||attrib.title||this.defaultEntryTitle}));if(atomAttrib.updated){entryNode.appendChild(this.createElementNSPlus("atom:updated",{value:atomAttrib.updated}));}
+if(feature.geometry){var whereNode=this.createElementNSPlus("georss:where");whereNode.appendChild(this.buildGeometryNode(feature.geometry));entryNode.appendChild(whereNode);}
+return entryNode;},initGmlParser:function(){this.gmlParser=new OpenLayers.Format.GML.v3({xy:this.xy,featureNS:"http://example.com#feature",internalProjection:this.internalProjection,externalProjection:this.externalProjection});},buildGeometryNode:function(geometry){if(!this.gmlParser){this.initGmlParser();}
+var node=this.gmlParser.writeNode("feature:_geometry",geometry);return node.firstChild;},buildPersonConstructNode:function(name,value){var oNames=["uri","email"];var personNode=this.createElementNSPlus("atom:"+name);personNode.appendChild(this.createElementNSPlus("atom:name",{value:value.name}));for(var i=0,ii=oNames.length;i<ii;i++){if(value[oNames[i]]){personNode.appendChild(this.createElementNSPlus("atom:"+oNames[i],{value:value[oNames[i]]}));}}
+return personNode;},getFirstChildValue:function(node,nsuri,name,def){var value;var nodes=this.getElementsByTagNameNS(node,nsuri,name);if(nodes&&nodes.length>0){value=this.getChildValue(nodes[0],def);}else{value=def;}
+return value;},parseFeature:function(node){var atomAttrib={};var value=null;var nodes=null;var attval=null;var atomns=this.namespaces.atom;this.parsePersonConstructs(node,"author",atomAttrib);nodes=this.getElementsByTagNameNS(node,atomns,"category");if(nodes.length>0){atomAttrib.categories=[];}
+for(var i=0,ii=nodes.length;i<ii;i++){value={};value.term=nodes[i].getAttribute("term");attval=nodes[i].getAttribute("scheme");if(attval){value.scheme=attval;}
+attval=nodes[i].getAttribute("label");if(attval){value.label=attval;}
+atomAttrib.categories.push(value);}
+nodes=this.getElementsByTagNameNS(node,atomns,"content");if(nodes.length>0){value={};attval=nodes[0].getAttribute("type");if(attval){value.type=attval;}
+attval=nodes[0].getAttribute("src");if(attval){value.src=attval;}else{if(value.type=="text"||value.type=="html"||value.type==null){value.value=this.getFirstChildValue(node,atomns,"content",null);}else if(value.type=="xhtml"||value.type.match(/(\+|\/)xml$/)){value.value=this.getChildEl(nodes[0]);}else{value.value=this.getFirstChildValue(node,atomns,"content",null);}
+atomAttrib.content=value;}}
+this.parsePersonConstructs(node,"contributor",atomAttrib);atomAttrib.id=this.getFirstChildValue(node,atomns,"id",null);nodes=this.getElementsByTagNameNS(node,atomns,"link");if(nodes.length>0){atomAttrib.links=new Array(nodes.length);}
+var oAtts=["rel","type","hreflang","title","length"];for(var i=0,ii=nodes.length;i<ii;i++){value={};value.href=nodes[i].getAttribute("href");for(var j=0,jj=oAtts.length;j<jj;j++){attval=nodes[i].getAttribute(oAtts[j]);if(attval){value[oAtts[j]]=attval;}}
+atomAttrib.links[i]=value;}
+value=this.getFirstChildValue(node,atomns,"published",null);if(value){atomAttrib.published=value;}
+value=this.getFirstChildValue(node,atomns,"rights",null);if(value){atomAttrib.rights=value;}
+value=this.getFirstChildValue(node,atomns,"summary",null);if(value){atomAttrib.summary=value;}
+atomAttrib.title=this.getFirstChildValue(node,atomns,"title",null);atomAttrib.updated=this.getFirstChildValue(node,atomns,"updated",null);var featureAttrib={title:atomAttrib.title,description:atomAttrib.summary,atom:atomAttrib};var geometry=this.parseLocations(node)[0];var feature=new OpenLayers.Feature.Vector(geometry,featureAttrib);feature.fid=atomAttrib.id;return feature;},parseFeatures:function(node){var features=[];var entries=this.getElementsByTagNameNS(node,this.namespaces.atom,"e [...]
+for(var i=0,ii=entries.length;i<ii;i++){features.push(this.parseFeature(entries[i]));}
+return features;},parseLocations:function(node){var georssns=this.namespaces.georss;var locations={components:[]};var where=this.getElementsByTagNameNS(node,georssns,"where");if(where&&where.length>0){if(!this.gmlParser){this.initGmlParser();}
+for(var i=0,ii=where.length;i<ii;i++){this.gmlParser.readChildNodes(where[i],locations);}}
+var components=locations.components;var point=this.getElementsByTagNameNS(node,georssns,"point");if(point&&point.length>0){for(var i=0,ii=point.length;i<ii;i++){var xy=OpenLayers.String.trim(point[i].firstChild.nodeValue).split(/\s+/);if(xy.length!=2){xy=OpenLayers.String.trim(point[i].firstChild.nodeValue).split(/\s*,\s*/);}
+components.push(new OpenLayers.Geometry.Point(parseFloat(xy[1]),parseFloat(xy[0])));}}
+var line=this.getElementsByTagNameNS(node,georssns,"line");if(line&&line.length>0){var coords;var p;var points;for(var i=0,ii=line.length;i<ii;i++){coords=OpenLayers.String.trim(line[i].firstChild.nodeValue).split(/\s+/);points=[];for(var j=0,jj=coords.length;j<jj;j+=2){p=new OpenLayers.Geometry.Point(parseFloat(coords[j+1]),parseFloat(coords[j]));points.push(p);}
+components.push(new OpenLayers.Geometry.LineString(points));}}
+var polygon=this.getElementsByTagNameNS(node,georssns,"polygon");if(polygon&&polygon.length>0){var coords;var p;var points;for(var i=0,ii=polygon.length;i<ii;i++){coords=OpenLayers.String.trim(polygon[i].firstChild.nodeValue).split(/\s+/);points=[];for(var j=0,jj=coords.length;j<jj;j+=2){p=new OpenLayers.Geometry.Point(parseFloat(coords[j+1]),parseFloat(coords[j]));points.push(p);}
+components.push(new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(components)]));}}
+if(this.internalProjection&&this.externalProjection){for(var i=0,ii=components.length;i<ii;i++){if(components[i]){components[i].transform(this.externalProjection,this.internalProjection);}}}
+return components;},parsePersonConstructs:function(node,name,data){var persons=[];var atomns=this.namespaces.atom;var nodes=this.getElementsByTagNameNS(node,atomns,name);var oAtts=["uri","email"];for(var i=0,ii=nodes.length;i<ii;i++){var value={};value.name=this.getFirstChildValue(nodes[i],atomns,"name",null);for(var j=0,jj=oAtts.length;j<jj;j++){var attval=this.getFirstChildValue(nodes[i],atomns,oAtts[j],null);if(attval){value[oAtts[j]]=attval;}}
+persons.push(value);}
+if(persons.length>0){data[name+"s"]=persons;}},CLASS_NAME:"OpenLayers.Format.Atom"});OpenLayers.Control.KeyboardDefaults=OpenLayers.Class(OpenLayers.Control,{autoActivate:true,slideFactor:75,draw:function(){this.handler=new OpenLayers.Handler.Keyboard(this,{"keydown":this.defaultKeyPress});},defaultKeyPress:function(evt){switch(evt.keyCode){case OpenLayers.Event.KEY_LEFT:this.map.pan(-this.slideFactor,0);break;case OpenLayers.Event.KEY_RIGHT:this.map.pan(this.slideFactor,0);break;case Op [...]
+var values=srs.split(/ +/);for(var i=0,len=values.length;i<len;i++){layerContext.projections[values[i]]=true;}},write_wmc_Layer:function(context){var node=OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(this,[context]);if(context.srs){var projections=[];for(var name in context.srs){projections.push(name);}
+node.appendChild(this.createElementDefaultNS("SRS",projections.join(" ")));}
+node.appendChild(this.write_wmc_FormatList(context));node.appendChild(this.write_wmc_StyleList(context));if(context.dimensions){node.appendChild(this.write_wmc_DimensionList(context));}
+node.appendChild(this.write_wmc_LayerExtension(context));},CLASS_NAME:"OpenLayers.Format.WMC.v1_0_0"});OpenLayers.Feature.WFS=OpenLayers.Class(OpenLayers.Feature,{initialize:function(layer,xmlNode){var newArguments=arguments;var data=this.processXMLNode(xmlNode);newArguments=new Array(layer,data.lonlat,data);OpenLayers.Feature.prototype.initialize.apply(this,newArguments);this.createMarker();this.layer.addMarker(this.marker);},destroy:function(){if(this.marker!=null){this.layer.removeMar [...]
+OpenLayers.Feature.prototype.destroy.apply(this,arguments);},processXMLNode:function(xmlNode){var point=OpenLayers.Ajax.getElementsByTagNameNS(xmlNode,"http://www.opengis.net/gml","gml","Point");var text=OpenLayers.Util.getXmlNodeValue(OpenLayers.Ajax.getElementsByTagNameNS(point[0],"http://www.opengis.net/gml","gml","coordinates")[0]);var floats=text.split(",");return{lonlat:new OpenLayers.LonLat(parseFloat(floats[0]),parseFloat(floats[1])),id:null};},CLASS_NAME:"OpenLayers.Feature.WFS" [...]
+if(data&&data.nodeType==9){data=data.documentElement;}
+var capabilities={};this.readNode(data,capabilities);capabilities.version=this.version;return capabilities;},readers:{"wmts":{"Capabilities":function(node,obj){this.readChildNodes(node,obj);},"Contents":function(node,obj){obj.contents={};obj.contents.layers=[];obj.contents.tileMatrixSets={};this.readChildNodes(node,obj.contents);},"Layer":function(node,obj){var layer={styles:[],formats:[],tileMatrixSetLinks:[]};layer.layers=[];this.readChildNodes(node,layer);obj.layers.push(layer);},"Sty [...]
+if(yx){obj.topLeftCorner=new OpenLayers.LonLat(coords[1],coords[0]);}else{obj.topLeftCorner=new OpenLayers.LonLat(coords[0],coords[1]);}},"TileWidth":function(node,obj){obj.tileWidth=parseInt(this.getChildValue(node));},"TileHeight":function(node,obj){obj.tileHeight=parseInt(this.getChildValue(node));},"MatrixWidth":function(node,obj){obj.matrixWidth=parseInt(this.getChildValue(node));},"MatrixHeight":function(node,obj){obj.matrixHeight=parseInt(this.getChildValue(node));},"ResourceURL": [...]
\ No newline at end of file
diff --git a/build/README.txt b/build/README.txt
index 6c482cf..ca8402c 100644
--- a/build/README.txt
+++ b/build/README.txt
@@ -1,14 +1,43 @@
+The OpenLayers build tool supports several different
+forms of compressing your javascript code, and a method
+of describing build profiles to create customized 
+OpenLayers builds with only the components you need.
 
-## HowTo: Build & deploy "Shrunk" Single File Library version of OpenLayers ##
+When building a file, you can choose to build with several
+different compression options to the Python-based build.py
+script. The following is an example script:
 
- * Build:
+python build.py -c closure full OpenLayers-closure.js
 
-     cd build
-     ./build.py
-     cd ..
+This script selects the 'closure' compression mechanism,
+uses a config file called 'full.cfg', and writes the output
+to OpenLayers-closure.js.
 
- * Upload the result to the server: e.g.
+The options available for compression are:
 
-  scp build/OpenLayers.js openlayers at openlayers.org:openlayers.org/htdocs/code/
+ * closure
+   This requires you to have a closure-compiler.jar in your
+   tools directory. You can do this by fetching the compiler
+   from:
 
+     http://closure-compiler.googlecode.com/files/compiler-latest.zip
+
+   Then unzipping that file, and placing compiler.jar into tools
+   and renaming it closure-compiler.jar.
+
+ * closure_ws
+   This uses the closure compiler webservice. This will only work
+   for files source Javascript files which are under 1MB. (Note that
+   the default OpenLayers full build is not under 1MB.)
+
+ * jsmin
+   jsmin is the default compiler, and uses the Python-based
+   jsmin script to compress the Javascript. 
+
+ * minimize
+   This is a simple whitespace removing Python script, designed
+   to fill in when other tools are unavailable.
+
+ * none
+   None will leave the Javascript uncompressed.
 
diff --git a/build/build.py b/build/build.py
index 0f46a03..d918781 100755
--- a/build/build.py
+++ b/build/build.py
@@ -3,44 +3,62 @@
 import sys
 sys.path.append("../tools")
 import mergejs
+import optparse
 
-def build():
-    have_compressor = None
+def build(config_file = None, output_file = None, options = None):
+    have_compressor = []
     try:
         import jsmin
-        have_compressor = "jsmin"
+        have_compressor.append("jsmin")
     except ImportError:
-        try:
-            import minimize
-            have_compressor = "minimize"
-        except Exception, E:
-            print E
-            pass
+        print "No jsmin"
+    try:
+        import closure
+        have_compressor.append("closure")
+    except Exception, E:
+        print "No closure (%s)" % E
+    try:
+        import closure_ws
+        have_compressor.append("closure_ws")
+    except ImportError:
+        print "No closure_ws"
+    
+    try:
+        import minimize
+        have_compressor.append("minimize")
+    except ImportError:
+        print "No minimize"
+
+    use_compressor = None
+    if options.compressor and options.compressor in have_compressor:
+        use_compressor = options.compressor
 
     sourceDirectory = "../lib"
     configFilename = "full.cfg"
     outputFilename = "OpenLayers.js"
 
-    if len(sys.argv) > 1:
-        configFilename = sys.argv[1]
+    if config_file:
+        configFilename = config_file
         extension = configFilename[-4:]
 
         if extension  != ".cfg":
-            configFilename = sys.argv[1] + ".cfg"
+            configFilename = config_file + ".cfg"
 
-    if len(sys.argv) > 2:
-        outputFilename = sys.argv[2]
+    if output_file:
+        outputFilename = output_file
 
     print "Merging libraries."
     merged = mergejs.run(sourceDirectory, None, configFilename)
-    if have_compressor == "jsmin":
-        print "Compressing using jsmin."
+    print "Compressing using %s" % use_compressor
+    if use_compressor == "jsmin":
         minimized = jsmin.jsmin(merged)
-    elif have_compressor == "minimize":
-        print "Compressing using minimize."
+    elif use_compressor == "minimize":
         minimized = minimize.minimize(merged)
+    elif use_compressor == "closure_ws":
+        minimized = closure_ws.minimize(merged)      
+    elif use_compressor == "closure":
+        minimized = closure.minimize(merged)      
     else: # fallback
-        print "Not compressing."
         minimized = merged 
     print "Adding license file."
     minimized = file("license.txt").read() + minimized
@@ -51,4 +69,14 @@ def build():
     print "Done."
 
 if __name__ == '__main__':
-  build()
\ No newline at end of file
+  opt = optparse.OptionParser(usage="%s [options] [config_file] [output_file]\n  Default config_file is 'full.cfg', Default output_file is 'OpenLayers.js'")
+  opt.add_option("-c", "--compressor", dest="compressor", help="compression method: one of 'jsmin', 'minimize', 'closure_ws', 'closure', or 'none'", default="jsmin")
+  (options, args) = opt.parse_args()
+  if not len(args):
+    build(options=options)
+  elif len(args) == 1:
+    build(args[0], options=options)
+  elif len(args) == 2:
+    build(args[0], args[1], options=options)
+  else:
+    print "Wrong number of arguments"
diff --git a/build/full.cfg b/build/full.cfg
index 2e4df52..5ed2b7b 100644
--- a/build/full.cfg
+++ b/build/full.cfg
@@ -2,31 +2,12 @@
 # like Renderers and Formats.
 
 [first]
-OpenLayers/SingleFile.js
-OpenLayers.js
-OpenLayers/BaseTypes.js
-OpenLayers/BaseTypes/Class.js
-OpenLayers/Util.js
-Rico/Corner.js
 
 [last]
 
 [include]
 
 [exclude]
-Firebug/firebug.js
-Firebug/firebugx.js
-OpenLayers/Lang/ca.js
-OpenLayers/Lang/cs-CZ.js
-OpenLayers/Lang/da-DK.js
-OpenLayers/Lang/de.js
-OpenLayers/Lang/en-CA.js
-OpenLayers/Lang/es.js
-OpenLayers/Lang/fr.js
-OpenLayers/Lang/it.js
-OpenLayers/Lang/nb.js
-OpenLayers/Lang/nl.js
-OpenLayers/Lang/pt-BR.js
-OpenLayers/Lang/sv-SE.js
-OpenLayers/Lang/zh-TW.js
-OpenLayers/Lang/zh-CN.js
+Firebug
+OpenLayers.js
+OpenLayers/Lang
diff --git a/build/library.cfg b/build/library.cfg
index a4fcf95..572cd58 100644
--- a/build/library.cfg
+++ b/build/library.cfg
@@ -1,22 +1,15 @@
 # This file includes the OpenLayers code to create a build for everything that 
-# does not require vector support. build.py uses this profile if no other one
-# is specified.
+# does not require vector support.
 
 [first]
-OpenLayers/SingleFile.js
-OpenLayers.js
-OpenLayers/BaseTypes.js
-OpenLayers/BaseTypes/Class.js
-OpenLayers/Util.js
-Rico/Corner.js
 
 [last]
 
 [include]
 
 [exclude]
-Firebug/firebug.js
-Firebug/firebugx.js
+Firebug
+OpenLayers.js
 OpenLayers/Format/GeoRSS.js
 OpenLayers/Format/GML.js
 OpenLayers/Format/WKT.js
@@ -50,19 +43,6 @@ OpenLayers/Renderer/Elements.js
 OpenLayers/Renderer/SVG.js
 OpenLayers/Renderer/VML.js
 OpenLayers/Renderer.js
-OpenLayers/Lang/ca.js
-OpenLayers/Lang/cs-CZ.js
-OpenLayers/Lang/da-DK.js
-OpenLayers/Lang/de.js
-OpenLayers/Lang/en-CA.js
-OpenLayers/Lang/es.js
-OpenLayers/Lang/fr.js
-OpenLayers/Lang/it.js
-OpenLayers/Lang/nb.js
-OpenLayers/Lang/nl.js
-OpenLayers/Lang/pt-BR.js
-OpenLayers/Lang/sv-SE.js
-OpenLayers/Lang/zh-TW.js
-OpenLayers/Lang/zh-CN.js
+OpenLayers/Lang
 
 
diff --git a/build/license.txt b/build/license.txt
index cb99f12..ffb1fe1 100644
--- a/build/license.txt
+++ b/build/license.txt
@@ -2,7 +2,7 @@
 
   OpenLayers.js -- OpenLayers Map Viewer Library
 
-  Copyright 2005-2010 OpenLayers Contributors, released under the Clear BSD
+  Copyright 2005-2011 OpenLayers Contributors, released under the FreeBSD
   license. Please see http://svn.openlayers.org/trunk/openlayers/license.txt
   for the full text of the license.
 
@@ -90,3 +90,36 @@
  * issues. Applications that use the code below will continue to work seamlessly
  * when that happens.
  */
+
+/**
+ * OpenLayers.Util.pagePosition is based on Yahoo's getXY method, which is
+ * Copyright (c) 2006, Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use of this software in source and binary forms, with or
+ * without modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * * Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * 
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * 
+ * * Neither the name of Yahoo! Inc. nor the names of its contributors may be
+ *   used to endorse or promote products derived from this software without
+ *   specific prior written permission of Yahoo! Inc.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
\ No newline at end of file
diff --git a/build/lite.cfg b/build/lite.cfg
index 48454dc..d274e27 100644
--- a/build/lite.cfg
+++ b/build/lite.cfg
@@ -5,11 +5,6 @@
 # Web Mapping BOF.
 
 [first]
-OpenLayers/SingleFile.js
-OpenLayers.js
-OpenLayers/BaseTypes.js
-OpenLayers/BaseTypes/Class.js
-OpenLayers/Util.js
 
 [last]
 
diff --git a/build/mobile.cfg b/build/mobile.cfg
new file mode 100644
index 0000000..7bf6afa
--- /dev/null
+++ b/build/mobile.cfg
@@ -0,0 +1,36 @@
+[first]
+
+[last]
+
+[include]
+OpenLayers/Map.js
+OpenLayers/Kinetic.js
+OpenLayers/Projection.js
+OpenLayers/Layer/SphericalMercator.js
+OpenLayers/Layer/XYZ.js
+OpenLayers/Layer/Bing.js
+OpenLayers/Layer/WMS.js
+OpenLayers/Control/TouchNavigation.js
+OpenLayers/Control/Geolocate.js
+OpenLayers/Control/ZoomPanel.js
+OpenLayers/Control/Attribution.js
+OpenLayers/Control/SelectFeature.js
+OpenLayers/Control/DrawFeature.js
+OpenLayers/Control/ModifyFeature.js
+OpenLayers/Control/Panel.js
+OpenLayers/Handler/Point.js
+OpenLayers/Handler/Path.js
+OpenLayers/Handler/Polygon.js
+OpenLayers/Layer/Vector.js
+OpenLayers/Renderer/SVG.js
+OpenLayers/Renderer/Canvas.js
+OpenLayers/Format/GeoJSON.js
+OpenLayers/Format/KML.js
+OpenLayers/Protocol/HTTP.js
+OpenLayers/Protocol/WFS.js
+OpenLayers/Protocol/WFS/v1_0_0.js
+OpenLayers/Strategy/Fixed.js
+
+[exclude]
+
+
diff --git a/build/tests.cfg b/build/tests.cfg
new file mode 100644
index 0000000..9e2237f
--- /dev/null
+++ b/build/tests.cfg
@@ -0,0 +1,10 @@
+# This build config is supposed to be used for the units tests with "mode=build"
+
+[first]
+
+[last]
+
+[include]
+
+[exclude]
+OpenLayers.js
diff --git a/doc/apidocs/files/OpenLayers-js.html b/doc/apidocs/files/OpenLayers-js.html
index cf87cca..99f1c4b 100644
--- a/doc/apidocs/files/OpenLayers-js.html
+++ b/doc/apidocs/files/OpenLayers-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile id=MSelected>OpenLayers</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile> [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile id=MSelected>OpenLayers</div></div><div class=MEntry><div class=MFile><a href="OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Ba [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Ajax-js.html b/doc/apidocs/files/OpenLayers/Ajax-js.html
index 20e0026..b751c5a 100644
--- a/doc/apidocs/files/OpenLayers/Ajax-js.html
+++ b/doc/apidocs/files/OpenLayers/Ajax-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Ajax.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Ajax.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,33 +11,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Ajax.js"></a>Ajax.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Ajax.js" >Ajax.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td>< [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Ajax.js"></a>Ajax.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Ajax.js" >Ajax.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.loadURL"></a>OpenLayers.<span class=HB> </span>loadURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.loadURL = function(</td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>params,</td></tr><tr><td></td><td class=PParameter nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.loadURL"></a>OpenLayers.<wbr>loadURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.loadURL = function(</td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params,</td></tr><tr><td>< [...]
 
 <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax"></a>OpenLayers.Ajax</h2><div class=CBody></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Responders"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Responders</h2><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Responders"></a>OpenLayers.<wbr>Ajax.<wbr>Responders</h2><div class=CBody><p>{Object}</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Base"></a>OpenLayers.<span class=HB> </span>Ajax.Base</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Base.Constructor" >Constructor</a></td><td class=SDescription></td></tr><tr class="SConstructor SIndent1 SMarked"><td class=SE [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Base"></a>OpenLayers.<wbr>Ajax.Base</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Base.Constructor" >Constructor</a></td><td class=SDescription></td></tr><tr class="SConstructor SIndent1 SMarked"><td class=SEntry><a href="#Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Base.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Base.OpenLayers.Ajax.Base"></a>OpenLayers.<span class=HB> </span>Ajax.Base</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Base.OpenLayers.Ajax.Base"></a>OpenLayers.<wbr>Ajax.Base</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Request"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Request</h2><div class=CBody><p><b>Deprecated</b>.   Use <a href="Request-js.html#OpenLayers.Request" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">OpenLayers.Request</a> method instead.</p><h4 class=CHeading>Inherit</h4><ul><li><a href="#OpenLayers.Ajax.Base" class=LClass >OpenLaye [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Request"></a>OpenLayers.<wbr>Ajax.<wbr>Request</h2><div class=CBody><p><b>Deprecated</b>.   Use <a href="Request-js.html#OpenLayers.Request" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Request</a> method instead.</p><h4 class=CHeading>Inherit</h4><ul><li><a href="#OpenLayers.Ajax.Base" class=LClass >OpenLayers.Ajax.Base</a></li></ul><!--START_ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.OpenLayers.Ajax.Request"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Request</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.OpenLayers.Ajax.Request"></a>OpenLayers.<wbr>Ajax.<wbr>Request</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Response"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Response</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Response.Constructor" >Constructor</a></td><td class=SDescription></td></tr><tr class="SConstru [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Response"></a>OpenLayers.<wbr>Ajax.<wbr>Response</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Response.Constructor" >Constructor</a></td><td class=SDescription></td></tr><tr class="SConstructor SIndent1 SMarked"><td class=SEn [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.OpenLayers.Ajax.Response"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>request</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.OpenLayers.Ajax.Response"></a>OpenLayers.<wbr>Ajax.<wbr>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>request</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile id=MSelected>Ajax</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Base [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.loadURL = function(</td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>params,</td></tr><tr><td></td><td class=PParameter nowrap>caller,</td></tr><tr><td></td><td class=PParameter nowrap>onComplete,</td></tr><tr><td></td><td class=P [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.loadURL = function(</td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>caller,</td></tr><tr><td></td><td clas [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes-js.html b/doc/apidocs/files/OpenLayers/BaseTypes-js.html
index c095463..60c764f 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers Base Types - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers Base Types - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script langua [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,76 +11,70 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers_Base_Types"></a>OpenLayers Base Types</h1><div class=CBody><p>OpenLayers custom string, number and function functions are described here.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers_Base_Types" >OpenLayers Base Types</a></td> [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers_Base_Types"></a>OpenLayers Base Types</h1><div class=CBody><p>OpenLayers custom string, number and function functions are described here.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers_Base_Types" >OpenLayers Base Types</a></td> [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.String"></a>OpenLayers.<span class=HB> </span>String</h2><div class=CBody><p>Contains convenience functions for string manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.String.Functions" >Functions</a></td><td class=SDescription></td></tr><tr c [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.String"></a>OpenLayers.<wbr>String</h2><div class=CBody><p>Contains convenience functions for string manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.String.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SI [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.startsWith"></a>startsWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>startsWith: function(</td><td class=PParameter nowrap>str,</td></tr><tr><td></td><td class=PParameter nowrap>sub</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.startsWith"></a>startsWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>startsWith: function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sub</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contains: function(</td><td class=PParameter nowrap>str,</td></tr><tr><td></td><td class=PParameter nowrap>sub</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contains: function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sub</td><td class="PAfterParameters  prettyp [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.trim"></a>trim</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>trim: function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes leading and trailing whitespace characters from a string. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.trim"></a>trim</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>trim: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes leading a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.camelize"></a>camelize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>camelize: function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Camel-case a hyphenated string.  Ex.  &ldqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.camelize"></a>camelize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>camelize: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Camel [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>format: function(</td><td class=PParameter nowrap>template,</td></tr><tr><td></td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>args</td><td class=PAfterParameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>format: function(</td><td class="PParameter  prettyprint " nowrap>template,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.OpenLayers.String.isNumeric"></a>OpenLayers.<span class=HB> </span>String.<span class=HB> </span>isNumeric</h3><div class=CBody><p>Determine whether a string contains only a numeric value.</p><h4 class=CHeading>Examples</h4><blockquote><pre>OpenLayers.String.isNumeric("6.02e23") // true
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.isNumeric"></a>isNumeric</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isNumeric: function(</td><td class="PParameter  prettyprint " nowrap>value</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 OpenLayers.String.isNumeric("12 dozen") // false
 OpenLayers.String.isNumeric("4") // true
 OpenLayers.String.isNumeric(" 4 ") // false</pre></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} String contains only a number.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.numericIf"></a>numericIf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>numericIf: function(</td><td class=PParameter nowrap>value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts a string that appears to be a numeric v [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.numericIf"></a>numericIf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>numericIf: function(</td><td class="PParameter  prettyprint " nowrap>value</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.startsWith"></a>String.<span class=HB> </span>startsWith</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string starts with another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sStart</td><td class=CDLDescription>{Sring} The string we’re testing for.</td></tr></table><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.startsWith"></a>String.<wbr>startsWith</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string starts with another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sStart</td><td class=CDLDescription>{String} The string we’re testing for.</td></tr></table><h4 class=CHeading>Returns</h4><p>{ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.contains"></a>String.<span class=HB> </span>contains</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string contains another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>{String} The string that we’re testing for.</td></tr></table><h4 class=CHeading>Ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.contains"></a>String.<wbr>contains</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string contains another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>{String} The string that we’re testing for.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Boole [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.trim"></a>String.trim</h3><div class=CBody><p><b>Deprecated</b>.  Removes leading and trailing whitespace characters from a string.</p><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{String} A trimmed version of the string</td><td class=CDLDescription>all leading and trailing spaces removed</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.camelize"></a>String.<span class=HB> </span>camelize</h3><div class=CBody><p><b>Deprecated</b>.  Camel-case a hyphenated string.  Ex.  “chicken-head” becomes “chickenHead”, and “-chicken-head” becomes “ChickenHead”.</p><h4 class=CHeading>Returns</h4><p>{String} The string, camelized</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.camelize"></a>String.<wbr>camelize</h3><div class=CBody><p><b>Deprecated</b>.  Camel-case a hyphenated string.  Ex.  “chicken-head” becomes “chickenHead”, and “-chicken-head” becomes “ChickenHead”.</p><h4 class=CHeading>Returns</h4><p>{String} The string, camelized</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Number"></a>OpenLayers.<span class=HB> </span>Number</h2><div class=CBody><p>Contains convenience functions for manipulating numbers.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Number.Functions" >Functions</a></td><td class=SDescription></td></tr><tr  [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Number"></a>OpenLayers.<wbr>Number</h2><div class=CBody><p>Contains convenience functions for manipulating numbers.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Number.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.limitSigDigs"></a>limitSigDigs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>limitSigDigs: function(</td><td class=PParameter nowrap>num,</td></tr><tr><td></td><td class=PParameter nowrap>sig</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.limitSigDigs"></a>limitSigDigs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>limitSigDigs: function(</td><td class="PParameter  prettyprint " nowrap>num,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sig</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>format: function(</td><td class=PParameter nowrap>num,</td></tr><tr><td></td><td class=PParameter nowrap>dec,</td></tr><tr><td></td><td class=PParameter nowrap>tsep,</td></tr><tr><td></td><td class=PParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>format: function(</td><td class="PParameter  prettyprint " nowrap>num,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dec,</td></tr><tr><td></td><td class="PParameter   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Number.limitSigDigs"></a>Number.<span class=HB> </span>limitSigDigs</h3><div class=CBody><p><b>Deprecated</b>.  Limit the number of significant digits on an integer.  Does <b>not</b> work with floats!</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sig</td><td class=CDLDescription>{Integer}</td></tr></table><h4 class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Number.limitSigDigs"></a>Number.<wbr>limitSigDigs</h3><div class=CBody><p><b>Deprecated</b>.  Limit the number of significant digits on an integer.  Does <b>not</b> work with floats!</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sig</td><td class=CDLDescription>{Integer}</td></tr></table><h4 class=CHeading>Returns< [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Function"></a>OpenLayers.<span class=HB> </span>Function</h2><div class=CBody><p>Contains convenience functions for function manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Function.Functions" >Functions</a></td><td class=SDescription></td></ [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Function"></a>OpenLayers.<wbr>Function</h2><div class=CBody><p>Contains convenience functions for function manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Function.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFun [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bind"></a>bind</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>bind: function(</td><td class=PParameter nowrap>func,</td></tr><tr><td></td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Bind [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bind"></a>bind</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>bind: function(</td><td class="PParameter  prettyprint " nowrap>func,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint " [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bindAsEventListener"></a>bindAsEventListener</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>bindAsEventListener: function(</td><td class=PParameter nowrap>func,</td></tr><tr><td></td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bindAsEventListener"></a>bindAsEventListener</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>bindAsEventListener: function(</td><td class="PParameter  prettyprint " nowrap>func,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>object</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.False"></a>False</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>False : function()</td></tr></table></blockquote><p>A simple function to that just does “return false”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>Usage</h4><p>document.o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.False"></a>False</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">False : function()</td></tr></table></blockquote><p>A simple function to that just does “return false”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>U [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.True"></a>True</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>True : function()</td></tr></table></blockquote><p>A simple function to that just does “return true”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>Usage</h4><p>document.oncli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.True"></a>True</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">True : function()</td></tr></table></blockquote><p>A simple function to that just does “return true”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>Usage [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Void"></a>Void</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">Void: function()</td></tr></table></blockquote><p>A reusable function that returns ``undefined``.</p><h4 class=CHeading>Returns</h4><p>{undefined}</p></div></div></div>
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Function.bind"></a>Function.bind</h3><div class=CBody><p><b>Deprecated</b>.  Bind a function to an object.  Method to easily create closures with ‘this’ altered.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} the this parameter</td></tr></table><h4 class=CHe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Function.bindAsEventListener"></a>Function.<span class=HB> </span>bindAsEventListener</h3><div class=CBody><p><b>Deprecated</b>.  Bind a function to an object, and configure it to receive the event object as first parameter when called.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Function.bindAsEventListener"></a>Function.<wbr>bindAsEventListener</h3><div class=CBody><p><b>Deprecated</b>.  Bind a function to an object, and configure it to receive the event object as first parameter when called.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} A referen [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Array"></a>OpenLayers.<span class=HB> </span>Array</h2><div class=CBody><p>Contains convenience functions for array manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Array.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Array"></a>OpenLayers.<wbr>Array</h2><div class=CBody><p>Contains convenience functions for array manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Array.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SInden [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Array.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Array.filter"></a>filter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>filter: function(</td><td class=PParameter nowrap>array,</td></tr><tr><td></td><td class=PParameter nowrap>callback,</td></tr><tr><td></td><td class=PParameter nowrap>caller</td><td class=PAfterParameters  [...]
-
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Date"></a>OpenLayers.Date</h2><div class=CBody><p>Contains implementations of Date.parse and date.toISOString that match the ECMAScript 5 specification for parsing RFC 3339 dates.  <a href="http://tools.ietf.org/html/rfc3339" class=LURL target=_top>http://tools.ietf.org/html/rfc3339</a></p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.Functions"></a>Functions</h3></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.toISOString"></a>toISOString</h3><div class=CBody><p>Generates a string representing a date.   The format of the string follows the profile of ISO 8601 for date and time on the Internet <img mode="link" target="
url target=”http://tools.ietf.org/html/rfc3339” name=”http://tools.ietf.org/html/rfc3339”>” original=”(see <url target=”http://tools.ietf.org/html/rfc [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.parse"></a>parse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parse: function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate a date object from a string.   The format for the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Array.filter"></a>filter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>filter: function(</td><td class="PParameter  prettyprint " nowrap>array,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>callback,</td></tr><tr><td></td><td class="PParam [...]
 
 </div><!--Content-->
 
@@ -88,15 +82,15 @@ OpenLayers.String.isNumeric(" 4 ") // false</pre></blockquote><h4 clas
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>startsWith: function(</td><td class=PParameter nowrap>str,</td></tr><tr><td></td><td class=PParameter nowrap>sub</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Test whether a string starts with another string.</div></div><div class=CToolT [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>startsWith: function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sub</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Test whether a [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html
index 7d0e533..582406a 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Bounds - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Bounds - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scrip [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,60 +11,62 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Bounds"></a>OpenLayers.<span class=HB> </span>Bounds</h1><div class=CBody><p>Instances of this class represent bounding boxes.   Data stored as left, bottom, right, top floats.  All values are initialized to null, however, you should make sure you set them before using the bounds for anything.</p><h4 class=CHeading>Possible use case</h4><blockquote><pre>bounds = new OpenLayer [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Bounds"></a>OpenLayers.<wbr>Bounds</h1><div class=CBody><p>Instances of this class represent bounding boxes.   Data stored as left, bottom, right, top floats.  All values are initialized to null, however, you should make sure you set them before using the bounds for anything.</p><h4 class=CHeading>Possible use case</h4><blockquote><pre class="prettyprint">bounds = new OpenLay [...]
 bounds.extend(new OpenLayers.LonLat(4,5));
 bounds.extend(new OpenLayers.LonLat(5,6));
-bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Bounds" >OpenLayers.<span class=HB> </span>Bounds</a></td><td class=SDescription>Instances of this class represent bounding boxes. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Bounds.Constructor" >Const [...]
+bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Bounds" >OpenLayers.<wbr>Bounds</a></td><td class=SDescription>Instances of this class represent bounding boxes. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Bounds.Constructor" >Constructor</a></td><td [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.OpenLayers.Bounds"></a>OpenLayers.<span class=HB> </span>Bounds</h3><div class=CBody><p>Construct a new bounds object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>left</td><td class=CDLDescription>{Number} The left bounds of the box.   Note that for width calculations, this is assumed to be less than the right valu [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.OpenLayers.Bounds"></a>OpenLayers.<wbr>Bounds</h3><div class=CBody><p>Construct a new bounds object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>left</td><td class=CDLDescription>{Number} The left bounds of the box.   Note that for width calculations, this is assumed to be less than the right value.</td></tr><tr><t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String representation of bounds object.  (ex.<i>”left-bottom=(5,42) right-top=(10,45)”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String representation of bounds object.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toArray"></a>toArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toArray: function(</td><td class=PParameter nowrap>reverseAxisOrder</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table borde [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toArray"></a>toArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toArray: function(</td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toBBOX"></a>toBBOX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toBBOX:function(</td><td class=PParameter nowrap>decimal,</td></tr><tr><td></td><td class=PParameter nowrap>reverseAxisOrder</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toBBOX"></a>toBBOX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toBBOX:function(</td><td class="PParameter  prettyprint " nowrap>decimal,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toGeometry"></a>toGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toGeometry: function()</td></tr></table></blockquote><p>Create a new polygon geometry based on this bounds.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26' [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toGeometry"></a>toGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toGeometry: function()</td></tr></table></blockquote><p>Create a new polygon geometry based on this bounds.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link27 onMouseOver="ShowTip(e [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getWidth"></a>getWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWidth:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The width of the bounds</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getWidth"></a>getWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWidth:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The width of the bounds</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getHeight:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The height of the bounds (top minus bottom).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getHeight:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The height of the bounds (top minus bottom).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSize:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Size-js.html#OpenLayers.Size" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt8', 'link27')" onMouseOut="HideTip('tt8')">OpenLayers.Size</a>} The size of the box.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSize:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Size-js.html#OpenLayers.Size" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt8', 'link28')" onMouseOut="HideTip('tt8')">OpenLayers.Size</a>} The size of the box.</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterPixel"></a>getCenterPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCenterPixel:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Pixel-js.html#OpenLayers.Pixel" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt10', 'link28')" onMouseOut="HideTip('tt10')">OpenLayers.Pixel</a>} The center of the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterPixel"></a>getCenterPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCenterPixel:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Pixel-js.html#OpenLayers.Pixel" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt10', 'link29')" onMouseOut="HideTip('tt10')">OpenLayers.Pixel</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterLonLat"></a>getCenterLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCenterLonLat:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="LonLat-js.html#OpenLayers.LonLat" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt12', 'link29')" onMouseOut="HideTip('tt12')">OpenLayers.LonLat</a>} The center o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterLonLat"></a>getCenterLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCenterLonLat:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="LonLat-js.html#OpenLayers.LonLat" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt12', 'link30')" onMouseOut="HideTip('tt12')">OpenLayers.Lo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>add:function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.scale"></a>scale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>scale: function(</td><td class="PParameter  prettyprint " nowrap>ratio,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParameters  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.extend"></a>extend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>extend:function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend the bounds to include the point, lonlat, or bounds [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>add:function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsLonLat"></a>containsLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsLonLat:function(</td><td class=PParameter nowrap>ll,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.extend"></a>extend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extend:function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend th [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsPixel"></a>containsPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsPixel:function(</td><td class=PParameter nowrap>px,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsLonLat"></a>containsLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsLonLat:function(</td><td class="PParameter  prettyprint " nowrap>ll,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>inclusive</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contains:function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsPixel"></a>containsPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsPixel:function(</td><td class="PParameter  prettyprint " nowrap>px,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>inclusive</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.intersectsBounds"></a>intersectsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersectsBounds:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contains:function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsBounds"></a>containsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsBounds:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>partial,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.intersectsBounds"></a>intersectsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersectsBounds:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>inclusive</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.determineQuadrant"></a>determineQuadrant</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>determineQuadrant: function(</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsBounds"></a>containsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsBounds:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>partial,</td></tr><tr><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.determineQuadrant"></a>determineQuadrant</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>determineQuadrant: function(</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wrapDateLine: function(</td><td class=PParameter nowrap>maxExtent,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromString"></a>fromString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.fromString = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wrapDateLine: function(</td><td class="PParameter  prettyprint " nowrap>maxExtent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromArray"></a>fromArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.fromArray = function(</td><td class=PParameter nowrap>bbox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromString"></a>fromString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.fromString = function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromSize"></a>fromSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.fromSize = function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that buil [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromArray"></a>fromArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.fromArray = function(</td><td class="PParameter  prettyprint " nowrap>bbox,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</td> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromSize"></a>fromSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.fromSize = function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
 </div><!--Content-->
 
@@ -72,15 +74,15 @@ bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><di
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote>{String} String representation of bounds object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toArray: function(</td><td class=PPara [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote>{String} String representation of bounds object.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/Class-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/Class-js.html
index 12a733b..8a6e288 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes/Class-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/Class-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Class.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><b [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Class.js"></a>Class.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Class.js" >Class.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constructor" >Constructor</a></td><td class=SDescriptio [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Class.js"></a>Class.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Class.js" >Class.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constructor" >Constructor</a></td><td class=SDescriptio [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Class"></a>OpenLayers.<span class=HB> </span>Class</h3><div class=CBody><p>Base class used to construct all other classes.  Includes support for multiple inheritance.</p><p>This constructor is new in OpenLayers 2.5.   At OpenLayers 3.0, the old syntax for creating classes and dealing with inheritance will be removed.</p><h4 class=CHeading>To create a new OpenLayers-style class, use the following sy [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Class"></a>OpenLayers.<wbr>Class</h3><div class=CBody><p>Base class used to construct all other classes.  Includes support for multiple inheritance.</p><p>This constructor is new in OpenLayers 2.5.   At OpenLayers 3.0, the old syntax for creating classes and dealing with inheritance will be removed.</p><h4 class=CHeading>To create a new OpenLayers-style class, use the following syntax</h4><blockquo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.create"></a>OpenLayers.<span class=HB> </span>create</h3><div class=CBody><p><b>Deprecated</b>.   Old method to create an OpenLayers style class.   Use the <a href="#OpenLayers.Class" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Class</a> constructor instead.</p><h4 class=CHeading>Returns</h4><p>An OpenLayers class</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.create"></a>OpenLayers.<wbr>create</h3><div class=CBody><p><b>Deprecated</b>.   Old method to create an OpenLayers style class.   Use the <a href="#OpenLayers.Class" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Class</a> constructor instead.</p><h4 class=CHeading>Returns</h4><p>An OpenLayers class</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="inherit"></a>inherit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Class.inherit = function ()</td></tr></table></blockquote><p><b>Deprecated</b>.   Old method to inherit from one or more OpenLayers style classes.   Use the <a href="#OpenLayers.Class" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="inherit"></a>inherit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Class.inherit = function (</td><td class="PParameter  prettyprint " nowrap>P</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprec [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="extend"></a>extend</h3><div class=CBody><p>Copy all properties of a source object to a destination object.   Modifies the passed in destination object.   Any properties on the source object that are set to undefined will not be (re)set on the destination object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>destination</td><td class [...]
 
 </div><!--Content-->
 
@@ -29,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Class.inherit = function ()</td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="tt2"><div class=CConstructor>Base class used to construct all other classes. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Class.inherit = function (</td><td class="PParameter  prettyprint " nowrap>P</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="tt2"><div class= [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/Date-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/Date-js.html
new file mode 100644
index 0000000..336bd63
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/Date-js.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Date - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script  [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Date"></a>OpenLayers.Date</h1><div class=CBody><p>Contains implementations of Date.parse and date.toISOString that match the ECMAScript 5 specification for parsing RFC 3339 dates.  <a href="http://tools.ietf.org/html/rfc3339" class=LURL target=_top>http://tools.ietf.org/html/rfc3339</a></p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.toISOString"></a>toISOString</h3><div class=CBody><p>Generates a string representing a date.   The format of the string follows the profile of ISO 8601 for date and time on the Internet <img mode="link" target="
url target=”http://tools.ietf.org/html/rfc3339” name=”http://tools.ietf.org/html/rfc3339”>” original=”(see <url target=”http://tools.ietf.org/html/rfc [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.parse"></a>parse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parse: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate a date  [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parse: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Generate a date object from a string. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/Element-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/Element-js.html
index 98efde2..e26a06d 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes/Element-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/Element-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Element - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Element - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Element"></a>OpenLayers.<span class=HB> </span>Element</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Element" >OpenLayers.<span class=HB> </span>Element</a></td><td class=SDescription></td></tr><tr class="SGr [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Element"></a>OpenLayers.<wbr>Element</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Element" >OpenLayers.<wbr>Element</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a hr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>visible: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>visible: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.toggle"></a>toggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toggle: function()</td></tr></table></blockquote><p>Toggle the visibility of element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement} Actually us [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.toggle"></a>toggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toggle: function()</td></tr></table></blockquote><p>Toggle the visibility of element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{D [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>hide: function()</td></tr></table></blockquote><p>Hide element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement} Actually user can pass any number of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">hide: function()</td></tr></table></blockquote><p><b>Deprecated</b>.  Hide element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Show element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement} Actually user can pass any number of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p><b>Deprecated</b>.  Show element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>remove: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove the specified element from the DOM.</p><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>remove: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getHeight: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getHeight: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getDimensions"></a>getDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getDimensions: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprecated</b>.  Returns  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getDimensions"></a>getDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getDimensions: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getStyle: function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getStyle: function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterParameters   [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>visible: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototyp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>visible: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bor [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/LonLat-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/LonLat-js.html
index b85ebc5..82254c2 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes/LonLat-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/LonLat-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.LonLat - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.LonLat - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scrip [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.LonLat"></a>OpenLayers.<span class=HB> </span>LonLat</h1><div class=CBody><p>This class represents a longitude and latitude pair</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.LonLat" >OpenLayers.<span class=HB> </span>LonLat</ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.LonLat"></a>OpenLayers.<wbr>LonLat</h1><div class=CBody><p>This class represents a longitude and latitude pair</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.LonLat" >OpenLayers.<wbr>LonLat</a></td><td class=SDescription>This c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.Properties"></a>Properties</h3></div></div>
 
@@ -21,21 +21,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.OpenLayers.LonLat"></a>OpenLayers.<span class=HB> </span>LonLat</h3><div class=CBody><p>Create a new map location.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lon</td><td class=CDLDescription>{Number} The x-axis coordinate in map units.   If your map is in a geographic projection, this will be the Longitude.   [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.OpenLayers.LonLat"></a>OpenLayers.<wbr>LonLat</h3><div class=CBody><p>Create a new map location.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lon</td><td class=CDLDescription>{Number} The x-axis coordinate in map units.   If your map is in a geographic projection, this will be the Longitude.   Otherwise, it wil [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.toShortString"></a>toShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toShortString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} Shortened String representation of OpenLayers.LonLat object.  (ex.  <i>”5, 42”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.toShortString"></a>toShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toShortString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} Shortened String representation of OpenLayers.LonLat object.  (e.g.  <i>”5, 42”</i>)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.LonLat.OpenLayers.LonLat" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt3', 'link8')" onMouseOut="HideTip('tt3')">OpenLayers.LonLat</a>} New OpenLayers.LonLat object with th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.LonLat.OpenLayers.LonLat" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt3', 'link8')" onMouseOut="HideTip('tt3')">OpenLayers.LonLat</a>} New OpenLayers [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>add:function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>add:function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>lat</td><td class="PAfterParameters  prettyprint "nowrap>)</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>ll</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>ll</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wrapDateLine: function(</td><td class=PParameter nowrap>maxExtent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wrapDateLine: function(</td><td class="PParameter  prettyprint " nowrap>maxExtent</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toShortString:function()</td></tr></table></blockquote>{String} Shortened String representation of OpenLayers.LonLat object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote>{OpenLayers.LonLat} New OpenLayers.LonLat object [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toShortString:function()</td></tr></table></blockquote>{String} Shortened String representation of OpenLayers.LonLat object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote>{Ope [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/Pixel-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/Pixel-js.html
index 2b05155..5fffa5e 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes/Pixel-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/Pixel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Pixel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Pixel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Pixel"></a>OpenLayers.<span class=HB> </span>Pixel</h1><div class=CBody><p>This class represents a screen coordinate, in x and y coordinates</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Pixel" >OpenLayers.<span class=HB> </sp [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Pixel"></a>OpenLayers.<wbr>Pixel</h1><div class=CBody><p>This class represents a screen coordinate, in x and y coordinates</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Pixel" >OpenLayers.<wbr>Pixel</a></td><td class=SDescript [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.Properties"></a>Properties</h3></div></div>
 
@@ -21,17 +21,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.OpenLayers.Pixel"></a>OpenLayers.<span class=HB> </span>Pixel</h3><div class=CBody><p>Create a new OpenLayers.Pixel instance</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{Number} The x coordinate</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{Number} The y coordinate</td></t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.OpenLayers.Pixel"></a>OpenLayers.<wbr>Pixel</h3><div class=CBody><p>Create a new OpenLayers.Pixel instance</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{Number} The x coordinate</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{Number} The y coordinate</td></tr></table><h4 clas [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><p>Return a clone of this pixel object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Pixel.OpenLayers.Pixel" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">OpenLayers.Pixel</a> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><p>Return a clone of this pixel object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Pixel.OpenLayers.Pixel" class=LConstructor id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6') [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether one pixel is equivalent to another</p><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>add:function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Re [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.offset"></a>offset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>offset:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parameters px - {<a href="#OpenLayers.Pixel.OpenLayers.Pixel"  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>add:function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.offset"></a>offset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>offset:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parameters px  [...]
 
 </div><!--Content-->
 
@@ -39,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote>Return a clone of this pixel object</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>px</td [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote>Return a clone of this pixel object</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function( [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/BaseTypes/Size-js.html b/doc/apidocs/files/OpenLayers/BaseTypes/Size-js.html
index 2424e7e..df4cab6 100644
--- a/doc/apidocs/files/OpenLayers/BaseTypes/Size-js.html
+++ b/doc/apidocs/files/OpenLayers/BaseTypes/Size-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Size - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Size - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script  [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -25,9 +25,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><p>Create a clone of this size object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Size.OpenLayers.Size" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Size</a>} A n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><p>Create a clone of this size object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Size.OpenLayers.Size" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">Op [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>sz</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine where this size is equal to another</p><h4 class=CHea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>sz</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine where [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote>Create a clone of this size object</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>sz</td> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote>Create a clone of this size object</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(< [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Console-js.html b/doc/apidocs/files/OpenLayers/Console-js.html
index 099d9de..d5316c7 100644
--- a/doc/apidocs/files/OpenLayers/Console-js.html
+++ b/doc/apidocs/files/OpenLayers/Console-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Console - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Console - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,43 +11,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Console"></a>OpenLayers.<span class=HB> </span>Console</h1><div class=CBody><p>The OpenLayers.Console namespace is used for debugging and error logging.  If the Firebug Lite (../Firebug/firebug.js) is included before this script, calls to OpenLayers.Console methods will get redirected to window.console.  This makes use of the Firebug extension where available and allows for c [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Console"></a>OpenLayers.<wbr>Console</h1><div class=CBody><p>The OpenLayers.Console namespace is used for debugging and error logging.  If the Firebug Lite (../Firebug/firebug.js) is included before this script, calls to OpenLayers.Console methods will get redirected to window.console.  This makes use of the Firebug extension where available and allows for cross-browser debug [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.log"></a>log</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>log: function()</td></tr></table></blockquote><p>Log an object in the console.   The Firebug Lite console logs string representation of objects.   Given multiple arguments, they will be cast to strings and logged with a space delimiter.   If the first argument is a string with [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.log"></a>log</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">log: function()</td></tr></table></blockquote><p>Log an object in the console.   The Firebug Lite console logs string representation of objects.   Given multiple arguments, they will be cast to strings and logged with a space delimiter.   If the first arg [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.debug"></a>debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>debug: function()</td></tr></table></blockquote><p>Writes a message to the console, including a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.debug"></a>debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">debug: function()</td></tr></table></blockquote><p>Writes a message to the console, including a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Parameters</h4><table borde [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.info"></a>info</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>info: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “info” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.info"></a>info</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">info: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “info” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.warn"></a>warn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>warn: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.warn"></a>warn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">warn: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log(). [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.error"></a>error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>error: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “error” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.error"></a>error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">error: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “error” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log() [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.userError"></a>userError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>userError: function(</td><td class=PParameter nowrap>error</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>A single interface for showing error messages t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.userError"></a>userError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>userError: function(</td><td class="PParameter  prettyprint " nowrap>error</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.assert"></a>assert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>assert: function()</td></tr></table></blockquote><p>Tests that an expression is true.  If not, it will write a message to the console and throw an exception.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.assert"></a>assert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">assert: function()</td></tr></table></blockquote><p>Tests that an expression is true.  If not, it will write a message to the console and throw an exception.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dir"></a>dir</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>dir: function()</td></tr></table></blockquote><p>Prints an interactive listing of all properties of the object.  This looks identical to the view that you would see in the DOM tab.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dir"></a>dir</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">dir: function()</td></tr></table></blockquote><p>Prints an interactive listing of all properties of the object.  This looks identical to the view that you would see in the DOM tab.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dirxml"></a>dirxml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>dirxml: function()</td></tr></table></blockquote><p>Prints the XML source tree of an HTML or XML element.  This looks identical to the view that you would see in the HTML tab.  You can click on any node to inspect it in the HTML tab.</p><h4 class=CHeading>Parameters</h4><tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dirxml"></a>dirxml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">dirxml: function()</td></tr></table></blockquote><p>Prints the XML source tree of an HTML or XML element.  This looks identical to the view that you would see in the HTML tab.  You can click on any node to inspect it in the HTML tab.</p><h4 class=CHeadin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.trace"></a>trace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trace: function()</td></tr></table></blockquote><p>Prints an interactive stack trace of JavaScript execution at the point where it is called.   The stack trace details the functions on the stack, as well as the values that were passed as arguments to each function.  You can cli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.trace"></a>trace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trace: function()</td></tr></table></blockquote><p>Prints an interactive stack trace of JavaScript execution at the point where it is called.   The stack trace details the functions on the stack, as well as the values that were passed as arguments to each funct [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.group"></a>group</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>group: function()</td></tr></table></blockquote><p>Writes a message to the console and opens a nested block to indent all future messages sent to the console.  Call OpenLayers.Console.groupEnd() to close the block.</p><p>May be called with multiple arguments as with OpenLayers.Conso [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.group"></a>group</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">group: function()</td></tr></table></blockquote><p>Writes a message to the console and opens a nested block to indent all future messages sent to the console.  Call OpenLayers.Console.groupEnd() to close the block.</p><p>May be called with multiple arguments as [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.groupEnd"></a>groupEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>groupEnd: function()</td></tr></table></blockquote><p>Closes the most recently opened block created by a call to OpenLayers.Console.group</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.groupEnd"></a>groupEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">groupEnd: function()</td></tr></table></blockquote><p>Closes the most recently opened block created by a call to OpenLayers.Console.group</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.time"></a>time</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>time: function()</td></tr></table></blockquote><p>Creates a new timer under the given name.  Call OpenLayers.Console.timeEnd(name) with the same name to stop the timer and print the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CD [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.time"></a>time</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">time: function()</td></tr></table></blockquote><p>Creates a new timer under the given name.  Call OpenLayers.Console.timeEnd(name) with the same name to stop the timer and print the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.timeEnd"></a>timeEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>timeEnd: function()</td></tr></table></blockquote><p>Stops a timer created by a call to OpenLayers.Console.time(name) and writes the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.timeEnd"></a>timeEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">timeEnd: function()</td></tr></table></blockquote><p>Stops a timer created by a call to OpenLayers.Console.time(name) and writes the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profile"></a>profile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>profile: function()</td></tr></table></blockquote><p>Turns on the JavaScript profiler.  The optional argument title would contain the text to be printed in the header of the profile report.</p><p>This function is not currently implemented in Firebug Lite.</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profile"></a>profile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">profile: function()</td></tr></table></blockquote><p>Turns on the JavaScript profiler.  The optional argument title would contain the text to be printed in the header of the profile report.</p><p>This function is not currently implemented in Firebug Lite.</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profileEnd"></a>profileEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>profileEnd: function()</td></tr></table></blockquote><p>Turns off the JavaScript profiler and prints its report.</p><p>This function is not currently implemented in Firebug Lite.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profileEnd"></a>profileEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">profileEnd: function()</td></tr></table></blockquote><p>Turns off the JavaScript profiler and prints its report.</p><p>This function is not currently implemented in Firebug Lite.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.count"></a>count</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>count: function()</td></tr></table></blockquote><p>Writes the number of times that the line of code where count was called was executed.  The optional argument title will print a message in addition to the number of the count.</p><p>This function is not currently implemented in Fire [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.count"></a>count</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">count: function()</td></tr></table></blockquote><p>Writes the number of times that the line of code where count was called was executed.  The optional argument title will print a message in addition to the number of the count.</p><p>This function is not current [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>log: function()</td></tr></table></blockquote>Log an object in the console. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>debug: function()</td></tr></table></blockquote>Writes a message to the console, including a hyperlink to the line where it was called.</div></d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">log: function()</td></tr></table></blockquote>Log an object in the console. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">debug: function()</td></tr></table></blockquote>Writes a message to the console, including a hyperli [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control-js.html b/doc/apidocs/files/OpenLayers/Control-js.html
index b17f12a..346fc94 100644
--- a/doc/apidocs/files/OpenLayers/Control-js.html
+++ b/doc/apidocs/files/OpenLayers/Control-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control"></a>OpenLayers.<span class=HB> </span>Control</h1><div class=CBody><p>Controls affect the display or behavior of the map.  They allow everything from panning and zooming to displaying a scale indicator.  Controls by default are added to the map they are contained within however it is possible to add a control to an external div by passing the div in the options param [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control"></a>OpenLayers.<wbr>Control</h1><div class=CBody><p>Controls affect the display or behavior of the map.  They allow everything from panning and zooming to displaying a scale indicator.  Controls by default are added to the map they are contained within however it is possible to add a control to an external div by passing the div in the options parameter.</p><h4 class [...]
 
 map.addControl(new OpenLayers.Control.PanZoomBar());
 map.addControl(new OpenLayers.Control.MouseToolbar());
@@ -35,29 +35,45 @@ OpenLayers.Util.extend(control, {
         OpenLayers.Console.userError(bounds);
     }
 });
-map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control" >OpenLayers.<span class=HB> </span>Control</a></td><td class=SDescription>Controls affect the display or behavior of the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Control.Properties" >Properties</ [...]
+map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control" >OpenLayers.<wbr>Control</a></td><td class=SDescription>Controls affect the display or behavior of the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Control.Properties" >Properties</a></td><td class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Properties"></a>Properties</h3></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.div"></a>div</h3><div class=CBody><p>{DOMElement} The element that contains the control, if not present the control is placed inside the map.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.type"></a>type</h3><div class=CBody><p>{Number} Controls can have a ‘type’.  The type determines the type of interactions which are possible with them when they are placed in an <a href="Control/Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Control.Panel</a>.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.title"></a>title</h3><div class=CBody><p>{string}  This property is used for showing a tooltip over the Control.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for th [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.active"></a>active</h3><div class=CBody><p>{Boolean} The control is active (read-only).   Use <a href="#OpenLayers.Control.activate" class=LFunction id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">activate</a> and <a href="#OpenLayers.Control.deactivate" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt3', 'link6')" onMouseOut="HideTip('tt3')">deactivate</a> [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for th [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} Events instance for listeners and triggering control specific events.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p><h4 [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly w [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control"></a>OpenLayers.<span class=HB> </span>Control</h3><div class=CBody><p>Create an OpenLayers Control.   The options passed as a parameter directly extend the control.   For example passing the following:</p><blockquote><pre>var control = new OpenLayers.Control({div: myDiv});</pre></blockquote><p>Overrides the default div attribute value of null.</p><h4 class=CHeading>Param [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control"></a>OpenLayers.<wbr>Control</h3><div class=CBody><p>Create an OpenLayers Control.   The options passed as a parameter directly extend the control.   For example passing the following:</p><blockquote><pre>var control = new OpenLayers.Control({div: myDiv});</pre></blockquote><p>Overrides the default div attribute value of null.</p><h4 class=CHeading>Parameters</h4><table b [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote><p>Explicitly activates a control and it’s associated handler if one has been set.   Controls can be deactivated by calling the deactivate() method.</p><h4 class=CHeading>Returns</h4><p>{Boolean}   [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote><p>Deactivates a control and it’s associated handler if any.   The exact effect of this depends on the control itself.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the control was e [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_BUTTON"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TYPE_BUTTON</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_BUTTON"></a>OpenLayers.<wbr>Control.<wbr>TYPE_BUTTON</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOGGLE"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TYPE_TOGGLE</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOGGLE"></a>OpenLayers.<wbr>Control.<wbr>TYPE_TOGGLE</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOOL"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TYPE_TOOL</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOOL"></a>OpenLayers.<wbr>Control.<wbr>TYPE_TOOL</h3></div></div>
 
 </div><!--Content-->
 
@@ -65,15 +81,15 @@ map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Sum
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>on: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for registering listeners with a common scope. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>on: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for registering listeners with a common scope. </div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ArgParser-js.html b/doc/apidocs/files/OpenLayers/Control/ArgParser-js.html
index 15237ff..1abb02c 100644
--- a/doc/apidocs/files/OpenLayers/Control/ArgParser-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ArgParser-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ArgParser - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ArgParser - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ArgParser"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ArgParser</h1><div class=CBody><p>The ArgParser control adds location bar querystring parsing functionality to an OpenLayers Map.  When added to a Map control, on a page load/refresh, the Map will automatically take the href string and parse it for lon, lat, zoom, and layers information.</p><h4 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ArgParser"></a>OpenLayers.<wbr>Control.<wbr>ArgParser</h1><div class=CBody><p>The ArgParser control adds location bar querystring parsing functionality to an OpenLayers Map.  When added to a Map control, on a page load/refresh, the Map will automatically take the href string and parse it for lon, lat, zoom, and layers information.</p><h4 class=CHeading>Inherits from</h4><u [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.OpenLayers.Control.ArgParser"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ArgParser</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.OpenLayers.Control.ArgParser"></a>OpenLayers.<wbr>Control.<wbr>ArgParser</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Attribution-js.html b/doc/apidocs/files/OpenLayers/Control/Attribution-js.html
index d3d9011..8f59c2e 100644
--- a/doc/apidocs/files/OpenLayers/Control/Attribution-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Attribution-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Attribution - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Attribution - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Attribution"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Attribution</h1><div class=CBody><p>The attribution control adds attribution from layers to the map display.  It uses ‘attribution’ property of each layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Attribution"></a>OpenLayers.<wbr>Control.<wbr>Attribution</h1><div class=CBody><p>The attribution control adds attribution from layers to the map display.  It uses ‘attribution’ property of each layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1') [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.OpenLayers.Control.Attribution"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Attribution</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.OpenLayers.Control.Attribution"></a>OpenLayers.<wbr>Control.<wbr>Attribution</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Button-js.html b/doc/apidocs/files/OpenLayers/Control/Button-js.html
index 4202427..957ef3b 100644
--- a/doc/apidocs/files/OpenLayers/Control/Button-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Button-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Button - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Button - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Button"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Button</h1><div class=CBody><p>The Button control is a very simple push-button, for use with <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a>.  When clicked, the function tri [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Button"></a>OpenLayers.<wbr>Control.<wbr>Button</h1><div class=CBody><p>The Button control is a very simple push-button, for use with <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a>.  When clicked, the function trigger() is executed.</p><h4 class=CHe [...]
     displayClass: "MyButton", trigger: myFunction
 });
 panel.addControls([button]);</pre></blockquote><p>Will create a button with CSS class MyButtonItemInactive, that will call the function MyFunction() when clicked.</p></div></div></div>
@@ -22,10 +22,10 @@ panel.addControls([button]);</pre></blockquote><p>Will create a button with CSS
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/DragFeature-js.html b/doc/apidocs/files/OpenLayers/Control/DragFeature-js.html
index 64130ce..f3d4b08 100644
--- a/doc/apidocs/files/OpenLayers/Control/DragFeature-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/DragFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.DragFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.DragFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragFeature</h1><div class=CBody><p>The DragFeature control moves a feature with a drag of the mouse.  Create a new control with the <a href="#OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragFeature"></a>OpenLayers.<wbr>Control.<wbr>DragFeature</h1><div class=CBody><p>The DragFeature control moves a feature with a drag of the mouse.  Create a new control with the <a href="#OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Control.Dra [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.Properties"></a>Properties</h3></div></div>
 
@@ -23,19 +23,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onComplete"></a>onComplete</h3><div class=CBody><p>{Function} Define this function if you want to know when a feature is done dragging.  The function should expect to receive two arguments: the feature that is being dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>f [...]
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onEnter"></a>onEnter</h3><div class=CBody><p>{Function} Define this function if you want to know when the mouse goes over a feature and thereby makes this feature a candidate for dragging.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href="../Feature/Vector-js.html#OpenL [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onLeave"></a>onLeave</h3><div class=CBody><p>{Function} Define this function if you want to know when the mouse goes out of the feature that was dragged.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass  [...]
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} If set to true, mouse dragging will continue even if the mouse cursor leaves the map viewport.  Default is false.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragFeature</h3><div class=CBody><p>Create a new control to drag features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Ve [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature"></a>OpenLayers.<wbr>Control.<wbr>DragFeature</h3><div class=CBody><p>Create a new control to drag features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link14 onMouse [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control and the feature handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control and feature handler.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control and the feature handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control and feature handler.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control and all handlers.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control and all handlers.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -43,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the control and the feature handler.</div></div><div cla [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the control  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/DragPan-js.html b/doc/apidocs/files/OpenLayers/Control/DragPan-js.html
index f7521bc..3bc389a 100644
--- a/doc/apidocs/files/OpenLayers/Control/DragPan-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/DragPan-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.DragPan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.DragPan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,22 +11,26 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragPan"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragPan</h1><div class=CBody><p>The DragPan control pans the map with a drag of the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control</ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragPan"></a>OpenLayers.<wbr>Control.<wbr>DragPan</h1><div class=CBody><p>The DragPan control pans the map with a drag of the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY-->< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} If set to true, mouse dragging will continue even if the mouse cursor leaves the map viewport.  Default is false.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.enableKinetic"></a>enableKinetic</h3><div class=CBody><p>{Boolean} Set this option to enable “kinetic dragging”.  Can be set to true or to an object.  If set to an object this object will be passed to the {<a href="../Kinetic-js.html#OpenLayers.Kinetic" class=LConstructor >OpenLayers.Kinetic</a>} constructor.  Defaults to false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.kineticInterval"></a>kineticInterval</h3><div class=CBody><p>{Integer} Interval in milliseconds between 2 steps in the “kinetic scrolling”.  Applies only if enableKinetic is set.  Defaults to 10 milliseconds.</p></div></div></div>
+
 </div><!--Content-->
 
 
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/DrawFeature-js.html b/doc/apidocs/files/OpenLayers/Control/DrawFeature-js.html
index 8ff9ed5..e0190f9 100644
--- a/doc/apidocs/files/OpenLayers/Control/DrawFeature-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/DrawFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.DrawFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.DrawFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DrawFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DrawFeature</h1><div class=CBody><p>The DrawFeature control draws point, line or polygon features on a vector layer when active.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMous [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DrawFeature"></a>OpenLayers.<wbr>Control.<wbr>DrawFeature</h1><div class=CBody><p>The DrawFeature control draws point, line or polygon features on a vector layer when active.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">OpenLayers.C [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.Constants"></a>Constants</h3></div></div>
 
@@ -27,7 +27,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.OpenLayers.Control.DrawFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DrawFeature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link2 onMouseOver="Show [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.OpenLayers.Control.DrawFeature"></a>OpenLayers.<wbr>Control.<wbr>DrawFeature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMou [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertXY"></a>insertXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertDeltaXY"></a>insertDeltaXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDeltaXY: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class= [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertDirectionLength"></a>insertDirectionLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDirectionLength: function(</td><td class="PParameter  prettyprint " nowrap>direction,</td></tr><tr><td></td><td class="PParameter  prettyp [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertDeflectionLength"></a>insertDeflectionLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDeflectionLength: function(</td><td class="PParameter  prettyprint " nowrap>deflection,</td></tr><tr><td></td><td class="PParameter  pre [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.undo"></a>undo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">undo: function()</td></tr></table></blockquote><p>Remove the most recently added point in the current sketch geometry.</p><h4 class=CHeading>Returns</h4><p>{Boolean} An edit was undone.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.redo"></a>redo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redo: function()</td></tr></table></blockquote><p>Reinsert the most recently removed point resulting from an <a href="#OpenLayers.Control.DrawFeature.undo" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt5', 'link13')" onMouseOut="HideTip('tt5')"> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.finishSketch"></a>finishSketch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finishSketch: function()</td></tr></table></blockquote><p>Finishes the sketch without including the currently drawn point.  This method can be called to terminate drawing programmatically instead of waiting for the user to end the sket [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Cancel the current sketch.   This removes the current sketch and keeps the drawing control active.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Insert a point in th [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/EditingToolbar-js.html b/doc/apidocs/files/OpenLayers/Control/EditingToolbar-js.html
index 4c9dbdd..a4ed233 100644
--- a/doc/apidocs/files/OpenLayers/Control/EditingToolbar-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/EditingToolbar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.EditingToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.EditingToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.EditingToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>EditingToolbar</h1><div class=CBody><p>The EditingToolbar is a panel of 4 controls to draw polygons, lines, points, or to navigate the map by panning.  By default it appears in the upper right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLay [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.EditingToolbar"></a>OpenLayers.<wbr>Control.<wbr>EditingToolbar</h1><div class=CBody><p>The EditingToolbar is a panel of 4 controls to draw polygons, lines, points, or to navigate the map by panning.  By default it appears in the upper right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>EditingToolbar</h3><div class=CBody><p>Create an editing toolbar for a given layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#Open [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar"></a>OpenLayers.<wbr>Control.<wbr>EditingToolbar</h3><div class=CBody><p>Create an editing toolbar for a given layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Geolocate-js.html b/doc/apidocs/files/OpenLayers/Control/Geolocate-js.html
new file mode 100644
index 0000000..064a03d
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Control/Geolocate-js.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Geolocate - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Geolocate"></a>OpenLayers.<wbr>Control.<wbr>Geolocate</h1><div class=CBody><p>The Geolocate control wraps w3c geolocation API into control that can be bound to a map, and generate events on location update</p><p>To use this control requires to load the proj4js library if the projection of the map is not EPSG:4326 or EPSG:900913.</p><h4 class=CHeading>Inherits from</h4><ul><li>< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types</h4><ul><li><b>locationupdated</b> Triggered when browser return a new position</li><li><b>locationfailed</b> Triggered when geolocation has failed</li><li><b>locationuncapable</b> Triggered when control is activated on a browser which doesn’t support geolocation</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.bind"></a>bind</h3><div class=CBody><p>{Boolean} If true, map center will be set on location update.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.watch"></a>watch</h3><div class=CBody><p>{Boolean} If true, position will be update regularly.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.geolocationOptions"></a>geolocationOptions</h3><div class=CBody><p>{Object} Options to pass to the navigator’s geolocation API.  See <a href="http://dev.w3.org/geo/api/spec-source.html" class=LURL target=_top>http://dev.w3.org/geo/api/spec-source.html</a>.  No specific option is passed to the geolocation API by default.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.OpenLayers.Control.Geolocate"></a>OpenLayers.<wbr>Control.<wbr>Geolocate</h3><div class=CBody><p>Create a new control to deal with browser geolocation API</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.getCurrentLocation"></a>getCurrentLocation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCurrentLocation: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Returns true if a event will be fired (successfull registration)</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCurrentLocation: function()</td></tr></table></blockquote>{Boolean} Returns true if a event will be fired (successfull registration)</div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Control/GetFeature-js.html b/doc/apidocs/files/OpenLayers/Control/GetFeature-js.html
index 43e4afc..2367e71 100644
--- a/doc/apidocs/files/OpenLayers/Control/GetFeature-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/GetFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.GetFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.GetFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.GetFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>GetFeature</h1><div class=CBody><p>Gets vector features for locations underneath the mouse cursor.  Can be configured to act on click, hover or dragged boxes.  Uses an <a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.GetFeature"></a>OpenLayers.<wbr>Control.<wbr>GetFeature</h1><div class=CBody><p>Gets vector features for locations underneath the mouse cursor.  Can be configured to act on click, hover or dragged boxes.  Uses an <a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.P [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.Properties"></a>Properties</h3></div></div>
 
@@ -47,7 +47,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.OpenLayers.Control.GetFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>GetFeature</h3><div class=CBody><p>Create a new control for fetching remote features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} A configuration object which at l [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.OpenLayers.Control.GetFeature"></a>OpenLayers.<wbr>Control.<wbr>GetFeature</h3><div class=CBody><p>Create a new control for fetching remote features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} A configuration object which at least has to contain a <a href="#Open [...]
 
 </div><!--Content-->
 
@@ -55,10 +55,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Graticule-js.html b/doc/apidocs/files/OpenLayers/Control/Graticule-js.html
index 2dc80c4..1cde4cf 100644
--- a/doc/apidocs/files/OpenLayers/Control/Graticule-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Graticule-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Graticule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Graticule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Graticule"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Graticule</h1><div class=CBody><p>The Graticule displays a grid of latitude/longitude lines reprojected on the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip(' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Graticule"></a>OpenLayers.<wbr>Control.<wbr>Graticule</h1><div class=CBody><p>The Graticule displays a grid of latitude/longitude lines reprojected on the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Control</a></li></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.Properties"></a>Properties</h3></div></div>
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.OpenLayers.Control.Graticule"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Graticule</h3><div class=CBody><p>Create a new graticule control to display a grid of latitude longitude lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An option [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.OpenLayers.Control.Graticule"></a>OpenLayers.<wbr>Control.<wbr>Graticule</h3><div class=CBody><p>Create a new graticule control to display a grid of latitude longitude lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be u [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Internationalization namespace. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div><div class=CTool [...]
+<div class=CToolTip id="tt1"><div class=CClass>Internationalization namespace. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></tab [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/KeyboardDefaults-js.html b/doc/apidocs/files/OpenLayers/Control/KeyboardDefaults-js.html
index 1569828..8d80607 100644
--- a/doc/apidocs/files/OpenLayers/Control/KeyboardDefaults-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/KeyboardDefaults-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.KeyboardDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.KeyboardDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>KeyboardDefaults</h1><div class=CBody><p>The KeyboardDefaults control adds panning and zooming functions, controlled with the keyboard.  By default arrow keys pan, +/- keys zoom & Page Up/Page Down/Home/End scroll by three quarters of a page.</p><p>This control has no visible appeara [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<wbr>Control.<wbr>KeyboardDefaults</h1><div class=CBody><p>The KeyboardDefaults control adds panning and zooming functions, controlled with the keyboard.  By default arrow keys pan, +/- keys zoom & Page Up/Page Down/Home/End scroll by three quarters of a page.</p><p>This control has no visible appearance.</p><h4 class=CHeading>Inherits  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>KeyboardDefaults</h3></div></div>
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.Functions"></a>Functions</h3></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<wbr>Control.<wbr>KeyboardDefaults</h3></div></div>
 
 </div><!--Content-->
 
@@ -33,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/LayerSwitcher-js.html b/doc/apidocs/files/OpenLayers/Control/LayerSwitcher-js.html
index b97a689..83446f8 100644
--- a/doc/apidocs/files/OpenLayers/Control/LayerSwitcher-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/LayerSwitcher-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.LayerSwitcher - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.LayerSwitcher - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>LayerSwitcher</h1><div class=CBody><p>The LayerSwitcher control displays a table of contents for the map.  This allows the user interface to switch between BaseLasyers and to show or hide Overlays.  By default the switcher is shown minimized on the right edge of the map, the user may e [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<wbr>Control.<wbr>LayerSwitcher</h1><div class=CBody><p>The LayerSwitcher control displays a table of contents for the map.  This allows the user interface to switch between BaseLasyers and to show or hide Overlays.  By default the switcher is shown minimized on the right edge of the map, the user may expand it by clicking on the handle.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.Properties"></a>Properties</h3></div></div>
 
@@ -23,11 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>LayerSwitcher</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<wbr>Control.<wbr>LayerSwitcher</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Measure-js.html b/doc/apidocs/files/OpenLayers/Control/Measure-js.html
index 61a687f..61c7af6 100644
--- a/doc/apidocs/files/OpenLayers/Control/Measure-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Measure-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Measure - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Measure - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Measure"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Measure</h1><div class=CBody><p>Allows for drawing of features for measurements.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Control</a></li></u [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Measure"></a>OpenLayers.<wbr>Control.<wbr>Measure</h1><div class=CBody><p>Allows for drawing of features for measurements.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY--><div class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on e [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Used to set non-default properties on the control’s handler</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.persist"></a>persist</h3><div class=CBody><p>{Boolean} Keep the temporary measurement sketch drawn after the measurement is complete.   The geometry will persist until a new measurement is started, the control is deactivated, or <a href="#OpenLayers.Control.Measure.cancel" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">cancel</a> is called. [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.persist"></a>persist</h3><div class=CBody><p>{Boolean} Keep the temporary measurement sketch drawn after the measurement is complete.   The geometry will persist until a new measurement is started, the control is deactivated, or <a href="#OpenLayers.Control.Measure.cancel" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">cancel</a> is called. [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.immediate"></a>immediate</h3><div class=CBody><p>{Boolean} Activates the immediate measurement so that the “measurepartial” event is also fired once the measurement sketch is modified.  Default is false.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.OpenLayers.Control.Measure"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Measure</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{<a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt3', 'l [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.OpenLayers.Control.Measure"></a>OpenLayers.<wbr>Control.<wbr>Measure</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{<a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt6', 'link9')" onMouseOut="HideTip('tt6')"> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Stop the control from measuring.   If <a href="#OpenLayers.Control.Measure.persist" class=LProperty id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">persist</a> is true, the temporary sket [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Stop the control from measuring.   If <a href="#OpenLayers.Control.Measure.persist" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt7', 'link10')" onMouseOut="HideTip('tt7')">persist</a> is  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.setImmediate"></a>setImmediate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setImmediate: function(</td><td class="PParameter  prettyprint " nowrap>immediate</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 </div><!--Content-->
 
@@ -37,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote>Stop the control from measuring. </div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt4">< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote>Stop the control from measuring. </div></div><div class=CToolTip id="tt3"> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ModifyFeature-js.html b/doc/apidocs/files/OpenLayers/Control/ModifyFeature-js.html
index 6d897b9..15d453b 100644
--- a/doc/apidocs/files/OpenLayers/Control/ModifyFeature-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ModifyFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ModifyFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ModifyFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ModifyFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ModifyFeature</h1><div class=CBody><p>Control to modify features.   When activated, a click renders the vertices of a feature - these vertices can then be dragged.   By default, the delete key will delete the vertex under the mouse.   New features are added by dragging “virt [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ModifyFeature"></a>OpenLayers.<wbr>Control.<wbr>ModifyFeature</h1><div class=CBody><p>Control to modify features.   When activated, a click renders the vertices of a feature - these vertices can then be dragged.   By default, the delete key will delete the vertex under the mouse.   New features are added by dragging “virtual vertices” between vertices [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Properties"></a>Properties</h3></div></div>
 
@@ -21,13 +21,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.toggle"></a>toggle</h3><div class=CBody><p>{Boolean} Unselect a selected feature on click.  Default is true.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.standalone"></a>standalone</h3><div class=CBody><p>{Boolean} Set to true to create a control without SelectFeature capabilities.  Default is false.   If standalone is true, to modify a feature, call the <selectFeature> method with the target feature.  Note that you must call the <unselectFeature> method to finish feature modification in standalone mode (before st [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.standalone"></a>standalone</h3><div class=CBody><p>{Boolean} Set to true to create a control without SelectFeature capabilities.  Default is false.   If standalone is true, to modify a feature, call the <a href="#OpenLayers.Control.ModifyFeature.selectFeature" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">selectFeature</a> metho [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.deleteCodes"></a>deleteCodes</h3><div class=CBody><p>{Array(Integer)} Keycodes for deleting verticies.   Set to null to disable vertex deltion by keypress.   If non-null, keypresses with codes in this array will delete vertices under the mouse.  Default is 46 and 68, the ‘delete’ and lowercase ‘d’ keys.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.virtualStyle"></a>virtualStyle</h3><div class=CBody><p>{Object} A symbolizer to be used for virtual vertices.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.mode"></a>mode</h3><div class=CBody><p>{Integer} Bitfields specifying the modification mode.  Defaults to OpenLayers.Control.ModifyFeature.RESHAPE.  To set the mode to a combination of options, use the | operator.  For example, to allow the control to both resize and rotate features, use the following syntax</p><blockquote><pre>control.mode = OpenLayers.Control.ModifyFeature [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.vertexRenderIntent"></a>vertexRenderIntent</h3><div class=CBody><p>{String} The renderIntent to use for vertices.  If no <a href="#OpenLayers.Control.ModifyFeature.virtualStyle" class=LProperty id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">virtualStyle</a> is provided, this renderIntent will also be used for virtual vertices, with a fillOpacity and  [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.mode"></a>mode</h3><div class=CBody><p>{Integer} Bitfields specifying the modification mode.  Defaults to OpenLayers.Control.ModifyFeature.RESHAPE.  To set the mode to a combination of options, use the | operator.  For example, to allow the control to both resize and rotate features, use the following syntax</p><blockquote><pre class="prettyprint">control.mode = OpenLayers.C [...]
                OpenLayers.Control.ModifyFeature.ROTATE;</pre></blockquote></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.onModificationStart"></a>onModificationStart</h3><div class=CBody><p>{Function} <b>Deprecated</b>.   Register for “beforefeaturemodified” instead.  The “beforefeaturemodified” event is triggered on the layer before any modification begins.</p><p>Optional function to be called when a feature is selected to be modified.  The function should expect to be [...]
@@ -38,15 +40,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.OpenLayers.Control.ModifyFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ModifyFeature</h3><div class=CBody><p>Create a new modify feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Laye [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.OpenLayers.Control.ModifyFeature"></a>OpenLayers.<wbr>Control.<wbr>ModifyFeature</h3><div class=CBody><p>Create a new modify feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link9 onMo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.selectFeature"></a>selectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Constants"></a>Constants</h3></div></div>
 
@@ -64,15 +68,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the control.</div></div><div class=CToolTip id="tt3"><d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the control [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/MouseDefaults-js.html b/doc/apidocs/files/OpenLayers/Control/MouseDefaults-js.html
index 3f17415..3f881fd 100644
--- a/doc/apidocs/files/OpenLayers/Control/MouseDefaults-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/MouseDefaults-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.MouseDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.MouseDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseDefaults</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="Navigation-js.html#OpenLayers.Control.Navigation" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">Op [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseDefaults"></a>OpenLayers.<wbr>Control.<wbr>MouseDefaults</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="Navigation-js.html#OpenLayers.Control.Navigation" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Control.Navigation</a> inst [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.OpenLayers.Control.MouseDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseDefaults</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.OpenLayers.Control.MouseDefaults"></a>OpenLayers.<wbr>Control.<wbr>MouseDefaults</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel). </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOO [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel). </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </di [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/MousePosition-js.html b/doc/apidocs/files/OpenLayers/Control/MousePosition-js.html
index 5bc3e65..11e2152 100644
--- a/doc/apidocs/files/OpenLayers/Control/MousePosition-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/MousePosition-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.MousePosition - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.MousePosition - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MousePosition"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MousePosition</h1><div class=CBody><p>The MousePosition control displays geographic coordinates of the mouse pointer, as it is moved about the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 't [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MousePosition"></a>OpenLayers.<wbr>Control.<wbr>MousePosition</h1><div class=CBody><p>The MousePosition control displays geographic coordinates of the mouse pointer, as it is moved about the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip(' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.Properties"></a>Properties</h3></div></div>
 
@@ -33,13 +33,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.OpenLayers.Control.MousePosition"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MousePosition</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.OpenLayers.Control.MousePosition"></a>OpenLayers.<wbr>Control.<wbr>MousePosition</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquo [...]
+<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deacti [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/MouseToolbar-js.html b/doc/apidocs/files/OpenLayers/Control/MouseToolbar-js.html
index 432bbd6..e86ff15 100644
--- a/doc/apidocs/files/OpenLayers/Control/MouseToolbar-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/MouseToolbar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.MouseToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.MouseToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseToolbar</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="NavToolbar-js.html#OpenLayers.Control.NavToolbar" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">Open [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseToolbar"></a>OpenLayers.<wbr>Control.<wbr>MouseToolbar</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="NavToolbar-js.html#OpenLayers.Control.NavToolbar" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Control.NavToolbar</a> instea [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.OpenLayers.Control.MouseToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseToolbar</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>position</td><td class=CDLDescription>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link3 onMouseOver="Sh [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.OpenLayers.Control.MouseToolbar"></a>OpenLayers.<wbr>Control.<wbr>MouseToolbar</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>position</td><td class=CDLDescription>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMous [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>This Toolbar is an alternative to the Navigation control that displays the state of the control, and provides a UI for changing state to use the zoomBox via a Panel control.</div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>This Toolbar is an alternative to the Navigation control that displays the state of the control, and provides a UI for changing state to use the zoomBox via a Panel control.</div></div><div class=CToolTip id="tt3"><div class=CClass [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/NavToolbar-js.html b/doc/apidocs/files/OpenLayers/Control/NavToolbar-js.html
index e827bd2..c85f9c0 100644
--- a/doc/apidocs/files/OpenLayers/Control/NavToolbar-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/NavToolbar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.NavToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.NavToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavToolbar</h1><div class=CBody><p>This Toolbar is an alternative to the Navigation control that displays the state of the control, and provides a UI for changing state to use the zoomBox via a Panel control.</p><p>If you wish to change the properties of the Navigation control used in the NavToolba [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavToolbar"></a>OpenLayers.<wbr>Control.<wbr>NavToolbar</h1><div class=CBody><p>This Toolbar is an alternative to the Navigation control that displays the state of the control, and provides a UI for changing state to use the zoomBox via a Panel control.</p><p>If you wish to change the properties of the Navigation control used in the NavToolbar, see: <a href="http://trac.openlay [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.OpenLayers.Control.NavToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavToolbar</h3><div class=CBody><p>Add our two mousedefaults controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.OpenLayers.Control.NavToolbar"></a>OpenLayers.<wbr>Control.<wbr>NavToolbar</h3><div class=CBody><p>Add our two mousedefaults controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></t [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Navigation-js.html b/doc/apidocs/files/OpenLayers/Control/Navigation-js.html
index bad4bc0..f22dfdb 100644
--- a/doc/apidocs/files/OpenLayers/Control/Navigation-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Navigation-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Navigation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Navigation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,10 +11,14 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Navigation"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Navigation</h1><div class=CBody><p>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel).   Create a new navigation control with the <a href="#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" class=LConstructor id=link2 o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Navigation"></a>OpenLayers.<wbr>Control.<wbr>Navigation</h1><div class=CBody><p>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel).   Create a new navigation control with the <a href="#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.Properties"></a>Properties</h3></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.dragPanOptions"></a>dragPanOptions</h3><div class=CBody><p>{Object} Options passed to the DragPan control.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.pinchZoomOptions"></a>pinchZoomOptions</h3><div class=CBody><p>{Object} Options passed to the PinchZoom control.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} Allow panning of the map by dragging outside map viewport.  Default is false.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomBoxEnabled"></a>zoomBoxEnabled</h3><div class=CBody><p>{Boolean} Whether the user can draw a box to zoom</p></div></div></div>
@@ -29,7 +33,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.OpenLayers.Control.Navigation"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Navigation</h3><div class=CBody><p>Create a new navigation control</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.OpenLayers.Control.Navigation"></a>OpenLayers.<wbr>Control.<wbr>Navigation</h3><div class=CBody><p>Create a new navigation control</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on the control</td></tr></table></div></ [...]
 
 </div><!--Content-->
 
@@ -37,10 +41,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/NavigationHistory-js.html b/doc/apidocs/files/OpenLayers/Control/NavigationHistory-js.html
index 5d25fdf..df1db87 100644
--- a/doc/apidocs/files/OpenLayers/Control/NavigationHistory-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/NavigationHistory-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.NavigationHistory - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.NavigationHistory - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavigationHistory"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavigationHistory</h1><div class=CBody><p>A navigation history control.   This is a meta-control, that creates two dependent controls: <a href="#OpenLayers.Control.NavigationHistory.previous" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt2', 'link10')" onMouseOut="HideTip('tt [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavigationHistory"></a>OpenLayers.<wbr>Control.<wbr>NavigationHistory</h1><div class=CBody><p>A navigation history control.   This is a meta-control, that creates two dependent controls: <a href="#OpenLayers.Control.NavigationHistory.previous" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt2', 'link10')" onMouseOut="HideTip('tt2')">previous</a> and <a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.Properties"></a>Properties</h3></div></div>
 
@@ -29,19 +29,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.OpenLayers.Control.NavigationHistory"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavigationHistory</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the contro [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.OpenLayers.Control.NavigationHistory"></a>OpenLayers.<wbr>Control.<wbr>NavigationHistory</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.nextTrigger"></a>nextTrigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>nextTrigger: function()</td></tr></table></blockquote><p>Restore the next state.   If no items are in the next history stack, this has no effect.   The next history stack is populated as states are restored from the previous history stack.</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.nextTrigger"></a>nextTrigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">nextTrigger: function()</td></tr></table></blockquote><p>Restore the next state.   If no items are in the next history stack, this has no effect.   The next history stack is populated as states are restored from the previous h [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear history.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear history.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.   This registers any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.   This registers any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   This unregisters any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   This unregisters any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the previous state managed by this control.</div></div><div class=CToolTip id="tt3"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the next state managed by this control.</div></div><div class=CToolTip id="tt4"> [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the previous state managed by this control.</div></div><div class=CToolTip id="tt3"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the next state managed by this control.</div></div><div class=CToolTip id="tt4"> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/OverviewMap-js.html b/doc/apidocs/files/OpenLayers/Control/OverviewMap-js.html
index cbfcefc..6be1a76 100644
--- a/doc/apidocs/files/OpenLayers/Control/OverviewMap-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/OverviewMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.OverviewMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.OverviewMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.OverviewMap"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>OverviewMap</h1><div class=CBody><p>The OverMap control creates a small overview map, useful to display the extent of a zoomed map and your main map and provide additional navigation options to the User.   By default the overview map is drawn in the lower right corner of the main map.  C [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.OverviewMap"></a>OpenLayers.<wbr>Control.<wbr>OverviewMap</h1><div class=CBody><p>The OverMap control creates a small overview map, useful to display the extent of a zoomed map and your main map and provide additional navigation options to the User.   By default the overview map is drawn in the lower right corner of the main map.  Create a new overview map with the <a [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.Properties"></a>Properties</h3></div></div>
 
@@ -23,7 +23,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minRectSize"></a>minRectSize</h3><div class=CBody><p>{Integer} The minimum width or height (in pixels) of the extent rectangle on the overview map.   When the extent rectangle reaches this size, it will be replaced depending on the value of the <a href="#OpenLayers.Control.OverviewMap.minRectDisplayClass" class=LProperty id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut=" [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minRectDisplayClass"></a>minRectDisplayClass</h3><div class=CBody><p>{String} Replacement style class name for the extent rectangle when <a href="#OpenLayers.Control.OverviewMap.minRectSize" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt3', 'link10')" onMouseOut="HideTip('tt3')">minRectSize</a> is reached.   This string will be suffixed on to the displayClass.   Default  [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minRectDisplayClass"></a>minRectDisplayClass</h3><div class=CBody><p>{String} Replacement style class name for the extent rectangle when <a href="#OpenLayers.Control.OverviewMap.minRectSize" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt3', 'link10')" onMouseOut="HideTip('tt3')">minRectSize</a> is reached.   This string will be suffixed on to the displayClass.   Default  [...]
     overflow: hidden;
     cursor: move;
     background-image: url("img/overview_replacement.gif");
@@ -43,11 +43,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.OpenLayers.Control.OverviewMap"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>OverviewMap</h3><div class=CBody><p>Create a new overview map</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} Properties of this object will be set on the overview ma [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.OpenLayers.Control.OverviewMap"></a>OpenLayers.<wbr>Control.<wbr>OverviewMap</h3><div class=CBody><p>Create a new overview map</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} Properties of this object will be set on the overview map object.   Note, to set option [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct the control</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Deconstruct the control</p></div></div></div>
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CProperty>{Integer} The minimum width or height (in pixels) of the extent rectangle on the overview map. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CProperty>{Integer} The minimum width or height (in pixels) of the extent rectangle on the overview map. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Pan-js.html b/doc/apidocs/files/OpenLayers/Control/Pan-js.html
index 796af79..4aea4a6 100644
--- a/doc/apidocs/files/OpenLayers/Control/Pan-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Pan-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Pan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Pan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Pan"></a>OpenLayers.<span class=HB> </span>Control.Pan</h1><div class=CBody><p>The Pan control is a single button to pan the map in one direction.  For a more complete control see <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a>.</p><h4 class [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Pan"></a>OpenLayers.<wbr>Control.Pan</h1><div class=CBody><p>The Pan control is a single button to pan the map in one direction.  For a more complete control see <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a>.</p><h4 class=CHeading>Inherits [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.   If you want to pan by some ratio of the map dimensions, use <a href="#OpenLayers.Control.Pan.slideRatio" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">slideRatio</a>  [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.slideRatio"></a>slideRatio</h3><div class=CBody><p>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons.   Default is null.   If set, will override <a href="#OpenLayers.Control.Pan.slideFactor" class=LProperty id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">slideFactor</a>.  E.g. if slideRatio is .5, [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.OpenLayers.Control.Pan"></a>OpenLayers.<span class=HB> </span>Control.Pan</h3><div class=CBody><p>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>direction</td><td class=CDLDescription>{String} The direction this butt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.OpenLayers.Control.Pan"></a>OpenLayers.<wbr>Control.Pan</h3><div class=CBody><p>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>direction</td><td class=CDLDescription>{String} The direction this button should pan.</td [...]
 
 </div><!--Content-->
 
@@ -27,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{Integer} [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/PanPanel-js.html b/doc/apidocs/files/OpenLayers/Control/PanPanel-js.html
index 8a36b51..b7c5d45 100644
--- a/doc/apidocs/files/OpenLayers/Control/PanPanel-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/PanPanel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.PanPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PanPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanPanel</h1><div class=CBody><p>The PanPanel is visible control for panning the map North, South, East or West in small steps.  By default it is drawn in the top left corner of the map.</p><h4 class=CHeading>Note</h4><p>If you wish to use this class with the default images and you want it to lo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanPanel"></a>OpenLayers.<wbr>Control.<wbr>PanPanel</h1><div class=CBody><p>The PanPanel is visible control for panning the map North, South, East or West in small steps.  By default it is drawn in the top left corner of the map.</p><h4 class=CHeading>Note</h4><p>If you wish to use this class with the default images and you want it to look nice in ie6, you should add the f [...]
   <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
-<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.PanPanel" >Open [...]
+<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.PanPanel" >Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.   If you want to pan by some ratio of the map dimensions, use <a href="#OpenLayers.Control.PanPanel.slideRatio" class=LProperty id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">slide [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.slideRatio"></a>slideRatio</h3><div class=CBody><p>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons.   Default is null.   If set, will override <a href="#OpenLayers.Control.PanPanel.slideFactor" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">slideFactor</a>.  E.g. if slideRa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.OpenLayers.Control.PanPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanPanel</h3><div class=CBody><p>Add the four directional pan buttons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.OpenLayers.Control.PanPanel"></a>OpenLayers.<wbr>Control.<wbr>PanPanel</h3><div class=CBody><p>Add the four directional pan buttons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table [...]
 
 </div><!--Content-->
 
@@ -29,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The Panel control is a container for other controls. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/PanZoom-js.html b/doc/apidocs/files/OpenLayers/Control/PanZoom-js.html
index 13442e8..5d43a50 100644
--- a/doc/apidocs/files/OpenLayers/Control/PanZoom-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/PanZoom-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.PanZoom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PanZoom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoom"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</h1><div class=CBody><p>The PanZoom is a visible control, composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <a href="ZoomPanel-js.html#OpenLay [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoom"></a>OpenLayers.<wbr>Control.<wbr>PanZoom</h1><div class=CBody><p>The PanZoom is a visible control, composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <a href="ZoomPanel-js.html#OpenLayers.Control.ZoomPanel" class=LClass  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.OpenLayers.Control.PanZoom"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.OpenLayers.Control.PanZoom"></a>OpenLayers.<wbr>Control.<wbr>PanZoom</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Constants"></a>Constants</h3></div></div>
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>The ZoomPanel control is a compact collecton of 3 zoom controls: a OpenLayers.Control.ZoomIn, a OpenLayers.Control.ZoomToMaxExtent, and a OpenLayers.Control.ZoomOut. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=P [...]
+<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>The ZoomPanel control is a compact collecton of 3 zoom controls: a OpenLayers.Control.ZoomIn, a OpenLayers.Control.ZoomToMaxExtent, and a OpenLayers.Control.ZoomOut. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=" [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/PanZoomBar-js.html b/doc/apidocs/files/OpenLayers/Control/PanZoomBar-js.html
index c470e5c..c37918e 100644
--- a/doc/apidocs/files/OpenLayers/Control/PanZoomBar-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/PanZoomBar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.PanZoomBar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PanZoomBar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoomBar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoomBar</h1><div class=CBody><p>The PanZoomBar is a visible control composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <OpenLayers.Control.Zoo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoomBar"></a>OpenLayers.<wbr>Control.<wbr>PanZoomBar</h1><div class=CBody><p>The PanZoomBar is a visible control composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <OpenLayers.Control.ZoomBar>.  By default it is dis [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.Properties"></a>Properties</h3></div></div>
 
@@ -21,15 +21,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomWorldIcon"></a>zoomWorldIcon</h3><div class=CBody><p>{Boolean}</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.panIcons"></a>panIcons</h3><div class=CBody><p>{Boolean} Set this property to false not to display the pan icons.  If false the zoom world icon is placed under the zoom bar.  Defaults to true.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.forceFixedZoomLevel"></a>forceFixedZoomLevel</h3><div class=CBody><p>{Boolean} Force a fixed zoom level even though the map has fractionalZoom</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.OpenLayers.Control.PanZoomBar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoomBar</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.OpenLayers.Control.PanZoomBar"></a>OpenLayers.<wbr>Control.<wbr>PanZoomBar</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -37,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>The PanZoom is a visible control, composed of a OpenLayers.Control.PanPanel and a OpenLayers.Contro [...]
+<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>The PanZoom is a visible control, composed of a OpenLayers.Control.PanPanel a [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Panel-js.html b/doc/apidocs/files/OpenLayers/Control/Panel-js.html
index d8d0279..2b8bd56 100644
--- a/doc/apidocs/files/OpenLayers/Control/Panel-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Panel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Panel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Panel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Panel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Panel</h1><div class=CBody><p>The Panel control is a container for other controls.  With it toolbars may be composed.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt1', 'link10')" onMouseOut="Hide [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Panel"></a>OpenLayers.<wbr>Control.<wbr>Panel</h1><div class=CBody><p>The Panel control is a container for other controls.  With it toolbars may be composed.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt1', 'link10')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.Properties"></a>Properties</h3></div></div>
 
@@ -21,27 +21,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.saveState"></a>saveState</h3><div class=CBody><p>{Boolean} If set to true, the active state of this panel’s controls will be stored on panel deactivation, and restored on reactivation.  Default is false.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.allowDepress"></a>allowDepress</h3><div class=CBody><p>{Boolean} If is true the <a href="../Control-js.html#OpenLayers.Control.OpenLayers.Control.TYPE_TOOL" class=LConstant >OpenLayers.Control.TYPE_TOOL</a> controls can be deactivated by clicking the icon that represents them.   Default is false.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.OpenLayers.Control.Panel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Panel</h3><div class=CBody><p>Create a new control panel.</p><p>Each control in the panel is represented by an icon.  When clicking on an icon, the <a href="#OpenLayers.Control.Panel.activateControl" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt5', 'link14')" onMouseOut="HideTip('tt5' [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.OpenLayers.Control.Panel"></a>OpenLayers.<wbr>Control.<wbr>Panel</h3><div class=CBody><p>Create a new control panel.</p><p>Each control in the panel is represented by an icon.  When clicking on an icon, the <a href="#OpenLayers.Control.Panel.activateControl" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt5', 'link14')" onMouseOut="HideTip('tt5')">activateControl</a> method is cal [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activateControl"></a>activateControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>activateControl: function (</td><td class=PParameter nowrap>control</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is calle [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activateControl"></a>activateControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>activateControl: function (</td><td class="PParameter  prettyprint " nowrap>control</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControls: function(</td><td class=PParameter nowrap>controls</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>To build a toolbar, you add a se [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControls: function(</td><td class="PParameter  prettyprint " nowrap>controls</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>match</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByName"></a>getControlsByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsByName: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of con [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByName"></a>getControlsByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsByName: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsByClass: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsByClass: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
 </div><!--Content-->
 
@@ -49,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></ [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: funct [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Permalink-js.html b/doc/apidocs/files/OpenLayers/Control/Permalink-js.html
index 19cddea..5bc9f40 100644
--- a/doc/apidocs/files/OpenLayers/Control/Permalink-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Permalink-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Permalink - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Permalink - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Permalink"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Permalink</h1><div class=CBody><p>The Permalink control is hyperlink that will return the user to the current map view.  By default it is drawn in the lower right corner of the map.  The href is updated as the map is zoomed, panned and whilst layers are switched.  ` Inherits from:</p> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Permalink"></a>OpenLayers.<wbr>Control.<wbr>Permalink</h1><div class=CBody><p>The Permalink control is hyperlink that will return the user to the current map view.  By default it is drawn in the lower right corner of the map.  The href is updated as the map is zoomed, panned and whilst layers are switched.  ` Inherits from:</p><ul><li><a href="../Control-js.html# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.argParserClass"></a>argParserClass</h3><div class=CBody><p>{Class} The ArgParser control class (not instance) to use with this control.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.anchor"></a>anchor</h3><div class=CBody><h4 class=CHeading>{Boolean} This option changes 3 things</h4><p>the character ‘#’ is used in place of the character ‘?’, the window.href is updated if no element is provided.  When this option is set to true it’s not recommend to provide a base without provide an element.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.base"></a>base</h3><div class=CBody><p>{String}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.displayProjection"></a>displayProjection</h3><div class=CBody><p>{<a href="../Projection-js.html#OpenLayers.Projection" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Projection</a>} Requires proj4js support.   Projection used when creating the coordinates in the link.  This will reproject the map coordinates into display coo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.OpenLayers.Control.Permalink"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Permalink</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>base</td><td class=CDLDescription>{String}</td></tr><tr>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.OpenLayers.Control.Permalink"></a>OpenLayers.<wbr>Control.<wbr>Permalink</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>base</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td cl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.createParams"></a>createParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createParams: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom,</td></tr><tr><td></td><td class=PParameter nowrap>layers</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.createParams"></a>createParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createParams: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom,</td></tr><tr [...]
 
 </div><!--Content-->
 
@@ -37,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td [...]
+<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/PinchZoom-js.html b/doc/apidocs/files/OpenLayers/Control/PinchZoom-js.html
new file mode 100644
index 0000000..f495c0b
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Control/PinchZoom-js.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PinchZoom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PinchZoom"></a>OpenLayers.<wbr>Control.<wbr>PinchZoom</h1><div class=CBody><h4 class=CHeading>Inherits</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorde [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is true.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.OpenLayers.Control.PinchZoom"></a>OpenLayers.<wbr>Control.<wbr>PinchZoom</h3><div class=CBody><p>Create a control for zooming with pinch gestures.   This works on devices with multi-touch support.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate this control.   Must be called after the control is added to a map.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was successfully activated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate this control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was successfully deactivated.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate this control. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate this control.</div></div><div class=CT [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Control/SLDSelect-js.html b/doc/apidocs/files/OpenLayers/Control/SLDSelect-js.html
index 78d5bb2..444f7dd 100644
--- a/doc/apidocs/files/OpenLayers/Control/SLDSelect-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/SLDSelect-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.SLDSelect - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.SLDSelect - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SLDSelect"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SLDSelect</h1><div class=CBody><p>Perform selections on WMS layers using Styled Layer Descriptor (SLD)</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SLDSelect"></a>OpenLayers.<wbr>Control.<wbr>SLDSelect</h1><div class=CBody><p>Perform selections on WMS layers using Styled Layer Descriptor (SLD)</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Control</a></li></ul><!--START_ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happen [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Properties"></a>Properties</h3></div></div>
 
@@ -29,7 +29,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Used to set non-default properties on the control’s handler</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.sketchStyle"></a>sketchStyle</h3><div class=CBody><p>{<OpenLayers.Style>|Object} Style or symbolizer to use for the sketch handler.  The recommended way of styling the sketch layer, however, is to configure an <a href="../StyleMap-js.html#OpenLayers.StyleMap" class=LClass >OpenLayers.StyleMap</a> in the layerOptions of the <a href="#OpenLayers.Control.SLDSelect.handlerOptions" class [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.sketchStyle"></a>sketchStyle</h3><div class=CBody><p>{<OpenLayers.Style>|Object} Style or symbolizer to use for the sketch handler.  The recommended way of styling the sketch layer, however, is to configure an <a href="../StyleMap-js.html#OpenLayers.StyleMap" class=LClass >OpenLayers.StyleMap</a> in the layerOptions of the <a href="#OpenLayers.Control.SLDSelect.handlerOptions" class [...]
     handlerOptions: {
         layerOptions: {
             styleMap: new OpenLayers.StyleMap({
@@ -41,21 +41,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.wfsCache"></a>wfsCache</h3><div class=CBody><p>{Object} Cache to use for storing parsed results from <OpenLayers.Format.WFSDescribeFeatureType.read>.  If not provided, these will be cached on the prototype.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.layerCache"></a>layerCache</h3><div class=CBody><p>{Object} Cache to use for storing references to the selection layers.  Normally each source layer will have exactly 1 selection layer of type OpenLayers.Layer.WMS.Post.  If not provided, layers will be cached on the prototype.  Note that if <a href="#OpenLayers.Control.SLDSelect.clearOnDeactivate" class=LProperty id=link10 onMou [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.layerCache"></a>layerCache</h3><div class=CBody><p>{Object} Cache to use for storing references to the selection layers.  Normally each source layer will have exactly 1 selection layer of type OpenLayers.Layer.WMS.  If not provided, layers will be cached on the prototype.  Note that if <a href="#OpenLayers.Control.SLDSelect.clearOnDeactivate" class=LProperty id=link10 onMouseOve [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.OpenLayers.Control.SLDSelect"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SLDSelect</h3><div class=CBody><p>Create a new control for selecting features in WMS layers using Styled Layer Descriptor (SLD).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.OpenLayers.Control.SLDSelect"></a>OpenLayers.<wbr>Control.<wbr>SLDSelect</h3><div class=CBody><p>Create a new control for selecting features in WMS layers using Styled Layer Descriptor (SLD).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{<a href="../BaseTypes/Class-js.html# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.  Activating the control will perform a SLD WMS DescribeLayer request followed by a WFS DescribeFeatureType request so that the proper symbolizers can be chosen based on the geometry type.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.  Activating the control will perform a SLD WMS DescribeLayer request followed by a WFS DescribeFeatureType request so that the proper symbolizers can be chosen based on  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.  If clearOnDeactivate is true, remove the selection layer(s).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.  If clearOnDeactivate is true, remove the selection layer(s).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.setLayers"></a>setLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayers: function(</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the layers on which the selectio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.setLayers"></a>setLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayers: function(</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
 </div><!--Content-->
 
@@ -63,15 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table borde [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Scale-js.html b/doc/apidocs/files/OpenLayers/Control/Scale-js.html
index c9f4e71..5ff34ae 100644
--- a/doc/apidocs/files/OpenLayers/Control/Scale-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Scale-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Scale - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Scale - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Scale"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Scale</h1><div class=CBody><p>The Scale control displays the current map scale as a ratio (e.g.  Scale = 1:1M).  By default it is displayed in the lower right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Scale"></a>OpenLayers.<wbr>Control.<wbr>Scale</h1><div class=CBody><p>The Scale control displays the current map scale as a ratio (e.g.  Scale = 1:1M).  By default it is displayed in the lower right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.OpenLayers.Control.Scale"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Scale</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.OpenLayers.Control.Scale"></a>OpenLayers.<wbr>Control.<wbr>Scale</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ScaleLine-js.html b/doc/apidocs/files/OpenLayers/Control/ScaleLine-js.html
index a1c1222..d173e0e 100644
--- a/doc/apidocs/files/OpenLayers/Control/ScaleLine-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ScaleLine-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ScaleLine - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ScaleLine - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ScaleLine"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ScaleLine</h1><div class=CBody><p>The ScaleLine displays a small line indicator representing the current map scale on the map.  By default it is drawn in the lower left corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ScaleLine"></a>OpenLayers.<wbr>Control.<wbr>ScaleLine</h1><div class=CBody><p>The ScaleLine displays a small line indicator representing the current map scale on the map.  By default it is drawn in the lower left corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(even [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.OpenLayers.Control.ScaleLine"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ScaleLine</h3><div class=CBody><p>Create a new scale line control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to ex [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.OpenLayers.Control.ScaleLine"></a>OpenLayers.<wbr>Control.<wbr>ScaleLine</h3><div class=CBody><p>Create a new scale line control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table>< [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/SelectFeature-js.html b/doc/apidocs/files/OpenLayers/Control/SelectFeature-js.html
index 0a79d6e..6a76d1e 100644
--- a/doc/apidocs/files/OpenLayers/Control/SelectFeature-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/SelectFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.SelectFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.SelectFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SelectFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SelectFeature</h1><div class=CBody><p>The SelectFeature control selects vector features from a given layer on click or hover.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SelectFeature"></a>OpenLayers.<wbr>Control.<wbr>SelectFeature</h1><div class=CBody><p>The SelectFeature control selects vector features from a given layer on click or hover.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Cont [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.Constants"></a>Constants</h3></div></div>
 
@@ -27,7 +27,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.hover"></a>hover</h3><div class=CBody><p>{Boolean} Select on mouse over and deselect on mouse out.   If true, this ignores clicks and only listens to mouse moves.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.highlightOnly"></a>highlightOnly</h3><div class=CBody><p>{Boolean} If true do not actually select features (i.e. place them in the layer’s selected features array), just highlight them.  This property has no effect if hover is false.  Defaults to false.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.highlightOnly"></a>highlightOnly</h3><div class=CBody><p>{Boolean} If true do not actually select features (that is place them in the layer’s selected features array), just highlight them.  This property has no effect if hover is false.  Defaults to false.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.box"></a>box</h3><div class=CBody><p>{Boolean} Allow feature selection by drawing a box.</p></div></div></div>
 
@@ -43,11 +43,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.OpenLayers.Control.SelectFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SelectFeature</h3><div class=CBody><p>Create a new control for selecting features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layers</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLa [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.OpenLayers.Control.SelectFeature"></a>OpenLayers.<wbr>Control.<wbr>SelectFeature</h3><div class=CBody><p>Create a new control for selecting features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layers</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Attach a new layer to the control,  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Attach a new layer to the control, overriding any existing layers.</div></div><div class=CToolTip id="tt2"><div class=CClass>Control [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Attach a new layer to the control, overriding any existing layers.</div></div><div c [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Snapping-js.html b/doc/apidocs/files/OpenLayers/Control/Snapping-js.html
index 1850316..d9c5458 100644
--- a/doc/apidocs/files/OpenLayers/Control/Snapping-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Snapping-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Snapping - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Snapping - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Snapping"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Snapping</h1><div class=CBody><p>Acts as a snapping agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Control</a [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Snapping"></a>OpenLayers.<wbr>Control.<wbr>Snapping</h1><div class=CBody><p>Acts as a snapping agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY--><d [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happene [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on  [...]
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>Default target properties.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.OpenLayers.Control.Snapping"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Snapping</h3><div class=CBody><p>Creates a new snapping control.  A control is constructed with an editable layer and a set of configuration objects for target layers.  While the control is active, dragging vertices while drawing new features or modifying existing features on the edita [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.OpenLayers.Control.Snapping"></a>OpenLayers.<wbr>Control.<wbr>Snapping</h3><div class=CBody><p>Creates a new snapping control.  A control is constructed with an editable layer and a set of configuration objects for target layers.  While the control is active, dragging vertices while drawing new features or modifying existing features on the editable layer will engage snapping to fe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the editable layer.   Call the s [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, moving vertices will trigger snapping.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, moving vertices will trigger snapping.</p></div> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the snapping agent.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the snapping agent.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the editable layer. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Set the editable layer. </div></div><div class=CToolTip id="tt2"><div class=CFunction [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/Split-js.html b/doc/apidocs/files/OpenLayers/Control/Split-js.html
index 1cf866b..db58182 100644
--- a/doc/apidocs/files/OpenLayers/Control/Split-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/Split-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Split - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Split - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Split"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Split</h1><div class=CBody><p>Acts as a split feature agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Control</a> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Split"></a>OpenLayers.<wbr>Control.<wbr>Split</h1><div class=CBody><p>Acts as a split feature agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY--><di [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.< [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Properties"></a>Properties</h3></div></div>
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.OpenLayers.Control.Split"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Split</h3><div class=CBody><p>Creates a new split control.  A control is constructed with a target layer and an optional source layer.  While the control is active, creating new features or modifying existing features on the source layer will result in splitting any eligible features on the  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.OpenLayers.Control.Split"></a>OpenLayers.<wbr>Control.<wbr>Split</h3><div class=CBody><p>Creates a new split control.  A control is constructed with a target layer and an optional source layer.  While the control is active, creating new features or modifying existing features on the source layer will result in splitting any eligible features on the target layer.   If no source la [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.setSource"></a>setSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSource: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the source layer for edits layer.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.setSource"></a>setSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSource: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, features in the target will be considered for splitting.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, features in the target will be considered for split [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the split agent.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the split agent.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSource: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSource: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters   [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/TouchNavigation-js.html b/doc/apidocs/files/OpenLayers/Control/TouchNavigation-js.html
new file mode 100644
index 0000000..1cddf51
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Control/TouchNavigation-js.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.TouchNavigation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.TouchNavigation"></a>OpenLayers.<wbr>Control.<wbr>TouchNavigation</h1><div class=CBody><p>The navigation control handles map browsing with touch events (dragging, double-tapping, tap with two fingers, and pinch zoom).   Create a new control with the <a href="#OpenLayers.Control.TouchNavigation.OpenLayers.Control.TouchNavigation" class=LConstructor id=link1 onMouseOver="Sho [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.dragPanOptions"></a>dragPanOptions</h3><div class=CBody><p>{Object} Options passed to the DragPan control.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.pinchZoomOptions"></a>pinchZoomOptions</h3><div class=CBody><p>{Object} Options passed to the PinchZoom control.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.clickHandlerOptions"></a>clickHandlerOptions</h3><div class=CBody><p>{Object} Options passed to the Click handler.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} Allow panning of the map by dragging outside map viewport.  Default is false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is true.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.OpenLayers.Control.TouchNavigation"></a>OpenLayers.<wbr>Control.<wbr>TouchNavigation</h3><div class=CBody><p>Create a new navigation control</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on the control</td></tr>< [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new navigation control</div></div><div class=CToolTip id="tt2"><div class=CClass>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel). </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Control/TransformFeature-js.html b/doc/apidocs/files/OpenLayers/Control/TransformFeature-js.html
index 73b6789..a16ce52 100644
--- a/doc/apidocs/files/OpenLayers/Control/TransformFeature-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/TransformFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.TransformFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.TransformFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.TransformFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TransformFeature</h1><div class=CBody><p>Control to transform features with a standard transformation box.</p><h4 class=CHeading>Inherits From</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt7', 'link10')" onMouseOut="HideTip(' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.TransformFeature"></a>OpenLayers.<wbr>Control.<wbr>TransformFeature</h1><div class=CBody><p>Control to transform features with a standard transformation box.</p><h4 class=CHeading>Inherits From</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt8', 'link11')" onMouseOut="HideTip('tt8')">OpenLayers.Control</a></li></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types</h4><ul><li><b>beforesetfeature</b> Triggered before a feature is set for tranformation.  The feature will not be set if a listener returns false.  Listeners receive a <b>feature</b> property, with the feature that will be set for transformation.  Listeners are allowed to set the co [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types</h4><ul><li><b>beforesetfeature</b> Triggered before a feature is set for tranformation.  The feature will not be set if a listener returns false.  Listeners receive a <b>feature</b> property, with the feature that will be set for transformation.  Listeners are allowed to set the co [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Properties"></a>Properties</h3></div></div>
 
@@ -25,42 +25,44 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotate"></a>rotate</h3><div class=CBody><p>{Boolean} set to false if rotation should be disabled.  Default is true.  To be passed with the constructor or set when the control is not active.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} Feature currently available for transformation.  Read-only, use <a href="#OpenLayers.Control.TransformFeature.setFeature" class=LFunction id=link15  [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt1', 'link15')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} Feature currently available for transformation.  Read-only, use <a href="#OpenLayers.Control.TransformFeature.setFeature" class=LFunction id=link16  [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.renderIntent"></a>renderIntent</h3><div class=CBody><p>{String|Object} Render intent for the transformation box and handles.  A symbolizer object can also be provided here.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandleSymbolizer"></a>rotationHandleSymbolizer</h3><div class=CBody><p>{Object|String} Optional.  A custom symbolizer for the rotation handles.  A render intent can also be provided here.  Defaults to</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandleSymbolizer"></a>rotationHandleSymbolizer</h3><div class=CBody><p>{Object|String} Optional.  A custom symbolizer for the rotation handles.  A render intent can also be provided here.  Defaults to</p><blockquote><pre class="prettyprint">{
     stroke: false,
     pointRadius: 10,
     fillOpacity: 0,
     cursor: "pointer"
 }</pre></blockquote></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.box"></a>box</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The transformation box rectangle.  Read-only.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.box"></a>box</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt1', 'link17')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The transformation box rectangle.  Read-only.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.center"></a>center</h3><div class=CBody><p>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">OpenLayers.Geometry.Point</a>} The center of the feature bounds.  Read-only.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.center"></a>center</h3><div class=CBody><p>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt2', 'link18')" onMouseOut="HideTip('tt2')">OpenLayers.Geometry.Point</a>} The center of the feature bounds.  Read-only.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.scale"></a>scale</h3><div class=CBody><p>{Float} The scale of the feature, relative to the scale the time the feature was set.  Read-only, except for <b>beforesetfeature</b> listeners.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.ratio"></a>ratio</h3><div class=CBody><p>{Float} The ratio of the feature relative to the ratio the time the feature was set.  Read-only, except for <b>beforesetfeature</b> listeners.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.handles"></a>handles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)} The 8 handles currently available for scaling/resizing.  Numbered counterclockwise, starting from the southwest corner.  Read-only.</p>< [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.handles"></a>handles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)} The 8 handles currently available for scaling/resizing.  Numbered counterclockwise, starting from the southwest corner.  Read-only.</p>< [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandles"></a>rotationHandles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)} The 4 rotation handles currently available for rotating.  Numbered counterclockwise, starting from the southwest corner.&nbsp [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandles"></a>rotationHandles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt1', 'link20')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)} The 4 rotation handles currently available for rotating.  Numbered counterclockwise, starting from the southwest corner.&nbsp [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.OpenLayers.Control.TransformFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TransformFeature</h3><div class=CBody><p>Create a new transform feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#Ope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.OpenLayers.Control.TransformFeature"></a>OpenLayers.<wbr>Control.<wbr>TransformFeature</h3><div class=CBody><p>Create a new transform feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass i [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activates the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activates the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivates the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivates the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.setFeature"></a>setFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setFeature: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>initialParams</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.setFeature"></a>setFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>initialParams</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.unsetFeature"></a>unsetFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">unsetFeature: function()</td></tr></table></blockquote><p>Remove the transformation box off any feature.  If the control is active, it will be deactivated first.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -68,15 +70,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activates the control.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activates the control.</div></div><div class=CToolTip id="tt4"><div class [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html b/doc/apidocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
index 18410ea..553b35f 100644
--- a/doc/apidocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMSGetFeatureInfo</h1><div class=CBody><p>The WMSGetFeatureInfo control uses a WMS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabilitie [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo"></a>OpenLayers.<wbr>Control.<wbr>WMSGetFeatureInfo</h1><div class=CBody><p>The WMSGetFeatureInfo control uses a WMS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabilities and the client’s configurati [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -23,7 +23,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.clickCallback"></a>clickCallback</h3><div class=CBody><p>{String} The click callback to register in the {<a href="../Handler/Click-js.html#OpenLayers.Handler.Click" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Click</a>} object created when the hover option is set to false.  Default is “click”.</p></d [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.output"></a>output</h3><div class=CBody><p>{String} Either “features” or “object”.  When triggering a getfeatureinfo request should we pass on an array of features or an object with with a “features” property and other properties (such as the url of the WMS).  Default is “features”.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre class="prettyprint">{
     "click": {delay: 100},
     "hover": {delay: 300}
 }</pre></blockquote></div></div></div>
@@ -34,7 +36,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.OpenLayers.Control.WMSGetFeatureInfo"></a><OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.OpenLayers.Control.WMSGetFeatureInfo"></a><OpenLayers.<wbr>Control.<wbr>WMSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -42,10 +44,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html b/doc/apidocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html
index bc6ef20..be5c93a 100644
--- a/doc/apidocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.WMTSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.WMTSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMTSGetFeatureInfo</h1><div class=CBody><p>The WMTSGetFeatureInfo control uses a WMTS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabil [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo"></a>OpenLayers.<wbr>Control.<wbr>WMTSGetFeatureInfo</h1><div class=CBody><p>The WMTSGetFeatureInfo control uses a WMTS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabilities and the client’s configu [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.queryVisible"></a>queryVisible</h3><div class=CBody><p>{Boolean} Filter out hidden layers when searching the map for layers to query.   Default is true.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre class="prettyprint">{
     "click": {delay: 100},
     "hover": {delay: 300}
 }</pre></blockquote></div></div></div>
@@ -36,7 +36,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.OpenLayers.Control.WMTSGetFeatureInfo"></a><OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMTSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.OpenLayers.Control.WMTSGetFeatureInfo"></a><OpenLayers.<wbr>Control.<wbr>WMTSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -44,10 +44,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ZoomBox-js.html b/doc/apidocs/files/OpenLayers/Control/ZoomBox-js.html
index a7176f7..42a7e17 100644
--- a/doc/apidocs/files/OpenLayers/Control/ZoomBox-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ZoomBox-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomBox - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomBox - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomBox"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomBox</h1><div class=CBody><p>The ZoomBox control enables zooming directly to a given extent, by drawing a box on the map.  The box is drawn by holding down shift, whilst dragging the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LC [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomBox"></a>OpenLayers.<wbr>Control.<wbr>ZoomBox</h1><div class=CBody><p>The ZoomBox control enables zooming directly to a given extent, by drawing a box on the map.  The box is drawn by holding down shift, whilst dragging the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(e [...]
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ZoomIn-js.html b/doc/apidocs/files/OpenLayers/Control/ZoomIn-js.html
index 0f0dde9..87e982c 100644
--- a/doc/apidocs/files/OpenLayers/Control/ZoomIn-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ZoomIn-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomIn - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomIn - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomIn"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomIn</h1><div class=CBody><p>The ZoomIn control is a button to increase the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Co [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomIn"></a>OpenLayers.<wbr>Control.<wbr>ZoomIn</h1><div class=CBody><p>The ZoomIn control is a button to increase the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></li></ul></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ZoomOut-js.html b/doc/apidocs/files/OpenLayers/Control/ZoomOut-js.html
index 0adb5b4..a1f9b8e 100644
--- a/doc/apidocs/files/OpenLayers/Control/ZoomOut-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ZoomOut-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomOut - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomOut - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomOut"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomOut</h1><div class=CBody><p>The ZoomOut control is a button to decrease the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomOut"></a>OpenLayers.<wbr>Control.<wbr>ZoomOut</h1><div class=CBody><p>The ZoomOut control is a button to decrease the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></li></ul></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ZoomPanel-js.html b/doc/apidocs/files/OpenLayers/Control/ZoomPanel-js.html
index 64bb7b4..989911f 100644
--- a/doc/apidocs/files/OpenLayers/Control/ZoomPanel-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ZoomPanel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomPanel</h1><div class=CBody><p>The ZoomPanel control is a compact collecton of 3 zoom controls: a <a href="ZoomIn-js.html#OpenLayers.Control.ZoomIn" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control.ZoomIn</a>, a <a href="ZoomToMaxEx [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomPanel"></a>OpenLayers.<wbr>Control.<wbr>ZoomPanel</h1><div class=CBody><p>The ZoomPanel control is a compact collecton of 3 zoom controls: a <a href="ZoomIn-js.html#OpenLayers.Control.ZoomIn" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control.ZoomIn</a>, a <a href="ZoomToMaxExtent-js.html#OpenLayers.Control.Zoom [...]
   <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
-<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.ZoomPanel" >Ope [...]
+<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.ZoomPanel" >Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomPanel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomPanel.OpenLayers.Control.ZoomPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomPanel</h3><div class=CBody><p>Add the three zooming controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to ext [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomPanel.OpenLayers.Control.ZoomPanel"></a>OpenLayers.<wbr>Control.<wbr>ZoomPanel</h3><div class=CBody><p>Add the three zooming controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html b/doc/apidocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html
index 169479e..da6774e 100644
--- a/doc/apidocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html
+++ b/doc/apidocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomToMaxExtent - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomToMaxExtent - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomToMaxExtent</h1><div class=CBody><p>The ZoomToMaxExtent control is a button that zooms out to the maximum extent of the map.  It is designed to be used with a <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent"></a>OpenLayers.<wbr>Control.<wbr>ZoomToMaxExtent</h1><div class=CBody><p>The ZoomToMaxExtent control is a button that zooms out to the maximum extent of the map.  It is designed to be used with a <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control [...]
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Events-js.html b/doc/apidocs/files/OpenLayers/Events-js.html
index ac3fcfc..fdb56e3 100644
--- a/doc/apidocs/files/OpenLayers/Events-js.html
+++ b/doc/apidocs/files/OpenLayers/Events-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Event - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Event - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Event"></a>OpenLayers.<span class=HB> </span>Event</h1><div class=CBody><p>Utility functions for event handling.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Event" >OpenLayers.<span class=HB> </span>Event</a></td><td class=S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Event"></a>OpenLayers.<wbr>Event</h1><div class=CBody><p>Utility functions for event handling.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Event" >OpenLayers.<wbr>Event</a></td><td class=SDescription>Utility functions for ev [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.Constants"></a>Constants</h3></div></div>
 
@@ -33,7 +33,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.KEY_DELETE"></a>KEY_DELETE</h3><div class=CBody><p>{int}</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Events"></a>OpenLayers.<span class=HB> </span>Events</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Events.Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1 SMarked"><td class=SEntry><a href="#O [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Events"></a>OpenLayers.<wbr>Events</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Events.Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1 SMarked"><td class=SEntry><a href="#OpenLayers.Events.B [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Constants"></a>Constants</h3></div></div>
 
@@ -47,16 +47,16 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.OpenLayers.Events"></a>OpenLayers.<span class=HB> </span>Events</h3><div class=CBody><p>Construct an OpenLayers.Events object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} The js object to which this Events object  is being</td></tr><tr><td class=CDLEntry>added element</td><td [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.OpenLayers.Events"></a>OpenLayers.<wbr>Events</h3><div class=CBody><p>Construct an OpenLayers.Events object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} The js object to which this Events object  is being added</td></tr><tr><td class=CDLEntry>element</td><td class=CDLDescript [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.addEventType"></a>addEventType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addEventType: function(</td><td class=PParameter nowrap>eventName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add a new event type to this events [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.addEventType"></a>addEventType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addEventType: function(</td><td class="PParameter  prettyprint " nowrap>eventName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.on"></a>on</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>on: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method for registering listeners with a common scope.&nb [...]
-events.on({"loadstart", loadStartListener});
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.on"></a>on</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>on: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method f [...]
+events.on({"loadstart": loadStartListener});
 
 // this is equivalent to the following
 events.register("loadstart", undefined, loadStartListener);
@@ -70,14 +70,14 @@ events.on({
 
 // this is equivalent to the following
 events.register("loadstart", object, loadStartListener);
-events.register("loadstart", object, loadEndListener);</pre></blockquote></div></div></div>
+events.register("loadend", object, loadEndListener);</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>register: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>func</td><td class=PAfterParameters  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>register: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.registerPriority"></a>registerPriority</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>registerPriority: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>func</td><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.registerPriority"></a>registerPriority</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>registerPriority: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.un"></a>un</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>un: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method for unregistering listeners with a common scope.& [...]
-events.un({"loadstart", loadStartListener});
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.un"></a>un</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>un: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method f [...]
+events.un({"loadstart": loadStartListener});
 
 // this is equivalent to the following
 events.unregister("loadstart", undefined, loadStartListener);
@@ -91,13 +91,13 @@ events.un({
 
 // this is equivalent to the following
 events.unregister("loadstart", object, loadStartListener);
-events.unregister("loadstart", object, loadEndListener);</pre></blockquote></div></div></div>
+events.unregister("loadend", object, loadEndListener);</pre></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unregister: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>func</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unregister: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.triggerEvent"></a>triggerEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>triggerEvent: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.triggerEvent"></a>triggerEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>triggerEvent: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.clearMouseCache"></a>clearMouseCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearMouseCache: function()</td></tr></table></blockquote><p>Clear cached data about the mouse position.  This should be called any time the element that events are registered on changes position within the page.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.clearMouseCache"></a>clearMouseCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearMouseCache: function()</td></tr></table></blockquote><p>Clear cached data about the mouse position.  This should be called any time the element that events are registered on changes position within the page.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -105,15 +105,15 @@ events.unregister("loadstart", object, loadEndListener);</pre></blockq
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addEventType: function(</td><td class=PParameter nowrap>eventName</td><td class=PAfter [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addEventType: function(</td><td class="PParamet [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Feature-js.html b/doc/apidocs/files/OpenLayers/Feature-js.html
index e2ffc5a..fd59ae0 100644
--- a/doc/apidocs/files/OpenLayers/Feature-js.html
+++ b/doc/apidocs/files/OpenLayers/Feature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature"></a>OpenLayers.<span class=HB> </span>Feature</h1><div class=CBody><p>Features are combinations of geography and attributes.  The OpenLayers.Feature class specifically combines a marker and a lonlat.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature"></a>OpenLayers.<wbr>Feature</h1><div class=CBody><p>Features are combinations of geography and attributes.  The OpenLayers.Feature class specifically combines a marker and a lonlat.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a hr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.OpenLayers.Feature"></a>OpenLayers.<span class=HB> </span>Feature</h3><div class=CBody><p>Constructor for features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>lonlat</td><td  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.OpenLayers.Feature"></a>OpenLayers.<wbr>Feature</h3><div class=CBody><p>Constructor for features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescripti [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([4, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([3, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Feature/Vector-js.html b/doc/apidocs/files/OpenLayers/Feature/Vector-js.html
index 7c580ed..ed43ca4 100644
--- a/doc/apidocs/files/OpenLayers/Feature/Vector-js.html
+++ b/doc/apidocs/files/OpenLayers/Feature/Vector-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Feature.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Feature.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.Vector"></a>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>Vector</h1><div class=CBody><p>Vector features use the OpenLayers.Geometry classes as geometry description.  They have an ‘attributes’ property, which is the data object, and a ‘style’ property, the default values of which are defined in the <a href="#OpenLayers.Feature.Vec [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.Vector"></a>OpenLayers.<wbr>Feature.<wbr>Vector</h1><div class=CBody><p>Vector features use the OpenLayers.Geometry classes as geometry description.  They have an ‘attributes’ property, which is the data object, and a ‘style’ property, the default values of which are defined in the <a href="#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Properties"></a>Properties</h3></div></div>
 
@@ -23,13 +23,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.url"></a>url</h3><div class=CBody><p>{String} If this property is set it will be taken into account by {<OpenLayers.HTTP>} when upadting or deleting the feature.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.modified"></a>modified</h3><div class=CBody><p>{Object} An object with the originals of the geometry and attributes of the feature, if they were changed.  Currently this property is only read by <a href="../Format/WFST/v1-js.html#OpenLayers.Format.WFST.v1" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">OpenLayers.Format.WFST.v1</a>, and written [...]
+    geometry: >Object
+}</pre></blockquote><p>When an application has made changes to feature attributes, it could have set the attributes to something like this:</p><blockquote><pre class="prettyprint">{
+    attributes: {
+        myAttribute: "original"
+    }
+}</pre></blockquote><p>Note that <a href="../Format/WFST/v1-js.html#OpenLayers.Format.WFST.v1" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">OpenLayers.Format.WFST.v1</a> only checks for truthy values in <b>modified.geometry</b> and the attribute names in <b>modified.attributes</b>, but it is recommended to set the original values (and not just true) as attribute value, so applications could use this information to undo changes.</p></div>< [...]
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector"></a>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>Vector</h3><div class=CBody><p>Create a vector feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link5 onMous [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector"></a>OpenLayers.<wbr>Feature.<wbr>Vector</h3><div class=CBody><p>Create a vector feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style"></a>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>Vector.<span class=HB> </span>style</h3><div class=CBody><p>OpenLayers features can have a number of style attributes.  The ‘default’ style will typically be used if no other style is specified.  These styles correspond for the most part, to the styling properties defined by [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style"></a>OpenLayers.<wbr>Feature.<wbr>Vector.<wbr>style</h3><div class=CBody><p>OpenLayers features can have a number of style attributes.  The ‘default’ style will typically be used if no other style is specified.  These styles correspond for the most part, to the styling properties defined by the SVG standard.  Information on fill propertie [...]
 
 </div><!--Content-->
 
@@ -37,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([4, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([3, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CConstant>OpenLayers features can have a number of style attributes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{Object} This object holds arbitrary, serializable properties that describe the feature.</div></ [...]
+<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CConstant>OpenLayers features can have a number of style attributes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt4"><div class=CClass>Superclass for WFST parsers.</div></div><div class=CToolTip id="tt5"><div class=CClass>Control to m [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Feature/WFS-js.html b/doc/apidocs/files/OpenLayers/Feature/WFS-js.html
index d285bb4..fc0d5a4 100644
--- a/doc/apidocs/files/OpenLayers/Feature/WFS-js.html
+++ b/doc/apidocs/files/OpenLayers/Feature/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Feature.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Feature.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.WFS"></a>OpenLayers.<span class=HB> </span>Feature.WFS</h1><div class=CBody><p>WFS handling class, for use as a featureClass on the WFS layer for handling ‘point’ WFS types.  Good for subclassing when creating a custom WFS like XML application.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Feature-js.html#OpenLayers.Feature" class=LClass id=link1  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.WFS"></a>OpenLayers.<wbr>Feature.WFS</h1><div class=CBody><p>WFS handling class, for use as a featureClass on the WFS layer for handling ‘point’ WFS types.  Good for subclassing when creating a custom WFS like XML application.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Feature-js.html#OpenLayers.Feature" class=LClass id=link1 onMouseOver="ShowT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.OpenLayers.Feature.WFS"></a>OpenLayers.<span class=HB> </span>Feature.WFS</h3><div class=CBody><p>Create a WFS feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>xmlN [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.OpenLayers.Feature.WFS"></a>OpenLayers.<wbr>Feature.WFS</h3><div class=CBody><p>Create a WFS feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>xmlNode</td><td class= [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([4, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([3, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Filter-js.html b/doc/apidocs/files/OpenLayers/Filter-js.html
index a0b3037..1b2cd7b 100644
--- a/doc/apidocs/files/OpenLayers/Filter-js.html
+++ b/doc/apidocs/files/OpenLayers/Filter-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter"></a>OpenLayers.<span class=HB> </span>Filter</h1><div class=CBody><p>This class represents an OGC Filter.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Filter" >OpenLayers.<span class=HB> </span>Filter</a></td><td clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter"></a>OpenLayers.<wbr>Filter</h1><div class=CBody><p>This class represents an OGC Filter.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Filter" >OpenLayers.<wbr>Filter</a></td><td class=SDescription>This class represents [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.OpenLayers.Filter"></a>OpenLayers.<span class=HB> </span>Filter</h3><div class=CBody><p>This is an abstract class.   Create an instance of a filter subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.OpenLayers.Filter"></a>OpenLayers.<wbr>Filter</h3><div class=CBody><p>This class represents a generic filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a href [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Remove reference to anything added.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Remove reference to anything added.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter in a specific context.&nbsp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>E [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.  Should be implementted by subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.OpenLayers.Filter" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="Hide [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.  Should be implementted by subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.OpenLayers.Filter" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt4', 'lin [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Remove reference to anything added.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Remove reference to anything added.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: fun [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Filter/Comparison-js.html b/doc/apidocs/files/OpenLayers/Filter/Comparison-js.html
index ded2f5d..806df29 100644
--- a/doc/apidocs/files/OpenLayers/Filter/Comparison-js.html
+++ b/doc/apidocs/files/OpenLayers/Filter/Comparison-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.Comparison - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Comparison - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Comparison"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</h1><div class=CBody><p>This class represents a comparison filter.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Filter</a></li></ul><!--START_ND_SUMMARY [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Comparison"></a>OpenLayers.<wbr>Filter.<wbr>Comparison</h1><div class=CBody><p>This class represents a comparison filter.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Filter</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.Properties"></a>Properties</h3></div></div>
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</h3><div class=CBody><p>Creates a comparison rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison"></a>OpenLayers.<wbr>Filter.<wbr>Comparison</h3><div class=CBody><p>Creates a comparison rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td></tr></table><h4 class=CHeading>Return [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter in a specific co [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.value2regex"></a>value2regex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>value2regex: function(</td><td class=PParameter nowrap>wildCard,</td></tr><tr><td></td><td class=PParameter nowrap>singleChar,</td></tr><tr><td></td><td class=PParameter nowrap>escape [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.value2regex"></a>value2regex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>value2regex: function(</td><td class="PParameter  prettyprint " nowrap>wildCard,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>singleChar,</td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMou [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates this filter in a specific context.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates this filter in a specific context.</div></div><div class=CToolTip id="tt2 [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Filter/FeatureId-js.html b/doc/apidocs/files/OpenLayers/Filter/FeatureId-js.html
index e343603..cf37897 100644
--- a/doc/apidocs/files/OpenLayers/Filter/FeatureId-js.html
+++ b/doc/apidocs/files/OpenLayers/Filter/FeatureId-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.FeatureId - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.FeatureId - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.FeatureId"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>FeatureId</h1><div class=CBody><p>This class represents a ogc:FeatureId Filter, as being used for rule-based SLD styling</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayer [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.FeatureId"></a>OpenLayers.<wbr>Filter.<wbr>FeatureId</h1><div class=CBody><p>This class represents a ogc:FeatureId Filter, as being used for rule-based SLD styling</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Filter</a></li></ul><!--START_ND_S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>FeatureId</h3><div class=CBody><p>Creates an ogc:FeatureId rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId"></a>OpenLayers.<wbr>Filter.<wbr>FeatureId</h3><div class=CBody><p>Creates an ogc:FeatureId rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td></tr></table><h4 class=CHeading>Retur [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>evaluates this rule for a specific feat [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">Op [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseO [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>evaluates this rule for a specific feature</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>evaluates this rule for a specific feature</div></div><div class=CToolTip id="tt2"> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Filter/Function-js.html b/doc/apidocs/files/OpenLayers/Filter/Function-js.html
new file mode 100644
index 0000000..0f50f9b
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Filter/Function-js.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Function - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Function"></a>OpenLayers.<wbr>Filter.<wbr>Function</h1><div class=CBody><p>This class represents a filter function.  We are using this class for creation of complex filters that can contain filter functions as values.  Nesting function as other functions parameter is supported.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.name"></a>name</h3><div class=CBody><p>{String} Name of the function.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.params"></a>params</h3><div class=CBody><p>{Array(<a href="#OpenLayers.Filter.Function.OpenLayers.Filter.Function" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Filter.Function</a> || String || Number)} Function parameters For now support only other Functions, String or Number</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.OpenLayers.Filter.Function"></a>OpenLayers.<wbr>Filter.<wbr>Function</h3><div class=CBody><p>Creates a filter function.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the function.</td></tr></table><h4 class=CHeading>Returns [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Creates a filter function.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an OGC Filter.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Filter/Logical-js.html b/doc/apidocs/files/OpenLayers/Filter/Logical-js.html
index c551f7f..9dd9331 100644
--- a/doc/apidocs/files/OpenLayers/Filter/Logical-js.html
+++ b/doc/apidocs/files/OpenLayers/Filter/Logical-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.Logical - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Logical - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Logical"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Logical</h1><div class=CBody><p>This class represents ogc:And, ogc:Or and ogc:Not rules.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Filter</a></li></ul><!--START_ND [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Logical"></a>OpenLayers.<wbr>Filter.<wbr>Logical</h1><div class=CBody><p>This class represents ogc:And, ogc:Or and ogc:Not rules.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Filter</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.Properties"></a>Properties</h3></div></div>
 
@@ -21,15 +21,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.OpenLayers.Filter.Logical"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Logical</h3><div class=CBody><p>Creates a logical filter (And, Or, Not).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.OpenLayers.Filter.Logical"></a>OpenLayers.<wbr>Filter.<wbr>Logical</h3><div class=CBody><p>Creates a logical filter (And, Or, Not).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter.</td></tr></table><h4 class=CHeadin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Remove reference to child filters.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Remove reference to child filters.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter in a specific conte [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Logical.OpenLayers.Filter.Logical" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLaye [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Logical.OpenLayers.Filter.Logical" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="Hi [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Remove reference to child filters.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Remove reference to child filters.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 c [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Filter/Spatial-js.html b/doc/apidocs/files/OpenLayers/Filter/Spatial-js.html
index 7de2ed6..3b76bce 100644
--- a/doc/apidocs/files/OpenLayers/Filter/Spatial-js.html
+++ b/doc/apidocs/files/OpenLayers/Filter/Spatial-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.Spatial - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Spatial - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Spatial"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Spatial</h1><div class=CBody><p>This class represents a spatial filter.  Currently implemented: BBOX, DWithin and Intersects</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">Op [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Spatial"></a>OpenLayers.<wbr>Filter.<wbr>Spatial</h1><div class=CBody><p>This class represents a spatial filter.  Currently implemented: BBOX, DWithin and Intersects</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Filter</a></li></ul><!--STA [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.Properties"></a>Properties</h3></div></div>
 
@@ -27,11 +27,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Spatial</h3><div class=CBody><p>Creates a spatial filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter.</td></tr></ta [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial"></a>OpenLayers.<wbr>Filter.<wbr>Spatial</h3><div class=CBody><p>Creates a spatial filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter.</td></tr></table><h4 class=CHeading>Returns</h4>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLaye [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="Hi [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote>Clones this filter.</div></div><div class=CToolTip id="tt4"><div class=CClass>This class repre [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote>Clones this filter.</div></div><div class=CToolTip id="tt4"><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format-js.html b/doc/apidocs/files/OpenLayers/Format-js.html
index 4b3c6ee..0d7de8e 100644
--- a/doc/apidocs/files/OpenLayers/Format-js.html
+++ b/doc/apidocs/files/OpenLayers/Format-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format"></a>OpenLayers.<span class=HB> </span>Format</h1><div class=CBody><p>Base class for format reading/writing a variety of formats.   Subclasses of OpenLayers.Format are expected to have read and write methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMai [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format"></a>OpenLayers.<wbr>Format</h1><div class=CBody><p>Base class for format reading/writing a variety of formats.   Subclasses of OpenLayers.Format are expected to have read and write methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Properties"></a>Properties</h3></div></div>
 
@@ -25,11 +25,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OpenLayers.Format"></a>OpenLayers.<span class=HB> </span>Format</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the format</td></tr></ta [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OpenLayers.Format"></a>OpenLayers.<wbr>Format</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the format</td></tr></table><h4 class=CHea [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 cla [...]
+<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 cla [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/ArcXML-js.html b/doc/apidocs/files/OpenLayers/Format/ArcXML-js.html
index eab2e42..8c5014b 100644
--- a/doc/apidocs/files/OpenLayers/Format/ArcXML-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/ArcXML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.ArcXML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.ArcXML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML</h1><div class=CBody><p>Read/Wite ArcXML.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.ArcXML</a> constructor.</p><h4 class=CH [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML"></a>OpenLayers.<wbr>Format.<wbr>ArcXML</h1><div class=CBody><p>Read/Wite ArcXML.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.ArcXML</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML</h3><div class=CBody><p>Create a new parser/writer for ArcXML.   Create an instance of this class to begin authoring a request to an ArcIMS service.   This is used primarily by the ArcIMS layer, but could be used to do other wild stuff, like geocoding.</p><h4 class=CHeading>Parameters< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML"></a>OpenLayers.<wbr>Format.<wbr>ArcXML</h3><div class=CBody><p>Create a new parser/writer for ArcXML.   Create an instance of this class to begin authoring a request to an ArcIMS service.   This is used primarily by the ArcIMS layer, but could be used to do other wild stuff, like geocoding.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 ce [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.iserror"></a>iserror</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>iserror: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check to see if the response from the server was [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.iserror"></a>iserror</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>iserror: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return an response.</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate an ArcXml document string for sending to a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gen [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>iserror: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check to see if the response from the server was an error.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><ta [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>iserror: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Check to see if the response from the server was an error.</div></div><div class=CToolT [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/ArcXML/Features-js.html b/doc/apidocs/files/OpenLayers/Format/ArcXML/Features-js.html
index 27e541b..29b94d8 100644
--- a/doc/apidocs/files/OpenLayers/Format/ArcXML/Features-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/ArcXML/Features-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.ArcXML.Features - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.ArcXML.Features - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnL [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML.<span class=HB> </span>Features</h1><div class=CBody><p>Read/Wite ArcXML features.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideT [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<wbr>Format.<wbr>ArcXML.<wbr>Features</h1><div class=CBody><p>Read/Wite ArcXML features.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.ArcXML.Features</a> const [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML.<span class=HB> </span>Features</h3><div class=CBody><p>Create a new parser/writer for ArcXML Features.   Create an instance of this class to get a set of features from an ArcXML response.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 cla [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<wbr>Format.<wbr>ArcXML.<wbr>Features</h3><div class=CBody><p>Create a new parser/writer for ArcXML Features.   Create an instance of this class to get a set of features from an ArcXML response.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string of ArcXML, and return a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string of ArcXML, and return a set of OpenLayers features.</div></div><div class=CToolTip id="tt2"><div class=CConstructo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string of ArcXML, and return a set of OpenLayers features.</div></div><di [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Atom-js.html b/doc/apidocs/files/OpenLayers/Format/Atom-js.html
index d7504c3..803ac0b 100644
--- a/doc/apidocs/files/OpenLayers/Format/Atom-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Atom-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Atom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Atom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Atom"></a>OpenLayers.<span class=HB> </span>Format.Atom</h1><div class=CBody><p>Read/write Atom feeds.  Create a new instance with the <OpenLayers.Format.AtomFeed> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Atom"></a>OpenLayers.<wbr>Format.Atom</h1><div class=CBody><p>Read/write Atom feeds.  Create a new instance with the <OpenLayers.Format.AtomFeed> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.Properties"></a>Properties</h3></div></div>
 
@@ -23,11 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.OpenLayers.Format.AtomEntry"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>AtomEntry</h3><div class=CBody><p>Create a new parser for Atom.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance. [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.OpenLayers.Format.AtomEntry"></a>OpenLayers.<wbr>Format.<wbr>AtomEntry</h3><div class=CBody><p>Create a new parser for Atom.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize or more feature nodes to Atom documents.</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Seri [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Serialize or more feature nodes to Atom documents.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and write XML. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Serialize or more feature nodes to Atom documents.</div></div><div class=CToolTip id= [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/CQL-js.html b/doc/apidocs/files/OpenLayers/Format/CQL-js.html
new file mode 100644
index 0000000..e0c765d
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/CQL-js.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CQL - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CQL"></a>OpenLayers.<wbr>Format.CQL</h1><div class=CBody><p>Read CQL strings to get <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Filter</a> objects.   Write <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read CQL strings to get OpenLayers.Filter objects. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/CSWGetDomain-js.html b/doc/apidocs/files/OpenLayers/Format/CSWGetDomain-js.html
index 63c522e..fe425cd 100644
--- a/doc/apidocs/files/OpenLayers/Format/CSWGetDomain-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/CSWGetDomain-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.CSWGetDomain.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetDomain - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.<span class=HB> </span>DEFAULTS</h1><div class=CBody><p>{Object} Default properties for the CSWGetDomain format.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain"></a>OpenLayers.<wbr>Format.<wbr>CSWGetDomain</h1><div class=CBody><p>Default version is 2.0.2.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A CSWGetDomain format of the given version.</p><!--START_ND_SUMMARY--> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the CSWGetDomain format.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html b/doc/apidocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html
index b9bd47b..260f7a7 100644
--- a/doc/apidocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.CSWGetDomain.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetDomain.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="N [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.<span class=HB> </span>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetDomain v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2" class=LConstructor id=link3 onMouseOver="Show [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetDomain.<wbr>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetDomain v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3') [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.Properties"></a>Properties</h3></div></div>
 
@@ -21,13 +21,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.<span class=HB> </span>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetDomain v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetDomain.<wbr>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetDomain v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the response from a GetDomain request. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an configuration js object, writ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetDomain request.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetDomain request.</div></div><div class=CToolTip id="tt2"><div  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/CSWGetRecords-js.html b/doc/apidocs/files/OpenLayers/Format/CSWGetRecords-js.html
index db6d986..81ed87a 100644
--- a/doc/apidocs/files/OpenLayers/Format/CSWGetRecords-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/CSWGetRecords-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.CSWGetRecords.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetRecords - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>DEFAULTS</h1><div class=CBody><p>{Object} Default properties for the CSWGetRecords format.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords"></a>OpenLayers.<wbr>Format.<wbr>CSWGetRecords</h1><div class=CBody><p>Default version is 2.0.2.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A CSWGetRecords format of the given version.</p><!--START_ND_SUMMARY [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the CSWGetRecords format.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html b/doc/apidocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html
index 13f58a8..2c64b80 100644
--- a/doc/apidocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.CSWGetRecords.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetRecords.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad=" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetRecords v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2" class=LConstructor id=link2 onMouseOver= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetRecords v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip(' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.Properties"></a>Properties</h3></div></div>
 
@@ -35,11 +35,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetRecords v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetRecords v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object wh [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the response from a GetRecords reques [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetRecords request.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>A class for parsing and gene [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetRecords request.</div></div><div class=CToolTip id="tt2"><div [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Context-js.html b/doc/apidocs/files/OpenLayers/Format/Context-js.html
index d444dee..5cb0ace 100644
--- a/doc/apidocs/files/OpenLayers/Format/Context-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Context-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Context - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Context - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Context"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context</h1><div class=CBody><p>Base class for both Format.WMC and Format.OWSContext</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.Cont [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Properties"></a>Properties</h3></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Context"></a>OpenLayers.<wbr>Format.<wbr>Context</h1><div class=CBody><p>Base class for both Format.WMC and Format.OWSContext</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.Context" >OpenLayers.<wbr>Format.<wbr>Co [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context</h3><div class=CBody><p>Create a new parser for Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on th [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context"></a>OpenLayers.<wbr>Format.<wbr>Context</h3><div class=CBody><p>Create a new parser for Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  pret [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context.<span class=HB> </span>serviceTypes</h3><div class=CBody><p>Enumeration for service types</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes"></a>OpenLayers.<wbr>Format.<wbr>Context.<wbr>serviceTypes</h3><div class=CBody><p>Enumeration for service types</p></div></div></div>
 
 </div><!--Content-->
 
@@ -37,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read Context data from a string, and return an object with map properties and a [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read Context da [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Filter-js.html b/doc/apidocs/files/OpenLayers/Format/Filter-js.html
index 18a176f..daa0297 100644
--- a/doc/apidocs/files/OpenLayers/Format/Filter-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Filter-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter</h1><div class=CBody><p>Read/Wite ogc:Filter.  Create a new instance with the <a href="#OpenLayers.Format.Filter.OpenLayers.Format.Filter" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.Filter</a> constructor.</p><h4 clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter"></a>OpenLayers.<wbr>Format.<wbr>Filter</h1><div class=CBody><p>Read/Wite ogc:Filter.  Create a new instance with the <a href="#OpenLayers.Format.Filter" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.Filter</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.h [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.Constructor"></a>Constructor</h3></div></div>
-
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.OpenLayers.Format.Filter"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter</h3><div class=CBody><p>Create a new parser for Filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</ [...]
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.write"></a>write</h3><div class=CBody><p>Write an ogc:Filter given a filter object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filter</td><td class=CDLDescription>{<a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers. [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read and Filter doc and return an object representing the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.read"></a>read</h3><div class=CBody><p>Read and Filter doc and return an object representing the Filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a href="../Filter-js.html#OpenLayers.Filter"  [...]
 
 </div><!--Content-->
 
@@ -35,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Write an ogc:Filter given a filter object.</div></div><div class=CToolTip id [...]
+<div class=CToolTip id="tt1"><div class=CClass>Read/Wite ogc:Filter. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents an OGC Filter.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Filter/v1-js.html b/doc/apidocs/files/OpenLayers/Format/Filter/v1-js.html
index 430a6a9..3d17946 100644
--- a/doc/apidocs/files/OpenLayers/Format/Filter/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Filter/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.v1</h1><div class=CBody><p>Superclass for Filter version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><! [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1"></a>OpenLayers.<wbr>Format.<wbr>Filter.v1</h1><div class=CBody><p>Superclass for Filter version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.OpenLayers.Format.Filter.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Filter</a> constructor instead.< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.OpenLayers.Format.Filter.v1"></a>OpenLayers.<wbr>Format.<wbr>Filter.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Filter</a> constructor instead.</p><h4 class=CHeading>Parameters</h4 [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Filter/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/Filter/v1_0_0-js.html
index 338ac62..a63527e 100644
--- a/doc/apidocs/files/OpenLayers/Format/Filter/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Filter/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoa [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Write ogc:Filter version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../GML/v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayer [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_0_0</h1><div class=CBody><p>Write ogc:Filter version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../GML/v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.GML.v2</a></li><li><a href="v1-js.html#OpenLa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Form [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.Filter</a> constructor instead.</p><h4 class=CHeadi [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Filter/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/Filter/v1_1_0-js.html
index 411e6aa..b934caf 100644
--- a/doc/apidocs/files/OpenLayers/Format/Filter/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Filter/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoa [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Write ogc:Filter version 1.1.0.</p><h4 class=CHeading>Differences from the v1.0.0 parser</h4><ul><li>uses GML v3 instead of GML v2</li><li>reads matchCase attribute on ogc:PropertyIsEqual and ogc:PropertyIsNotEqualelements.</li><li>write [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_1_0</h1><div class=CBody><p>Write ogc:Filter version 1.1.0.</p><h4 class=CHeading>Differences from the v1.0.0 parser</h4><ul><li>uses GML v3 instead of GML v2</li><li>reads matchCase attribute on ogc:PropertyIsEqual and ogc:PropertyIsNotEqual elements.</li><li>writes matchCase attribute from comparison filters of type [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Form [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Filter</a> constructor instead.</p><h4 class=CHeadi [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GML-js.html b/doc/apidocs/files/OpenLayers/Format/GML-js.html
index fd05ef3..10af5cd 100644
--- a/doc/apidocs/files/OpenLayers/Format/GML-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML"></a>OpenLayers.<span class=HB> </span>Format.GML</h1><div class=CBody><p>Read/Wite GML.  Create a new instance with the <a href="#OpenLayers.Format.GML.OpenLayers.Format.GML" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.GML</a> constructor.   Supports the GML simple features profile.</p><h4  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML"></a>OpenLayers.<wbr>Format.GML</h1><div class=CBody><p>Read/Wite GML.  Create a new instance with the <a href="#OpenLayers.Format.GML.OpenLayers.Format.GML" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.GML</a> constructor.   Supports the GML simple features profile.</p><h4 class=CHeading>Inh [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Properties"></a>Properties</h3></div></div>
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.OpenLayers.Format.GML"></a>OpenLayers.<span class=HB> </span>Format.GML</h3><div class=CBody><p>Create a new parser for GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.OpenLayers.Format.GML"></a>OpenLayers.<wbr>Format.GML</h3><div class=CBody><p>Create a new parser for GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return a list of features.</p>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data fr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate a GML document string given a list of featur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gener [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildGeometryNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildGeometryNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
 </div><!--Content-->
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string, and return a list of features.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string, and return a list of features.</div></div><div class=CToolTip id= [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GML/Base-js.html b/doc/apidocs/files/OpenLayers/Format/GML/Base-js.html
index d40d9a6..d0fb811 100644
--- a/doc/apidocs/files/OpenLayers/Format/GML/Base-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GML/Base-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML.Base - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML.Base - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();p [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.Base"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.Base</h1><div class=CBody><p>Superclass for GML parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMM [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.Base"></a>OpenLayers.<wbr>Format.<wbr>GML.Base</h1><div class=CBody><p>Superclass for GML parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.featureNS"></a>featureNS</h3><div class=CBody><p>{String} The feature namespace.   Must be set in the options at construction.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.geometry"></a>geometry</h3><div class=CBody><p>{String} Name of geometry element.   Defaults to “geometry”.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.geometry"></a>geometry</h3><div class=CBody><p>{String} Name of geometry element.   Defaults to “geometry”.  If null, it will be set on <a href="../GML-js.html#OpenLayers.Format.GML.read" class=LFunction id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">read</a> when the first geometry is parsed.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.extractAttributes"></a>extractAttributes</h3><div class=CBody><p>{Boolean} Extract attributes from GML.   Default is true.</p></div></div></div>
 
@@ -29,7 +29,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.OpenLayers.Format.GML.Base"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.Base</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GML.v2</a> or <a href="v3-js.html#OpenLaye [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.OpenLayers.Format.GML.Base"></a>OpenLayers.<wbr>Format.<wbr>GML.Base</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GML.v2</a> or <a href="v3-js.html#OpenLayers.Format.GML.v3" class=LClass id=li [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Read and write XML. </div></div><div class=CToolTip id="tt2"><div class=CClass>Parses GML version 2.</div></div><div class=CToolTip id="tt3"><div class=CClass>Parses GML version 3.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Read and write XML. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read data f [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GML/v2-js.html b/doc/apidocs/files/OpenLayers/Format/GML/v2-js.html
index 7a8ee72..5383b65 100644
--- a/doc/apidocs/files/OpenLayers/Format/GML/v2-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GML/v2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML.v2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML.v2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v2</h1><div class=CBody><p>Parses GML version 2.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMAR [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v2"></a>OpenLayers.<wbr>Format.<wbr>GML.v2</h1><div class=CBody><p>Parses GML version 2.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=ST [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.OpenLayers.Format.GML.v2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v2</h3><div class=CBody><p>Create a parser for GML v2.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.OpenLayers.Format.GML.v2"></a>OpenLayers.<wbr>Format.<wbr>GML.v2</h3><div class=CBody><p>Create a parser for GML v2.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table><h4 class=CHeading>Valid [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GML/v3-js.html b/doc/apidocs/files/OpenLayers/Format/GML/v3-js.html
index 6ad4aa3..1be2c7a 100644
--- a/doc/apidocs/files/OpenLayers/Format/GML/v3-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GML/v3-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML.v3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML.v3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v3"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v3</h1><div class=CBody><p>Parses GML version 3.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMAR [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v3"></a>OpenLayers.<wbr>Format.<wbr>GML.v3</h1><div class=CBody><p>Parses GML version 3.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=ST [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.OpenLayers.Format.GML.v3"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v3</h3><div class=CBody><p>Create a parser for GML v3.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.OpenLayers.Format.GML.v3"></a>OpenLayers.<wbr>Format.<wbr>GML.v3</h3><div class=CBody><p>Create a parser for GML v3.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table><h4 class=CHeading>Valid [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GPX-js.html b/doc/apidocs/files/OpenLayers/Format/GPX-js.html
index f0b9e40..37616b6 100644
--- a/doc/apidocs/files/OpenLayers/Format/GPX-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GPX-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GPX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GPX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GPX"></a>OpenLayers.<span class=HB> </span>Format.GPX</h1><div class=CBody><p>Read/write GPX parser.  Create a new instance with the <a href="#OpenLayers.Format.GPX.OpenLayers.Format.GPX" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GPX</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GPX"></a>OpenLayers.<wbr>Format.GPX</h1><div class=CBody><p>Read/write GPX parser.  Create a new instance with the <a href="#OpenLayers.Format.GPX.OpenLayers.Format.GPX" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GPX</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.ht [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.Properties"></a>Properties</h3></div></div>
 
@@ -25,11 +25,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.OpenLayers.Format.GPX"></a>OpenLayers.<span class=HB> </span>Format.GPX</h3><div class=CBody><p>Create a new parser for GPX.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.OpenLayers.Format.GPX"></a>OpenLayers.<wbr>Format.GPX</h3><div class=CBody><p>Create a new parser for GPX.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of features from a GPX doc</p><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a GPX doc</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new parser for GPX.</div> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a GPX doc</div></div><div class=CToolTip id="tt2"><div class [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GeoJSON-js.html b/doc/apidocs/files/OpenLayers/Format/GeoJSON-js.html
index cc1ae0b..38505c7 100644
--- a/doc/apidocs/files/OpenLayers/Format/GeoJSON-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GeoJSON-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GeoJSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GeoJSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoJSON"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoJSON</h1><div class=CBody><p>Read and write GeoJSON.  Create a new parser with the <a href="#OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GeoJSON</a> constructor.</p><h4 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoJSON"></a>OpenLayers.<wbr>Format.<wbr>GeoJSON</h1><div class=CBody><p>Read and write GeoJSON.  Create a new parser with the <a href="#OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GeoJSON</a> constructor.</p><h4 class=CHeading>Inherits from</h4><u [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoJSON</h3><div class=CBody><p>Create a new parser for GeoJSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instanc [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON"></a>OpenLayers.<wbr>Format.<wbr>GeoJSON</h3><div class=CBody><p>Create a new parser for GeoJSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>pretty</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pretty</td><td class="PAfterParameters  prett [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a GeoJSON st [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "n [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/GeoRSS-js.html b/doc/apidocs/files/OpenLayers/Format/GeoRSS-js.html
index c90248d..72c0a95 100644
--- a/doc/apidocs/files/OpenLayers/Format/GeoRSS-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/GeoRSS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoRSS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoRSS</h1><div class=CBody><p>Read/write GeoRSS parser.  Create a new instance with the <a href="#OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GeoRSS</a> constructor.</p><h4  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoRSS"></a>OpenLayers.<wbr>Format.<wbr>GeoRSS</h1><div class=CBody><p>Read/write GeoRSS parser.  Create a new instance with the <a href="#OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GeoRSS</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.Properties"></a>Properties</h3></div></div>
 
@@ -31,11 +31,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoRSS</h3><div class=CBody><p>Create a new parser for GeoRSS.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS"></a>OpenLayers.<wbr>Format.<wbr>GeoRSS</h3><div class=CBody><p>Create a new parser for GeoRSS.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept Feature Collection, and return a string.</p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a l [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ac [...]
 
 </div><!--Content-->
 
@@ -43,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Accept Feature Collection, and return a string.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new parser f [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a GeoRSS doc</div></div><div class=CToolTip id="tt2"><div cl [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/JSON-js.html b/doc/apidocs/files/OpenLayers/Format/JSON-js.html
index d1d1067..244e434 100644
--- a/doc/apidocs/files/OpenLayers/Format/JSON-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/JSON-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.JSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.JSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.JSON"></a>OpenLayers.<span class=HB> </span>Format.JSON</h1><div class=CBody><p>A parser to read/write JSON safely.   Create a new instance with the <a href="#OpenLayers.Format.JSON.OpenLayers.Format.JSON" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.JSON</a> constructor.</p><h4 class=CHeading>Inherit [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.JSON"></a>OpenLayers.<wbr>Format.JSON</h1><div class=CBody><p>A parser to read/write JSON safely.   Create a new instance with the <a href="#OpenLayers.Format.JSON.OpenLayers.Format.JSON" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.JSON</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Properties"></a>Properties</h3></div></div>
 
@@ -23,13 +23,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.OpenLayers.Format.JSON"></a>OpenLayers.<span class=HB> </span>Format.JSON</h3><div class=CBody><p>Create a new parser for JSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.OpenLayers.Format.JSON"></a>OpenLayers.<wbr>Format.JSON</h3><div class=CBody><p>Create a new parser for JSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>D [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>value,</td></tr><tr><td></td><td class=PParameter nowrap>pretty</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>value,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pretty</td><td class="PAfterParameters  pretty [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a json string.</div></div><div class=CToolTip id="tt2"><div class=CF [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a js [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/KML-js.html b/doc/apidocs/files/OpenLayers/Format/KML-js.html
index 7a41a6d..2a85bdd 100644
--- a/doc/apidocs/files/OpenLayers/Format/KML-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/KML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.KML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.KML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.KML"></a>OpenLayers.<span class=HB> </span>Format.KML</h1><div class=CBody><p>Read/Write KML.  Create a new instance with the <a href="#OpenLayers.Format.KML.OpenLayers.Format.KML" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.KML</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.KML"></a>OpenLayers.<wbr>Format.KML</h1><div class=CBody><p>Read/Write KML.  Create a new instance with the <a href="#OpenLayers.Format.KML.OpenLayers.Format.KML" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.KML</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.Properties"></a>Properties</h3></div></div>
 
@@ -33,13 +33,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.OpenLayers.Format.KML"></a>OpenLayers.<span class=HB> </span>Format.KML</h3><div class=CBody><p>Create a new parser for KML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.OpenLayers.Format.KML"></a>OpenLayers.<wbr>Format.KML</h3><div class=CBody><p>Create a new parser for KML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return a list of features.</p>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data fr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept Feature Collection, and return a string.</p><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accep [...]
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Extract gx:Track elements from Placemark elements. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from  [...]
+<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Extract gx:Track elements from Placemark elements. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/OGCExceptionReport-js.html b/doc/apidocs/files/OpenLayers/Format/OGCExceptionReport-js.html
new file mode 100644
index 0000000..8fbaa99
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/OGCExceptionReport-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OGCExceptionReport - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport"></a>OpenLayers.<wbr>Format.<wbr>OGCExceptionReport</h1><div class=CBody><p>Class to read exception reports for various OGC services and versions.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></l [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.OpenLayers.Format.OGCExceptionReport"></a>OpenLayers.<wbr>Format.<wbr>OGCExceptionReport</h3><div class=CBody><p>Create a new parser for OGC exception reports.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on t [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read OGC exception report data from a string, and return an object with information about  [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/OSM-js.html b/doc/apidocs/files/OpenLayers/Format/OSM-js.html
index fe0c6b4..7300196 100644
--- a/doc/apidocs/files/OpenLayers/Format/OSM-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/OSM-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OSM - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OSM - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OSM"></a>OpenLayers.<span class=HB> </span>Format.OSM</h1><div class=CBody><p>OSM parser.  Create a new instance with the <a href="#OpenLayers.Format.OSM.OpenLayers.Format.OSM" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.OSM</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XM [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OSM"></a>OpenLayers.<wbr>Format.OSM</h1><div class=CBody><p>OSM parser.  Create a new instance with the <a href="#OpenLayers.Format.OSM.OpenLayers.Format.OSM" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.OSM</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLaye [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.OpenLayers.Format.OSM"></a>OpenLayers.<span class=HB> </span>Format.OSM</h3><div class=CBody><p>Create a new parser for OSM.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.OpenLayers.Format.OSM"></a>OpenLayers.<wbr>Format.OSM</h3><div class=CBody><p>Create a new parser for OSM.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a list of features, returns a serialized OSM fo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes a list of features, returns a serialized OSM format file for use in tools like JOSM.</div></div><div class=CToolTip id="tt2"><d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Takes a list of features, returns a serialized OSM format file for use in tools like  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/OWSCommon-js.html b/doc/apidocs/files/OpenLayers/Format/OWSCommon-js.html
new file mode 100644
index 0000000..5011184
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/OWSCommon-js.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon</h1><div class=CBody><p>Read OWSCommon.  Create a new instance with the <a href="#OpenLayers.Format.OWSCommon.OpenLayers.Format.OWSCommon" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.OWSCommon</a> constructor.</p><h4 class=CHeading>Inherits from</h [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.OpenLayers.Format.OWSCommon"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon</h3><div class=CBody><p>Create a new parser for OWSCommon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></ [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.read"></a>read</h3><div class=CBody><p>Read an OWSCommon document and return an object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for the reader.</td></tr>< [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new parser for OWSCommon.</div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1-js.html b/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1-js.html
index 2e5806a..340f76f 100644
--- a/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSCommon.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSCommon.v1</h1><div class=CBody><p>Common readers and writers for OWSCommon v1.X formats</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon.v1</h1><div class=CBody><p>Common readers and writers for OWSCommon v1.X formats</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([14, 15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([13, 14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html
index a0d7b80..9b9bdf3 100644
--- a/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSCommon.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSCommon.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Parser for OWS Common version 1.0.0 which can be used by other parsers.  It is not intended to be used on its own.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon.<wbr>v1_0_0</h1><div class=CBody><p>Parser for OWS Common version 1.0.0.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([14, 15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([13, 14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html
index 38f9d68..be35a27 100644
--- a/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSCommon.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSCommon.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Parser for OWS Common version 1.1.0 which can be used by other parsers.  It is not intended to be used on its own.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon.<wbr>v1_1_0</h1><div class=CBody><p>Parser for OWS Common version 1.1.0.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([14, 15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([13, 14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/OWSContext-js.html b/doc/apidocs/files/OpenLayers/Format/OWSContext-js.html
index 1736ef9..5d844cf 100644
--- a/doc/apidocs/files/OpenLayers/Format/OWSContext-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/OWSContext-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSContext - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSContext - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,22 +11,26 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext</h1><div class=CBody><p>Read and write OWS Context documents.  OWS Context documents are a preliminary OGC (Open Geospatial Consortium) standard for storing the state of a web mapping application.  In a way it is the successor to Web Map Context (WMC), since it is more generic an [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext"></a>OpenLayers.<wbr>Format.<wbr>OWSContext</h1><div class=CBody><p>Read and write OWS Context documents.  OWS Context documents are a preliminary OGC (Open Geospatial Consortium) standard for storing the state of a web mapping application.  In a way it is the successor to Web Map Context (WMC), since it is more generic and more types of layers can be stored [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “0.3.1”.</p></div></div></div>
 
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.OpenLayers.Format.OWSContext"></a>OpenLayers.<wbr>Format.<wbr>OWSContext</h3><div class=CBody><p>Create a new parser for OWS Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr>< [...]
+
 </div><!--Content-->
 
 
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html b/doc/apidocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html
index 932c46a..9f60a6c 100644
--- a/doc/apidocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSContext.v0_3_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSContext.v0_3_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDO [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1</h1><div class=CBody><p>Read and write OWSContext version 0.3.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3') [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1</h1><div class=CBody><p>Read and write OWSContext version 0.3.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Constants"></a>Constants</h3></div></div>
 
@@ -25,13 +25,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../OWSContext-js.html#OpenLayers.Format.OWSContext" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../OWSContext-js.html#OpenLayers.Format.OWSContext" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.OWSContext</a> constructor inst [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read OWS context data from a string or DOMElem [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPa [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read OWS context data from a string or DOMElement, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CFuncti [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read OWS context data from a string or DOMElement, and return a list of layers.</div></div [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/QueryStringFilter-js.html b/doc/apidocs/files/OpenLayers/Format/QueryStringFilter-js.html
new file mode 100644
index 0000000..d5bb07e
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/QueryStringFilter-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.QueryStringFilter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.QueryStringFilter"></a>OpenLayers.<wbr>Format.<wbr>QueryStringFilter</h1><div class=CBody><p>Parser for reading a query string and creating a simple filter.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Format-js.html#OpenLayers.Format" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format</a></li></ul><!-- [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.srsInBBOX"></a>srsInBBOX</h3><div class=CBody><p>{Boolean} Include the SRS identifier in BBOX query string parameter.  Default is false.   If true and the layer has a projection object set, any BBOX filter will be serialized with a fifth item identifying the projection.   E.g. bbox=-1000,-1000,1000,1000,EPSG:900913</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params</td><td class="PAfterPara [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Serialize an  [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/SLD-js.html b/doc/apidocs/files/OpenLayers/Format/SLD-js.html
index aee4e6c..2eb381a 100644
--- a/doc/apidocs/files/OpenLayers/Format/SLD-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SLD-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SLD - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SLD - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD"></a>OpenLayers.<span class=HB> </span>Format.SLD</h1><div class=CBody><p>Read/Wite SLD.  Create a new instance with the <a href="#OpenLayers.Format.SLD.OpenLayers.Format.SLD" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.SLD</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD"></a>OpenLayers.<wbr>Format.SLD</h1><div class=CBody><p>Read/Wite SLD.  Create a new instance with the <a href="#OpenLayers.Format.SLD" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.SLD</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.stringifyOutput"></a>stringifyOutput</h3><div class=CBody><p>{Boolean} If true, write will return a string otherwise a DOMElement.  Default is true.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.namedLayersAsArray"></a>namedLayersAsArray</h3><div class=CBody><p>{Boolean} Generate a namedLayers array.   If false, the namedLayers property value will be an object keyed by layer name.  Default is false.</p></div></div></div>
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.Constructor"></a>Constructor</h3></div></div>
-
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.OpenLayers.Format.SLD"></a>OpenLayers.<span class=HB> </span>Format.SLD</h3><div class=CBody><p>Create a new parser for SLD.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>sld,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.write"></a>write</h3><div class=CBody><p>Write a SLD document given a list of styles.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sld</td><td class=CDLDescription>{Object} An object representing the SLD.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional configuration object.</td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>R [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.read"></a>read</h3><div class=CBody><p>Read and SLD doc and return an object representing the SLD.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for the reader.</td>< [...]
 
 </div><!--Content-->
 
@@ -37,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([8, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([7, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>sld,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Write a SLD document given a list of styles.</div></div><div class=CToolTip id= [...]
+<div class=CToolTip id="tt1"><div class=CClass>Read/Wite SLD. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/SLD/v1-js.html b/doc/apidocs/files/OpenLayers/Format/SLD/v1-js.html
index 5458099..dcf97c4 100644
--- a/doc/apidocs/files/OpenLayers/Format/SLD/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SLD/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SLD.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SLD.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.v1</h1><div class=CBody><p>Superclass for SLD version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Filter/v1_0_0-js.html#OpenLayers.Format.Filter.v1_0_0" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.Filter.v [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1"></a>OpenLayers.<wbr>Format.<wbr>SLD.v1</h1><div class=CBody><p>Superclass for SLD version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Filter/v1_0_0-js.html#OpenLayers.Format.Filter.v1_0_0" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.Filter.v1_0_0</a></li></ul><!--START_ND_SUMM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.Properties"></a>Properties</h3></div></div>
 
@@ -21,7 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.OpenLayers.Format.SLD.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.SLD</a> constructor instead.</p><h4 class=CHead [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.OpenLayers.Format.SLD.v1"></a>OpenLayers.<wbr>Format.<wbr>SLD.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.SLD</a> constructor instead.</p><h4 class=CHeading>Parameters</h4><table border=0 c [...]
 
 </div><!--Content-->
 
@@ -29,10 +29,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([8, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([7, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/SLD/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/SLD/v1_0_0-js.html
index 2a0e0fa..1d1812d 100644
--- a/doc/apidocs/files/OpenLayers/Format/SLD/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SLD/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SLD.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SLD.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Write SLD version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.SLD.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.SLD.v1</a>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SLD.<wbr>v1_0_0</h1><div class=CBody><p>Write SLD version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.SLD.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.SLD.v1</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><di [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.SLD</a> cons [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SLD.<wbr>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.SLD</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([8, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([7, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/SOSCapabilities-js.html b/doc/apidocs/files/OpenLayers/Format/SOSCapabilities-js.html
index ee32adc..e80a587 100644
--- a/doc/apidocs/files/OpenLayers/Format/SOSCapabilities-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SOSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities</h1><div class=CBody><p>Read SOS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities</h1><div class=CBody><p>Read SOS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities</h3><div class=CBody><p>Create a new parser for SOS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose prope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities</h3><div class=CBody><p>Create a new parser for SOS Capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return information about the service (offering and observedProperty mostly).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class= [...]
 
 </div><!--Content-->
 
@@ -33,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return information about the service (offering and observedProperty mostly).</div></div><div cla [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html
index 26c1ac0..cd5fa2f 100644
--- a/doc/apidocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read SOS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../SOSCapabilities-js.html#OpenLayers.Format.SOSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities.<wbr>v1_0_0</h1><div class=CBody><p>Read SOS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../SOSCapabilities-js.html#OpenLayers.Format.SOSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.SOSC [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Create a new parser for SOS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for SOS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the SOS.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read SOS Ca [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the SOS.</div></div><div class [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html b/doc/apidocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html
index 78fee79..d06fb23 100644
--- a/doc/apidocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSGetFeatureOfInterest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSGetFeatureOfInterest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetFeatureOfInterest</h1><div class=CBody><p>Read and write SOS GetFeatureOfInterest.  This is used to get to the location of the features (stations).  The stations can have 1 or more sensors.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Fo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<wbr>Format.<wbr>SOSGetFeatureOfInterest</h1><div class=CBody><p>Read and write SOS GetFeatureOfInterest.  This is used to get to the location of the features (stations).  The stations can have 1 or more sensors.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Constants"></a>Constants</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetFeatureOfInterest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on thi [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<wbr>Format.<wbr>SOSGetFeatureOfInterest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse a GetFeatureOfInterest response an [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse a GetFeatureOfInterest response and return an array of features</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and w [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse a GetFeatureOfInterest response and return an array of features</div></div><div clas [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/SOSGetObservation-js.html b/doc/apidocs/files/OpenLayers/Format/SOSGetObservation-js.html
index 68f5dd1..66ba20b 100644
--- a/doc/apidocs/files/OpenLayers/Format/SOSGetObservation-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/SOSGetObservation-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSGetObservation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSGetObservation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetObservation</h1><div class=CBody><p>Read and write SOS GetObersation (to get the actual values from a sensor) version 1.0.0</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<wbr>Format.<wbr>SOSGetObservation</h1><div class=CBody><p>Read and write SOS GetObersation (to get the actual values from a sensor) version 1.0.0</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Fo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetObservation</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<wbr>Format.<wbr>SOSGetObservation</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/Text-js.html b/doc/apidocs/files/OpenLayers/Format/Text-js.html
index 89850a4..443cef8 100644
--- a/doc/apidocs/files/OpenLayers/Format/Text-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/Text-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Text"></a>OpenLayers.<span class=HB> </span>Format.Text</h1><div class=CBody><p>Read Text format.  Create a new instance with the <a href="#OpenLayers.Format.Text.OpenLayers.Format.Text" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Text</a> constructor.  This reads text which is formatted like CS [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Text"></a>OpenLayers.<wbr>Format.Text</h1><div class=CBody><p>Read Text format.  Create a new instance with the <a href="#OpenLayers.Format.Text.OpenLayers.Format.Text" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Text</a> constructor.  This reads text which is formatted like CSV text, using tabs [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.OpenLayers.Format.Text"></a>OpenLayers.<span class=HB> </span>Format.Text</h3><div class=CBody><p>Create a new parser for TSV Text.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.OpenLayers.Format.Text"></a>OpenLayers.<wbr>Format.Text</h3><div class=CBody><p>Create a new parser for TSV Text.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of features from a Tab Seperated Values text  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a li [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a Tab Seperated Values text string.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a Tab Seperated Values text string.</div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WCSGetCoverage-js.html b/doc/apidocs/files/OpenLayers/Format/WCSGetCoverage-js.html
new file mode 100644
index 0000000..3eb05a1
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/WCSGetCoverage-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WCSGetCoverage version 1.1.0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0"></a>OpenLayers.<wbr>Format.<wbr>WCSGetCoverage version 1.1.0</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div cla [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.1.2</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.OpenLayers.Format.WCSGetCoverage"></a>OpenLayers.<wbr>Format.<wbr>WCSGetCoverage</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Read and write XML. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/WFS-js.html b/doc/apidocs/files/OpenLayers/Format/WFS-js.html
index aa7bc4a..e088754 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFS-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFS"></a>OpenLayers.<span class=HB> </span>Format.WFS</h1><div class=CBody><p>Read/Write WFS.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="GML-js.html#OpenLayers.Format.GML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFS"></a>OpenLayers.<wbr>Format.WFS</h1><div class=CBody><p>Read/Write WFS.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="GML-js.html#OpenLayers.Format.GML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.OpenLayers.Format.WFS"></a>OpenLayers.<span class=HB> </span>Format.WFS</h3><div class=CBody><p>Create a WFS-T formatter.  This requires a layer: that layer should have two properties: geometry_column and typename.  The parser for this format is subclassed entirely from GML: There is a writer only, which uses most of the code from the GML layer, and wraps it in transactional elements.</p [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.OpenLayers.Format.WFS"></a>OpenLayers.<wbr>Format.WFS</h3><div class=CBody><p>Create a WFS-T formatter.  This requires a layer: that layer should have two properties: geometry_column and typename.  The parser for this format is subclassed entirely from GML: There is a writer only, which uses most of the code from the GML layer, and wraps it in transactional elements.</p><h4 class=CHeadin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Remove ciruclar ref to layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Remove ciruclar ref to layer</p></div></div></div>
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Remove ciruclar ref to layer</div></div><div class=CToolTip id="tt2"><div class=CClass>Read/Wite GML. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Remove ciruclar ref to layer</div></div><div class=CToolTip id="tt2"><div class=CClass>Read/Wite GML. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities-js.html b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities-js.html
index ad4edb9..47d9a25 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities</h1><div class=CBody><p>Read WFS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities</h1><div class=CBody><p>Read WFS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.errorProperty"></a>errorProperty</h3><div class=CBody><p>{String} Which property of the returned object to check for in order to determine whether or not parsing has failed.  In the case that the errorProperty is undefined on the returned object, the document will be run through an OGCExceptionReport parser.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities</h3><div class=CBody><p>Create a new parser for WFS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose prope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities</h3><div class=CBody><p>Create a new parser for WFS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return a list of layers.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Array} List of named layers [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and writ [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html
index 8671cec..fc97c39 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="ND [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.F [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.OpenLayers.Format.WFSCapabilities.v1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.v1_1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional ob [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.OpenLayers.Format.WFSCapabilities.v1_1"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.v1_1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and writ [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html
index 37dd1ab..3f52fb1 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities/v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities/v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities/<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read WMS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities/<wbr>v1_0_0</h1><div class=CBody><p>Read WFS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WFSC [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.OpenLayers.Format.WFSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.OpenLayers.Format.WFSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html
index f5c0855..9daae42 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities/<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Read WFS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities/<wbr>v1_1_0</h1><div class=CBody><p>Read WFS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WFSC [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.OpenLayers.Format.WFSCapabilities.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.OpenLayers.Format.WFSCapabilities.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.<wbr>v1_1_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html b/doc/apidocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html
index 91e92c3..e669722 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSDescribeFeatureType - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSDescribeFeatureType - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CConstructor"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSDescribeFeatureType"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSDescribeFeatureType</h1><div class=CBody><p>Create a new parser for WFS DescribeFeatureType responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An o [...]
+<div id=Content><div class="CConstructor"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSDescribeFeatureType"></a>OpenLayers.<wbr>Format.<wbr>WFSDescribeFeatureType</h1><div class=CBody><p>Create a new parser for WFS DescribeFeatureType responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will [...]
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFST-js.html b/doc/apidocs/files/OpenLayers/Format/WFST-js.html
index 0e8fae3..a909eea 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFST-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFST-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>DEFAULTS</h1><div class=CBody><p>{Object} Default properties for the WFST format.</p></div></div></div>
+<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.DEFAULTS"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>DEFAULTS</h1><div class=CBody><p>{Object} Default properties for the WFST format.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFST/v1-js.html b/doc/apidocs/files/OpenLayers/Format/WFST/v1-js.html
index 9b82d92..c7bcc2f 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFST/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFST/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.v1</h1><div class=CBody><p>Superclass for WFST parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMA [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1"></a>OpenLayers.<wbr>Format.<wbr>WFST.v1</h1><div class=CBody><p>Superclass for WFST parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.Properties"></a>Properties</h3></div></div>
 
@@ -23,11 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.OpenLayers.Format.WFST.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v1_0_0-js.html#OpenLayers.Format.WFST.v1_0_0" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.WFST.v1_0_0</a> or <a href="v1_1_0-j [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.OpenLayers.Format.WFST.v1"></a>OpenLayers.<wbr>Format.<wbr>WFST.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v1_0_0-js.html#OpenLayers.Format.WFST.v1_0_0" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.WFST.v1_0_0</a> or <a href="v1_1_0-js.html#OpenLayers.Format.WFST.v1_1_0 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  pretty [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a transaction. </div></div><div class=CToolTip id="tt2" [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the respo [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFST/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/WFST/v1_0_0-js.html
index 3e65049..f4b050f 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFST/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFST/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>A format for creating WFS v1.0.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut=" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_0_0</h1><div class=CBody><p>A format for creating WFS v1.0.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WFST.v1_0_0</a> cons [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.0.0 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} O [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_0_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.0.0 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the ins [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WFST/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/WFST/v1_1_0-js.html
index 0902eca..22f5da2 100644
--- a/doc/apidocs/files/OpenLayers/Format/WFST/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WFST/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>A format for creating WFS v1.1.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut=" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_1_0</h1><div class=CBody><p>A format for creating WFS v1.1.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WFST.v1_1_0</a> cons [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.1.0 transactions.</p><p>To read additional information like hit count (numberOfFeatures) from the  FeatureCollection, call the <a href="v1-js.html#OpenLayers.Format.WFST.v1.read" class=LFuncti [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_1_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.1.0 transactions.</p><p>To read additional information like hit count (numberOfFeatures) from the  FeatureCollection, call the <a href="v1-js.html#OpenLayers.Format.WFST.v1.read" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4' [...]
 
 </div><!--Content-->
 
@@ -23,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>A class for parsing and generating WFS v1.1.0 transactions.</div></div><div class=CToolTip id="tt2"><div class=CClass>Write ogc:Filter version 1.1.0.</div></div><div class=CToolTip id="tt3"><div class=CClass>Superclass for WFST parsers.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBe [...]
+<div class=CToolTip id="tt1"><div class=CConstructor>A class for parsing and generating WFS v1.1.0 transactions.</div></div><div class=CToolTip id="tt2"><div class=CClass>Write ogc:Filter version 1.1.0.</div></div><div class=CToolTip id="tt3"><div class=CClass>Superclass for WFST parsers.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=" [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WKT-js.html b/doc/apidocs/files/OpenLayers/Format/WKT-js.html
index 107ab88..56a94ab 100644
--- a/doc/apidocs/files/OpenLayers/Format/WKT-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WKT-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WKT - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WKT - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WKT"></a>OpenLayers.<span class=HB> </span>Format.WKT</h1><div class=CBody><p>Class for reading and writing Well-Known Text.   Create a new instance with the <a href="#OpenLayers.Format.WKT.OpenLayers.Format.WKT" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WKT</a> constructor.</p><h4 class=CHeading>I [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WKT"></a>OpenLayers.<wbr>Format.WKT</h1><div class=CBody><p>Class for reading and writing Well-Known Text.   Create a new instance with the <a href="#OpenLayers.Format.WKT.OpenLayers.Format.WKT" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WKT</a> constructor.</p><h4 class=CHeading>Inherits from</h4>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.OpenLayers.Format.WKT"></a>OpenLayers.<span class=HB> </span>Format.WKT</h3><div class=CBody><p>Create a new parser for WKT</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance</td></tr></table><h4 class=CHeading>Re [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.OpenLayers.Format.WKT"></a>OpenLayers.<wbr>Format.WKT</h3><div class=CBody><p>Create a new parser for WKT</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a h [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMC-js.html b/doc/apidocs/files/OpenLayers/Format/WMC-js.html
index 326e771..eb88a9c 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMC-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMC-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,22 +11,26 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC"></a>OpenLayers.<span class=HB> </span>Format.WMC</h1><div class=CBody><p>Read and write Web Map Context documents.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC"></a>OpenLayers.<wbr>Format.WMC</h1><div class=CBody><p>Read and write Web Map Context documents.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STit [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.0”.</p></div></div></div>
 
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.OpenLayers.Format.WMC"></a>OpenLayers.<wbr>Format.WMC</h3><div class=CBody><p>Create a new parser for Web Map Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
 </div><!--Content-->
 
 
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMC/v1-js.html b/doc/apidocs/files/OpenLayers/Format/WMC/v1-js.html
index 4fc04ce..e6a0aa6 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMC/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMC/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.v1</h1><div class=CBody><p>Superclass for WMC version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1"></a>OpenLayers.<wbr>Format.<wbr>WMC.v1</h1><div class=CBody><p>Superclass for WMC version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.OpenLayers.Format.WMC.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHead [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.OpenLayers.Format.WMC.v1"></a>OpenLayers.<wbr>Format.<wbr>WMC.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHeading>Parameters</h4><table border=0 c [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMC/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/WMC/v1_0_0-js.html
index 844b79a..366f144 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMC/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMC/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read and write WMC version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMC.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WM [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_0_0</h1><div class=CBody><p>Read and write WMC version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMC.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMC.v1</a></li></ul><!--START_ND_SUMMARY--><div class=Su [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WMC</a> cons [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMC/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/WMC/v1_1_0-js.html
index 780beba..d03a125 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMC/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMC/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Read and write WMC version 1.1.0.</p><h4 class=CHeading>Differences between 1.1.0 and 1.0.0</h4><ul><li>1.1.0 Layers have optional sld:MinScaleDenominator and sld:MaxScaleDenominator</li></ul><h4 class=CHeading>Inherits from</h4><ul><li><a hre [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_1_0</h1><div class=CBody><p>Read and write WMC version 1.1.0.</p><h4 class=CHeading>Differences between 1.1.0 and 1.0.0</h4><ul><li>1.1.0 Layers have optional sld:MinScaleDenominator and sld:MaxScaleDenominator</li></ul><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMC.v1" class=LClass i [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WMC</a> cons [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities-js.html
index f0f8347..114b58e 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities</h1><div class=CBody><p>Read WMS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities</h1><div class=CBody><p>Read WMS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.1”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.profile"></a>profile</h3><div class=CBody><p>{String} If provided, use a custom profile.</p><h4 class=CHeading>Currently supported profiles</h4><ul><li>WMSC - parses vendor specific capabilities for WMS-C.</li></ul></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities</h3><div class=CBody><p>Create a new parser for WMS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose prope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities</h3><div class=CBody><p>Create a new parser for WMS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return a list of layers.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Array} List of named layers [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and writ [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html
index 519f0f7..d6be9c6 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="ND [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.  Creates the common parts for both WMS 1.1.X and WMS 1.3.X.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.  Creates the common parts for both WMS 1.1.X and WMS 1.3.X.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.v1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.v1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on thi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and writ [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html
index 2ab63fb..9aedf86 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad=" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.v1_1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMSCapabilities.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.v1_1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMSCapabilities.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMSCapabilities [...]
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html
index 40d14c8..cdc0f2b 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Read WMS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_1_0</h1><div class=CBody><p>Read WMS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMSCapabiliti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.OpenLayers.Format.WMSCapabilities.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.OpenLayers.Format.WMSCapabilities.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.<wbr>v1_1_0</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html
index f9c8fb2..11b3d7c 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_1_1</h1><div class=CBody><p>Read WMS Capabilities version 1.1.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_1_1</h1><div class=CBody><p>Read WMS Capabilities version 1.1.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMSCapabiliti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.OpenLayers.Format.WMSCapabilities.v1_1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.<span class=HB> </span>v1_1_1</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.1.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.OpenLayers.Format.WMSCapabilities.v1_1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.<wbr>v1_1_1</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.1.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC-js.html
new file mode 100644
index 0000000..f35ecfe
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC-js.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" o [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_1_1_WMSC</h1><div class=CBody><p>Read WMS-C Capabilities version 1.1.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="#OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.OpenLayers.Format.WMSCapabilities.v1_1_1" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.OpenLayers.Format.WMSCapabilities.v1_1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.<wbr>v1_1_1</h3><div class=CBody><p>Create a new parser for WMS-C capabilities version 1.1.1.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object  [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new parser for WMS-C capabilities version 1.1.1.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html
index a6e3765..94bbe2e 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad=" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_3</h1><div class=CBody><p>Abstract base class for WMS Capabilities version 1.3.X.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL ta [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_3</h1><div class=CBody><p>Abstract base class for WMS Capabilities version 1.3.X.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/sld<wbr>/1.1 [...]
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html
index 2dd6e0a..be2a52c 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_3_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_3_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_3_0</h1><div class=CBody><p>Read WMS Capabilities version 1.3.0.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL target=_top>http: [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3_0"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_3_0</h1><div class=CBody><p>Read WMS Capabilities version 1.3.0.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/sld<wbr>/1.1.0<wbr>/sld_cap [...]
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer-js.html b/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer-js.html
index c5c6c57..2dfe6de 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSDescribeLayer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSDescribeLayer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer</h1><div class=CBody><p>Read SLD WMS DescribeLayer response DescribeLayer is meant to couple WMS to WFS and WCS</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer</h1><div class=CBody><p>Read SLD WMS DescribeLayer response DescribeLayer is meant to couple WMS to WFS and WCS</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.1”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional obje [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read DescribeLayer data from a string, and retu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.read"></a>read</h3><div class=CBody><p>Read DescribeLayer data from a string, and return the response.  The OGC currently defines 2 formats which are allowed for output, so we need to parse these 2 types</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElem [...]
 
 </div><!--Content-->
 
@@ -33,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([13, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([12, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read DescribeLayer data from a string, and return the response. </div></div><div class=CToolTip id="tt2"><div class=CClass>Read and write  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html b/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html
index 6cff059..41a0564 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSDescribeLayer.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSDescribeLayer.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer.v1_1</h1><div class=CBody><p>Read SLD WMS DescribeLayer response for WMS 1.1.X WMS 1.1.X is tightly coupled to SLD 1.0.0</p><h4 class=CHeading>Example DescribeLayer request</h4><p><a href="http://demo.opengeo.org/geoserver/wms?request=DescribeLayer&version=1.1.1&la [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer.v1_1</h1><div class=CBody><p>Read SLD WMS DescribeLayer response for WMS 1.1.X WMS 1.1.X is tightly coupled to SLD 1.0.0</p><h4 class=CHeading>Example DescribeLayer request</h4><p><a href="http://demo.opengeo.org/geoserver/wms?request=DescribeLayer&version=1.1.1&layers=topp:states" class=LURL target= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read DescribeLayer data from a string, and [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([13, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([12, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read DescribeLayer data from a string, and return the response. </div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read DescribeLayer data from a string, and return the response. </div></div><div class=CTo [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html b/doc/apidocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html
index 78fca82..6c10206 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSGetFeatureInfo</h1><div class=CBody><p>Class to read GetFeatureInfo responses from Web Mapping Services</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')"> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<wbr>Format.<wbr>WMSGetFeatureInfo</h1><div class=CBody><p>Class to read GetFeatureInfo responses from Web Mapping Services</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSGetFeatureInfo</h3><div class=CBody><p>Create a new parser for WMS GetFeatureInfo responses</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional o [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<wbr>Format.<wbr>WMSGetFeatureInfo</h3><div class=CBody><p>Create a new parser for WMS GetFeatureInfo responses</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set o [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read WMS GetFeatureInfo data from a string, an [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read WMS GetFeatureInfo data from a string, and return an array of features</div></div><div class=CToolTip id="tt2"><div class=CClass>Read [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read WMS GetFeatureInfo data from a string, and return an array of features</div></div><di [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities-js.html b/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities-js.html
index ae001d4..8872b45 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMTSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMTSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities</h1><div class=CBody><p>Read WMTS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.XML</a></li></ul><!--STAR [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities</h1><div class=CBody><p>Read WMTS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.yx"></a>yx</h3><div class=CBody><p>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order.   Member names are CRS URNs and values are boolean.   By default, the following CRS URN are assumed to correspond to a CRS with y,x axis order:</p><ul><li>urn:ogc:def:crs:EPSG::4326</li></ul></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities</h3><div class=CBody><p>Create a new parser for WMTS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities</h3><div class=CBody><p>Create a new parser for WMTS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instan [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and retur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return information about the service (offering and observedProperty mostly).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.createLayer"></a>createLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createLayer: function(</td><td class=PParameter nowrap>capabilities,</td></tr><tr><td></td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.createLayer"></a>createLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createLayer: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>config</t [...]
 
 </div><!--Content-->
 
@@ -37,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return information about the service (offering and observedProperty mostly).</div></div><div cla [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createLayer: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html
index 5d841fb..65a1683 100644
--- a/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMTSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMTSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoa [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read WMTS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMTSCapabilities-js.html#OpenLayers.Format.WMTSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', ' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities.<wbr>v1_0_0</h1><div class=CBody><p>Read WMTS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMTSCapabilities-js.html#OpenLayers.Format.WMTSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Create a new parser for WMTS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for WMTS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object who [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, an [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the WMTS.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read WMTS  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the WMTS.</div></div><div clas [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/WPSCapabilities-js.html b/doc/apidocs/files/OpenLayers/Format/WPSCapabilities-js.html
new file mode 100644
index 0000000..e020d5e
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/WPSCapabilities-js.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities</h1><div class=CBody><p>Read WPS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.OpenLayers.Format.WPSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities</h3><div class=CBody><p>Create a new parser for WPS Capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return information about the service.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Object} Info a [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/WPSCapabilities/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Format/WPSCapabilities/v1_0_0-js.html
new file mode 100644
index 0000000..be5beed
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/WPSCapabilities/v1_0_0-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities.<wbr>v1_0_0</h1><div class=CBody><p>Read WPS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.OpenLayers.Format.WPSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for WPS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the WPS.</div></div><div class [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/WPSDescribeProcess-js.html b/doc/apidocs/files/OpenLayers/Format/WPSDescribeProcess-js.html
new file mode 100644
index 0000000..0fcf0ad
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/WPSDescribeProcess-js.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSDescribeProcess - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess"></a>OpenLayers.<wbr>Format.<wbr>WPSDescribeProcess</h1><div class=CBody><p>Read WPS DescribeProcess responses.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div  [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.0.0</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.OpenLayers.Format.WPSDescribeProcess"></a>OpenLayers.<wbr>Format.<wbr>WPSDescribeProcess</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse a WPS DescribeProcess and return an object with its information.</div></div><div cla [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/WPSExecute-js.html b/doc/apidocs/files/OpenLayers/Format/WPSExecute-js.html
new file mode 100644
index 0000000..e0b7636
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/WPSExecute-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSExecute version 1.0.0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0"></a>OpenLayers.<wbr>Format.<wbr>WPSExecute version 1.0.0</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitl [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.0.0</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.OpenLayers.Format.WPSExecute"></a>OpenLayers.<wbr>Format.<wbr>WPSExecute</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Read and write XML. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/XLS-js.html b/doc/apidocs/files/OpenLayers/Format/XLS-js.html
new file mode 100644
index 0000000..53ca5ab
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/XLS-js.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XLS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XLS"></a>OpenLayers.<wbr>Format.XLS</h1><div class=CBody><p>Read/Wite XLS (OpenLS).  Create a new instance with the <a href="#OpenLayers.Format.XLS.OpenLayers.Format.XLS" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XLS</a> constructor.  Currently only implemented for Location Utility Services, m [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.0”.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.stringifyOutput"></a>stringifyOutput</h3><div class=CBody><p>{Boolean} If true, write will return a string otherwise a DOMElement.  Default is true.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.OpenLayers.Format.XLS"></a>OpenLayers.<wbr>Format.XLS</h3><div class=CBody><p>Create a new parser for XLS.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.write"></a>write</h3><div class=CBody><p>Write out an XLS request.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>request</td><td class=CDLDescription>{Object} An object representing the LUS request.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional configuration object.</td></tr></tab [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.read"></a>read</h3><div class=CBody><p>Read an XLS doc and return an object representing the result.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for the reader.</td [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new parser for XLS.</div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/XLS/v1-js.html b/doc/apidocs/files/OpenLayers/Format/XLS/v1-js.html
new file mode 100644
index 0000000..41574b4
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/XLS/v1-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XLS.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XLS.v1"></a>OpenLayers.<wbr>Format.<wbr>XLS.v1</h1><div class=CBody><p>Superclass for XLS version 1 parsers.  Only supports GeocodeRequest for now.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML</a></li></ul><!- [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.xy"></a>xy</h3><div class=CBody><p>{Boolean} Order of the GML coordinate true:(x,y) or false:(y,x) Changing is not recommended, a new Format should be instantiated.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.OpenLayers.Format.XLS.v1"></a>OpenLayers.<wbr>Format.<wbr>XLS.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../XLS-js.html#OpenLayers.Format.XLS" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XLS</a> constructor instead.</p><h4 class=CHeading>Parameters</h4><table border=0 c [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Read and write XML. </div></div><div class=CToolTip id="tt2"><div class=CClass>Read/Wite XLS (OpenLS). </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/XLS/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Format/XLS/v1_1_0-js.html
new file mode 100644
index 0000000..21e3db3
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/XLS/v1_1_0-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XLS.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>XLS.<wbr>v1_1_0</h1><div class=CBody><p>Read / write XLS version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.XLS.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XLS.v1</a></li></ul><!--START_ND_SUMMARY--><div class=Summ [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.1</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.OpenLayers.Format.XLS.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>XLS.<wbr>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../XLS-js.html#OpenLayers.Format.XLS" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XLS</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Superclass for XLS version 1 parsers. </div></div><div class=CToolTip id="tt2"><div class=CClass>Read/Wite XLS (OpenLS). </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Format/XML-js.html b/doc/apidocs/files/OpenLayers/Format/XML-js.html
index a6a1060..5e6881f 100644
--- a/doc/apidocs/files/OpenLayers/Format/XML-js.html
+++ b/doc/apidocs/files/OpenLayers/Format/XML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.XML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,47 +11,47 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XML"></a>OpenLayers.<span class=HB> </span>Format.XML</h1><div class=CBody><p>Read and write XML.   For cross-browser XML generation, use methods on an instance of the XML format class instead of on <code>document<end>.  The DOM creation and traversing methods exposed here all mimic the W3C XML DOM methods.   Create a new parser with the <a href="#Open [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XML"></a>OpenLayers.<wbr>Format.XML</h1><div class=CBody><p>Read and write XML.   For cross-browser XML generation, use methods on an instance of the XML format class instead of on <code>document<end>.  The DOM creation and traversing methods exposed here all mimic the W3C XML DOM methods.   Create a new parser with the <a href="#OpenLayers.Format.XML. [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML"></a>OpenLayers.<span class=HB> </span>Format.XML</h3><div class=CBody><p>Construct an XML parser.   The parser is used to read and write XML.  Reading XML from a string returns a DOM element.   Writing XML from a DOM element returns a string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=C [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML"></a>OpenLayers.<wbr>Format.XML</h3><div class=CBody><p>Construct an XML parser.   The parser is used to read and write XML.  Reading XML from a string returns a DOM element.   Writing XML from a DOM element returns a string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize a DOM node into a XML string.</p><h4 class=CHea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createElementNS"></a>createElementNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createElementNS: function(</td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createElementNS"></a>createElementNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createElementNS: function(</td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createTextNode"></a>createTextNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createTextNode: function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a text node.   Thi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createTextNode"></a>createTextNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createTextNode: function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getElementsByTagNameNS"></a>getElementsByTagNameNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getElementsByTagNameNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParamete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getElementsByTagNameNS"></a>getElementsByTagNameNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getElementsByTagNameNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNodeNS"></a>getAttributeNodeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getAttributeNodeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>nam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNodeNS"></a>getAttributeNodeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getAttributeNodeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNS"></a>getAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNS"></a>getAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildValue"></a>getChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getChildValue: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>def</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildValue"></a>getChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getChildValue: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>def</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.concatChildValues"></a>concatChildValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>concatChildValues: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>def</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.concatChildValues"></a>concatChildValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>concatChildValues: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>def</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.isSimpleContent"></a>isSimpleContent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isSimpleContent: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test if the given node has  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.isSimpleContent"></a>isSimpleContent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isSimpleContent: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.contentType"></a>contentType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contentType: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine the content type for a given  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.contentType"></a>contentType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contentType: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.hasAttributeNS"></a>hasAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>hasAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.hasAttributeNS"></a>hasAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>hasAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setAttributeNS"></a>setAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setAttributeNS"></a>setAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildEl"></a>getChildEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getChildEl: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>uri</td><td class=PAfterPa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildEl"></a>getChildEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getChildEl: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getNextEl"></a>getNextEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNextEl: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>uri</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getNextEl"></a>getNextEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNextEl: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.lookupNamespaceURI"></a>lookupNamespaceURI</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>lookupNamespaceURI: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>prefix</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.lookupNamespaceURI"></a>lookupNamespaceURI</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>lookupNamespaceURI: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>prefix</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML.lookupNamespaceURI"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>XML.<span class=HB> </span>lookupNamespaceURI</h3><div class=CBody><p>Takes a prefix and returns the namespace URI associated with it on the given node if found (and null if not).  Supplying null for the prefix will return the default namespace.</p><p>For browsers that support it, this c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML.lookupNamespaceURI"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>lookupNamespaceURI</h3><div class=CBody><p>Takes a prefix and returns the namespace URI associated with it on the given node if found (and null if not).  Supplying null for the prefix will return the default namespace.</p><p>For browsers that support it, this calls the native lookupNamesapceURI function.   In [...]
 
 </div><!--Content-->
 
@@ -59,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>node</td><td class=PAfterPara [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParame [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Format/XML/VersionedOGC-js.html b/doc/apidocs/files/OpenLayers/Format/XML/VersionedOGC-js.html
new file mode 100644
index 0000000..d36e147
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Format/XML/VersionedOGC-js.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XML.VersionedOGC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>VersionedOGC</h1><div class=CBody><p>Base class for versioned formats, i.e. a format which supports multiple versions.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Fo [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.profile"></a>profile</h3><div class=CBody><p>{String} If provided, use a custom profile.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.errorProperty"></a>errorProperty</h3><div class=CBody><p>{String} Which property of the returned object to check for in order to determine whether or not parsing has failed.  In the case that the errorProperty is undefined on the returned object, the document will be run through an OGCExceptionReport parser.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.stringifyOutput"></a>stringifyOutput</h3><div class=CBody><p>{Boolean} If true, write will return a string otherwise a DOMElement.  Default is false.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.OpenLayers.Format.XML.VersionedOGC"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>VersionedOGC.</h3><div class=CBody><p>Constructor.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the object.</td></tr></table></div></d [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParamet [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameter [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Write a documen [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Geometry-js.html b/doc/apidocs/files/OpenLayers/Geometry-js.html
index 8fbe7ef..d2abeee 100644
--- a/doc/apidocs/files/OpenLayers/Geometry-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry"></a>OpenLayers.<span class=HB> </span>Geometry</h1><div class=CBody><p>A Geometry is a description of a geographic object.   Create an instance of this class with the <a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Geometry</a> constructor.   This is a  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry"></a>OpenLayers.<wbr>Geometry</h1><div class=CBody><p>A Geometry is a description of a geographic object.   Create an instance of this class with the <a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Geometry</a> constructor.   This is a base class, typica [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry"></a>OpenLayers.<span class=HB> </span>Geometry</h3><div class=CBody><p>Creates a geometry object.</p></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry"></a>OpenLayers.<wbr>Geometry</h3><div class=CBody><p>Creates a geometry object.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Create a clone of this geometry.   Does not set any non-standard properties of the cloned geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor id=link8 onMouseOver="S [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Create a clone of this geometry.   Does not set any non-standard properties of the cloned geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor i [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getBounds"></a>getBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getBounds: function()</td></tr></table></blockquote><p>Get the bounds for this Geometry.  If bounds is not set, it is calculated again, this makes queries faster.</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getBounds"></a>getBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getBounds: function()</td></tr></table></blockquote><p>Get the bounds for this Geometry.  If bounds is not set, it is calculated again, this makes queries faster.</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds for the geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds for the geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points in this geom [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCentroid: function()</td></tr></table></blockquote><p>Calculate the centroid of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link11 onMouseOver=" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCentroid: function()</td></tr></table></blockquote><p>Calculate the centroid of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass i [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote>Create a clone of this geometry. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getBounds: function()</td></tr></table></blockquote>Get the bounds for this Geometry. </div></div><div class=CToolTip id="tt3"><div class=C [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote>Create a clone of this geometry. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getBounds: function()</td></tr></table></blockquote>Get the bounds for this Geometry. </div></d [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/Collection-js.html b/doc/apidocs/files/OpenLayers/Geometry/Collection-js.html
index 710b754..5e95aad 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/Collection-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/Collection-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Collection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Collection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Collection"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Collection</h1><div class=CBody><p>A Collection is exactly what it sounds like: A collection of different Geometries.  These are stored in the local parameter <a href="#OpenLayers.Geometry.Collection.components" class=LProperty id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Collection"></a>OpenLayers.<wbr>Geometry.<wbr>Collection</h1><div class=CBody><p>A Collection is exactly what it sounds like: A collection of different Geometries.  These are stored in the local parameter <a href="#OpenLayers.Geometry.Collection.components" class=LProperty id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">components</a> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.Properties"></a>Properties</h3></div></div>
 
@@ -19,45 +19,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Collection</h3><div class=CBody><p>Creates a Geometry Collection -- a list of geoms.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="../Geometry-js.html#O [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection"></a>OpenLayers.<wbr>Geometry.<wbr>Collection</h3><div class=CBody><p>Creates a Geometry Collection -- a list of geoms.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote><p>Destroy this geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote><p>Destroy this geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clone this geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection" class=LConstructor id=link27 onMouseOver="ShowTip(event, 'tt21', 'link27')" onMouseOut="HideT [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clone this geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection" class=LConstructor id=link27 onMouseOver="ShowTip(event, 'tt21', 'link2 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds by iterating through the components and calling calling extendBounds() on each item.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds by iterating through the components and calling calling extendBounds() on each item.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.addComponents"></a>addComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponents: function(</td><td class=PParameter nowrap>components</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add components to  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.addComponents"></a>addComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponents: function(</td><td class="PParameter  prettyprint " nowrap>components</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.removeComponents"></a>removeComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponents: function(</td><td class=PParameter nowrap>components</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove co [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.removeComponents"></a>removeComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponents: function(</td><td class="PParameter  prettyprint " nowrap>components</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><p>Calculate the length of this geometry</p><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><p>Calculate the length of this geometry</p><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><p>Calculate the area of this geometry.  Note how this function is overridden in <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt22', 'link30')" onMouseOut=" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><p>Calculate the area of this geometry.  Note how this function is overridden in <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt22', ' [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicArea: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicArea: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getCentroid: function(</td><td class=PParameter nowrap>weighted</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Compute the centroid for t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getCentroid: function(</td><td class="PParameter  prettyprint " nowrap>weighted</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicLength: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calcul [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicLength: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>M [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rotate: function(</td><td class=PParameter nowrap>angle,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rotate: function(</td><td class="PParameter  prettyprint " nowrap>angle,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resize: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>ratio</td><td class=PAfter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resize: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether another geometry is equ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geomet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -65,15 +65,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote>Destroy this geometry.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote>Destroy this geometry.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prett [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/Curve-js.html b/doc/apidocs/files/OpenLayers/Geometry/Curve-js.html
index 05dced4..0902547 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/Curve-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/Curve-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Curve - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Curve - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Curve"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Curve</h1><div class=CBody><p>A Curve is a MultiPoint, whose points are assumed to be connected.  To this end, we provide a “getLength()” function, which iterates through the points, summing the distances between them.</p><h4 class=CHeading>Inherits</h4><ul><li><a href="MultiPoint-js. [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Curve"></a>OpenLayers.<wbr>Geometry.<wbr>Curve</h1><div class=CBody><p>A Curve is a MultiPoint, whose points are assumed to be connected.  To this end, we provide a “getLength()” function, which iterates through the points, summing the distances between them.</p><h4 class=CHeading>Inherits</h4><ul><li><a href="MultiPoint-js.html#OpenLayers.Geometry.MultiPoint" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.OpenLayers.Geometry.Curve"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Curve</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.OpenLayers.Geometry.Curve"></a>OpenLayers.<wbr>Geometry.<wbr>Curve</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the curve</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the curve</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicLength: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicLength: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote>{Float} The length of the curve</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicLength: function(</td><td class=PParameter  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote>{Float} The length of the curve</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicLeng [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/LineString-js.html b/doc/apidocs/files/OpenLayers/Geometry/LineString-js.html
index a02997d..1d26164 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/LineString-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/LineString-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.LineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.LineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LineString</h1><div class=CBody><p>A LineString is a Curve which, once two points have been added to it, can never be less than two points long.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Curve-js.html#OpenLayers.Geometry.Curve" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LineString"></a>OpenLayers.<wbr>Geometry.<wbr>LineString</h1><div class=CBody><p>A LineString is a Curve which, once two points have been added to it, can never be less than two points long.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Curve-js.html#OpenLayers.Geometry.Curve" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.OpenLayers.Geometry.LineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LineString</h3><div class=CBody><p>Create a new LineString geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" c [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.OpenLayers.Geometry.LineString"></a>OpenLayers.<wbr>Geometry.<wbr>LineString</h3><div class=CBody><p>Create a new LineString geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link7 onMouseOver="Sh [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Only allows remov [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test for instersection betwee [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.simplify"></a>simplify</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>simplify: function(</td><td class="PParameter  prettyprint " nowrap>tolerance</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -33,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Only allows removal of a point if there are three or more points in the linestring. </div></div><div class=CToolTip id="tt2">< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Only allows removal of a point if there are three or more points in the linest [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/LinearRing-js.html b/doc/apidocs/files/OpenLayers/Geometry/LinearRing-js.html
index 1c94f80..b9cdad4 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/LinearRing-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/LinearRing-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.LinearRing - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.LinearRing - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,35 +11,35 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LinearRing"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LinearRing</h1><div class=CBody><p>A Linear Ring is a special LineString which is closed.  It closes itself automatically on every addPoint/removePoint by adding a copy of the first point as the last point.</p><p>Also, as it is the first in the line family to close itself, a getArea() functi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LinearRing"></a>OpenLayers.<wbr>Geometry.<wbr>LinearRing</h1><div class=CBody><p>A Linear Ring is a special LineString which is closed.  It closes itself automatically on every addPoint/removePoint by adding a copy of the first point as the last point.</p><p>Also, as it is the first in the line family to close itself, a getArea() function is defined to calculate the enclo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.OpenLayers.Geometry.LinearRing"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LinearRing</h3><div class=CBody><p>Linear rings are constructed with an array of points.   This array can represent a closed or open ring.   If the ring is open (the last point does not equal the first point), the constructor will close the ring.   If the ring is already cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.OpenLayers.Geometry.LinearRing"></a>OpenLayers.<wbr>Geometry.<wbr>LinearRing</h3><div class=CBody><p>Linear rings are constructed with an array of points.   This array can represent a closed or open ring.   If the ring is open (the last point does not equal the first point), the constructor will close the ring.   If the ring is already closed (the last point does equal the  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.addComponent"></a>addComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponent: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.addComponent"></a>addComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponent: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes a point f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>M [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rotate: function(</td><td class=PParameter nowrap>angle,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rotate: function(</td><td class="PParameter  prettyprint " nowrap>angle,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resize: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>ratio</td><td class=PAfter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resize: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt8', 'link22')" onMouseOut="HideTip('tt8')">OpenLayers.Geometry.Point</a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt8', 'link22')" onMouseOut="HideTip('tt8')">OpenLa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Note</td><td class=CDLDescription>The area is positive if the ring is oriented CW, otherwise it will be negative.</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Note</td><td class=CDLDescription>The area is positive if the ring is oriented CW, otherwise it will be negati [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicArea: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicArea: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geomet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponent: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a point to geometry components. </div></div><div class=CToolTip id= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponent: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a p [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/MultiLineString-js.html b/doc/apidocs/files/OpenLayers/Geometry/MultiLineString-js.html
index dcfa315..6168379 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/MultiLineString-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/MultiLineString-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.MultiLineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.MultiLineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiLineString</h1><div class=CBody><p>A MultiLineString is a geometry with multiple <a href="LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.LineString</a> components.</p>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<wbr>Geometry.<wbr>MultiLineString</h1><div class=CBody><p>A MultiLineString is a geometry with multiple <a href="LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.LineString</a> components.</p><h4 class=CHeading>Inherits from</h4> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiLineString</h3><div class=CBody><p>Constructor for a MultiLineString Geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="LineString-j [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<wbr>Geometry.<wbr>MultiLineString</h3><div class=CBody><p>Constructor for a MultiLineString Geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="LineString-js.html#OpenLayers.Geometry.LineStrin [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/MultiPoint-js.html b/doc/apidocs/files/OpenLayers/Geometry/MultiPoint-js.html
index 3da6aa0..5a57d80 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/MultiPoint-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/MultiPoint-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.MultiPoint - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.MultiPoint - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPoint</h1><div class=CBody><p>MultiPoint is a collection of Points.   Create a new instance with the <a href="#OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.G [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPoint</h1><div class=CBody><p>MultiPoint is a collection of Points.   Create a new instance with the <a href="#OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Geometry.MultiPoint</a> constructor.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPoint</h3><div class=CBody><p>Create a new MultiPoint Geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Poin [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPoint</h3><div class=CBody><p>Create a new MultiPoint Geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link6 onMouseOver [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPoint: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPoint: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.removePoint"></a>removePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removePoint: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Wrapper for <OpenLayers.Ge [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.removePoint"></a>removePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removePoint: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPoint: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Wrapper for OpenLayers.Geometry.Collection.addComponent</div></div><div clas [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPoint: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Wrapper for  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/MultiPolygon-js.html b/doc/apidocs/files/OpenLayers/Geometry/MultiPolygon-js.html
index 14cf4ef..0032404 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/MultiPolygon-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/MultiPolygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.MultiPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.MultiPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPolygon</h1><div class=CBody><p>MultiPolygon is a geometry with multiple <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.Polygon</a> components.   Create a new inst [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPolygon</h1><div class=CBody><p>MultiPolygon is a geometry with multiple <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.Polygon</a> components.   Create a new instance with the <a href="#OpenLayers.G [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPolygon</h3><div class=CBody><p>Create a new MultiPolygon geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Polygon-js.html#OpenLayers.Geo [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPolygon</h3><div class=CBody><p>Create a new MultiPolygon geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link5 [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/Point-js.html b/doc/apidocs/files/OpenLayers/Geometry/Point-js.html
index fad7e6e..2dadbe2 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/Point-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/Point-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Point"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</h1><div class=CBody><p>Point geometry class.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">OpenLayers.Geometry</a></li></ul><!--START_ND_SUMMARY [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Point"></a>OpenLayers.<wbr>Geometry.<wbr>Point</h1><div class=CBody><p>Point geometry class.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">OpenLayers.Geometry</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.Properties"></a>Properties</h3></div></div>
 
@@ -21,29 +21,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.OpenLayers.Geometry.Point"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</h3><div class=CBody><p>Construct a point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{float}</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{float}</td> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.OpenLayers.Geometry.Point"></a>OpenLayers.<wbr>Geometry.<wbr>Point</h3><div class=CBody><p>Construct a point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{float}</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{float}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.G [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals: function(</td><td class=PParameter nowrap>geom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether another geometry is equivalent t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals: function(</td><td class="PParameter  prettyprint " nowrap>geom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>De [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rotate: function(</td><td class=PParameter nowrap>angle,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rotate: function(</td><td class="PParameter  prettyprint " nowrap>angle,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Point.OpenLayers.Geometry.Point" class=LConstructor id=link18 onMouseOver="ShowTip(event, 'tt2', 'link18')" onMouseOut="HideTip('tt2')">OpenLayers.Geo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Point.OpenLayers.Geometry.Point" class=LConstructor id=link18 onMouseOver="ShowTip(event, 'tt2', 'link18')" onMouseOut="HideTip( [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resize: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>ratio</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resize: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geometry in [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points in thi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>{OpenLayers.Geometry.Point} An exact clone of this OpenLayers.Geometry.Point</div></div><div class=CToolTip id="tt2"><div class=CConstruct [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>{OpenLayers.Geometry.Point} An exact clone of this OpenLayers.Geometry.Point</div></div><d [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/Polygon-js.html b/doc/apidocs/files/OpenLayers/Geometry/Polygon-js.html
index 2ae424c..c059ea3 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/Polygon-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/Polygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Polygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Polygon</h1><div class=CBody><p>Polygon is a collection of Geometry.LinearRings.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Collection-js.html#OpenLayers.Geometry.Collection" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Geome [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Polygon"></a>OpenLayers.<wbr>Geometry.<wbr>Polygon</h1><div class=CBody><p>Polygon is a collection of Geometry.LinearRings.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Collection-js.html#OpenLayers.Geometry.Collection" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry.Collection</a></li><li><a href=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.OpenLayers.Geometry.Polygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Polygon</h3><div class=CBody><p>Constructor for a Polygon geometry.  The first ring (this.component[0])is the outer bounds of the polygon and all subsequent rings (this.component[1-n]) are internal holes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 clas [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.OpenLayers.Geometry.Polygon"></a>OpenLayers.<wbr>Geometry.<wbr>Polygon</h3><div class=CBody><p>Constructor for a Polygon geometry.  The first ring (this.component[0])is the outer bounds of the polygon and all subsequent rings (this.component[1-n]) are internal holes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDL [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><p>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</p><h4 class=CHeading>Returns</h4><p>{float} The area of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><p>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</p><h4 class=CHeading>Returns</h4><p>{float} The area of the geometry</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicArea: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate the a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicArea: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geometry  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.createRegularPolygon"></a>createRegularPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Geometry.Polygon.createRegularPolygon = function(</td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>radius,</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.createRegularPolygon"></a>createRegularPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Geometry.Polygon.createRegularPolygon = function(</td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td class= [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowr [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td clas [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Geometry/Rectangle-js.html b/doc/apidocs/files/OpenLayers/Geometry/Rectangle-js.html
index 9771876..9458a97 100644
--- a/doc/apidocs/files/OpenLayers/Geometry/Rectangle-js.html
+++ b/doc/apidocs/files/OpenLayers/Geometry/Rectangle-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Rectangle - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Rectangle - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Rectangle"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Rectangle</h1><div class=CBody><p>This class is <b>not supported</b>, and probably isn’t what you’re looking for.  Instead, most users probably want something like:</p><blockquote><pre>var poly = new OpenLayers.Bounds(0,0,10,10).toGeometry();</pre></blockquote><p>This will create  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Rectangle"></a>OpenLayers.<wbr>Geometry.<wbr>Rectangle</h1><div class=CBody><p>This class is <b>not supported</b>, and probably isn’t what you’re looking for.  Instead, most users probably want something like:</p><blockquote><pre class="prettyprint">var poly = new OpenLayers.Bounds(0,0,10,10).toGeometry();</pre></blockquote><p>This will create a rectangular Po [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.OpenLayers.Geometry.Rectangle"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Rectangle</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link4 onMouseOver="ShowTip( [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.OpenLayers.Geometry.Rectangle"></a>OpenLayers.<wbr>Geometry.<wbr>Rectangle</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The area of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The area of the geometry</p></div></div></div>
 
 </div><!--Content-->
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote>{Float} The length of the geometry</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote>{Float} The area of the geometry</div></div><div class=CToolTip id="tt3"><div class= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote>{Float} The length of the geometry</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote>{Float} The area of the geometry</div></ [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler-js.html b/doc/apidocs/files/OpenLayers/Handler-js.html
index 07416ef..f114b48 100644
--- a/doc/apidocs/files/OpenLayers/Handler-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler"></a>OpenLayers.<span class=HB> </span>Handler</h1><div class=CBody><p>Base class to construct a higher-level handler for event sequences.   All handlers have activate and deactivate methods.   In addition, they have methods named like browser events.   When a handler is activated, any additional methods named like a browser event is registered as a listener for  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler"></a>OpenLayers.<wbr>Handler</h1><div class=CBody><p>Base class to construct a higher-level handler for event sequences.   All handlers have activate and deactivate methods.   In addition, they have methods named like browser events.   When a handler is activated, any additional methods named like a browser event is registered as a listener for the corresponding  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.control"></a>control</h3><div class=CBody><p>{<a href="Control-js.html#OpenLayers.Control" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a>}.  The control that initialized this handler.   The control is assumed to have a valid map property - that map is used in the handler’s own setMap method.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.keyMask"></a>keyMask</h3><div class=CBody><p>{Integer} Use bitwise operators and one or more of the OpenLayers.Handler constants to construct a keyMask.   The keyMask is used by <checkModifiers>.   If the keyMask matches the combination of keys down on an event, checkModifiers returns true.</p><h4 class=CHeading>Example</h4><blockquote><pre>// handler only responds if the Shift key is down
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.keyMask"></a>keyMask</h3><div class=CBody><p>{Integer} Use bitwise operators and one or more of the OpenLayers.Handler constants to construct a keyMask.   The keyMask is used by <checkModifiers>.   If the keyMask matches the combination of keys down on an event, checkModifiers returns true.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">// handler only responds if [...]
 handler.keyMask = OpenLayers.Handler.MOD_SHIFT;
 
 // handler only responds if Ctrl-Shift is down
@@ -26,23 +26,23 @@ handler.keyMask = OpenLayers.Handler.MOD_SHIFT |
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler"></a>OpenLayers.<span class=HB> </span>Handler</h3><div class=CBody><p>Construct a handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="Control-js.html#OpenLayers.Control" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="Hid [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler"></a>OpenLayers.<wbr>Handler</h3><div class=CBody><p>Construct a handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="Control-js.html#OpenLayers.Control" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">OpenL [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Turn on the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Turn on the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.   Returns false if the handler was already inactive.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.   Returns false if the handler was already inactive.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was deactivated.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_NONE"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_NONE</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt4', 'link10')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if any key is down.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_NONE"></a>OpenLayers.<wbr>Handler.<wbr>MOD_NONE</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link10 onMouseOver="ShowTip(event, 'tt4', 'link10')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if any key is down.</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_SHIFT"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_SHIFT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if Shift is down.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_SHIFT"></a>OpenLayers.<wbr>Handler.<wbr>MOD_SHIFT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if Shift is down.</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_CTRL"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_CTRL</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link12 onMouseOver="ShowTip(event, 'tt4', 'link12')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if Ctrl is down.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_CTRL"></a>OpenLayers.<wbr>Handler.<wbr>MOD_CTRL</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link12 onMouseOver="ShowTip(event, 'tt4', 'link12')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if Ctrl is down.</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_ALT"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_ALT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link13 onMouseOver="ShowTip(event, 'tt4', 'link13')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if Alt is down.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_ALT"></a>OpenLayers.<wbr>Handler.<wbr>MOD_ALT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link13 onMouseOver="ShowTip(event, 'tt4', 'link13')" onMouseOut="HideTip('tt4')">keyMask</a>, <checkModifiers> returns false if Alt is down.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -50,15 +50,15 @@ handler.keyMask = OpenLayers.Handler.MOD_SHIFT |
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Turn on the handler. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></tab [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Turn on the handler. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="pretty [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Box-js.html b/doc/apidocs/files/OpenLayers/Handler/Box-js.html
index d0237f7..4fdd8b2 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Box-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Box-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Box"></a>OpenLayers.<span class=HB> </span>Handler.Box</h1><div class=CBody><p>Handler for dragging a rectangle across the map.   Box is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')"  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Box"></a>OpenLayers.<wbr>Handler.Box</h1><div class=CBody><p>Handler for dragging a rectangle across the map.   Box is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.OpenLayers.Handler.Box"></a>OpenLayers.<span class=HB> </span>Handler.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.OpenLayers.Handler.Box"></a>OpenLayers.<wbr>Handler.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Contro [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Click-js.html b/doc/apidocs/files/OpenLayers/Handler/Click-js.html
index 4066f48..b2ce2e7 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Click-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Click-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Click - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Click - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Click"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Click</h1><div class=CBody><p>A handler for mouse clicks.   The intention of this handler is to give controls more flexibility with handling clicks.   Browsers trigger click events twice for a double-click.   In addition, the mousedown, mousemove, mouseup sequence fires a click event.&nbs [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Click"></a>OpenLayers.<wbr>Handler.<wbr>Click</h1><div class=CBody><p>A handler for mouse clicks.   The intention of this handler is to give controls more flexibility with handling clicks.   Browsers trigger click events twice for a double-click.   In addition, the mousedown, mousemove, mouseup sequence fires a click event.   With this handler, controls can  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.Properties"></a>Properties</h3></div></div>
 
@@ -23,17 +23,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.pixelTolerance"></a>pixelTolerance</h3><div class=CBody><p>{Number} Maximum number of pixels between mouseup and mousedown for an event to be considered a click.   Default is 0.   If set to an integer value, clicks with a drag greater than the value will be ignored.   This property can only be set when the handler is constructed.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.stopSingle"></a>stopSingle</h3><div class=CBody><p>{Boolean} Stop other listeners from being notified of clicks.   Default is false.   If true, any click listeners registered before this one will not be notified of <b>any</b> click event (associated with double or single clicks).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.dblclickTolerance"></a>dblclickTolerance</h3><div class=CBody><p>{Number} Maximum distance in pixels between clicks for a sequence of events to be considered a double click.   Default is 13.   If the distance between two clicks is greater than this value, a double- click will not be fired.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.stopSingle"></a>stopSingle</h3><div class=CBody><p>{Boolean} Stop other listeners from being notified of clicks.   Default is false.   If true, any listeners registered before this one for click or rightclick events will not be notified.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.stopDouble"></a>stopDouble</h3><div class=CBody><p>{Boolean} Stop other listeners from being notified of double-clicks.  Default is false.   If true, any click listeners registered before this one will not be notified of <b>any</b> double-click events.</p><p>The one caveat with stopDouble is that given a map with two click handlers, one with stopDouble true and the other with stopSingle  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.OpenLayers.Handler.Click"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Click</h3><div class=CBody><p>Create a new click handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOv [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.OpenLayers.Handler.Click"></a>OpenLayers.<wbr>Handler.<wbr>Click</h3><div class=CBody><p>Create a new click handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')"  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -41,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the handler.</div></div><div class=CToolTip id="tt2"><div class=CProperty>{Number} Maximum number of pixels between mouseup and mousedown for an event to be considered a click. </div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a new click handler.</div></div><div class=CToolT [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the handler.</div></div><div class=CToolTip id="tt2"><div class=CProperty>{Number} Maximum number of pixels between mouseup and mousedown for an event to be considered a click. </div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a new click handler.</div>< [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Drag-js.html b/doc/apidocs/files/OpenLayers/Handler/Drag-js.html
index 2c4c909..a1d724a 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Drag-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Drag-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Drag - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Drag - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Drag"></a>OpenLayers.<span class=HB> </span>Handler.Drag</h1><div class=CBody><p>The drag handler is used to deal with sequences of browser events related to dragging.   The handler is used by controls that want to know when a drag sequence begins, when a drag is happening, and when it has finished.</p><p>Controls that use the drag handler typically construct it with callb [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Drag"></a>OpenLayers.<wbr>Handler.Drag</h1><div class=CBody><p>The drag handler is used to deal with sequences of browser events related to dragging.   The handler is used by controls that want to know when a drag sequence begins, when a drag is happening, and when it has finished.</p><p>Controls that use the drag handler typically construct it with callbacks for ‘do [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.OpenLayers.Handler.Drag"></a>OpenLayers.<span class=HB> </span>Handler.Drag</h3><div class=CBody><p>Returns OpenLayers.Handler.Drag</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.OpenLayers.Handler.Drag"></a>OpenLayers.<wbr>Handler.Drag</h3><div class=CBody><p>Returns OpenLayers.Handler.Drag</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMo [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Feature-js.html b/doc/apidocs/files/OpenLayers/Handler/Feature-js.html
index 20b8986..4d9dd55 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Feature-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Feature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Feature"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Feature</h1><div class=CBody><p>Handler to respond to mouse events related to a drawn feature.   Callbacks with the following keys will be notified of the following events associated with features: click, clickout, over, out, and dblclick.</p><p>This handler stops event propagation for mousedown  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Feature"></a>OpenLayers.<wbr>Handler.<wbr>Feature</h1><div class=CBody><p>Handler to respond to mouse events related to a drawn feature.   Callbacks with the following keys will be notified of the following events associated with features: click, clickout, over, out, and dblclick.</p><p>This handler stops event propagation for mousedown and mouseup if those browser events  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.OpenLayers.Handler.Feature"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Feature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'l [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.OpenLayers.Handler.Feature"></a>OpenLayers.<wbr>Handler.<wbr>Feature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')"> [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Hover-js.html b/doc/apidocs/files/OpenLayers/Handler/Hover-js.html
index 76bb2a6..fe8fd8d 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Hover-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Hover-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Hover - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Hover - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Hover"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Hover</h1><div class=CBody><p>The hover handler is to be used to emulate mouseovers on objects on the map that aren’t DOM elements.  For example one can use this handler to send WMS/GetFeatureInfo requests as the user moves the mouve over the map.</p><h4 class=CHeading>Inherits from</h4><ul>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Hover"></a>OpenLayers.<wbr>Handler.<wbr>Hover</h1><div class=CBody><p>The hover handler is to be used to emulate mouseovers on objects on the map that aren’t DOM elements.  For example one can use this handler to send WMS/GetFeatureInfo requests as the user moves the mouve over the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenL [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.Properties"></a>Properties</h3></div></div>
 
@@ -23,11 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.OpenLayers.Handler.Hover"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Hover</h3><div class=CBody><p>Construct a hover handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOve [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.OpenLayers.Handler.Hover"></a>OpenLayers.<wbr>Handler.<wbr>Hover</h3><div class=CBody><p>Construct a hover handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" o [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the handler.</div></div><div class=CToolTip id="tt2"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the handler.</div></div><div class=CToolTip id="tt2"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOO [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Keyboard-js.html b/doc/apidocs/files/OpenLayers/Handler/Keyboard-js.html
index 55a8acf..af9cc9b 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Keyboard-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Keyboard-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.handler.Keyboard - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.handler.Keyboard - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.handler.Keyboard"></a>OpenLayers.<span class=HB> </span>handler.<span class=HB> </span>Keyboard</h1><div class=CBody><p>A handler for keyboard events.   Create a new instance with the <a href="#OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Keyboard</a> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.handler.Keyboard"></a>OpenLayers.<wbr>handler.<wbr>Keyboard</h1><div class=CBody><p>A handler for keyboard events.   Create a new instance with the <a href="#OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Keyboard</a> constructor.</p><h4 class=CHeading> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Keyboard</h3><div class=CBody><p>Returns a new keyboard handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=li [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard"></a>OpenLayers.<wbr>Handler.<wbr>Keyboard</h3><div class=CBody><p>Returns a new keyboard handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3 [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/MouseWheel-js.html b/doc/apidocs/files/OpenLayers/Handler/MouseWheel-js.html
index d598508..c5eaf17 100644
--- a/doc/apidocs/files/OpenLayers/Handler/MouseWheel-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/MouseWheel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.MouseWheel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.MouseWheel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.MouseWheel"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MouseWheel</h1><div class=CBody><p>Handler for wheel up/down events.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Handler</a></li></ul><!--STA [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.MouseWheel"></a>OpenLayers.<wbr>Handler.<wbr>MouseWheel</h1><div class=CBody><p>Handler for wheel up/down events.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Handler</a></li></ul><!--START_ND_SUMMARY--><div class=Summary>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.OpenLayers.Handler.MouseWheel"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MouseWheel</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event,  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.OpenLayers.Handler.MouseWheel"></a>OpenLayers.<wbr>Handler.<wbr>MouseWheel</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Path-js.html b/doc/apidocs/files/OpenLayers/Handler/Path-js.html
index 036b857..d4879a5 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Path-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Path-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Path - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Path - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Path"></a>OpenLayers.<span class=HB> </span>Handler.Path</h1><div class=CBody><p>Handler to draw a path on the map.   Path is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Point-js.html#OpenLayers.Handler.Point" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Path"></a>OpenLayers.<wbr>Handler.Path</h1><div class=CBody><p>Handler to draw a path on the map.   Path is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Point-js.html#OpenLayers.Handler.Point" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')"> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.maxVertices"></a>maxVertices</h3><div class=CBody><p>{Number} The maximum number of vertices which can be drawn by this handler.  When the number of vertices reaches maxVertices, the geometry is automatically finalized.  This property doesn’t apply if freehand is set.  Default is null.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.OpenLayers.Handler.Path"></a>OpenLayers.<span class=HB> </span>Handler.Path</h3><div class=CBody><p>Create a new path hander</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'li [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.OpenLayers.Handler.Path"></a>OpenLayers.<wbr>Handler.Path</h3><div class=CBody><p>Create a new path hander</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut= [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.finishGeometry"></a>finishGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finishGeometry: function()</td></tr></table></blockquote><p>Finish the geometry and send it back to the control.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -23,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Handler to draw a point on the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finishGeometry: function()</td></tr></table></blockquote>Finish the geometry and send it back to the control.</div></div><div class=CToolTip id="tt2"><div class=CClass>Handler to draw a point on the map. </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TO [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Pinch-js.html b/doc/apidocs/files/OpenLayers/Handler/Pinch-js.html
new file mode 100644
index 0000000..9e27623
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Handler/Pinch-js.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Pinch - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Pinch"></a>OpenLayers.<wbr>Handler.<wbr>Pinch</h1><div class=CBody><p>The pinch handler is used to deal with sequences of browser events related to pinch gestures.  The handler is used by controls that want to know when a pinch sequence begins, when a pinch is happening, and when it has finished.</p><p>Controls that use the pinch handler typically construct it with callbac [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.OpenLayers.Handler.Pinch"></a>OpenLayers.<wbr>Handler.<wbr>Pinch</h3><div class=CBody><p>Returns OpenLayers.Handler.Pinch</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Returns OpenLayers.Handler.Pinch</div></div><div class=CToolTip id="tt2"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Handler/Point-js.html b/doc/apidocs/files/OpenLayers/Handler/Point-js.html
index b62f472..d7f4796 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Point-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Point-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Point"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Point</h1><div class=CBody><p>Handler to draw a point on the map.   Point is displayed on mouse down, moves on mouse move, and is finished on mouse up.   The handler triggers callbacks for ‘done’, ‘cancel’, and ‘modify’.   The modify callback is called  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Point"></a>OpenLayers.<wbr>Handler.<wbr>Point</h1><div class=CBody><p>Handler to draw a point on the map.  Point is displayed on activation, moves on mouse move, and is finished on mouse up.  The handler triggers callbacks for ‘done’, ‘cancel’, and ‘modify’.  The modify callback is called with each change in the sketch and will [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.Properties"></a>Properties</h3></div></div>
 
@@ -19,17 +19,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.persist"></a>persist</h3><div class=CBody><p>{Boolean} Leave the feature rendered until destroyFeature is called.  Default is false.   If set to true, the feature remains rendered until destroyFeature is called, typically by deactivating the handler or starting another drawing.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.stopDown"></a>stopDown</h3><div class=CBody><p>{Boolean} Stop event propagation on mousedown.  Must be false to allow “pan while drawing”.  Defaults to false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.pixelTolerance"></a>pixelTolerance</h3><div class=CBody><p>{Number} Maximum number of pixels between down and up (mousedown and mouseup, or touchstart and touchend) for the handler to add a new point.  If set to an integer value, if the displacement between down and up is great to this value no point will be added.  Default value is 5.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.OpenLayers.Handler.Point"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Point</h3><div class=CBody><p>Create a new point handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link6 onMouseOv [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.OpenLayers.Handler.Point"></a>OpenLayers.<wbr>Handler.<wbr>Point</h3><div class=CBody><p>Create a new point handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')"  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>turn on the handler</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>turn on the handler</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>turn off the handler</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>turn off the handler</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -37,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>turn on the handler</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>turn off the handler</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><ta [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>turn on the handler</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>turn off the handler</div></div><div class=CToolTip i [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/Polygon-js.html b/doc/apidocs/files/OpenLayers/Handler/Polygon-js.html
index 0cecf8d..8f38547 100644
--- a/doc/apidocs/files/OpenLayers/Handler/Polygon-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/Polygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Polygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Polygon</h1><div class=CBody><p>Handler to draw a polygon on the map.   Polygon is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Path-js.html#OpenLayers.Handler.Path" class=LClass id=link1 onMouseOver="ShowTip(e [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Polygon"></a>OpenLayers.<wbr>Handler.<wbr>Polygon</h1><div class=CBody><p>Handler to draw a polygon on the map.   Polygon is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Path-js.html#OpenLayers.Handler.Path" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="H [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.holeModifier"></a>holeModifier</h3><div class=CBody><p>{String} Key modifier to trigger hole digitizing.   Acceptable values are “altKey”, “shiftKey”, or “ctrlKey”.   If not set, no hole digitizing will take place.   Default is null.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.OpenLayers.Handler.Polygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Polygon</h3><div class=CBody><p>Create a Polygon Handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMou [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.OpenLayers.Handler.Polygon"></a>OpenLayers.<wbr>Handler.<wbr>Polygon</h3><div class=CBody><p>Create a Polygon Handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4 [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -23,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Handler to draw a path on the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote>Finish the geometry and call the “cancel” callback.</div></div><div class=CToolTip id="tt2"><div class=CClass>Handler to draw a path on the map. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div>< [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Handler/RegularPolygon-js.html b/doc/apidocs/files/OpenLayers/Handler/RegularPolygon-js.html
index c64d406..4f73cca 100644
--- a/doc/apidocs/files/OpenLayers/Handler/RegularPolygon-js.html
+++ b/doc/apidocs/files/OpenLayers/Handler/RegularPolygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.RegularPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.RegularPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</h1><div class=CBody><p>Handler to draw a regular polygon on the map.   Polygon is displayed on mouse down, moves or is modified on mouse move, and is finished on mouse up.  The handler triggers callbacks for ‘done’ and ‘cancel’.   Create a  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</h1><div class=CBody><p>Handler to draw a regular polygon on the map.   Polygon is displayed on mouse down, moves or is modified on mouse move, and is finished on mouse up.  The handler triggers callbacks for ‘done’ and ‘cancel’.   Create a new instance with the <a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.Properties"></a>Properties</h3></div></div>
 
@@ -29,19 +29,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</h3><div class=CBody><p>Create a new regular polygon handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Con [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</h3><div class=CBody><p>Create a new regular polygon handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link8 onMouseO [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOptions: function (</td><td class=PParameter nowrap>newOptions</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOptions: function (</td><td class="PParameter  prettyprint " nowrap>newOptions</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Turn on the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully activated</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Turn on the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully activated</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully deactivated</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully deactivated</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear any rendered features on the temporary layer.   This is called when the handler is deactivated, canceled, or done (unless persist is true).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear any rendered features on the temporary layer.   This is called when the handler is deactivated, canceled, or done (unless persist is true).</p></div></div></div>
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOptions: function (</td><td class=PParameter nowrap>newOptions</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=P [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOptions: function (</td><td class="PParameter  prettyprint " nowrap>newOptions</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><ta [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Icon-js.html b/doc/apidocs/files/OpenLayers/Icon-js.html
index 9641f8b..94ef853 100644
--- a/doc/apidocs/files/OpenLayers/Icon-js.html
+++ b/doc/apidocs/files/OpenLayers/Icon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Icon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Icon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the icon is drawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the icon is drawn.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>isDrawn: function()</td></tr></table></blockquote>{Boolean} Whether or not the icon is drawn.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of this class represent a width/height pair</d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">isDrawn: function()</td></tr></table></blockquote>{Boolean} Whether or not the icon is drawn.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of this class represent  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Kinetic-js.html b/doc/apidocs/files/OpenLayers/Kinetic-js.html
new file mode 100644
index 0000000..a8c7ab9
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Kinetic-js.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Kinetic - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CConstructor"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Kinetic"></a>OpenLayers.<wbr>Kinetic</h1><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Lang-js.html b/doc/apidocs/files/OpenLayers/Lang-js.html
index cf93b42..f9f1304 100644
--- a/doc/apidocs/files/OpenLayers/Lang-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote><p>Get the current language code.</p><h4 class=CHeading>Returns</h4><p>The current language code.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote><p>Get the current language code.</p><h4 class=CHeading>Returns</h4><p>The current language code.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.setCode"></a>setCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCode: function(</td><td class=PParameter nowrap>code</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the language code for string translation.   This [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.setCode"></a>setCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCode: function(</td><td class="PParameter  prettyprint " nowrap>code</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  pr [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.OpenLayers.i18n"></a>OpenLayers.i18n</h3><div class=CBody><p>Alias for <a href="#OpenLayers.Lang.translate" class=LFunction id=link10 onMouseOver="ShowTip(event, 'tt3', 'link10')" onMouseOut="HideTip('tt3')">OpenLayers.Lang.translate</a>.   Looks up a key from a dictionary based on the current language string.  The value of <a href="#OpenLayers.Lang.getCode" class=LFunction id=link11 onMouseOver= [...]
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote>Get the current language code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCode: function(</td><td class=PParameter nowrap>code</ [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote>Get the current language code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCode: function( [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/ar-js.html b/doc/apidocs/files/OpenLayers/Lang/ar-js.html
index eaf8700..69db88b 100644
--- a/doc/apidocs/files/OpenLayers/Lang/ar-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/ar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ar”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ar”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ar]"></a>OpenLayers.<span class=HB> </span>Lang[“ar”]</h1><div class=CBody><p>Dictionary for العربية.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ar]"></a>OpenLayers.<wbr>Lang[“ar”]</h1><div class=CBody><p>Dictionary for العربية.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/be-tarask-js.html b/doc/apidocs/files/OpenLayers/Lang/be-tarask-js.html
index d914c3d..781d522 100644
--- a/doc/apidocs/files/OpenLayers/Lang/be-tarask-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/be-tarask-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“be-tarask”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“be-tarask”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[be-tarask]"></a>OpenLayers.<span class=HB> </span>Lang[“be-tarask”]</h1><div class=CBody><p>Dictionary for Беларуская (тарашкевіца).   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[be-tarask]"></a>OpenLayers.<wbr>Lang[“be-tarask”]</h1><div class=CBody><p>Dictionary for Беларуская (тарашкевіца).   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/bg-js.html b/doc/apidocs/files/OpenLayers/Lang/bg-js.html
index c898c54..523c343 100644
--- a/doc/apidocs/files/OpenLayers/Lang/bg-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/bg-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“bg”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“bg”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[bg]"></a>OpenLayers.<span class=HB> </span>Lang[“bg”]</h1><div class=CBody><p>Dictionary for Български.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[bg]"></a>OpenLayers.<wbr>Lang[“bg”]</h1><div class=CBody><p>Dictionary for Български.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/br-js.html b/doc/apidocs/files/OpenLayers/Lang/br-js.html
index 6cdafdf..69f4ff0 100644
--- a/doc/apidocs/files/OpenLayers/Lang/br-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/br-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[br]"></a>OpenLayers.<span class=HB> </span>Lang[“br”]</h1><div class=CBody><p>Dictionary for Brezhoneg.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[br]"></a>OpenLayers.<wbr>Lang[“br”]</h1><div class=CBody><p>Dictionary for Brezhoneg.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/ca-js.html b/doc/apidocs/files/OpenLayers/Lang/ca-js.html
index 78991f7..b27f398 100644
--- a/doc/apidocs/files/OpenLayers/Lang/ca-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/ca-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ca”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ca”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ca]"></a>OpenLayers.<span class=HB> </span>Lang[“ca”]</h1><div class=CBody><p>Dictionary for Catalan, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are norma [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ca]"></a>OpenLayers.<wbr>Lang[“ca”]</h1><div class=CBody><p>Dictionary for Catalan, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/cs-CZ-js.html b/doc/apidocs/files/OpenLayers/Lang/cs-CZ-js.html
index a51131e..064a956 100644
--- a/doc/apidocs/files/OpenLayers/Lang/cs-CZ-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/cs-CZ-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“cs-CZ”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“cs-CZ”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[cs-CZ]"></a>OpenLayers.<span class=HB> </span>Lang[“cs-CZ”]</h1><div class=CBody><p>Dictionary for Česky.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[cs-CZ]"></a>OpenLayers.<wbr>Lang[“cs-CZ”]</h1><div class=CBody><p>Dictionary for Česky.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatt [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/da-DK-js.html b/doc/apidocs/files/OpenLayers/Lang/da-DK-js.html
index 7bec721..c17162b 100644
--- a/doc/apidocs/files/OpenLayers/Lang/da-DK-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/da-DK-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“da-DK”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“da-DK”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[da-DK]"></a>OpenLayers.<span class=HB> </span>Lang[“da-DK”]</h1><div class=CBody><p>Dictionary for Danish.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[da-DK]"></a>OpenLayers.<wbr>Lang[“da-DK”]</h1><div class=CBody><p>Dictionary for Danish.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings format [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/de-js.html b/doc/apidocs/files/OpenLayers/Lang/de-js.html
index a7e6229..7d093b8 100644
--- a/doc/apidocs/files/OpenLayers/Lang/de-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/de-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“de”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“de”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[de]"></a>OpenLayers.<span class=HB> </span>Lang[“de”]</h1><div class=CBody><p>Dictionary for Deutsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[de]"></a>OpenLayers.<wbr>Lang[“de”]</h1><div class=CBody><p>Dictionary for Deutsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/el-js.html b/doc/apidocs/files/OpenLayers/Lang/el-js.html
index e3d3eaf..ae07348 100644
--- a/doc/apidocs/files/OpenLayers/Lang/el-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/el-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“el”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“el”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[el]"></a>OpenLayers.<span class=HB> </span>Lang[“el”]</h1><div class=CBody><p>Dictionary for Ελληνικά.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[el]"></a>OpenLayers.<wbr>Lang[“el”]</h1><div class=CBody><p>Dictionary for Ελληνικά.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/en-CA-js.html b/doc/apidocs/files/OpenLayers/Lang/en-CA-js.html
index 2b94f6d..1b44a81 100644
--- a/doc/apidocs/files/OpenLayers/Lang/en-CA-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/en-CA-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“en-CA”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“en-CA”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en-CA]"></a>OpenLayers.<span class=HB> </span>Lang[“en-CA”]</h1><div class=CBody><p>Dictionary for English-CA.   This dictionary inherits from the standard English dictionary.   Override only those entries with language specific to the CA region.</p><p>Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en-CA]"></a>OpenLayers.<wbr>Lang[“en-CA”]</h1><div class=CBody><p>Dictionary for English-CA.   This dictionary inherits from the standard English dictionary.   Override only those entries with language specific to the CA region.</p><p>Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/en-js.html b/doc/apidocs/files/OpenLayers/Lang/en-js.html
index 18c7381..8de9d98 100644
--- a/doc/apidocs/files/OpenLayers/Lang/en-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/en-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“en”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“en”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en]"></a>OpenLayers.<span class=HB> </span>Lang[“en”]</h1><div class=CBody><p>Dictionary for English.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en]"></a>OpenLayers.<wbr>Lang[“en”]</h1><div class=CBody><p>Dictionary for English.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/es-js.html b/doc/apidocs/files/OpenLayers/Lang/es-js.html
index 81c37ea..9f0df6e 100644
--- a/doc/apidocs/files/OpenLayers/Lang/es-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/es-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“es”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“es”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[es]"></a>OpenLayers.<span class=HB> </span>Lang[“es”]</h1><div class=CBody><p>Dictionary for Spanish, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are norma [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[es]"></a>OpenLayers.<wbr>Lang[“es”]</h1><div class=CBody><p>Dictionary for Spanish, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/fi-js.html b/doc/apidocs/files/OpenLayers/Lang/fi-js.html
index 9090e67..9560671 100644
--- a/doc/apidocs/files/OpenLayers/Lang/fi-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/fi-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“fi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“fi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fi]"></a>OpenLayers.<span class=HB> </span>Lang[“fi”]</h1><div class=CBody><p>Dictionary for Suomi.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or str [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fi]"></a>OpenLayers.<wbr>Lang[“fi”]</h1><div class=CBody><p>Dictionary for Suomi.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted for [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/fr-js.html b/doc/apidocs/files/OpenLayers/Lang/fr-js.html
index 21141fe..05444a9 100644
--- a/doc/apidocs/files/OpenLayers/Lang/fr-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/fr-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“fr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“fr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fr]"></a>OpenLayers.<span class=HB> </span>Lang[“fr”]</h1><div class=CBody><p>Dictionary for Français.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fr]"></a>OpenLayers.<wbr>Lang[“fr”]</h1><div class=CBody><p>Dictionary for Français.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/fur-js.html b/doc/apidocs/files/OpenLayers/Lang/fur-js.html
index 6b7b369..3a47ab8 100644
--- a/doc/apidocs/files/OpenLayers/Lang/fur-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/fur-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“fur”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“fur”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fur]"></a>OpenLayers.<span class=HB> </span>Lang[“fur”]</h1><div class=CBody><p>Dictionary for Furlan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fur]"></a>OpenLayers.<wbr>Lang[“fur”]</h1><div class=CBody><p>Dictionary for Furlan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/gl-js.html b/doc/apidocs/files/OpenLayers/Lang/gl-js.html
index 0ea9fc6..77eb8ab 100644
--- a/doc/apidocs/files/OpenLayers/Lang/gl-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/gl-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“gl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“gl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gl]"></a>OpenLayers.<span class=HB> </span>Lang[“gl”]</h1><div class=CBody><p>Dictionary for Galego.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gl]"></a>OpenLayers.<wbr>Lang[“gl”]</h1><div class=CBody><p>Dictionary for Galego.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/gsw-js.html b/doc/apidocs/files/OpenLayers/Lang/gsw-js.html
index e7e35d1..e1a2ad3 100644
--- a/doc/apidocs/files/OpenLayers/Lang/gsw-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/gsw-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“gsw”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“gsw”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gsw]"></a>OpenLayers.<span class=HB> </span>Lang[“gsw”]</h1><div class=CBody><p>Dictionary for Alemannisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal string [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gsw]"></a>OpenLayers.<wbr>Lang[“gsw”]</h1><div class=CBody><p>Dictionary for Alemannisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings forma [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/hr-js.html b/doc/apidocs/files/OpenLayers/Lang/hr-js.html
index bd059db..5094721 100644
--- a/doc/apidocs/files/OpenLayers/Lang/hr-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/hr-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“hr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“hr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hr]"></a>OpenLayers.<span class=HB> </span>Lang[“hr”]</h1><div class=CBody><p>Dictionary for Hrvatski.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hr]"></a>OpenLayers.<wbr>Lang[“hr”]</h1><div class=CBody><p>Dictionary for Hrvatski.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/hsb-js.html b/doc/apidocs/files/OpenLayers/Lang/hsb-js.html
index 397c83e..f7033be 100644
--- a/doc/apidocs/files/OpenLayers/Lang/hsb-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/hsb-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“hsb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“hsb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hsb]"></a>OpenLayers.<span class=HB> </span>Lang[“hsb”]</h1><div class=CBody><p>Dictionary for Hornjoserbsce.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal stri [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hsb]"></a>OpenLayers.<wbr>Lang[“hsb”]</h1><div class=CBody><p>Dictionary for Hornjoserbsce.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings for [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/hu-js.html b/doc/apidocs/files/OpenLayers/Lang/hu-js.html
index 5274579..ffe5e62 100644
--- a/doc/apidocs/files/OpenLayers/Lang/hu-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/hu-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“hu”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“hu”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hu]"></a>OpenLayers.<span class=HB> </span>Lang[“hu”]</h1><div class=CBody><p>Dictionary for Magyar.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hu]"></a>OpenLayers.<wbr>Lang[“hu”]</h1><div class=CBody><p>Dictionary for Magyar.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/ia-js.html b/doc/apidocs/files/OpenLayers/Lang/ia-js.html
index 7a8dec9..dfe7b82 100644
--- a/doc/apidocs/files/OpenLayers/Lang/ia-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/ia-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ia”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ia”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ia]"></a>OpenLayers.<span class=HB> </span>Lang[“ia”]</h1><div class=CBody><p>Dictionary for Interlingua.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ia]"></a>OpenLayers.<wbr>Lang[“ia”]</h1><div class=CBody><p>Dictionary for Interlingua.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatt [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/id-js.html b/doc/apidocs/files/OpenLayers/Lang/id-js.html
index 0fae761..bdb75cf 100644
--- a/doc/apidocs/files/OpenLayers/Lang/id-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/id-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“id”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“id”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[id]"></a>OpenLayers.<span class=HB> </span>Lang[“id”]</h1><div class=CBody><p>Dictionary for Bahasa Indonesia.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal str [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[id]"></a>OpenLayers.<wbr>Lang[“id”]</h1><div class=CBody><p>Dictionary for Bahasa Indonesia.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/io-js.html b/doc/apidocs/files/OpenLayers/Lang/io-js.html
index f62cf85..081bf9b 100644
--- a/doc/apidocs/files/OpenLayers/Lang/io-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/io-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“io”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“io”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[io]"></a>OpenLayers.<span class=HB> </span>Lang[“io”]</h1><div class=CBody><p>Dictionary for Ido.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[io]"></a>OpenLayers.<wbr>Lang[“io”]</h1><div class=CBody><p>Dictionary for Ido.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted for u [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/is-js.html b/doc/apidocs/files/OpenLayers/Lang/is-js.html
index 82dd749..07e416d 100644
--- a/doc/apidocs/files/OpenLayers/Lang/is-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/is-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“is”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“is”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[is]"></a>OpenLayers.<span class=HB> </span>Lang[“is”]</h1><div class=CBody><p>Dictionary for Íslenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[is]"></a>OpenLayers.<wbr>Lang[“is”]</h1><div class=CBody><p>Dictionary for Íslenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/it-js.html b/doc/apidocs/files/OpenLayers/Lang/it-js.html
index c7575df..5cf5c14 100644
--- a/doc/apidocs/files/OpenLayers/Lang/it-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/it-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“it”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“it”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[it]"></a>OpenLayers.<span class=HB> </span>Lang[“it”]</h1><div class=CBody><p>Dictionary for Italian.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[it]"></a>OpenLayers.<wbr>Lang[“it”]</h1><div class=CBody><p>Dictionary for Italian.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/ja-js.html b/doc/apidocs/files/OpenLayers/Lang/ja-js.html
index a090882..7062e06 100644
--- a/doc/apidocs/files/OpenLayers/Lang/ja-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/ja-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ja”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ja”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ja]"></a>OpenLayers.<span class=HB> </span>Lang[“ja”]</h1><div class=CBody><p>Dictionary for 日本語.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ja]"></a>OpenLayers.<wbr>Lang[“ja”]</h1><div class=CBody><p>Dictionary for 日本語.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted for u [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/km-js.html b/doc/apidocs/files/OpenLayers/Lang/km-js.html
index d2689b2..b909720 100644
--- a/doc/apidocs/files/OpenLayers/Lang/km-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/km-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“km”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“km”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[km]"></a>OpenLayers.<span class=HB> </span>Lang[“km”]</h1><div class=CBody><p>Dictionary for ភាសាខ្មែរ.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[km]"></a>OpenLayers.<wbr>Lang[“km”]</h1><div class=CBody><p>Dictionary for ភាសាខ្មែរ.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/ksh-js.html b/doc/apidocs/files/OpenLayers/Lang/ksh-js.html
index a7c7d7b..178a45b 100644
--- a/doc/apidocs/files/OpenLayers/Lang/ksh-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/ksh-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ksh”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ksh”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ksh]"></a>OpenLayers.<span class=HB> </span>Lang[“ksh”]</h1><div class=CBody><p>Dictionary for Ripoarisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ksh]"></a>OpenLayers.<wbr>Lang[“ksh”]</h1><div class=CBody><p>Dictionary for Ripoarisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings format [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/lt-js.html b/doc/apidocs/files/OpenLayers/Lang/lt-js.html
new file mode 100644
index 0000000..4b41f36
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Lang/lt-js.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“lt”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[lt]"></a>OpenLayers.<wbr>Lang[“lt”]</h1><div class=CBody><p>Dictionary for Lithuanian.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Lang/nb-js.html b/doc/apidocs/files/OpenLayers/Lang/nb-js.html
index 1b034a7..59f8983 100644
--- a/doc/apidocs/files/OpenLayers/Lang/nb-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/nb-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nb]"></a>OpenLayers.<span class=HB> </span>Lang[“nb”]</h1><div class=CBody><p>Dictionary for norwegian bokmål (Norway).  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are no [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nb]"></a>OpenLayers.<wbr>Lang[“nb”]</h1><div class=CBody><p>Dictionary for norwegian bokmål (Norway).  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/nds-js.html b/doc/apidocs/files/OpenLayers/Lang/nds-js.html
index 301c510..96c9607 100644
--- a/doc/apidocs/files/OpenLayers/Lang/nds-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/nds-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nds”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nds”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nds]"></a>OpenLayers.<span class=HB> </span>Lang[“nds”]</h1><div class=CBody><p>Dictionary for Plattdüütsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nds]"></a>OpenLayers.<wbr>Lang[“nds”]</h1><div class=CBody><p>Dictionary for Plattdüütsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings form [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/nl-js.html b/doc/apidocs/files/OpenLayers/Lang/nl-js.html
index 93d7913..67bc79c 100644
--- a/doc/apidocs/files/OpenLayers/Lang/nl-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/nl-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nl]"></a>OpenLayers.<span class=HB> </span>Lang[“nl”]</h1><div class=CBody><p>Dictionary for Nederlands.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nl]"></a>OpenLayers.<wbr>Lang[“nl”]</h1><div class=CBody><p>Dictionary for Nederlands.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/nn-js.html b/doc/apidocs/files/OpenLayers/Lang/nn-js.html
index 7833e80..aeedd38 100644
--- a/doc/apidocs/files/OpenLayers/Lang/nn-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/nn-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nn”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nn”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nn]"></a>OpenLayers.<span class=HB> </span>Lang[“nn”]</h1><div class=CBody><p>Dictionary for ‪Norsk (nynorsk)‬.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nn]"></a>OpenLayers.<wbr>Lang[“nn”]</h1><div class=CBody><p>Dictionary for ‪Norsk (nynorsk)‬.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/oc-js.html b/doc/apidocs/files/OpenLayers/Lang/oc-js.html
index 68e5408..fbc74de 100644
--- a/doc/apidocs/files/OpenLayers/Lang/oc-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/oc-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“oc”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“oc”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[oc]"></a>OpenLayers.<span class=HB> </span>Lang[“oc”]</h1><div class=CBody><p>Dictionary for Occitan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[oc]"></a>OpenLayers.<wbr>Lang[“oc”]</h1><div class=CBody><p>Dictionary for Occitan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/pt-BR-js.html b/doc/apidocs/files/OpenLayers/Lang/pt-BR-js.html
index d4b57b6..a5b176f 100644
--- a/doc/apidocs/files/OpenLayers/Lang/pt-BR-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/pt-BR-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“pt-br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“pt-br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt-br]"></a>OpenLayers.<span class=HB> </span>Lang[“pt-br”]</h1><div class=CBody><p>Dictionary for Português do Brasil.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are n [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt-br]"></a>OpenLayers.<wbr>Lang[“pt-br”]</h1><div class=CBody><p>Dictionary for Português do Brasil.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/pt-js.html b/doc/apidocs/files/OpenLayers/Lang/pt-js.html
index f4d39f5..c2bcb26 100644
--- a/doc/apidocs/files/OpenLayers/Lang/pt-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/pt-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“pt”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“pt”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt]"></a>OpenLayers.<span class=HB> </span>Lang[“pt”]</h1><div class=CBody><p>Dictionary for Português.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt]"></a>OpenLayers.<wbr>Lang[“pt”]</h1><div class=CBody><p>Dictionary for Português.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/ru-js.html b/doc/apidocs/files/OpenLayers/Lang/ru-js.html
index a5ca570..2a5a1c1 100644
--- a/doc/apidocs/files/OpenLayers/Lang/ru-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/ru-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ru”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ru”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ru]"></a>OpenLayers.<span class=HB> </span>Lang[“ru”]</h1><div class=CBody><p>Dictionary for Русский.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ru]"></a>OpenLayers.<wbr>Lang[“ru”]</h1><div class=CBody><p>Dictionary for Русский.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/sk-js.html b/doc/apidocs/files/OpenLayers/Lang/sk-js.html
index 50173e4..ab827fc 100644
--- a/doc/apidocs/files/OpenLayers/Lang/sk-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/sk-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“sk”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“sk”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sk]"></a>OpenLayers.<span class=HB> </span>Lang[“sk”]</h1><div class=CBody><p>Dictionary for Slovenčina.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sk]"></a>OpenLayers.<wbr>Lang[“sk”]</h1><div class=CBody><p>Dictionary for Slovenčina.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/sv-SE-js.html b/doc/apidocs/files/OpenLayers/Lang/sv-SE-js.html
index 73c8c09..a1d303e 100644
--- a/doc/apidocs/files/OpenLayers/Lang/sv-SE-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/sv-SE-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“sv”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“sv”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sv]"></a>OpenLayers.<span class=HB> </span>Lang[“sv”]</h1><div class=CBody><p>Dictionary for Svenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sv]"></a>OpenLayers.<wbr>Lang[“sv”]</h1><div class=CBody><p>Dictionary for Svenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/te-js.html b/doc/apidocs/files/OpenLayers/Lang/te-js.html
index bbe3de5..72812f5 100644
--- a/doc/apidocs/files/OpenLayers/Lang/te-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/te-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“te”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“te”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[te]"></a>OpenLayers.<span class=HB> </span>Lang[“te”]</h1><div class=CBody><p>Dictionary for తెలుగు.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[te]"></a>OpenLayers.<wbr>Lang[“te”]</h1><div class=CBody><p>Dictionary for తెలుగు.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/vi-js.html b/doc/apidocs/files/OpenLayers/Lang/vi-js.html
index a358f90..a9a8f97 100644
--- a/doc/apidocs/files/OpenLayers/Lang/vi-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/vi-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“vi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“vi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[vi]"></a>OpenLayers.<span class=HB> </span>Lang[“vi”]</h1><div class=CBody><p>Dictionary for Tiếng Việt.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[vi]"></a>OpenLayers.<wbr>Lang[“vi”]</h1><div class=CBody><p>Dictionary for Tiếng Việt.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/zh-CN-js.html b/doc/apidocs/files/OpenLayers/Lang/zh-CN-js.html
index 863c41e..789be35 100644
--- a/doc/apidocs/files/OpenLayers/Lang/zh-CN-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/zh-CN-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“zh-CN”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“zh-CN”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-CN]"></a>OpenLayers.<span class=HB> </span>Lang[“zh-CN”]</h1><div class=CBody><p>Dictionary for Simplified Chinese.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are no [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-CN]"></a>OpenLayers.<wbr>Lang[“zh-CN”]</h1><div class=CBody><p>Dictionary for Simplified Chinese.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Lang/zh-TW-js.html b/doc/apidocs/files/OpenLayers/Lang/zh-TW-js.html
index 9d18339..aac35b2 100644
--- a/doc/apidocs/files/OpenLayers/Lang/zh-TW-js.html
+++ b/doc/apidocs/files/OpenLayers/Lang/zh-TW-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“zh-TW”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“zh-TW”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-TW]"></a>OpenLayers.<span class=HB> </span>Lang[“zh-TW”]</h1><div class=CBody><p>Dictionary for Traditional Chinese.  (Used Mainly in Taiwan) Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.&nb [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-TW]"></a>OpenLayers.<wbr>Lang[“zh-TW”]</h1><div class=CBody><p>Dictionary for Traditional Chinese.  (Used Mainly in Taiwan) Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer-js.html b/doc/apidocs/files/OpenLayers/Layer-js.html
index d9aaa0c..68e603a 100644
--- a/doc/apidocs/files/OpenLayers/Layer-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer"></a>OpenLayers.<span class=HB> </span>Layer</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer" >OpenLayers.<span class=HB> </span>Layer</a></td><td class=SDescription></td></tr><tr class="SGroup SInd [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer"></a>OpenLayers.<wbr>Layer</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer" >OpenLayers.<wbr>Layer</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Properties"></a>Properties</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p><h4 cla [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what  [...]
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.RESOLUTION_PROPERTIES"></a>RESOLUTION_PROPERTIES</h3><div class=CBody><p>{Array} The properties that are used for calculating resolutions information.</p></div></div></div>
 
@@ -77,49 +77,49 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.OpenLayers.Layer"></a>OpenLayers.<span class=HB> </span>Layer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} The layer name</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag onto the layer</td></tr></ta [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.OpenLayers.Layer"></a>OpenLayers.<wbr>Layer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} The layer name</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag onto the layer</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setName"></a>setName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setName: function(</td><td class=PParameter nowrap>newName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the new layer name for this layer.   Can tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setName"></a>setName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setName: function(</td><td class="PParameter  prettyprint " nowrap>newName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.addOptions"></a>addOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addOptions: function (</td><td class=PParameter nowrap>newOptions</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.addOptions"></a>addOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addOptions: function (</td><td class="PParameter  prettyprint " nowrap>newOptions,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reinitialize</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote><p>This function can be implemented by subclasses</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote><p>This function can be implemented by subclasses</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>redraw: function()</td></tr></table></blockquote><p>Redraws the layer.   Returns true if the layer was redrawn, false if not.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer was redrawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>Redraws the layer.   Returns true if the layer was redrawn, false if not.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer was redrawn.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Just as setMap() allows each layer the possibility  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Jus [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getImageSize"></a>getImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getImageSize: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getImageSize"></a>getImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getImageSize: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setTileSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the tile size based on the map size.&nbs [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setTileSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getVisibility"></a>getVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getVisibility: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer should be displayed (if in range).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getVisibility"></a>getVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getVisibility: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer should be displayed (if in range).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visibility</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the visibility flag for the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visibility</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the Layer</p><h4 class=CHeading>Paramete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.calculateInRange"></a>calculateInRange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateInRange: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer is displayable at the current map’s current resolution.  Note that if ‘alwaysInRange’ is true for the layer, this function will alwa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.calculateInRange"></a>calculateInRange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateInRange: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer is displayable at the current map’s current resolution.  Note that if ‘alwaysInRange’ is true for the layer, t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setIsBaseLayer"></a>setIsBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setIsBaseLayer: function(</td><td class=PParameter nowrap>isBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setIsBaseLayer"></a>setIsBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setIsBaseLayer: function(</td><td class="PParameter  prettyprint " nowrap>isBaseLayer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt6', 'link43')" onMouseOut="HideTip('tt6')">OpenLayers.Bounds</a>} A Bounds object which  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt6', 'link43')" onMouseOut="HideTip('tt6')">OpenLayers.Bounds</a>}  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForExtent: function(</td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForExtent: function(</td><td class="PParameter  prettyprint " nowrap>extent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getResolutionForZoom: function(</td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getResolutionForZoom: function(</td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForResolution: function(</td><td class=PParameter nowrap>resolution,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForResolution: function(</td><td class="PParameter  prettyprint " nowrap>resolution,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromViewPortPx: function (</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromViewPortPx: function (</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Retur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity for the entire layer (all i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
 </div><!--Content-->
 
@@ -127,15 +127,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>The attribution control adds attribution from layers to the map display. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>on: function(</ [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>The attribution control adds attribution from layers to the map display. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowra [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html b/doc/apidocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html
index 3bdbc28..7ab1403 100644
--- a/doc/apidocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.ArcGIS93Rest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.ArcGIS93Rest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcGIS93Rest</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcGIS93Rest are used to display data from ESRI ArcGIS Server 9.3 (and up?)  Mapping Services using the REST API.  Create a new ArcGIS93Rest layer with the <a href="#OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Res [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<wbr>Layer.<wbr>ArcGIS93Rest</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcGIS93Rest are used to display data from ESRI ArcGIS Server 9.3 (and up?)  Mapping Services using the REST API.  Create a new ArcGIS93Rest layer with the <a href="#OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Rest" class=LConstructor id=link2 onMou [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.Constants"></a>Constants</h3></div></div>
 
@@ -23,7 +23,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcGIS93Rest</h3><div class=CBody><p>Create a new ArcGIS93Rest layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre>var arcims = new OpenLayers.Layer.ArcGIS93Rest("MyName",
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<wbr>Layer.<wbr>ArcGIS93Rest</h3><div class=CBody><p>Create a new ArcGIS93Rest layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var arcims = new OpenLayers.Layer.ArcGIS93Rest("MyName",
                                    "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export",
                                    {
                                      layers: "0,1,2"
@@ -31,7 +31,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Catch changeParams [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Catch changeParams and uppercase the new params to be merged in before calling changeParams on the super class.</div></div>< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Catch changeParams and uppercase the new params to be merged in before calli [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/ArcGISCache-js.html b/doc/apidocs/files/OpenLayers/Layer/ArcGISCache-js.html
new file mode 100644
index 0000000..f3bd134
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Layer/ArcGISCache-js.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head> [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ArcGISCache.js"></a>ArcGISCache.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ArcGISCache.js" >ArcGISCache.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Properties" >Properties</a></td [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="url"></a>url</h3><div class=CBody><p>{String | Array} The base URL for the layer cache.   You can also provide a list of URL strings for the layer if your cache is available from multiple origins.   This must be set before the layer is drawn.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} The location of the tile origin for the cache.  An ArcGIS cache has it’s origin at the upper-left (lowest x value and highest y value of the coordinate system).   The units for the ti [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">OpenLayers.Size</a>} This size of each tile.  Defaults to 256 by 256 pixels.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="useAGS"></a>useAGS</h3><div class=CBody><p>{Boolean} Indicates if we are going to be accessing the ArcGIS Server (AGS) cache via an AGS MapServer or directly through HTTP.  When accessing via AGS the path structure uses a standard z/y/x structure.  But AGS actually stores the tile images on disk using a hex based folder structure that looks like “<a href="http://example.com/mylayer/L00/R00000000/C00000000. [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="type"></a>type</h3><div class=CBody><p>{String} Image type for the layer.   This becomes the filename extension in tile requests.   Default is “png” (generating a url like “<a href="http://example.com/mylayer/L00/R00000000/C00000000.png" class=LURL target=_top>http://example.com<wbr>/mylayer<wbr>/L00<wbr>/R00000000<wbr>/C00000000.png</a>”).</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="useScales"></a>useScales</h3><div class=CBody><p>{Boolean} Optional override to indicate that the layer should use ‘scale’ information returned from the server capabilities object instead of ‘resolution’ information.  This can be important if your tile server uses an unusual DPI for the tiles.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="overrideDPI"></a>overrideDPI</h3><div class=CBody><p>{Boolean} Optional override to change the OpenLayers.DOTS_PER_INCH setting based on the tile information in the server capabilities object.   This can be useful if your server has a non-standard DPI setting on its tiles, and you’re only using tiles with that DPI.   This value is used while OpenLayers is calculating resolution using scales, and is not nec [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGISCache"></a>OpenLayers.<wbr>Layer.<wbr>ArcGISCache</h3><div class=CBody><p>Creates a new instance of this class</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an exact clone of this  [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParame [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Layer/ArcIMS-js.html b/doc/apidocs/files/OpenLayers/Layer/ArcIMS-js.html
index d8c7abd..a9d618d 100644
--- a/doc/apidocs/files/OpenLayers/Layer/ArcIMS-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/ArcIMS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.ArcIMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.ArcIMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcIMS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcIMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcIMS are used to display data from ESRI ArcIMS Mapping Services.  Create a new ArcIMS layer with the <a href="#OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMous [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcIMS"></a>OpenLayers.<wbr>Layer.<wbr>ArcIMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcIMS are used to display data from ESRI ArcIMS Mapping Services.  Create a new ArcIMS layer with the <a href="#OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Lay [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.Constants"></a>Constants</h3></div></div>
 
@@ -39,7 +39,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcIMS</h3><div class=CBody><p>Create a new ArcIMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre>var arcims = new OpenLayers.Layer.ArcIMS(
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS"></a>OpenLayers.<wbr>Layer.<wbr>ArcIMS</h3><div class=CBody><p>Create a new ArcIMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var arcims = new OpenLayers.Layer.ArcIMS(
     "Global Sample",
     "http://sample.avencia.com/servlet/com.esri.esrimap.Esrimap",
     {
@@ -57,10 +57,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Bing-js.html b/doc/apidocs/files/OpenLayers/Layer/Bing-js.html
new file mode 100644
index 0000000..81d105b
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Layer/Bing-js.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Bing - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Bing"></a>OpenLayers.<wbr>Layer.Bing</h1><div class=CBody><p>Bing layer using direct tile access as provided by Bing Maps REST Services.  See <a href="http://msdn.microsoft.com/en-us/library/ff701713.aspx" class=LURL target=_top>http://msdn.microsoft.com<wbr>/en-us<wbr>/library<wbr>/ff701713.aspx</a> for more information.  Note: Terms of Service compliant use requires t [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.type"></a>type</h3><div class=CBody><p>{String} The layer identifier.   Any non-birdseye imageryType from <a href="http://msdn.microsoft.com/en-us/library/ff701716.aspx" class=LURL target=_top>http://msdn.microsoft.com<wbr>/en-us<wbr>/library<wbr>/ff701716.aspx</a> can be used.   Default is “Road”.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.metadataParams"></a>metadataParams</h3><div class=CBody><p>{Object} Optional url parameters for the Get Imagery Metadata request as described here: <a href="http://msdn.microsoft.com/en-us/library/ff701716.aspx" class=LURL target=_top>http://msdn.microsoft.com<wbr>/en-us<wbr>/library<wbr>/ff701716.aspx</a></p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.OpenLayers.Layer.Bing"></a>OpenLayers.<wbr>Layer.Bing</h3><div class=CBody><p>Create a new Bing layer.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var road = new OpenLayers.Layer.Bing({
+    name: "My Bing Aerial Layer",
+    type: "Aerial",
+    key: "my-api-key-here",
+});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} Configuration properties for the layer.</td></tr></table><h4 class=CHeading>Required configuration properties</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>key</td><td class=CDLDescription>{String} Bing Maps API key for your application.  Get one a [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHe [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>The attribution control adds at [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Layer/Boxes-js.html b/doc/apidocs/files/OpenLayers/Layer/Boxes-js.html
index 23e5910..3b765a1 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Boxes-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Boxes-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Boxes - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Boxes - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Boxes"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Boxes</h1><div class=CBody><p>Draw divs as ‘boxes’ on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div cl [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Boxes"></a>OpenLayers.<wbr>Layer.<wbr>Boxes</h1><div class=CBody><p>Draw divs as ‘boxes’ on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspac [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.OpenLayers.Layer.Boxes"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Boxes</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag on [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.OpenLayers.Layer.Boxes"></a>OpenLayers.<wbr>Layer.<wbr>Boxes</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag onto the layer</td></tr></table></div> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/EventPane-js.html b/doc/apidocs/files/OpenLayers/Layer/EventPane-js.html
index 0a17c59..6f11d7a 100644
--- a/doc/apidocs/files/OpenLayers/Layer/EventPane-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/EventPane-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.EventPane - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.EventPane - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.EventPane"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>EventPane</h1><div class=CBody><p>Base class for 3rd party layers.   Create a new event pane layer with the <a href="#OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.EventPan [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.EventPane"></a>OpenLayers.<wbr>Layer.<wbr>EventPane</h1><div class=CBody><p>Base class for 3rd party layers.   Create a new event pane layer with the <a href="#OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.EventPane</a> constructor.</p><h4 class=CHea [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.Properties"></a>Properties</h3></div></div>
 
@@ -21,13 +21,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>EventPane</h3><div class=CBody><p>Create a new event pane layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescripti [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane"></a>OpenLayers.<wbr>Layer.<wbr>EventPane</h3><div class=CBody><p>Create a new event pane layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra optio [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Deconstruct this layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>On being removed from the map, we’l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Deconstruct this layer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Deconstruct this layer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/FixedZoomLevels-js.html b/doc/apidocs/files/OpenLayers/Layer/FixedZoomLevels-js.html
index fff05df..9a7e1b0 100644
--- a/doc/apidocs/files/OpenLayers/Layer/FixedZoomLevels-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/FixedZoomLevels-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.FixedZoomLevels - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.FixedZoomLevels - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>FixedZoomLevels</h1><div class=CBody><p>Some Layers will already have established zoom levels (like google or ve).  Instead of trying to determine them and populate a resolutions[] Array with those values, we will hijack the resolution functionality here.</p><h4 class=CHeading>When you subcla [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<wbr>Layer.<wbr>FixedZoomLevels</h1><div class=CBody><p>Some Layers will already have established zoom levels (like google or ve).  Instead of trying to determine them and populate a resolutions[] Array with those values, we will hijack the resolution functionality here.</p><h4 class=CHeading>When you subclass FixedZoomLevels</h4><p>The initRe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>FixedZoomLevels</h3><div class=CBody><p>Create a new fixed zoom levels layer.</p></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<wbr>Layer.<wbr>FixedZoomLevels</h3><div class=CBody><p>Create a new fixed zoom levels layer.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote><p>Get the current map resolution</p><h4 class=CHeading>Returns</h4><p>{Float} Map units per Pixel</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote><p>Get the current map resolution</p><h4 class=CHeading>Returns</h4><p>{Float} Map units per Pixel</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function ()</td></tr></table></blockquote><p>Calculates using px-> lonlat translation functions on tl and br corners of viewport</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link3 onMouse [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function ()</td></tr></table></blockquote><p>Calculates using px-> lonlat translation functions on tl and br corners of viewport</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=L [...]
 
 </div><!--Content-->
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote>Get the current map resolution</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function ()</td></tr></table></blockquote>Calculates using px-> lonlat translation functions on tl and br corners of vie [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote>Get the current map resolution</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function ()</td></tr></table></blockquote>Calculates using px-> lonlat trans [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/GML-js.html b/doc/apidocs/files/OpenLayers/Layer/GML-js.html
index 7b81d2f..b1e682c 100644
--- a/doc/apidocs/files/OpenLayers/Layer/GML-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/GML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GML"></a>OpenLayers.<span class=HB> </span>Layer.GML</h1><div class=CBody><p>Create a vector layer by parsing a GML file.  The GML file is passed in as a parameter.  <b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with Protocol.HTTP and Strategy.Fixed.  Provide the protocol with a format parameter to get the parser you wan [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GML"></a>OpenLayers.<wbr>Layer.GML</h1><div class=CBody><p>Create a vector layer by parsing a GML file.  The GML file is passed in as a parameter.  <b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with Protocol.HTTP and Strategy.Fixed.  Provide the protocol with a format parameter to get the parser you want for your data.</ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.OpenLayers.Layer.GML"></a>OpenLayers.<span class=HB> </span>Layer.GML</h3><div class=CBody><p>Load and parse a single file on the web, according to the format provided via the ‘format’ option, defaulting to GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.OpenLayers.Layer.GML"></a>OpenLayers.<wbr>Layer.GML</h3><div class=CBody><p>Load and parse a single file on the web, according to the format provided via the ‘format’ option, defaulting to GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CD [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visibility,</td></tr><tr><td></td><td class=PParameter nowrap>noEvent</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visibility,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>noEvent</td><td cla [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visibility,</td></tr><tr><td></td><td class=PParameter nowrap>noEvent</td><td class=PAfterParameters no [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visibility,</td></tr><tr><td></td><td class="PParameter  prettyprint " [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/GeoRSS-js.html b/doc/apidocs/files/OpenLayers/Layer/GeoRSS-js.html
index fd1fb6d..c87769b 100644
--- a/doc/apidocs/files/OpenLayers/Layer/GeoRSS-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/GeoRSS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GeoRSS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>GeoRSS</h1><div class=CBody><p>Add GeoRSS Point features to your map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GeoRSS"></a>OpenLayers.<wbr>Layer.<wbr>GeoRSS</h1><div class=CBody><p>Add GeoRSS Point features to your map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.Properties"></a>Properties</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.OpenLayers.Layer.GeoRSS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>GeoRSS</h3><div class=CBody><p>Create a GeoRSS Layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>location</td><td class=CDLDescription>{String}</td [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.OpenLayers.Layer.GeoRSS"></a>OpenLayers.<wbr>Layer.<wbr>GeoRSS</h3><div class=CBody><p>Create a GeoRSS Layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>location</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options [...]
 
 </div><!--Content-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Google-js.html b/doc/apidocs/files/OpenLayers/Layer/Google-js.html
index b5bbe9b..ca377e4 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Google-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Google-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Google - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Google - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Google"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="SphericalMercator-js.html#OpenLayers.Layer.SphericalMercator" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">OpenLayers.Layer.SphericalMercator</a></li><li><a href="EventPan [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Google"></a>OpenLayers.<wbr>Layer.<wbr>Google</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="SphericalMercator-js.html#OpenLayers.Layer.SphericalMercator" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">OpenLayers.Layer.SphericalMercator</a></li><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Constants"></a>Constants</h3></div></div>
 
@@ -31,59 +31,59 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google"></a>OpenLayers.<wbr>Layer.<wbr>Google</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the visibility flag for  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the Layer</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity for the entire layer [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>On being removed from the map, also remove t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getOLBoundsFromMapObjectBounds"></a>getOLBoundsFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLBoundsFromMapObjectBounds: function(</td><td class=PParameter nowrap>moBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getOLBoundsFromMapObjectBounds"></a>getOLBoundsFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLBoundsFromMapObjectBounds: function(</td><td class="PParameter  prettyprint " nowrap>moBounds</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.v2</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v2.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2"></a>OpenLayers.<wbr>Layer.<wbr>Google.v2</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v2.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class=PParameter nowrap>olBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class="PParameter  prettyprint " nowrap>olBounds</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragPanMapObject: function(</td><td class=PParameter nowrap>dX,</td></tr><tr><td></td><td class=PParameter nowrap>dY</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragPanMapObject: function(</td><td class="PParameter  prettyprint " nowrap>dX,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dY</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class=PParameter nowrap>moBounds</td><td class=PAfterParameters nowrap>)</td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class="PParameter  prettyprint " nowrap>moBounds</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterPar [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
 
 </div><!--Content-->
 
@@ -91,15 +91,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the visibility flag for the layer and hide/show & redraw accordingly. </div></div><div class=CToolTip id="tt2"><div cl [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Set the visibility flag for the layer and hide/show & redraw accordingly.  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Google/v3-js.html b/doc/apidocs/files/OpenLayers/Layer/Google/v3-js.html
index 6d2672a..3c37ddf 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Google/v3-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Google/v3-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google/v3.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></scri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,44 +11,48 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="v3.js"></a>v3.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#v3.js" >v3.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr  [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="v3.js"></a>v3.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#v3.js" >v3.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.v3"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.v3</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v3.  Note that this layer configures the google.maps.map object with the “disableDefaultUI” option set to true.  Using UI controls that the Google Maps API provides is not supported by the OpenLayers API.</p></di [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.v3"></a>OpenLayers.<wbr>Layer.<wbr>Google.v3</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v3.  Note that this layer configures the google.maps.map object with the “disableDefaultUI” option set to true.  Using UI controls that the Google Maps API provides is not supported by the OpenLayers API.</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} It is not recommended to change the properties set here.  Note that Google.v3 layers only work when sphericalMercator is set to true.</p><blockquote><pre>{
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} It is not recommended to change the properties set here.  Note that Google.v3 layers only work when sphericalMercator is set to true.</p><blockquote><pre class="prettyprint">{
     maxExtent: new OpenLayers.Bounds(
-        -128 * 156543.0339,
-        -128 * 156543.0339,
-        128 * 156543.0339,
-        128 * 156543.0339
+        -128 * 156543.03390625,
+        -128 * 156543.03390625,
+        128 * 156543.03390625,
+        128 * 156543.03390625
     ),
     sphericalMercator: true,
-    maxResolution: 156543.0339,
+    maxResolution: 156543.03390625,
     units: "m",
     projection: "EPSG:900913"
 }</pre></blockquote></div></div></div>
 
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="animationEnabled"></a>animationEnabled</h3><div class=CBody><p>{Boolean} If set to true, the transition between zoom levels will be animated (if supported by the GMaps API for the device used).  Set to false to match the zooming experience of other layer types.  Default is true.  Note that the GMaps API does not give us control over zoom animation, so if set to false, when zooming, this will make the layer  [...]
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class=PParameter nowrap>olBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class="PParameter  prettyprint " nowrap>olBounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettypr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  prettyp [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class=PParameter nowrap>moBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class="PParameter  prettyprint " nowrap>moBounds</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>la [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -56,15 +60,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class=PParameter nowrap>olBounds< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectBoundsFromOLBounds: function(</t [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Grid-js.html b/doc/apidocs/files/OpenLayers/Layer/Grid-js.html
index ee7ba80..dd26b47 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Grid-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Grid-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Grid - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Grid - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,37 +11,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Grid"></a>OpenLayers.<span class=HB> </span>Layer.Grid</h1><div class=CBody><p>Base class for layers that use a lattice of tiles.   Create a new grid layer with the <a href="#OpenLayers.Layer.Grid.OpenLayers.Layer.Grid" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Layer.Grid</a> constructor.</p><h4 class=CHea [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Grid"></a>OpenLayers.<wbr>Layer.Grid</h1><div class=CBody><p>Base class for layers that use a lattice of tiles.   Create a new grid layer with the <a href="#OpenLayers.Layer.Grid.OpenLayers.Layer.Grid" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Layer.Grid</a> constructor.</p><h4 class=CHeading>Inherits  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt2', 'link12')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>} Optional origin for aligning the grid of tiles.  If provided, requests for tiles at all resolutions will be aligned with this location (no tiles shall overlap this locati [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileOptions"></a>tileOptions</h3><div class=CBody><p>{Object} optional configuration options for <a href="../Tile-js.html#OpenLayers.Tile" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt3', 'link14')" onMouseOut="HideTip('tt3')">OpenLayers.Tile</a> instances created by this Layer, if supported by the tile class.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.singleTile"></a>singleTile</h3><div class=CBody><p>{Boolean} Moves the layer into single-tile mode, meaning that one tile will be loaded.  The tile’s size will be determined by the ‘ratio’ property.  When the tile is dragged such that it does not cover the entire viewport, it is reloaded.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.ratio"></a>ratio</h3><div class=CBody><p>{Float} Used only when in single-tile mode, this specifies the ratio of the size of the single tile to the size of the map.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.buffer"></a>buffer</h3><div class=CBody><p>{Integer} Used only when in gridded mode, this specifies the number of extra rows and colums of tiles on each side which will surround the minimum grid tiles to cover the map.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.buffer"></a>buffer</h3><div class=CBody><p>{Integer} Used only when in gridded mode, this specifies the number of extra rows and colums of tiles on each side which will surround the minimum grid tiles to cover the map.  For very slow loading layers, a larger value may increase performance somewhat when dragging, but will increase bandwidth use significantly.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.numLoadingTiles"></a>numLoadingTiles</h3><div class=CBody><p>{Integer} How many tiles are still loading?</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileLoadingDelay"></a>tileLoadingDelay</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Integer}</td><td class=CDLDescription>Number of milliseconds before we shift and load tiles.  Default is 100.</td></tr></table></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.OpenLayers.Layer.Grid"></a>OpenLayers.<span class=HB> </span>Layer.Grid</h3><div class=CBody><p>Create a new grid layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>para [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.OpenLayers.Layer.Grid"></a>OpenLayers.<wbr>Layer.Grid</h3><div class=CBody><p>Create a new grid layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=C [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct the layer and clear the grid.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Deconstruct the layer and clear the grid.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Parame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setTileSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check if we are in singleTile mode and  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setTileSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTilesBounds"></a>getTilesBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getTilesBounds: function()</td></tr></table></blockquote><p>Return the bounds of the tile grid.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt9', 'link12')" onMouseO [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTilesBounds"></a>getTilesBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTilesBounds: function()</td></tr></table></blockquote><p>Return the bounds of the tile grid.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt1 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bloc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTile:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getTileBounds: function(</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns The tile bounds for [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTileBounds: function(</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
 </div><!--Content-->
 
@@ -49,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Deconstruct the layer and clear the grid.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 c [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt3"><div class=CClass>This is a class designed to designate a single tile, however it is explicitly designed to do relatively little. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpad [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/HTTPRequest-js.html b/doc/apidocs/files/OpenLayers/Layer/HTTPRequest-js.html
index 77bf582..a61b261 100644
--- a/doc/apidocs/files/OpenLayers/Layer/HTTPRequest-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/HTTPRequest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.HTTPRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.HTTPRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>HTTPRequest</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<wbr>Layer.<wbr>HTTPRequest</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Constants"></a>Constants</h3></div></div>
 
@@ -19,23 +19,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.reproject"></a>reproject</h3><div class=CBody><p><b>Deprecated</b>.  See <a href="http://trac.openlayers.org/wiki/SpatialMercator" class=LURL target=_top>http://trac.openlayers.org/wiki/SpatialMercator</a> for information on the replacement for this functionality.  {Boolean} Whether layer should reproject itself based on base layer locations.  This allows reprojection onto comme [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.reproject"></a>reproject</h3><div class=CBody><p><b>Deprecated</b>.  See <a href="http://docs.openlayers.org/library/spherical_mercator.html" class=LURL target=_top>http://docs.openlayers.org<wbr>/library<wbr>/spherical_mercator.html</a> for information on the replacement for this functionality.  {Boolean} Whether layer should reproject itself based on base layer locations.  Thi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>HTTPRequest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{Array(String) or String}</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<wbr>Layer.<wbr>HTTPRequest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{Array(String) or String}</td></tr><tr><td class=CDLEntry>params</t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl: function(</td><td class=PParameter nowrap>newUrl</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl: function(</td><td class="PParameter  prettyprint " nowrap>newUrl</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>redraw: function(</td><td class=PParameter nowrap>force</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Redraws the layer.   Returns true if the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>redraw: function(</td><td class="PParameter  prettyprint " nowrap>force</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters no [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  pre [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Image-js.html b/doc/apidocs/files/OpenLayers/Layer/Image-js.html
index fb9c197..264f3b0 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Image-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Image-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Image"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Image</h1><div class=CBody><p>Instances of OpenLayers.Layer.Image are used to display data from a web accessible image as a map layer.   Create a new image layer with the <a href="#OpenLayers.Layer.Image.OpenLayers.Layer.Image" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" on [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Image"></a>OpenLayers.<wbr>Layer.<wbr>Image</h1><div class=CBody><p>Instances of OpenLayers.Layer.Image are used to display data from a web accessible image as a map layer.   Create a new image layer with the <a href="#OpenLayers.Layer.Image.OpenLayers.Layer.Image" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.OpenLayers.Layer.Image"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Image</h3><div class=CBody><p>Create a new image layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescript [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.OpenLayers.Layer.Image"></a>OpenLayers.<wbr>Layer.<wbr>Image</h3><div class=CBody><p>Create a new image layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Relative or absolute pa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl: function(</td><td class=PParameter nowrap>newUrl</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl: function(</td><td class="PParameter  prettyprint " nowrap>newUrl</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The url we return is always the same (the image its [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>The [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/KaMap-js.html b/doc/apidocs/files/OpenLayers/Layer/KaMap-js.html
index 634e0d3..ad0e9df 100644
--- a/doc/apidocs/files/OpenLayers/Layer/KaMap-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/KaMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.KaMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.KaMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMap"></a>OpenLayers.<wbr>Layer.<wbr>KaMap</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><tabl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.Properties"></a>Properties</h3></div></div>
 
@@ -27,13 +27,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap"></a>OpenLayers.<wbr>Layer.<wbr>KaMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescription>{Object} [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspaci [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getTileBounds: function(</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns The tile bounds fo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTileBounds: function(</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/KaMapCache-js.html b/doc/apidocs/files/OpenLayers/Layer/KaMapCache-js.html
index 53d71be..4af3eed 100644
--- a/doc/apidocs/files/OpenLayers/Layer/KaMapCache-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/KaMapCache-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.KaMapCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.KaMapCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMapCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMapCache</h1><div class=CBody><p>This class is designed to talk directly to a web-accessible ka-Map cache generated by the precache2.php script.</p><p>To create a a new KaMapCache layer, you must indicate also the “i” parameter (that will be used to calculate the file extension), and anot [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMapCache"></a>OpenLayers.<wbr>Layer.<wbr>KaMapCache</h1><div class=CBody><p>This class is designed to talk directly to a web-accessible ka-Map cache generated by the precache2.php script.</p><p>To create a a new KaMapCache layer, you must indicate also the “i” parameter (that will be used to calculate the file extension), and another special parameter, object names  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.Constants"></a>Constants</h3></div></div>
 
@@ -21,7 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.OpenLayers.Layer.KaMapCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMapCache</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CD [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.OpenLayers.Layer.KaMapCache"></a>OpenLayers.<wbr>Layer.<wbr>KaMapCache</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescr [...]
 
 </div><!--Content-->
 
@@ -29,10 +29,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/MapGuide-js.html b/doc/apidocs/files/OpenLayers/Layer/MapGuide-js.html
index 564b5ef..b97afe2 100644
--- a/doc/apidocs/files/OpenLayers/Layer/MapGuide-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/MapGuide-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MapGuide - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MapGuide - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapGuide"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapGuide are used to display data from a MapGuide OS instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapGuide"></a>OpenLayers.<wbr>Layer.<wbr>MapGuide</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapGuide are used to display data from a MapGuide OS instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Grid</a></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} Treat this layer as a base layer.   Default is true.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.useHttpTile"></a>useHttpTile</h3><div class=CBody><p>{Boolean} use a tile cache exposed directly via a webserver rather than the via mapguide server.  This does require extra configuration on the Mapguide Server, and will only work when singleTile is false.  The url for the layer must be set to the webserver path rather than the Mapguide mapagent.  See <a href="http://trac.osgeo.or [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.useHttpTile"></a>useHttpTile</h3><div class=CBody><p>{Boolean} use a tile cache exposed directly via a webserver rather than the via mapguide server.  This does require extra configuration on the Mapguide Server, and will only work when singleTile is false.  The url for the layer must be set to the webserver path rather than the Mapguide mapagent.  See <a href="http://trac.osgeo.or [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.singleTile"></a>singleTile</h3><div class=CBody><p>{Boolean} use tile server or request single tile image.</p></div></div></div>
 
@@ -37,9 +37,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.OpenLayers.Layer.MapGuide"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</h3><div class=CBody><p>Create a new Mapguide layer, either tiled or untiled.</p><p>For tiled layers, the ‘groupName’ and ‘mapDefinition’ values must be specified as parameters in the constructor.</p><p>For untiled base layers, specify either combination of ‘mapN [...]
-
-<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.MapGuide_OS_uses_a_DPI_value_and_degrees_to_meters_conversion"></a>MapGuide OS uses a DPI value and degrees to meters conversion</h3><div class=CBody><p>factor that are different than the defaults used in OpenLayers, so these must be adjusted accordingly in your application.  See the MapGuide example for how to set these values for MGOS.</p><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.OpenLayers.Layer.MapGuide"></a>OpenLayers.<wbr>Layer.<wbr>MapGuide</h3><div class=CBody><p>Create a new Mapguide layer, either tiled or untiled.</p><p>For tiled layers, the ‘groupName’ and ‘mapDefinition’ values must be specified as parameters in the constructor.</p><p>For untiled base layers, specify either combination of ‘mapName’ and ‘session’ [...]
 
 </div><!--Content-->
 
@@ -47,10 +45,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/MapServer-js.html b/doc/apidocs/files/OpenLayers/Layer/MapServer-js.html
index d563d16..05c6bcc 100644
--- a/doc/apidocs/files/OpenLayers/Layer/MapServer-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/MapServer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MapServer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MapServer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapServer are used to display data from a MapServer CGI instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer"></a>OpenLayers.<wbr>Layer.<wbr>MapServer</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapServer are used to display data from a MapServer CGI instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Grid< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.OpenLayers.Layer.MapServer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer</h3><div class=CBody><p>Create a new MapServer layer object</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.OpenLayers.Layer.MapServer"></a>OpenLayers.<wbr>Layer.<wbr>MapServer</h3><div class=CBody><p>Create a new MapServer layer object</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} B [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/MapServer/Untiled-js.html b/doc/apidocs/files/OpenLayers/Layer/MapServer/Untiled-js.html
index dacce94..a55642a 100644
--- a/doc/apidocs/files/OpenLayers/Layer/MapServer/Untiled-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/MapServer/Untiled-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MapServer.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MapServer.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer.<span class=HB> </span>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.MapServer and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../MapServer-js.html#OpenL [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>MapServer.<wbr>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.MapServer and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../MapServer-js.html#OpenLayers.Layer.MapServer" class=LClass id=link1 onMouseOv [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer.<span class=HB> </span>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDe [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>MapServer.<wbr>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>par [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Markers-js.html b/doc/apidocs/files/OpenLayers/Layer/Markers-js.html
index d88cbf0..73988b4 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Markers-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Markers-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Markers - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Markers - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Markers"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Markers</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=ST [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Markers"></a>OpenLayers.<wbr>Layer.<wbr>Markers</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEn [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.Properties"></a>Properties</h3></div></div>
 
@@ -21,19 +21,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.OpenLayers.Layer.Markers"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Markers</h3><div class=CBody><p>Create a Markers layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.OpenLayers.Layer.Markers"></a>OpenLayers.<wbr>Layer.<wbr>Markers</h3><div class=CBody><p>Create a Markers layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity for all the markers [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.addMarker"></a>addMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.addMarker"></a>addMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the markers.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link10 onMouseOver="ShowTip(event,  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the markers.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link10 onMous [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/MultiMap-js.html b/doc/apidocs/files/OpenLayers/Layer/MultiMap-js.html
index 7dc20b9..9efe973 100644
--- a/doc/apidocs/files/OpenLayers/Layer/MultiMap-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/MultiMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MultiMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MultiMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MultiMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MultiMap</h1><div class=CBody><p>Note that MultiMap does not fully support the sphericalMercator option.  See Ticket #953 for more details.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt13' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MultiMap"></a>OpenLayers.<wbr>Layer.<wbr>MultiMap</h1><div class=CBody><p>Note that MultiMap does not fully support the sphericalMercator option.  See Ticket #953 for more details.  <b>Deprecated</b>.   Use OpenLayers.Layer.Bing instead.  See #3063</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LCla [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.Constants"></a>Constants</h3></div></div>
 
@@ -27,33 +27,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.OpenLayers.Layer.MultiMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MultiMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></di [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.OpenLayers.Layer.MultiMap"></a>OpenLayers.<wbr>Layer.<wbr>MultiMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint "  [...]
 
 </div><!--Content-->
 
@@ -61,15 +61,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote>{String} String with information on why layer is broken, how to get it working.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>se [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote>{String} String with information on why layer is broken, how to get it working.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PB [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/PointGrid-js.html b/doc/apidocs/files/OpenLayers/Layer/PointGrid-js.html
new file mode 100644
index 0000000..9472779
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Layer/PointGrid-js.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.PointGrid - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.PointGrid"></a>OpenLayers.<wbr>Layer.<wbr>PointGrid</h1><div class=CBody><p>A point grid layer dynamically generates a regularly spaced grid of point features.   This is a specialty layer for cases where an application needs a regular grid of points.   It can be used, for example, in an editing environment to snap to a grid.</p><p>Create a new vector layer with the <a h [...]
+var points = new OpenLayers.Layer.PointGrid({dx: 10, dy: 10});
+
+// create a grid with different x/y spacing rotated 15 degrees clockwise.
+var points = new OpenLayers.Layer.PointGrid({dx: 5, dy: 10, rotation: 15});</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt14', 'link15')" onMouseOut="HideTip('tt14')">OpenLayers.Layer.Vector</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain">< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.dx"></a>dx</h3><div class=CBody><p>{Number} Point grid spacing in the x-axis direction (map units).  Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setSpacing" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt5', 'link16')" onMouseOut="HideTip('tt5')">setSpacing</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.dy"></a>dy</h3><div class=CBody><p>{Number} Point grid spacing in the y-axis direction (map units).  Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setSpacing" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt5', 'link17')" onMouseOut="HideTip('tt5')">setSpacing</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.ratio"></a>ratio</h3><div class=CBody><p>{Number} Ratio of the desired grid size to the map viewport size.  Default is 1.5.   Larger ratios mean the grid is recalculated less often while panning.   The <a href="#OpenLayers.Layer.PointGrid.maxFeatures" class=LProperty id=link18 onMouseOver="ShowTip(event, 'tt4', 'link18')" onMouseOut="HideTip('tt4')">maxFeatures</a> setting has pre [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.maxFeatures"></a>maxFeatures</h3><div class=CBody><p>{Number} The maximum number of points to generate in the grid.   Default is 250.   Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setMaxFeatures" class=LFunction id=link20 onMouseOver="ShowTip(event, 'tt3', 'link20')" onMouseOut="HideTip('tt3')">setMaxFeatures</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.rotation"></a>rotation</h3><div class=CBody><p>{Number} Grid rotation (in degrees clockwise from the positive x-axis).  Default is 0.   Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setRotation" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt11', 'link21')" onMouseOut="HideTip('tt11')">setRotation</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.origin"></a>origin</h3><div class=CBody><p>{OpenLayers.LonLat} Grid origin.   The grid lattice will be aligned with the origin.   If not set at construction, the center of the map’s maximum extent is used.   Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setOrigin" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt8', 'link22')" onMouseOut="HideTip('tt [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.OpenLayers.Layer.PointGrid"></a>OpenLayers.<wbr>Layer.<wbr>PointGrid</h3><div class=CBody><p>Creates a new point grid layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing all configuration properties for the layer.   The <a href="#OpenLayers.L [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setRatio"></a>setRatio</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setRatio: function(</td><td class="PParameter  prettyprint " nowrap>ratio</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setMaxFeatures"></a>setMaxFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMaxFeatures: function(</td><td class="PParameter  prettyprint " nowrap>maxFeatures</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setSpacing"></a>setSpacing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSpacing: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfterParame [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setOrigin"></a>setOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOrigin: function(</td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.getOrigin"></a>getOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getOrigin: function()</td></tr></table></blockquote><p>Get the grid <a href="#OpenLayers.Layer.PointGrid.origin" class=LProperty id=link33 onMouseOver="ShowTip(event, 'tt9', 'link33')" onMouseOut="HideTip('tt9')">origin</a> property.</p><h4 class=CHe [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setRotation"></a>setRotation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setRotation: function(</td><td class="PParameter  prettyprint " nowrap>rotation</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setRatio: function(</td><td class="PParameter  prettyprint " nowrap>ratio</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Set the grid ratio property and update the grid. </div></div><div class=CToolTip id=" [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Layer/PointTrack-js.html b/doc/apidocs/files/OpenLayers/Layer/PointTrack-js.html
index 56159f5..0d50ee9 100644
--- a/doc/apidocs/files/OpenLayers/Layer/PointTrack-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/PointTrack-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.PointTrack - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.PointTrack - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.PointTrack"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>PointTrack</h1><div class=CBody><p>Vector layer to display ordered point features as a line, creating one LineString feature for each pair of two points.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link2 onMouseOver="ShowTip(event, 't [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.PointTrack"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack</h1><div class=CBody><p>Vector layer to display ordered point features as a line, creating one LineString feature for each pair of two points.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip(' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.PointTrack"></a>OpenLayers.<span class=HB> </span>PointTrack</h3><div class=CBody><p>Constructor for a new OpenLayers.PointTrack instance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} name of the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CD [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.PointTrack"></a>OpenLayers.<wbr>PointTrack</h3><div class=CBody><p>Constructor for a new OpenLayers.PointTrack instance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} name of the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Obje [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.addNodes"></a>addNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addNodes: function(</td><td class=PParameter nowrap>pointFeatures</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds point features that will be  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.addNodes"></a>addNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addNodes: function(</td><td class="PParameter  prettyprint " nowrap>pointFeatures,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>PointTrack.<span class=HB> </span>dataFrom</h3><div class=CBody><p>{Object} with the following keys</p><ul><li>SOURCE_NODE: take data/attributes from the source node of the line</li><li>TARGET_NODE: take data/attributes from the target node of the line</li></ul></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.SOURCE_NODE"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>SOURCE_NODE</h3><div class=CBody><p>{Number} value for <a href="#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" class=LConstant >OpenLayers.Layer.PointTrack.dataFrom</a> and <OpenLayers.Layer.PointTrack.styleFrom></p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.TARGET_NODE"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>TARGET_NODE</h3><div class=CBody><p>{Number} value for <a href="#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" class=LConstant >OpenLayers.Layer.PointTrack.dataFrom</a> and <OpenLayers.Layer.PointTrack.styleFrom></p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>dataFrom</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Object} with the following keys</td><td class=CDLDescription><b>deprecated</b></td></tr></table><ul><li>SOURCE_NODE: take data/attributes from the source node of the line</li><li>TARGET_NODE: [...]
 
 </div><!--Content-->
 
@@ -31,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addNodes: function(</td><td class=PParameter nowrap>pointFeatures</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds point features that will be used to create lines from, using point pairs. </div></div><div class=CToolTip id="tt2"><div  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addNodes: function(</td><td class="PParameter  prettyprint " nowrap>pointFeatures,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Ad [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/SphericalMercator-js.html b/doc/apidocs/files/OpenLayers/Layer/SphericalMercator-js.html
index 6f96a83..0d217df 100644
--- a/doc/apidocs/files/OpenLayers/Layer/SphericalMercator-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/SphericalMercator-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.SphericalMercator - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.SphericalMercator - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.SphericalMercator"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>SphericalMercator</h1><div class=CBody><p>A mixin for layers that wraps up the pieces neccesary to have a coordinate conversion for working with commercial APIs which use a spherical mercator projection.   Using this layer as a base layer, additional layers can be used as overlays if they a [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.SphericalMercator"></a>OpenLayers.<wbr>Layer.<wbr>SphericalMercator</h1><div class=CBody><p>A mixin for layers that wraps up the pieces neccesary to have a coordinate conversion for working with commercial APIs which use a spherical mercator projection.   Using this layer as a base layer, additional layers can be used as overlays if they are in the same projection.</p><p>A l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.forwardMercator"></a>forwardMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>forwardMercator: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.forwardMercator"></a>forwardMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>forwardMercator: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>lat</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.inverseMercator"></a>inverseMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>inverseMercator: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
-
-<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.Two_transforms_declared"></a>Two transforms declared</h3><div class=CBody><p>Transforms from EPSG:4326 to EPSG:900913 and from EPSG:900913 to EPSG:4326 are set by this class.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.inverseMercator"></a>inverseMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>inverseMercator: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><t [...]
 
 </div><!--Content-->
 
@@ -27,15 +25,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>forwardMercator: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Given a lon,lat in EPSG:4326, return a point in Spherical Mercator.</div> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>forwardMercator: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>lat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Given a l [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/TMS-js.html b/doc/apidocs/files/OpenLayers/Layer/TMS-js.html
index 59d1a6a..cfd2c2b 100644
--- a/doc/apidocs/files/OpenLayers/Layer/TMS-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/TMS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.TMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.TMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,29 +11,44 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TMS"></a>OpenLayers.<span class=HB> </span>Layer.TMS</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBor [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TMS"></a>OpenLayers.<wbr>Layer.TMS</h1><div class=CBody><p>Create a layer for accessing tiles from services that conform with the Tile Map Service Specification (<a href="http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification" class=LURL target=_top>http://wiki.osgeo.org<wbr>/wiki<wbr>/Tile_Map_Service_Specification</a>).</p><h4 class=CHeading>Example</h4><blockquote><pre clas [...]
+    "My Layer", // name for display in LayerSwitcher
+    "http://tilecache.osgeo.org/wms-c/Basic.py/", // service endpoint
+    {layername: "basic", type: "png"} // required properties
+);</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer.TMS" >OpenLayers.<wbr>Layer.TMS</a></td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.serviceVersion"></a>serviceVersion</h3><div class=CBody><p>{String}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.serviceVersion"></a>serviceVersion</h3><div class=CBody><p>{String} Service version for tile requests.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.layername"></a>layername</h3><div class=CBody><p>{String} The identifier for the <TileMap> as advertised by the service.  For example, if the service advertises a <TileMap> with ‘href=”<a href="http://tms.osgeo.org/1.0.0/vmap0" class=LURL target=_top>http://tms.osgeo.org/1.0.0/vmap0</a>”’, the <a href="#OpenLayers.Layer.TMS.layername" class=LProperty id=link4 o [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Pixel</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.type"></a>type</h3><div class=CBody><p>{String} The format extension corresponding to the requested tile image type.   This is advertised in a <TileFormat> element as the “extension” attribute.   For example, if the service advertises a <TileMap> with <TileFormat width=”256” height=”256” mime-type=”image/jpeg” extension=”jp [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} Make this layer a base layer.   Default is true.   Set false to use the layer as an overlay.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} Optional origin for aligning the grid of tiles.  If provided, requests for tiles at all resolutions will be aligned with this location (no tiles shall overlap this location) [...]
+    "My Layer",
+    "http://tilecache.osgeo.org/wms-c/Basic.py/",
+    {
+        layername: "basic",
+        type: "png",
+        // set if different than the bottom left of map.maxExtent
+        tileOrigin: new OpenLayers.LonLat(-180, -90)
+    }
+);</pre></blockquote></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.serverResolutions"></a>serverResolutions</h3><div class=CBody><p>{Array} A list of all resolutions available on the server.   Only set this property if the map resolutions differs from the server.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.OpenLayers.Layer.TMS"></a>OpenLayers.<span class=HB> </span>Layer.TMS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.OpenLayers.Layer.TMS"></a>OpenLayers.<wbr>Layer.TMS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Title to be displayed in a <a href="../Control/LayerSwitcher-js.html#OpenLayers.Control.LayerSwitcher" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt9',  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the layer is added to a map, then we can fetch our  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a c [...]
 
 </div><!--Content-->
 
@@ -41,15 +56,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Text-js.html b/doc/apidocs/files/OpenLayers/Layer/Text-js.html
index 2945998..6922101 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Text-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Text-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,8 +11,8 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Text"></a>OpenLayers.<span class=HB> </span>Layer.Text</h1><div class=CBody><p>This layer creates markers given data in a text file.   The <a href="#OpenLayers.Layer.Text.location" class=LProperty id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">location</a> property of the layer (specified as a property of the options argument in the <a href [...]
-10   20  title   description 21,25       -10,-25     http://www.openlayers.org/dev/img/marker.png</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer.Text" >OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Text"></a>OpenLayers.<wbr>Layer.Text</h1><div class=CBody><p>This layer creates markers given data in a text file.   The <a href="#OpenLayers.Layer.Text.location" class=LProperty id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">location</a> property of the layer (specified as a property of the options argument in the <a href="#OpenLayers.Laye [...]
+10   20  title   description 21,25       -10,-25     http://www.openlayers.org/dev/img/marker.png</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer.Text" >OpenLayers [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.Properties"></a>Properties</h3></div></div>
 
@@ -22,11 +22,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.OpenLayers.Layer.Text"></a>OpenLayers.<span class=HB> </span>Layer.Text</h3><div class=CBody><p>Create a text layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Object with properties to be set on [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.OpenLayers.Layer.Text"></a>OpenLayers.<wbr>Layer.Text</h3><div class=CBody><p>Create a text layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Object with properties to be set on the layer.   [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -34,15 +34,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CProperty>{String} URL of text file. </div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a text layer.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CProperty>{String} URL of text file. </div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a text layer.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/TileCache-js.html b/doc/apidocs/files/OpenLayers/Layer/TileCache-js.html
index 230b0a4..d8eeb07 100644
--- a/doc/apidocs/files/OpenLayers/Layer/TileCache-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/TileCache-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.TileCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.TileCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TileCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>TileCache</h1><div class=CBody><p>A read only TileCache layer.   Used to requests tiles cached by TileCache in a web accessible cache.   This means that you have to pre-populate your cache before this layer can be used.   It is meant only to read tiles created by TileCache, and not to mak [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TileCache"></a>OpenLayers.<wbr>Layer.<wbr>TileCache</h1><div class=CBody><p>A read only TileCache layer.   Used to requests tiles cached by TileCache in a web accessible cache.   This means that you have to pre-populate your cache before this layer can be used.   It is meant only to read tiles created by TileCache, and not to make calls to TileCache for tile creati [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.Properties"></a>Properties</h3></div></div>
 
@@ -23,11 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.OpenLayers.Layer.TileCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>TileCache</h3><div class=CBody><p>Create a new read only TileCache layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of the layer displayed in the interface</td></tr><t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.OpenLayers.Layer.TileCache"></a>OpenLayers.<wbr>Layer.<wbr>TileCache</h3><div class=CBody><p>Create a new read only TileCache layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of the layer displayed in the interface</td></tr><tr><td class=CDLEntry>url</td><td cla [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDesc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><table  [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new read only TileCache layer.</div></div><div class=CToolTip i [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new read only T [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Vector-js.html b/doc/apidocs/files/OpenLayers/Layer/Vector-js.html
index b93df9c..faafbac 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Vector-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Vector-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector</h1><div class=CBody><p>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources.  Create a new vector layer with the <a href="#OpenLayers.Layer.Vector.OpenLayers.Layer.Vector" class=LConstructor id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector"></a>OpenLayers.<wbr>Layer.<wbr>Vector</h1><div class=CBody><p>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources.  Create a new vector layer with the <a href="#OpenLayers.Layer.Vector.OpenLayers.Layer.Vector" class=LConstructor id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">OpenLayers.L [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p> [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Properties"></a>Properties</h3></div></div>
 
@@ -23,49 +23,51 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.isFixed"></a>isFixed</h3><div class=CBody><p>{Boolean} Whether the layer remains in one place while dragging the map.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.isVector"></a>isVector</h3><div class=CBody><p>{Boolean} Whether the layer is a vector layer.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.features"></a>features</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.features"></a>features</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.reportError"></a>reportError</h3><div class=CBody><p>{Boolean} report friendly error message when loading of renderer fails.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.style"></a>style</h3><div class=CBody><p>{Object} Default style for the layer</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.rendererOptions"></a>rendererOptions</h3><div class=CBody><p>{Object} Options for the renderer.  See {<a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')">OpenLayers.Renderer</a>} for supported options.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.rendererOptions"></a>rendererOptions</h3><div class=CBody><p>{Object} Options for the renderer.  See {<a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt18', 'link19')" onMouseOut="HideTip('tt18')">OpenLayers.Renderer</a>} for supported options.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.geometryType"></a>geometryType</h3><div class=CBody><p>{String} geometryType allows you to limit the types of geometries this layer supports.  This should be set to something like “OpenLayers.Geometry.Point” to limit types.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.OpenLayers.Layer.Vector"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector</h3><div class=CBody><p>Create a new vector layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CDLD [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.OpenLayers.Layer.Vector"></a>OpenLayers.<wbr>Layer.<wbr>Vector</h3><div class=CBody><p>Create a new vector layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>Redraws the layer.   Returns true if the layer was redrawn, false if not.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer was redrawn.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the Layer</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.addFeatures"></a>addFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.addFeatures"></a>addFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addFeatures: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeFeatures"></a>removeFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeFeatures"></a>removeFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeFeatures: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeAllFeatures"></a>removeAllFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeAllFeatures: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeAllFeatures"></a>removeAllFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeAllFeatures: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove all featu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroyFeatures"></a>destroyFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroyFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroyFeatures"></a>destroyFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>destroyFeatures: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawFeature: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureBy"></a>getFeatureBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>value</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureBy"></a>getFeatureBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureById"></a>getFeatureById</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureById: function(</td><td class="PParameter  prettyprint " nowrap>featureId</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureById"></a>getFeatureById</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureById: function(</td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a feature id, ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureByFid"></a>getFeatureByFid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureByFid: function(</td><td class="PParameter  prettyprint " nowrap>featureFid</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureByFid"></a>getFeatureByFid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureByFid: function(</td><td class=PParameter nowrap>featureFid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a feature fid [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeaturesByAttribute"></a>getFeaturesByAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeaturesByAttribute: function(</td><td class="PParameter  prettyprint " nowrap>attrName,</td></tr><tr><td></td><td class="PParameter  prettyprint  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.onFeatureInsert"></a>onFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onFeatureInsert: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>method called after a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.onFeatureInsert"></a>onFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onFeatureInsert: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.preFeatureInsert"></a>preFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>preFeatureInsert: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>method called befor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.preFeatureInsert"></a>preFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>preFeatureInsert: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the features.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link28 onMouseOver="ShowTip(event,  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the features.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link31 onMous [...]
 
 </div><!--Content-->
 
@@ -73,15 +75,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"> [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Vector/RootContainer-js.html b/doc/apidocs/files/OpenLayers/Layer/Vector/RootContainer-js.html
index e2d0894..1a2a9ac 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Vector/RootContainer-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Vector/RootContainer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Vector.RootContainer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Vector.RootContainer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="N [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector.<span class=HB> </span>RootContainer</h1><div class=CBody><p>A special layer type to combine multiple vector layers inside a single renderer root container.  This class is not supposed to be instantiated from user space, it is a helper class for controls that require event process [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<wbr>Layer.<wbr>Vector.<wbr>RootContainer</h1><div class=CBody><p>A special layer type to combine multiple vector layers inside a single renderer root container.  This class is not supposed to be instantiated from user space, it is a helper class for controls that require event processing for multiple vector layers.</p><h4 class=CHeading> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector.<span class=HB> </span>RootContainer</h3><div class=CBody><p>Create a new root container for multiple vector layer.  This constructor is not supposed to be used from user space, it is only to be used by controls that need feature selection across multiple vector lay [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<wbr>Layer.<wbr>Vector.<wbr>RootContainer</h3><div class=CBody><p>Create a new root container for multiple vector layer.  This constructor is not supposed to be used from user space, it is only to be used by controls that need feature selection across multiple vector layers.</p><h4 class=CHeading>Parameters</h4><table borde [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/VirtualEarth-js.html b/doc/apidocs/files/OpenLayers/Layer/VirtualEarth-js.html
index 6eeeca8..fc0ba97 100644
--- a/doc/apidocs/files/OpenLayers/Layer/VirtualEarth-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/VirtualEarth-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.VirtualEarth - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.VirtualEarth - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>VirtualEarth</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">OpenLayers.Layer.EventPane</a></li><li><a href="FixedZoomLevels-js.h [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<wbr>Layer.<wbr>VirtualEarth</h1><div class=CBody><p>Instances of OpenLayers.Layer.VirtualEarth are used to display the data from the Bing Maps AJAX Control <img mode="link" target="e.g.  
url target=”http://msdn.microsoft.com/library/bb429619.aspx” name=”http://msdn.microsoft.com/library/bb429619.aspx”>” original=&r [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.Constants"></a>Constants</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.type"></a>type</h3><div class=CBody><p>{VEMapType}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><p>{Boolean} Allow user to pan forever east/west.   Default is true.  Setting this to false only restricts panning if <a href="#OpenLayers.Layer.VirtualEarth.sphericalMercator" class=LProperty id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">sphericalMercator</a> is true.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><p>{Boolean} Allow user to pan forever east/west.   Default is true.  Setting this to false only restricts panning if <a href="#OpenLayers.Layer.VirtualEarth.sphericalMercator" class=LProperty id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">sphericalMercator</a> is true.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.sphericalMercator"></a>sphericalMercator</h3><div class=CBody><p>{Boolean} Should the map act as a mercator-projected map?  This will cause all interactions with the map to be in the actual map projection, which allows support for vector drawing, overlaying other maps, etc.</p></div></div></div>
 
@@ -33,35 +33,44 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>VirtualEarth</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></tabl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<wbr>Layer.<wbr>VirtualEarth</h3><div class=CBody><p>Creates a new instance of a OpenLayers.Layer.VirtualEarth.  If you use an instance of OpenLayers.Layer.VirtualEarth in you map, you should set the <a href="../Map-js.html#OpenLayers.Map" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">Op [...]
+    // other map options
+    restrictedExtent : OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
+} );
+
+var veLayer = new OpenLayers.Layer.VirtualEarth (
+    "Virtual Earth Layer"
+);
+
+map.addLayer( veLayer );</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragPanMapObject: function(</td><td class=PParameter nowrap>dX,</td></tr><tr><td></td><td class=PParameter nowrap>dY</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragPanMapObject: function(</td><td class="PParameter  prettyprint " nowrap>dX,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dY</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAf [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowra [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprin [...]
 
 </div><!--Content-->
 
@@ -69,15 +78,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote>{String} String with information on why layer is broken, how to get it working.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>se [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote>{String} String with information on why layer is broken, how to get it working.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PB [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/WFS-js.html b/doc/apidocs/files/OpenLayers/Layer/WFS-js.html
index 46c746b..8bfcb8b 100644
--- a/doc/apidocs/files/OpenLayers/Layer/WFS-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WFS"></a>OpenLayers.<span class=HB> </span>Layer.WFS</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with a Protocol.WFS and one or more Strategies.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WFS"></a>OpenLayers.<wbr>Layer.WFS</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with a Protocol.WFS and one or more Strategies.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.Properties"></a>Properties</h3></div></div>
 
@@ -31,27 +31,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.OpenLayers.Layer.WFS"></a>OpenLayers.<span class=HB> </span>Layer.WFS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescription>{ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.OpenLayers.Layer.WFS"></a>OpenLayers.<wbr>Layer.WFS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescription>{Object}</td></tr>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Modify parameters for the l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>commit: function()</td></tr></table></blockquote><p>Write out the data to a WFS server.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">commit: function()</td></tr></table></blockquote><p>Write out the data to a WFS server.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitReport"></a>commitReport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commitReport: function(</td><td class=PParameter nowrap>string,</td></tr><tr><td></td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitReport"></a>commitReport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commitReport: function(</td><td class="PParameter  prettyprint " nowrap>string,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>response</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>refresh: function()</td></tr></table></blockquote><p>Refreshes all the features of the layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">refresh: function()</td></tr></table></blockquote><p>Refreshes all the features of the layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the layer data.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link15 onMouseOver="ShowTip(event, ' [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the layer data.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link15 onMouse [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function (</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Call the setOpacity method of the appro [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function (</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
 </div><!--Content-->
 
@@ -59,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><tabl [...]
+<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunc [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/WMS-js.html b/doc/apidocs/files/OpenLayers/Layer/WMS-js.html
index 722c600..22fdbaf 100644
--- a/doc/apidocs/files/OpenLayers/Layer/WMS-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/WMS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS"></a>OpenLayers.<span class=HB> </span>Layer.WMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services.  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.OpenLayers.Layer.WMS" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Layer.WMS</a [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS"></a>OpenLayers.<wbr>Layer.WMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services.  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.OpenLayers.Layer.WMS" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Layer.WMS</a> constructor.</p> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Constants"></a>Constants</h3></div></div>
 
@@ -27,17 +27,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.OpenLayers.Layer.WMS"></a>OpenLayers.<span class=HB> </span>Layer.WMS</h3><div class=CBody><p>Create a new WMS layer object</p><h4 class=CHeading>Example</h4><blockquote><pre>var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.OpenLayers.Layer.WMS"></a>OpenLayers.<wbr>Layer.WMS</h3><div class=CBody><p>Create a new WMS layer object</p><h4 class=CHeading>Examples</h4><p>The code below creates a simple WMS layer using the image/jpeg format.</p><blockquote><pre class="prettyprint">var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
                                    "http://wms.jpl.nasa.gov/wms.cgi",
-                                   {layers: "modis,global_mosaic"});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base url for the WMS (e.g.  <a href="http://wms.jpl.nasa.gov/wms.cgi" class=LURL target=_top>http://wms.jpl.nasa.gov/wms.cgi</a> [...]
+                                   {layers: "modis,global_mosaic"});</pre></blockquote><p>Note the 3rd argument (params).  Properties added to this object will be added to the WMS GetMap requests used for this layer’s tiles.  The only mandatory parameter is “layers”.  Other common WMS params include “transparent”, “styles” and “format”.  Note that the “srs” param will always be ignored.   [...]
+                                   "http://wms.jpl.nasa.gov/wms.cgi",
+                                   {
+                                       layers: "modis,global_mosaic",
+                                       transparent: true
+                                   }, {
+                                       opacity: 0.5,
+                                       singleTile: true
+                                   });</pre></blockquote><p>Note that by default, a WMS layer is configured as baseLayer.  Setting the “transparent” param to true will apply some magic (see <a href="#OpenLayers.Layer.WMS.noMagic" class=LProperty id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">noMagic</a>).  The default image format changes from image/jpeg to image/png, and the layer is not configured as baseLayer.</p><h4 class=CHead [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.reverseAxisOrder"></a>reverseAxisOrder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>reverseAxisOrder: function()</td></tr></table></blockquote><p>Returns true if the axis order is reversed for the WMS version and projection of the layer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} true if the axis order is reversed, false otherwise.</p></div>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.reverseAxisOrder"></a>reverseAxisOrder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">reverseAxisOrder: function()</td></tr></table></blockquote><p>Returns true if the axis order is reversed for the WMS version and projection of the layer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} true if the axis order is reversed, false [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Catch changeParams and uppe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
 </div><!--Content-->
 
@@ -45,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>reverseAxisOrder: function()</td></tr></table></blockquote>Returns true if the axis order is reversed for the WMS version and projection of the layer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParam [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">reverseAxisOrder: function()</td></tr></table></blockquote>Returns true if the axis order is reversed for the WMS version and projection of the layer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><t [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/WMS/Post-js.html b/doc/apidocs/files/OpenLayers/Layer/WMS/Post-js.html
index b5286df..27f1c2f 100644
--- a/doc/apidocs/files/OpenLayers/Layer/WMS/Post-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/WMS/Post-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMS.Post - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMS.Post - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Post"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.Post</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS.Post are used to retrieve data from OGC Web Mapping Services via HTTP-POST (application/x-www-form-urlencoded).  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post" class=LConstructor id=lin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Post"></a>OpenLayers.<wbr>Layer.<wbr>WMS.Post</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS.Post are used to retrieve data from OGC Web Mapping Services via HTTP-POST (application/x-www-form-urlencoded).  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.unsupportedBrowsers"></a>unsupportedBrowsers</h3><div class=CBody><p>{Array} Array with browsers, which should use the HTTP-GET protocol instead of HTTP-POST for fetching tiles from a WMS . Defaults to [“mozilla”, “firefox”, “opera”], because Opera is not able to show transparent images in IFrames and Firefox/Mozilla has some ugly effects of viewport-shaking wh [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.unsupportedBrowsers"></a>unsupportedBrowsers</h3><div class=CBody><p>{Array} Array with browsers, which should use the HTTP-GET protocol instead of HTTP-POST for fetching tiles from a WMS . Defaults to [“mozilla”, “firefox”, “opera”], because Opera is not able to show transparent images in IFrames and Firefox/Mozilla has some ugly effects of viewport-shaking wh [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.Post</h3><div class=CBody><p>Creates a new WMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre>var wms = new OpenLayers.Layer.WMS.Post(
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post"></a>OpenLayers.<wbr>Layer.<wbr>WMS.Post</h3><div class=CBody><p>Creates a new WMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var wms = new OpenLayers.Layer.WMS.Post(
  "NASA Global Mosaic",
  "http://wms.jpl.nasa.gov/wms.cgi",
  {layers: "modis, global_mosaic"});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base url for the WMS (e.g.  <a href="http://wms.jpl.nasa.gov/wms.cgi" class=LURL target=_top>http://wms.jpl.nasa.gov/wms.cgi</a>)</td></tr><tr><td class=CDLEntry [...]
@@ -30,15 +30,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>Creates a new WMS layer object.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Creates a new WMS layer object.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Number} If set, requests that would result in GET urls with more characters than the number provided will be made using form-encoded HTTP POST. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/WMS/Untiled-js.html b/doc/apidocs/files/OpenLayers/Layer/WMS/Untiled-js.html
index 84ab335..8a7619d 100644
--- a/doc/apidocs/files/OpenLayers/Layer/WMS/Untiled-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/WMS/Untiled-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMS.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMS.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.<span class=HB> </span>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.WMS and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMS-js.html#OpenLayers.Layer.WMS" class=L [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>WMS.<wbr>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.WMS and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMS-js.html#OpenLayers.Layer.WMS" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'lin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.<span class=HB> </span>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>WMS.<wbr>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class= [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/WMTS-js.html b/doc/apidocs/files/OpenLayers/Layer/WMTS-js.html
index c66f1b7..e94d6ea 100644
--- a/doc/apidocs/files/OpenLayers/Layer/WMTS-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/WMTS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMTS"></a>OpenLayers.<span class=HB> </span>Layer.WMTS</h1><div class=CBody><p>Instances of the WMTS class allow viewing of tiles from a service that implements the OGC WMTS specification version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMTS"></a>OpenLayers.<wbr>Layer.WMTS</h1><div class=CBody><p>Instances of the WMTS class allow viewing of tiles from a service that implements the OGC WMTS specification version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayer [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.Properties"></a>Properties</h3></div></div>
 
@@ -35,29 +35,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.formatSuffix"></a>formatSuffix</h3><div class=CBody><p>{String} For REST request encoding, an image format suffix must be included in the request.   If not provided, the suffix will be derived from the <a href="#OpenLayers.Layer.WMTS.format" class=LProperty id=link12 onMouseOver="ShowTip(event, 'tt9', 'link12')" onMouseOut="HideTip('tt9')">format</a> property.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.matrixIds"></a>matrixIds</h3><div class=CBody><p>{Array} A list of tile matrix identifiers.   If not provided, the matrix identifiers will be assumed to be integers corresponding to the map zoom level.   If a list of strings is provided, each item should be the matrix identifier that corresponds to the map zoom level.  Additionally, a list of objects can be provided.   Each object [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.matrixIds"></a>matrixIds</h3><div class=CBody><p>{Array} A list of tile matrix identifiers.   If not provided, the matrix identifiers will be assumed to be integers corresponding to the map zoom level.   If a list of strings is provided, each item should be the matrix identifier that corresponds to the map zoom level.  Additionally, a list of objects can be provided.   Each object [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.dimensions"></a>dimensions</h3><div class=CBody><p>{Array} For RESTful request encoding, extra dimensions may be specified.  Items in this list should be property names in the <a href="#OpenLayers.Layer.WMTS.params" class=LProperty id=link15 onMouseOver="ShowTip(event, 'tt5', 'link15')" onMouseOut="HideTip('tt5')">params</a> object.  Values of extra dimensions will be determined from the co [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.dimensions"></a>dimensions</h3><div class=CBody><p>{Array} For RESTful request encoding, extra dimensions may be specified.  Items in this list should be property names in the <a href="#OpenLayers.Layer.WMTS.params" class=LProperty id=link17 onMouseOver="ShowTip(event, 'tt5', 'link17')" onMouseOut="HideTip('tt5')">params</a> object.  Values of extra dimensions will be determined from the co [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.params"></a>params</h3><div class=CBody><p>{Object} Extra parameters to include in tile requests.   For KVP <a href="#OpenLayers.Layer.WMTS.requestEncoding" class=LProperty id=link17 onMouseOver="ShowTip(event, 'tt11', 'link17')" onMouseOut="HideTip('tt11')">requestEncoding</a>, these properties will be encoded in the request query string.   For REST <a href="#OpenLayers.Layer.WMTS.requestE [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.params"></a>params</h3><div class=CBody><p>{Object} Extra parameters to include in tile requests.   For KVP <a href="#OpenLayers.Layer.WMTS.requestEncoding" class=LProperty id=link19 onMouseOver="ShowTip(event, 'tt12', 'link19')" onMouseOut="HideTip('tt12')">requestEncoding</a>, these properties will be encoded in the request query string.   For REST <a href="#OpenLayers.Layer.WMTS.requestE [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your cac [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your cac [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.OpenLayers.Layer.WMTS"></a>OpenLayers.<span class=HB> </span>Layer.WMTS</h3><div class=CBody><p>Create a new WMTS layer.</p><h4 class=CHeading>Example</h4><blockquote><pre>var wmts = new OpenLayers.Layer.WMTS({
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.OpenLayers.Layer.WMTS"></a>OpenLayers.<wbr>Layer.WMTS</h3><div class=CBody><p>Create a new WMTS layer.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var wmts = new OpenLayers.Layer.WMTS({
     name: "My WMTS Layer",
     url: "http://example.com/wmts",
     layer: "layer_id",
     style: "default",
     matrixSet: "matrix_id"
-});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} Configuration properties for the layer.</td></tr></table><h4 class=CHeading>Required configuration properties</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} The base url for the service.   See the <a href="# [...]
+});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} Configuration properties for the layer.</td></tr></table><h4 class=CHeading>Required configuration properties</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} The base url for the service.   See the <a href="# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams: function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend the existing layer [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams: function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
 </div><!--Content-->
 
@@ -65,15 +65,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/WorldWind-js.html b/doc/apidocs/files/OpenLayers/Layer/WorldWind-js.html
index 11340a9..db494d8 100644
--- a/doc/apidocs/files/OpenLayers/Layer/WorldWind-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/WorldWind-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WorldWind - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WorldWind - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WorldWind"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WorldWind</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WorldWind"></a>OpenLayers.<wbr>Layer.<wbr>WorldWind</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBord [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>WorldWind layer is a base layer by default.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} WorldWind layer is a base layer by default.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.lzd"></a>lzd</h3><div class=CBody><p>LevelZeroTileSizeDegrees</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.lzd"></a>lzd</h3><div class=CBody><p>{Float} LevelZeroTileSizeDegrees</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.zoomLevels"></a>zoomLevels</h3><div class=CBody><p>Number of zoom levels.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.zoomLevels"></a>zoomLevels</h3><div class=CBody><p>{Integer} Number of zoom levels.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.OpenLayers.Layer.WorldWind"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WorldWind</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of Layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base URL</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.OpenLayers.Layer.WorldWind"></a>OpenLayers.<wbr>Layer.<wbr>WorldWind</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of Layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base URL</td></tr><tr><td class=CDLEntry>lzd</td>< [...]
 
 </div><!--Content-->
 
@@ -31,10 +31,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/XYZ-js.html b/doc/apidocs/files/OpenLayers/Layer/XYZ-js.html
index 9d987ff..cf9ad15 100644
--- a/doc/apidocs/files/OpenLayers/Layer/XYZ-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/XYZ-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.XYZ - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.XYZ - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.XYZ"></a>OpenLayers.<span class=HB> </span>Layer.XYZ</h1><div class=CBody><p>The XYZ class is designed to make it easier for people who have tiles arranged by a standard XYZ grid.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Lay [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.XYZ"></a>OpenLayers.<wbr>Layer.XYZ</h1><div class=CBody><p>The XYZ class is designed to make it easier for people who have tiles arranged by a standard XYZ grid.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.Properties"></a>Properties</h3></div></div>
 
@@ -19,20 +19,22 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.sphericalMecator"></a>sphericalMecator</h3><div class=CBody><p>Whether the tile extents should be set to the defaults for spherical mercator.  Useful for things like OpenStreetMap.  Default is false, except for the OSM subclass.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.serverResolutions"></a>serverResolutions</h3><div class=CBody><p>{Array} A list of all resolutions available on the server.   Only set this property if the map resolutions differs from the server.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.OpenLayers.Layer.XYZ"></a>OpenLayers.<span class=HB> </span>Layer.XYZ</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.OpenLayers.Layer.XYZ"></a>OpenLayers.<wbr>Layer.XYZ</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the layer is added to a map, then we can fetch our  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Layer.OSM"></a>OpenLayers.<span class=HB> </span>Layer.OSM</h2><div class=CBody><p>A class to access OpenStreetMap tiles.  By default, uses the OpenStreetMap hosted tile.openstreetmap.org ‘Mapnik’ tileset.  If you wish to use tiles at home / osmarender layer instead, you can pass a layer like:</p><blockquote><pre>new OpenLayers.Layer.OSM("t at h",
-  "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png");</pre></blockquote><p>This layer defaults to Spherical Mercator.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="#OpenLayers.Layer.XYZ" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Layer.XYZ</a></li></ul></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Layer.OSM"></a>OpenLayers.<wbr>Layer.OSM</h2><div class=CBody><p>A class to access OpenStreetMap tiles.  By default, uses the OpenStreetMap hosted tile.openstreetmap.org ‘Mapnik’ tileset.  If you wish to use tiles at home / osmarender layer instead, you can pass a layer like:</p><blockquote><pre class="prettyprint">new OpenLayers.Layer.OSM("t at h",
+  "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png");</pre></blockquote><p>This layer defaults to Spherical Mercator.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="#OpenLayers.Layer.XYZ" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Layer.XYZ</a></li></ul></div></div></div>
 
 </div><!--Content-->
 
@@ -40,15 +42,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Yahoo-js.html b/doc/apidocs/files/OpenLayers/Layer/Yahoo-js.html
index 9b10eee..8cb1c95 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Yahoo-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Yahoo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Yahoo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Yahoo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Yahoo"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Yahoo</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">OpenLayers.Layer.EventPane</a></li><li><a href="FixedZoomLevels-js.html#OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Yahoo"></a>OpenLayers.<wbr>Layer.<wbr>Yahoo</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">OpenLayers.Layer.EventPane</a></li><li><a href="FixedZoomLevels-js.html#OpenLayers.Layer.FixedZoomLevels" class=LClass [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.Constants"></a>Constants</h3></div></div>
 
@@ -31,43 +31,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Yahoo</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo"></a>OpenLayers.<wbr>Layer.<wbr>Yahoo</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Overridden from EventPane because we need to remove th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Overri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getOLZoomFromMapObjectZoom"></a>getOLZoomFromMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLZoomFromMapObjectZoom: function(</td><td class=PParameter nowrap>moZoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getOLZoomFromMapObjectZoom"></a>getOLZoomFromMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLZoomFromMapObjectZoom: function(</td><td class="PParameter  prettyprint " nowrap>moZoom</td><td class="PAfterParameters  prettyprint "now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoomFromOLZoom"></a>getMapObjectZoomFromOLZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromOLZoom: function(</td><td class=PParameter nowrap>olZoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoomFromOLZoom"></a>getMapObjectZoomFromOLZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromOLZoom: function(</td><td class="PParameter  prettyprint " nowrap>olZoom</td><td class="PAfterParameters  prettyprint "now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragPanMapObject: function(</td><td class=PParameter nowrap>dX,</td></tr><tr><td></td><td class=PParameter nowrap>dY</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragPanMapObject: function(</td><td class="PParameter  prettyprint " nowrap>dX,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dY</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterPara [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectSizeFromOLSize"></a>getMapObjectSizeFromOLSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectSizeFromOLSize: function(</td><td class=PParameter nowrap>olSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectSizeFromOLSize"></a>getMapObjectSizeFromOLSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectSizeFromOLSize: function(</td><td class="PParameter  prettyprint " nowrap>olSize</td><td class="PAfterParameters  prettyprint "now [...]
 
 </div><!--Content-->
 
@@ -75,15 +75,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Overridden from EventPane because we need to remove this yahoo event pane which prohibits our drag and drop, and we can only do this once [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Overridden from EventPane because we need to remove this yahoo event pane which prohibits [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Layer/Zoomify-js.html b/doc/apidocs/files/OpenLayers/Layer/Zoomify-js.html
index 9a89829..95f6c1c 100644
--- a/doc/apidocs/files/OpenLayers/Layer/Zoomify-js.html
+++ b/doc/apidocs/files/OpenLayers/Layer/Zoomify-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Zoomify - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Zoomify - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Zoomify"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Zoomify</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STit [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Zoomify"></a>OpenLayers.<wbr>Layer.<wbr>Zoomify</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Zoomify</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} - Relative o [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify"></a>OpenLayers.<wbr>Layer.<wbr>Zoomify</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} - Relative or absolute path to the image or more [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the layer is added to a map, then we can fetch  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>When [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Map-js.html b/doc/apidocs/files/OpenLayers/Map-js.html
index 95766de..939701d 100644
--- a/doc/apidocs/files/OpenLayers/Map-js.html
+++ b/doc/apidocs/files/OpenLayers/Map-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Map - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Map - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Java [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Map"></a>OpenLayers.Map</h1><div class=CBody><p>Instances of OpenLayers.Map are interactive maps embedded in a web page.  Create a new map with the <a href="#OpenLayers.Map.OpenLayers.Map" class=LConstructor id=link67 onMouseOver="ShowTip(event, 'tt62', 'link67')" onMouseOut="HideTip('tt62')">OpenLayers.Map</a> constructor.</p><p>On their own maps do not provide much functionality [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Map"></a>OpenLayers.Map</h1><div class=CBody><p>Instances of OpenLayers.Map are interactive maps embedded in a web page.  Create a new map with the <a href="#OpenLayers.Map.OpenLayers.Map" class=LConstructor id=link67 onMouseOver="ShowTip(event, 'tt62', 'link67')" onMouseOut="HideTip('tt62')">OpenLayers.Map</a> constructor.</p><p>On their own maps do not provide much functionality [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Constants"></a>Constants</h3></div></div>
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Z_INDEX_BASE"></a>Z_INDEX_BASE</h3><div class=CBody><p>{Object} Base z-indexes for different classes of thing</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>map.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p><h4 class=C [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">map.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Properties"></a>Properties</h3></div></div>
 
@@ -67,7 +67,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.OpenLayers.Map"></a>OpenLayers.Map</h3><div class=CBody><p>Constructor for a new OpenLayers.Map instance.   There are two possible ways to call the map constructor.   See the examples below.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>div</td><td class=CDLDescription>{DOMElement|String}  The element or id of an e [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.OpenLayers.Map"></a>OpenLayers.Map</h3><div class=CBody><p>Constructor for a new OpenLayers.Map instance.   There are two possible ways to call the map constructor.   See the examples below.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>div</td><td class=CDLDescription>{DOMElement|String}  The element or id of an e [...]
 var map = new OpenLayers.Map("map1");
 
 // create a map with non-default options in an element with id "map2"
@@ -77,7 +77,9 @@ var options = {
     units: 'm',
     projection: "EPSG:41001"
 };
-var map = new OpenLayers.Map("map2", options);</pre></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Examples (method two</td><td class=CDLDescription>single argument):</td></tr></table><blockquote><pre>// create a map with non-default options
+var map = new OpenLayers.Map("map2", options);
+
+// map with non-default options - same as above but with a single argument
 var map = new OpenLayers.Map({
     div: "map_id",
     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),
@@ -96,117 +98,117 @@ var map = new OpenLayers.Map({
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.render"></a>render</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>render: function(</td><td class=PParameter nowrap>div</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render the map to a specified container.</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.render"></a>render</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>render: function(</td><td class="PParameter  prettyprint " nowrap>div</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render the map [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:function()</td></tr></table></blockquote><p>Destroy this map</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy:function()</td></tr></table></blockquote><p>Destroy this map.  Note that if you are using an application which removes a container of the map from the DOM, you need to ensure that you destroy the map <b>before</b> this happens; otherwise, the page unloa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOptions: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the map options</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOptions: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getTileSize"></a>getTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getTileSize: function()</td></tr></table></blockquote><p>Get the tile size for the map</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link85 onMouseOver="ShowTip(event, 'tt1', 'link85')" onMouseOut="HideTip('tt1')">OpenLayer [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getTileSize"></a>getTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTileSize: function()</td></tr></table></blockquote><p>Get the tile size for the map</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link85 onMouseOver="ShowTip(event, 'tt1', 'link85')" onMouseOut="Hid [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getBy"></a>getBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBy: function(</td><td class=PParameter nowrap>array,</td></tr><tr><td></td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getBy"></a>getBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBy: function(</td><td class="PParameter  prettyprint " nowrap>array,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersBy"></a>getLayersBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersBy"></a>getLayersBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParame [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByName"></a>getLayersByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersByName: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of layers with names m [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByName"></a>getLayersByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersByName: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByClass"></a>getLayersByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersByClass: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of layers of a give [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByClass"></a>getLayersByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersByClass: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsByClass: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of controls o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsByClass: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayer"></a>getLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayer: function(</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a layer based on its id</p><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayer"></a>getLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayer: function(</td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a lay [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayer"></a>addLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addLayer: function (</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellsp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayer"></a>addLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addLayer: function (</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayers"></a>addLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addLayers: function (</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayers"></a>addLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addLayers: function (</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeLayer"></a>removeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeLayer: function(</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>setNewBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeLayer"></a>removeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>setNewBaseLayer</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumLayers"></a>getNumLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getNumLayers: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Int} The number of layers attached to the map.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumLayers"></a>getNumLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getNumLayers: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Int} The number of layers attached to the map.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerIndex"></a>getLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerIndex: function (</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerIndex"></a>getLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerIndex: function (</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setLayerIndex"></a>setLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayerIndex: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>idx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setLayerIndex"></a>setLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayerIndex: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>idx</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.raiseLayer"></a>raiseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>raiseLayer: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>delta</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bloc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.raiseLayer"></a>raiseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>raiseLayer: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>delta</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setBaseLayer"></a>setBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBaseLayer: function(</td><td class=PParameter nowrap>newBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows user to specify one of the c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setBaseLayer"></a>setBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBaseLayer: function(</td><td class="PParameter  prettyprint " nowrap>newBaseLayer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControl"></a>addControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControl: function (</td><td class=PParameter nowrap>control,</td></tr><tr><td></td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControl"></a>addControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControl: function (</td><td class="PParameter  prettyprint " nowrap>control,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControls: function (</td><td class=PParameter nowrap>controls,</td></tr><tr><td></td><td class=PParameter nowrap>pixels</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControls: function (</td><td class="PParameter  prettyprint " nowrap>controls,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pixels</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControl"></a>getControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControl: function (</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControl"></a>getControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControl: function (</td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeControl"></a>removeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeControl: function (</td><td class=PParameter nowrap>control</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove a control from the map.  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeControl"></a>removeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeControl: function (</td><td class="PParameter  prettyprint " nowrap>control</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addPopup"></a>addPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPopup: function(</td><td class=PParameter nowrap>popup,</td></tr><tr><td></td><td class=PParameter nowrap>exclusive</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addPopup"></a>addPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPopup: function(</td><td class="PParameter  prettyprint " nowrap>popup,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>exclusive</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removePopup"></a>removePopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removePopup: function(</td><td class=PParameter nowrap>popup</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removePopup"></a>removePopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removePopup: function(</td><td class="PParameter  prettyprint " nowrap>popup</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSize: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link96 onMouseOver="ShowTip(event, 'tt1', 'link96')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} An <a href="BaseTypes/Size-js.html# [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSize: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link96 onMouseOver="ShowTip(event, 'tt1', 'link96')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} An <a href="B [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateSize: function()</td></tr></table></blockquote><p>This function should be called by any external code which dynamically changes the size of the map div (because mozilla wont let us catch the “onresize” for an element)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateSize: function()</td></tr></table></blockquote><p>This function should be called by any external code which dynamically changes the size of the map div (because mozilla wont let us catch the “onresize” for an element)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCenter"></a>getCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCenter: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link98 onMouseOver="ShowTip(event, 'tt33', 'link98')" onMouseOut="HideTip('tt33')">OpenLayers.LonLat</a>}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCenter"></a>getCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCenter: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link98 onMouseOver="ShowTip(event, 'tt33', 'link98')" onMouseOut="HideTip('tt33')">OpenLayers.LonLat</a>} [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getZoom: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getZoom: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.pan"></a>pan</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pan: function(</td><td class=PParameter nowrap>dx,</td></tr><tr><td></td><td class=PParameter nowrap>dy,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.pan"></a>pan</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pan: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy,</td></tr><tr><td></td><td class="PParameter  prettyprint "  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panTo"></a>panTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>panTo: function(</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows user to pan to a new lonlat If the new lonlat is in the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panTo"></a>panTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>panTo: function(</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows user to [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setCenter"></a>setCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCenter: function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>zoom,</td></tr><tr><td></td><td class=PParameter nowrap>dragging,</td></tr><tr><td></td><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setCenter"></a>setCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCenter: function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom,</td></tr><tr><td></td><td class="PP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjection"></a>getProjection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getProjection: function()</td></tr></table></blockquote><p>This method returns a string representing the projection.  In the case of projection support, this will be the srsCode which is loaded -- otherwise it will simply be the string value that was passed to the projec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjection"></a>getProjection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getProjection: function()</td></tr></table></blockquote><p>This method returns a string representing the projection.  In the case of projection support, this will be the srsCode which is loaded -- otherwise it will simply be the string value that wa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjectionObject"></a>getProjectionObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getProjectionObject: function()</td></tr></table></blockquote><p>Returns the projection obect from the baselayer.</p><h4 class=CHeading>Returns</h4><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link100 onMouseOver="ShowTip(event, 'tt3', 'l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjectionObject"></a>getProjectionObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getProjectionObject: function()</td></tr></table></blockquote><p>Returns the projection obect from the baselayer.</p><h4 class=CHeading>Returns</h4><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link101 onMouseOver="Sh [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxResolution"></a>getMaxResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMaxResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The Map’s Maximum Resolution</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxResolution"></a>getMaxResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMaxResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The Map’s Maximum Resolution</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMaxExtent: function (</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMaxExtent: function (</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumZoomLevels"></a>getNumZoomLevels</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getNumZoomLevels: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The total number of zoom levels that can be displayed by the current baseLayer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumZoomLevels"></a>getNumZoomLevels</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getNumZoomLevels: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The total number of zoom levels that can be displayed by the current baseLayer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link102 onMouseOver="ShowTip(event, 'tt2', 'link102')" onMouseOut="HideTip('tt2')">OpenLayers.Bounds</a>} A Bounds object which [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link103 onMouseOver="ShowTip(event, 'tt2', 'link103')" onMouseOut="HideTip('tt2')">OpenLayers.Bounds</a>} [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current resolution of the map.  If no baselayer is set, returns null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current resolution of the map.  If no baselayer is set, returns null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getUnits: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current units of the map.  If no baselayer is set, returns null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getUnits: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current units of the map.  If no baselayer is set, returns null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getScale"></a>getScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getScale: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current scale denominator of the map.  If no baselayer is set, returns null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getScale"></a>getScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getScale: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current scale denominator of the map.  If no baselayer is set, returns null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForExtent: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForExtent: function (</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getResolutionForZoom: function(</td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getResolutionForZoom: function(</td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForResolution: function(</td><td class=PParameter nowrap>resolution,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForResolution: function(</td><td class="PParameter  prettyprint " nowrap>resolution,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>clos [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomTo"></a>zoomTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomTo: function(</td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoom to a specific zoom level</p><h4 class=CHeading>Parameter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomTo"></a>zoomTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomTo: function(</td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoom to a spe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomIn"></a>zoomIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>zoomIn: function()</td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>zoom</td><td class=CDLDescription>{int}</td></tr></table></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomIn"></a>zoomIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">zoomIn: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomOut"></a>zoomOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>zoomOut: function()</td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>zoom</td><td class=CDLDescription>{int}</td></tr></table></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomOut"></a>zoomOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">zoomOut: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToExtent"></a>zoomToExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomToExtent: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToExtent"></a>zoomToExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomToExtent: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToMaxExtent"></a>zoomToMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomToMaxExtent: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoom to the full extent and rec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToMaxExtent"></a>zoomToMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomToMaxExtent: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToScale"></a>zoomToScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomToScale: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToScale"></a>zoomToScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomToScale: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromPixel"></a>getLonLatFromPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromPixel: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromPixel"></a>getLonLatFromPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromPixel: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getPixelFromLonLat"></a>getPixelFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getPixelFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a pixel locati [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getPixelFromLonLat"></a>getPixelFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getPixelFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLayerPx"></a>getViewPortPxFromLayerPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLayerPx:function(</td><td class=PParameter nowrap>layerPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLayerPx"></a>getViewPortPxFromLayerPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLayerPx:function(</td><td class="PParameter  prettyprint " nowrap>layerPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromViewPortPx"></a>getLayerPxFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerPxFromViewPortPx:function(</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromViewPortPx"></a>getLayerPxFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerPxFromViewPortPx:function(</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromLonLat"></a>getLayerPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromLonLat"></a>getLayerPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Constants"></a>Constants</h3></div></div>
 
@@ -220,15 +222,15 @@ var map = new OpenLayers.Map({
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellsp [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cell [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Marker-js.html b/doc/apidocs/files/OpenLayers/Marker-js.html
index ef27039..e0b7afb 100644
--- a/doc/apidocs/files/OpenLayers/Marker-js.html
+++ b/doc/apidocs/files/OpenLayers/Marker-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Marker - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Marker - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,24 +11,24 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker"></a>OpenLayers.<span class=HB> </span>Marker</h1><div class=CBody><p>Instances of OpenLayers.Marker are a combination of a <a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a> and an <a href="Icon-js.html#OpenLayers.Icon" class=LClass id=link6 onMouseOver="ShowTi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker"></a>OpenLayers.<wbr>Marker</h1><div class=CBody><p>Instances of OpenLayers.Marker are a combination of a <a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a> and an <a href="Icon-js.html#OpenLayers.Icon" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt2', 'l [...]
 map.addLayer(markers);
 
 var size = new OpenLayers.Size(21,25);
 var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
 var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png', size, offset);
 markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));
-markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone()));</pre></blockquote><p>Note that if you pass an icon into the Marker constructor, it will take that icon and use it.  This means that you should not share icons between markers -- you use them once, but you should clone() for any additional markers using that same icon.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpaddin [...]
+markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone()));</pre></blockquote><p>Note that if you pass an icon into the Marker constructor, it will take that icon and use it.  This means that you should not share icons between markers -- you use them once, but you should clone() for any additional markers using that same icon.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpaddin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.OpenLayers.Marker"></a>OpenLayers.<span class=HB> </span>Marker</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">OpenLayers [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.OpenLayers.Marker"></a>OpenLayers.<wbr>Marker</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} the p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy the marker.  You must first remove the marker from any layer which it has been added to, or you will get buggy behavior.  (This can not be done within the marker since the marker does not know which layer it is att [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy the marker.  You must first remove the marker from any layer which it has been added to, or you will get buggy behavior.  (This can not be done within the marker since the marker does not know [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the marker is drawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the marker is drawn.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -36,15 +36,15 @@ markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone())
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([22, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([20, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>The icon represents a graphical icon on the screen. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy the marker. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquo [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>The icon represents a graphical icon on the screen. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy the marker. </div></div><div class=CToolTip id="tt4"><div cla [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Marker/Box-js.html b/doc/apidocs/files/OpenLayers/Marker/Box-js.html
index c893a63..836a6d0 100644
--- a/doc/apidocs/files/OpenLayers/Marker/Box-js.html
+++ b/doc/apidocs/files/OpenLayers/Marker/Box-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Marker.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Marker.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker.Box"></a>OpenLayers.<span class=HB> </span>Marker.Box</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Marker-js.html#OpenLayers.Marker" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Marker</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBord [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker.Box"></a>OpenLayers.<wbr>Marker.Box</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Marker-js.html#OpenLayers.Marker" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Marker</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.OpenLayers.Marker.Box"></a>OpenLayers.<span class=HB> </span>Marker.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.OpenLayers.Marker.Box"></a>OpenLayers.<wbr>Marker.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Bo [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([22, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([20, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Popup-js.html b/doc/apidocs/files/OpenLayers/Popup-js.html
index 6870059..b8cc874 100644
--- a/doc/apidocs/files/OpenLayers/Popup-js.html
+++ b/doc/apidocs/files/OpenLayers/Popup-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup"></a>OpenLayers.<span class=HB> </span>Popup</h1><div class=CBody><p>A popup is a small div that can opened and closed on the map.  Typically opened in response to clicking on a marker.  See <a href="Marker-js.html#OpenLayers.Marker" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">OpenLayers.Marker</a>.   Popup’s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup"></a>OpenLayers.<wbr>Popup</h1><div class=CBody><p>A popup is a small div that can opened and closed on the map.  Typically opened in response to clicking on a marker.  See <a href="Marker-js.html#OpenLayers.Marker" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">OpenLayers.Marker</a>.   Popup’s don’t requi [...]
                    new OpenLayers.LonLat(5,40),
                    new OpenLayers.Size(200,200),
                    "example popup",
                    true);
 
-map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Popup" >OpenLayers.<span class=HB> </span>Popup</a></td><td class=SDescription>A popup is a small div that can opened and closed on the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Popup.Properties" >Properties</ [...]
+map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Popup" >OpenLayers.<wbr>Popup</a></td><td class=SDescription>A popup is a small div that can opened and closed on the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Popup.Properties" >Properties</a></td><td class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Properties"></a>Properties</h3></div></div>
 
@@ -35,13 +35,13 @@ map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.OpenLayers.Popup"></a>OpenLayers.<span class=HB> </span>Popup</h3><div class=CBody><p>Create a popup.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String} a unqiue identifier for this popup.   If null is passed an identifier will be automatically generated.</td></tr><tr><td class=CDLE [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.OpenLayers.Popup"></a>OpenLayers.<wbr>Popup</h3><div class=CBody><p>Create a popup.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String} a unqiue identifier for this popup.   If null is passed an identifier will be automatically generated.</td></tr><tr><td class=CDLEntry>lonlat</td><t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateSize: function()</td></tr></table></blockquote><p>Auto size the popup so that it precisely fits its contents (as determined by this.contentDiv.innerHTML).  Popup size will, of course, be limited by the available space on the current map</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateSize: function()</td></tr></table></blockquote><p>Auto size the popup so that it precisely fits its contents (as determined by this.contentDiv.innerHTML).  Popup size will, of course, be limited by the available space on the current map</p></div>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.getSafeContentSize"></a>getSafeContentSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getSafeContentSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.getSafeContentSize"></a>getSafeContentSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getSafeContentSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateSize: function()</td></tr></table></blockquote>Auto size the popup so that it precisely fits its contents (as determined by this.contentDiv.innerHTML). </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 ce [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateSize: function()</td></tr></table></blockquote>Auto size the popup so that it precisely fits its contents (as determined by this.contentDiv.innerHTML). </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockqu [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Popup/Anchored-js.html b/doc/apidocs/files/OpenLayers/Popup/Anchored-js.html
index 14fb5d3..af183f6 100644
--- a/doc/apidocs/files/OpenLayers/Popup/Anchored-js.html
+++ b/doc/apidocs/files/OpenLayers/Popup/Anchored-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.Anchored - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.Anchored - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Anchored"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Anchored</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Popup-js.html#OpenLayers.Popup" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Popup</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Anchored"></a>OpenLayers.<wbr>Popup.<wbr>Anchored</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Popup-js.html#OpenLayers.Popup" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Popup</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><tabl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.Properties"></a>Properties</h3></div></div>
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Anchored</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#O [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored"></a>OpenLayers.<wbr>Popup.<wbr>Anchored</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=li [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Overridden from Popup since user might hide popup and then show() it in a new location (meaning we might want to update the relative position on the show)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p>Overridden from Popup since user might hide popup and then show() it in a new location (meaning we might want to update the relative position on the show)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote>Overridden from Popup since user might hide popup and then show() it in a new location (meaning we might want to update the [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote>Overridden from Popup since user might hide popup and then show() it in a new l [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Popup/AnchoredBubble-js.html b/doc/apidocs/files/OpenLayers/Popup/AnchoredBubble-js.html
index 2beea71..b692453 100644
--- a/doc/apidocs/files/OpenLayers/Popup/AnchoredBubble-js.html
+++ b/doc/apidocs/files/OpenLayers/Popup/AnchoredBubble-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.AnchoredBubble - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.AnchoredBubble - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>AnchoredBubble</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cell [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<wbr>Popup.<wbr>AnchoredBubble</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>AnchoredBubble</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseType [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<wbr>Popup.<wbr>AnchoredBubble</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat"  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBackgroundColor:function(</td><td class=PParameter nowrap>color</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBackgroundColor:function(</td><td class="PParameter  prettyprint " nowrap>color</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity:function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity:function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Constants"></a>Constants</h3></div></div>
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Proto [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Popup/Framed-js.html b/doc/apidocs/files/OpenLayers/Popup/Framed-js.html
index 793fa89..e004840 100644
--- a/doc/apidocs/files/OpenLayers/Popup/Framed-js.html
+++ b/doc/apidocs/files/OpenLayers/Popup/Framed-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.Framed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.Framed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Framed"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Framed</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Framed"></a>OpenLayers.<wbr>Popup.<wbr>Framed</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMai [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.Properties"></a>Properties</h3></div></div>
 
@@ -21,17 +21,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.OpenLayers.Popup.Framed"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Framed</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLay [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.OpenLayers.Popup.Framed"></a>OpenLayers.<wbr>Popup.<wbr>Framed</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link5 on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBackgroundColor:function(</td><td class=PParameter nowrap>color</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBackgroundColor:function(</td><td class="PParameter  prettyprint " nowrap>color</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setBorder:function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setBorder:function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Overridden here, because we need to update  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBackgroundColor:function(</td><td class=PParameter nowrap>color</td><td class=PAfter [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBackgroundColor:function(</td><td class="PPar [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Popup/FramedCloud-js.html b/doc/apidocs/files/OpenLayers/Popup/FramedCloud-js.html
index c1fe1a3..4b9a933 100644
--- a/doc/apidocs/files/OpenLayers/Popup/FramedCloud-js.html
+++ b/doc/apidocs/files/OpenLayers/Popup/FramedCloud-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.FramedCloud - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.FramedCloud - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.FramedCloud"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>FramedCloud</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Framed-js.html#OpenLayers.Popup.Framed" class=LClass >OpenLayers.Popup.Framed</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 ce [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.FramedCloud"></a>OpenLayers.<wbr>Popup.<wbr>FramedCloud</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Framed-js.html#OpenLayers.Popup.Framed" class=LClass >OpenLayers.Popup.Framed</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.Properties"></a>Properties</h3></div></div>
 
@@ -31,11 +31,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.OpenLayers.Popup.FramedCloud"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>FramedCloud</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat- [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.OpenLayers.Popup.FramedCloud"></a>OpenLayers.<wbr>Popup.<wbr>FramedCloud</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LCl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt4"><div class=CClass>This class represents a screen  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt4"><div class=CClass>This clas [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Projection-js.html b/doc/apidocs/files/OpenLayers/Projection-js.html
index 7cc0520..99e5eda 100644
--- a/doc/apidocs/files/OpenLayers/Projection-js.html
+++ b/doc/apidocs/files/OpenLayers/Projection-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Projection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Projection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script langua [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,30 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Projection"></a>OpenLayers.<span class=HB> </span>Projection</h1><div class=CBody><p>Class for coordinate transforms between coordinate systems.  Depends on the proj4js library.  If proj4js is not available, then this is just an empty stub.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Projection"></a>OpenLayers.<wbr>Projection</h1><div class=CBody><p>Class for coordinate transforms between coordinate systems.  Depends on the proj4js library.  If proj4js is not available, then this is just an empty stub.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.OpenLayers.Projection"></a>OpenLayers.<span class=HB> </span>Projection</h3><div class=CBody><p>This class offers several methods for interacting with a wrapped pro4js projection object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>projCode</td><td class=CDLDescription>{String} A string identifying the Well Known Ide [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.OpenLayers.Projection"></a>OpenLayers.<wbr>Projection</h3><div class=CBody><p>This class offers several methods for interacting with a wrapped pro4js projection object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>projCode</td><td class=CDLDescription>{String} A string identifying the Well Known Identifier for the pr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote><p>Get the string SRS code.</p><h4 class=CHeading>Returns</h4><p>{String} The SRS code.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote><p>Get the string SRS code.</p><h4 class=CHeading>Returns</h4><p>{String} The SRS code.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getUnits: function()</td></tr></table></blockquote><p>Get the units string for the projection -- returns null if proj4js is not available.</p><h4 class=CHeading>Returns</h4><p>{String} The units abbreviation.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getUnits: function()</td></tr></table></blockquote><p>Get the units string for the projection -- returns null if proj4js is not available.</p><h4 class=CHeading>Returns</h4><p>{String} The units abbreviation.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.addTransform"></a>addTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Projection.addTransform = function(</td><td class=PParameter nowrap>from,</td></tr><tr><td></td><td class=PParameter nowrap>to,</td></tr><tr><td></td><td class=PParameter nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.addTransform"></a>addTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Projection.addTransform = function(</td><td class="PParameter  prettyprint " nowrap>from,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>to,< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Projection.transform = function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>des [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Projection.transform = function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>source,</td> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.nullTransform"></a>nullTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Projection.nullTransform = function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></t [...]
+    OpenLayers.Layer.SphericalMercator.projectForward);
+OpenLayers.Projection.addTransform("EPSG:3857", "EPSG:3857",
+    OpenLayers.Layer.SphericalMercator.projectInverse);
+OpenLayers.Projection.addTransform("EPSG:3857", "EPSG:900913",
+    OpenLayers.Projection.nullTransform);
+OpenLayers.Projection.addTransform("EPSG:900913", "EPSG:3857",
+    OpenLayers.Projection.nullTransform);</pre></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -33,15 +42,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote>Get the string SRS code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getUnits: function()</td></tr></table></blockquote>Get the units string for the projection -- returns null if proj4js is not available.</div></div [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote>Get the string SRS code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getUnits: function()</td></tr></table></blockquote>Get the units string for the projection -- returns  [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol-js.html b/doc/apidocs/files/OpenLayers/Protocol-js.html
index 66679b4..b8e4b39 100644
--- a/doc/apidocs/files/OpenLayers/Protocol-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,31 +11,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol"></a>OpenLayers.<span class=HB> </span>Protocol</h1><div class=CBody><p>Abstract vector layer protocol class.   Not to be instantiated directly.   Use one of the protocol subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol"></a>OpenLayers.<wbr>Protocol</h1><div class=CBody><p>Abstract vector layer protocol class.   Not to be instantiated directly.   Use one of the protocol subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.OpenLayers.Protocol"></a>OpenLayers.<span class=HB> </span>Protocol</h3><div class=CBody><p>Abstract class for vector protocols.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance. [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.OpenLayers.Protocol"></a>OpenLayers.<wbr>Protocol</h3><div class=CBody><p>Abstract class for vector protocols.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new features.</p><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>create: function()</td></tr></table></blockquote><p>Construct a request for writing newly created features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDescription>{Array({<a h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">create: function()</td></tr></table></blockquote><p>Construct a request for writing newly created features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>update: function()</td></tr></table></blockquote><p>Construct a request updating modified features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDescription>{Array({<a href="Fea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">update: function()</td></tr></table></blockquote><p>Construct a request updating modified features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDescriptio [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>"delete": function()</td></tr></table></blockquote><p>Construct a request deleting a removed feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">"delete": function()</td></tr></table></blockquote><p>Construct a request deleting a removed feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CD [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>commit: function()</td></tr></table></blockquote><p>Go over the features and for each take action based on the feature state.  Possible actions are create, update and delete.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">commit: function()</td></tr></table></blockquote><p>Go over the features and for each take action based on the feature state.  Possible actions are create, update and delete.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 cl [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Protocol.Response"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>Response</h2><div class=CBody><p>Protocols return Response objects to their users.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Protocol.Response.Constructor" >Cons [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Protocol.Response"></a>OpenLayers.<wbr>Protocol.<wbr>Response</h2><div class=CBody><p>Protocols return Response objects to their users.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Protocol.Response.Constructor" >Constructor</a></td><td class=SDescripti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.OpenLayers.Protocol.Response"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.OpenLayers.Protocol.Response"></a>OpenLayers.<wbr>Protocol.<wbr>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td c [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td cl [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/HTTP-js.html b/doc/apidocs/files/OpenLayers/Protocol/HTTP-js.html
index 1fece19..2d108d2 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/HTTP-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/HTTP-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.HTTP - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.HTTP - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.HTTP"></a>OpenLayers.<span class=HB> </span>Protocol.HTTP</h1><div class=CBody><p>A basic HTTP protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Protocol.HTTP</a> constructor.</p><h4 class=C [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.HTTP"></a>OpenLayers.<wbr>Protocol.HTTP</h1><div class=CBody><p>A basic HTTP protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP" class=LConstructor id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">OpenLayers.Protocol.HTTP</a> constructor.</p><h4 class=CHeading>Inherits f [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.srsInBBOX"></a>srsInBBOX</h3><div class=CBody><p>{Boolean} Include the SRS identifier in BBOX query string parameter.  Default is false.   If true and the layer has a projection object set, any BBOX filter will be serialized with a fifth item identifying the projection.   E.g. bbox=-1000,-1000,1000,1000,EPSG:900913</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP"></a>OpenLayers.<span class=HB> </span>Protocol.HTTP</h3><div class=CBody><p>A class for giving layers generic HTTP protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP"></a>OpenLayers.<wbr>Protocol.HTTP</h3><div class=CBody><p>A class for giving layers generic HTTP protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 class=CH [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.filterToParams"></a>filterToParams</h3><div class=CBody><p>Optional method to translate an <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt2', 'link12')" onMouseOut="HideTip('tt2')">OpenLayers.Filter</a> object into an object that can be serialized as request query string provided.   If a custom method is not provided, the filter will be ser [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new features.</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>create: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>create: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>update: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>"delete": function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>"delete": function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commit: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commit: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Abort an ongoing request, the response object pass [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ab [...]
 
 </div><!--Content-->
 
@@ -39,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td c [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/SOS-js.html b/doc/apidocs/files/OpenLayers/Protocol/SOS-js.html
index e786387..fbb138e 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/SOS-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/SOS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SOS.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SOS.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SOS.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SOS.<span class=HB> </span>DEFAULTS</h1><div class=CBody></div></div></div>
+<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SOS.DEFAULTS"></a>OpenLayers.<wbr>Protocol.<wbr>SOS.<wbr>DEFAULTS</h1><div class=CBody></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html
index 4505d72..4e764a0 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SOS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SOS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SOS.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>An SOS v1.0.0 Protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.SOS.v1_0_0" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Protocol.SO [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0"></a>OpenLayers.<wbr>Protocol.<wbr>SOS.<wbr>v1_0_0</h1><div class=CBody><p>An SOS v1.0.0 Protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.SOS.v1_0_0" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Protocol.SOS.v1_0_0</a> constructor.</p><h4 class=CHeading>Inheri [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.OpenLayers.Protocol.SOS"></a>OpenLayers.<span class=HB> </span>Protocol.SOS</h3><div class=CBody><p>A class for giving layers an SOS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.  Valid o [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.OpenLayers.Protocol.SOS"></a>OpenLayers.<wbr>Protocol.SOS</h3><div class=CBody><p>A class for giving layers an SOS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.  Valid options properties: [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new sensor posit [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td c [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td cl [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/SQL-js.html b/doc/apidocs/files/OpenLayers/Protocol/SQL-js.html
index af0773e..97f1b9a 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/SQL-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/SQL-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SQL - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SQL - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL"></a>OpenLayers.<span class=HB> </span>Protocol.SQL</h1><div class=CBody><p>Abstract SQL protocol class.   Not to be instantiated directly.   Use one of the SQL protocol subclasses instead.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL"></a>OpenLayers.<wbr>Protocol.SQL</h1><div class=CBody><p>Abstract SQL protocol class.   Not to be instantiated directly.   Use one of the SQL protocol subclasses instead.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')"> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Properties"></a>Properties</h3></div></div>
 
@@ -21,13 +21,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.OpenLayers.Protocol.SQL"></a>OpenLayers.<span class=HB> </span>Protocol.SQL</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.OpenLayers.Protocol.SQL"></a>OpenLayers.<wbr>Protocol.SQL</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SQL backend</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SQL backend</p></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([24, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([22, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>This should be overridden by specific subclasses</div></div><div class=CToolTip id="tt3"><div cl [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>This should be overridden by specific subclasses</di [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/SQL/Gears-js.html b/doc/apidocs/files/OpenLayers/Protocol/SQL/Gears-js.html
index aa4beb0..571f895 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/SQL/Gears-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/SQL/Gears-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SQL.Gears - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SQL.Gears - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears</h1><div class=CBody><p>This Protocol stores feature in the browser via the Gears Database module <a href="http://code.google.com/apis/gears/api_database.html" class=LURL target=_top>http://code.google.com<span class=HB>- </span>/apis<span class=HB>- </span>/gears< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears</h1><div class=CBody><p>This Protocol stores feature in the browser via the Gears Database module <a href="http://code.google.com/apis/gears/api_database.html" class=LURL target=_top>http://code.google.com<wbr>/apis<wbr>/gears<wbr>/api_database.html</a>.</p><p>The main advantage is that all the read, create, update an [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports Gears</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports Gears</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports Gears</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports Gears</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read all features from the database and return a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>R [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>create: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>create: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>update: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>"delete": function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>"delete": function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commit: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commit: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPara [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([24, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([22, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>Determine whether a browser supports Gears</div></div><div class=CToolTip id="tt3"><div class=CF [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>Determine whether a browser supports Gears</div></di [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/Script-js.html b/doc/apidocs/files/OpenLayers/Protocol/Script-js.html
new file mode 100644
index 0000000..97e5ba9
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Protocol/Script-js.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.Script - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.Script"></a>OpenLayers.<wbr>Protocol.<wbr>Script</h1><div class=CBody><p>A basic Script protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.Script.OpenLayers.Protocol.Script" class=LConstructor id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">OpenLayers.Protocol.Script</a> constructor.   A script [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.url"></a>url</h3><div class=CBody><p>{String} Service URL.   The service is expected to return serialized features wrapped in a named callback (where the callback name is generated by this protocol).  Read-only, set through the options passed to the constructor.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.params"></a>params</h3><div class=CBody><p>{Object} Query string parameters to be appended to the URL.  Read-only, set through the options passed to the constructor.  Example: {maxFeatures: 50}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.callback"></a>callback</h3><div class=CBody><p>{Object} Function to be called when the <a href="#OpenLayers.Protocol.Script.read" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">read</a> operation completes.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.scope"></a>scope</h3><div class=CBody><p>{Object} Optional ``this`` object for the callback.  Read-only, set through the options passed to the constructor.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.format"></a>format</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt2', 'link12')" onMouseOut="HideTip('tt2')">OpenLayers.Format</a>} Format for parsing features.   Default is an <a href="../Format/GeoJSON-js.html#OpenLayers.Format.GeoJSON" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt10', 'link13')" onMous [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.callbackKey"></a>callbackKey</h3><div class=CBody><p>{String} The name of the query string parameter that the service recognizes as the callback identifier.   Default is “callback”.  This key is used to generate the URL for the script.   For example setting <a href="#OpenLayers.Protocol.Script.callbackKey" class=LProperty id=link14 onMouseOver="ShowTip(event, 'tt11', ' [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.callbackPrefix"></a>callbackPrefix</h3><div class=CBody><p>{String} Where a service requires that the callback query string parameter value is prefixed by some string, this value may be set.  For example, setting <a href="#OpenLayers.Protocol.Script.callbackPrefix" class=LProperty id=link15 onMouseOver="ShowTip(event, 'tt12', 'link15')" onMouseOut="HideTip('tt12')">callbackPrefix</a> to &ld [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.srsInBBOX"></a>srsInBBOX</h3><div class=CBody><p>{Boolean} Include the SRS identifier in BBOX query string parameter.  Setting this property has no effect if a custom filterToParams method is provided.    Default is false.   If true and the layer has a projection object set, any BBOX filter will be serialized with a fifth item identifying the projection.  E.g. bbox=-1000,-100 [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.OpenLayers.Protocol.Script"></a>OpenLayers.<wbr>Protocol.<wbr>Script</h3><div class=CBody><p>A class for giving layers generic Script protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cons [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.filterToParams"></a>filterToParams</h3><div class=CBody><p>Optional method to translate an <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt3', 'link18')" onMouseOut="HideTip('tt3')">OpenLayers.Filter</a> object into an object that can be serialized as request query string provided.   If a custom method is not provided, any filter will not  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Construct a request for reading new features.</div></div><div class=CToolTip id="tt2">< [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Protocol/WFS-js.html b/doc/apidocs/files/OpenLayers/Protocol/WFS-js.html
index f1fbc43..909175d 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/WFS-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.DEFAULTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>DEFAULTS</h1><div class=CBody></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS"></a>OpenLayers.<wbr>Protocol.WFS</h1><div class=CBody><p>Used to create a versioned WFS protocol.   Default version is 1.0.0.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Protocol</a>} A WFS protocol of the given version [...]
+    version: "1.1.0",
+    url:  "http://demo.opengeo.org/geoserver/wfs",
+    featureType: "tasmania_roads",
+    featureNS: "http://www.openplans.org/topp",
+    geometryName: "the_geom"
+});</pre></blockquote><p>See the protocols for specific WFS versions for more detail.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Protocol.WFS" >OpenLayers.<wbr>Protocol.WFS</a></td><td class=SDescription>Used to create a versioned WFS protocol. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Protoc [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.OpenLayers.Protocol.WFS.DEFAULTS"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>DEFAULTS</h3></div></div>
 
 </div><!--Content-->
 
@@ -19,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Abstract vector layer protocol class. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/WFS/v1-js.html b/doc/apidocs/files/OpenLayers/Protocol/WFS/v1-js.html
index a24bc5f..f5fef7e 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/WFS/v1-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/WFS/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();p [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.v1</h1><div class=CBody><p>Abstract class for for v1.0.0 and v1.1.0 protocol.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Protocol</a> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.v1</h1><div class=CBody><p>Abstract class for for v1.0.0 and v1.1.0 protocol.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Protocol</a></li></ul><!--START_ND_SUMMARY--><di [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.OpenLayers.Protocol.WFS"></a>OpenLayers.<span class=HB> </span>Protocol.WFS</h3><div class=CBody><p>A class for giving layers WFS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.OpenLayers.Protocol.WFS"></a>OpenLayers.<wbr>Protocol.WFS</h3><div class=CBody><p>A class for giving layers WFS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 class=CHeading>Va [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cons [...]
+    readOptions: {output: "object"},
+    resultType: "hits",
+    maxFeatures: null,
+    callback: function(resp) {
+        // process resp.numberOfFeatures here
+    }
+});</pre></blockquote><p>To use a configured protocol to use WFS paging (if supported by the server), applications could do the following:</p><blockquote><pre class="prettyprint">protocol.read({
+    startIndex: 0,
+    count: 50
+});</pre></blockquote><p>To limit the attributes returned by the GetFeature request, applications can use the propertyNames option to specify the properties to include in the response:</p><blockquote><pre class="prettyprint">protocol.read({
+    propertyNames: ["DURATION", "INTENSITY"]
+});</pre></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.setFeatureType"></a>setFeatureType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFeatureType: function(</td><td class="PParameter  prettyprint " nowrap>featureType</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.setGeometryName"></a>setGeometryName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setGeometryName: function(</td><td class="PParameter  prettyprint " nowrap>geometryName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
 </div><!--Content-->
 
@@ -27,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract vector layer protocol class. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td cl [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html b/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html
index 0bbbc56..767eece 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>A WFS v1.0.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_0_0</h1><div class=CBody><p>A WFS v1.0.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Protocol.WFS.v1_0_0</a> const [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>A class for giving layers WFS v1.0.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional ob [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_0_0</h3><div class=CBody><p>A class for giving layers WFS v1.0.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html b/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html
index 3658a4c..775b5fe 100644
--- a/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html
+++ b/doc/apidocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>A WFS v1.1.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_1_0</h1><div class=CBody><p>A WFS v1.1.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Protocol.WFS.v1_1_0</a> const [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>A class for giving layers WFS v1.1.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional ob [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_1_0</h3><div class=CBody><p>A class for giving layers WFS v1.1.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td [...]
 
 </div><!--Content-->
 
@@ -23,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>A class for giving layers WFS v1.1.0 protocol.</div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract class for for v1.0.0 and v1.1.0 protocol.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>A class for giving layers WFS v1.1.0 protocol.</div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract class for for v1.0.0 and v1.1.0 protocol.</div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Renderer-js.html b/doc/apidocs/files/OpenLayers/Renderer-js.html
index f5a6d42..790a471 100644
--- a/doc/apidocs/files/OpenLayers/Renderer-js.html
+++ b/doc/apidocs/files/OpenLayers/Renderer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer"></a>OpenLayers.<span class=HB> </span>Renderer</h1><div class=CBody><p>This is the base class for all renderers.</p><p>This is based on a merger code written by Paul Spencer and Bertil Chapuis.  It is largely composed of virtual functions that are to be implemented in technology-specific subclasses, but there is some generic code too.</p><p>The functions that <b>are</b>  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer"></a>OpenLayers.<wbr>Renderer</h1><div class=CBody><p>This is the base class for all renderers.</p><p>This is based on a merger code written by Paul Spencer and Bertil Chapuis.  It is largely composed of virtual functions that are to be implemented in technology-specific subclasses, but there is some generic code too.</p><p>The functions that <b>are</b> implemented here m [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer"></a>OpenLayers.<span class=HB> </span>Renderer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="BaseTypes-js.html#OpenLayers.String" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">String [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer"></a>OpenLayers.<wbr>Renderer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="BaseTypes-js.html#OpenLayers.String" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">String</a>}</td></tr><tr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer.defaultSymbolizer"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>defaultSymbolizer</h3><div class=CBody><p>{Object} Properties from this symbolizer will be applied to symbolizers with missing properties.  This can also be used to set a global symbolizer default in OpenLayers.  To be SLD 1.x compliant, add the following code before rendering any vect [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer.defaultSymbolizer"></a>OpenLayers.<wbr>Renderer.<wbr>defaultSymbolizer</h3><div class=CBody><p>{Object} Properties from this symbolizer will be applied to symbolizers with missing properties.  This can also be used to set a global symbolizer default in OpenLayers.  To be SLD 1.x compliant, add the following code before rendering any vector features:</p><blockquote><pre cla [...]
     fillColor: "#808080",
     fillOpacity: 1,
     strokeColor: "#000000",
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>This should be overridden by specific subclasses</div></div><div class=CToolTip id="tt3"><div class=CClass>Contains co [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>This should be overridden by specific subclasses</div></div><div class=CTo [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Renderer/Canvas-js.html b/doc/apidocs/files/OpenLayers/Renderer/Canvas-js.html
index 1981689..f00c2ae 100644
--- a/doc/apidocs/files/OpenLayers/Renderer/Canvas-js.html
+++ b/doc/apidocs/files/OpenLayers/Renderer/Canvas-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer.Canvas - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.Canvas - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.Canvas"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas</h1><div class=CBody><p>A renderer based on the 2D ‘canvas’ drawing element.element</p><h4 class=CHeading>Inherits</h4><ul><li><a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.Canvas"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas</h1><div class=CBody><p>A renderer based on the 2D ‘canvas’ drawing element.</p><h4 class=CHeading>Inherits</h4><ul><li><a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Renderer</a></li></ul><!--START_ND_SUMMARY [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.hitDetection"></a>hitDetection</h3><div class=CBody><p>{Boolean} Allow for hit detection of features.   Default is true.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="../BaseTypes-js.html#OpenLayers.String" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3 [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="../BaseTypes-js.html#OpenLayers.String" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas.<span class=HB> </span>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_FACTOR"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>LABEL_FACTOR</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.drawImageScaleFactor"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>drawImageScaleFactor</h3><div class=CBody><p>{Number} Scale factor to apply to the canvas drawImage arguments.  This is always 1 except for Android 2.1 devices, to work around <a href="http://code.google.com/p/android/issues/detail?id=5141" class=LURL target=_top>http://code.google.com<wbr>/p<wbr> [...]
 
 </div><!--Content-->
 
@@ -31,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the renderer class</div></div><div class=CToolTip id="tt2"><div class=CClass>This is the base class for all renderers.</div></div><div class=CToolTip id="tt3"><div class=CClass>Contains convenience functions for string manipulation.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the renderer class</div></div><div class=CToolTip id="tt2"><div class=CClass>This is the base class for all renderers.</div></div><div class=CToolTip id="tt3"><div class=CClass>Contains convenience functions for string manipulation.</div></di [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Renderer/Elements-js.html b/doc/apidocs/files/OpenLayers/Renderer/Elements-js.html
index 57ea376..4c57c31 100644
--- a/doc/apidocs/files/OpenLayers/Renderer/Elements-js.html
+++ b/doc/apidocs/files/OpenLayers/Renderer/Elements-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.ElementsIndexer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.ElementsIndexer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,47 +11,47 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.ElementsIndexer"></a>OpenLayers.<span class=HB> </span>ElementsIndexer</h1><div class=CBody><p>This class takes care of figuring out which order elements should be placed in the DOM based on given indexing methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.ElementsIndexer"></a>OpenLayers.<wbr>ElementsIndexer</h1><div class=CBody><p>This class takes care of figuring out which order elements should be placed in the DOM based on given indexing methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a h [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.initialize"></a>initialize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initialize: function(</td><td class=PParameter nowrap>yOrdering</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a new indexer with</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.initialize"></a>initialize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initialize: function(</td><td class="PParameter  prettyprint " nowrap>yOrdering</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>insert: function(</td><td class=PParameter nowrap>newNode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Insert a new node into the indexer.  In o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insert: function(</td><td class="PParameter  prettyprint " nowrap>newNode</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>remove: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>remove: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.exists"></a>exists</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>exists: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><p>node- {DOMEleme [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.exists"></a>exists</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>exists: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getZIndex"></a>getZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZIndex: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the z-index value for the current no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getZIndex"></a>getZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZIndex: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getNextElement"></a>getNextElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNextElement: function(</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the next element in  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getNextElement"></a>getNextElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNextElement: function(</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods"></a>OpenLayers.<span class=HB> </span>ElementsIndexer.<span class=HB> </span>IndexingMethods</h2><div class=CBody><p>These are the compare methods for figuring out where a new node should be placed within the indexer.  These methods are very similar to general sorting methods in that they return -1, 0, and 1 to specify the direction in which new nodes fall in the ordering.</p> [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods"></a>OpenLayers.<wbr>ElementsIndexer.<wbr>IndexingMethods</h2><div class=CBody><p>These are the compare methods for figuring out where a new node should be placed within the indexer.  These methods are very similar to general sorting methods in that they return -1, 0, and 1 to specify the direction in which new nodes fall in the ordering.</p><!--START_ND_SUMMARY--><div class=Su [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER"></a>Z_ORDER_DRAWING_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER"></a>Z_ORDER_DRAWING_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER"></a>Z_ORDER_Y_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER_Y_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><td class=PP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER"></a>Z_ORDER_Y_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER_Y_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prettyprint " n [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Renderer.Elements"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</h2><div class=CBody><p>This is another virtual class in that it should never be instantiated by itself as a Renderer.  It exists because there is <b>tons</b> of shared functionality between different vector libraries which use nodes/elements as a base for rendering vectors.</p><p>The highlevel bits of code that  [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Renderer.Elements"></a>OpenLayers.<wbr>Renderer.<wbr>Elements</h2><div class=CBody><p>This is another virtual class in that it should never be instantiated by itself as a Renderer.  It exists because there is <b>tons</b> of shared functionality between different vector libraries which use nodes/elements as a base for rendering vectors.</p><p>The highlevel bits of code that are implemented here are the adding  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Constants"></a>Constants</h3></div></div>
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX"></a>BACKGROUND_ID_SUFFIX</h3><div class=CBody><p>{String}</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX"></a>BACKGROUND_ID_SUFFIX</h3><div class=CBody><p>{String}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.LABEL_ID_SUFFIX"></a>LABEL_ID_SUFFIX</h3><div class=CBody><p>{String}</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.Elements"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} options for [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.Elements"></a>OpenLayers.<wbr>Renderer.<wbr>Elements</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} options for this renderer.  Supported opti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.symbol"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>symbol</h3><div class=CBody><p>Coordinate arrays for well known (named) symbols.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.symbol"></a>OpenLayers.<wbr>Renderer.<wbr>symbol</h3><div class=CBody><p>Coordinate arrays for well known (named) symbols.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -59,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initialize: function(</td><td class=PParameter nowrap>yOrdering</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new indexer with</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initialize: function(</td><td class="PParameter  prettyprint " nowrap>yOrdering</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new indexer with</div></div><div class=CToolTip id="tt2"><div class=CF [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Renderer/NG-js.html b/doc/apidocs/files/OpenLayers/Renderer/NG-js.html
new file mode 100644
index 0000000..849f2e0
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Renderer/NG-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.NG - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.NG"></a>OpenLayers.<wbr>Renderer.NG</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Elements-js.html#OpenLayers.Renderer.Elements" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Renderer.Elements</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class= [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.labelNodeType"></a>labelNodeType</h3><div class=CBody><p>{String} The node type for text label containers.  To be defined by subclasses.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.OpenLayers.Renderer.NG"></a>OpenLayers.<wbr>Renderer.NG</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} options for this renderer.  Supported options are:</td></tr></tab [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>This is another virtual class in that it should never be instantiated by itself as a Renderer. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Renderer/SVG-js.html b/doc/apidocs/files/OpenLayers/Renderer/SVG-js.html
index d9abf68..c7bf977 100644
--- a/doc/apidocs/files/OpenLayers/Renderer/SVG-js.html
+++ b/doc/apidocs/files/OpenLayers/Renderer/SVG-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer.SVG - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.SVG - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.SVG"></a>OpenLayers.<span class=HB> </span>Renderer.SVG</h1><div class=CBody><h4 class=CHeading>Inherits</h4><ul><li><a href="Elements-js.html#OpenLayers.Renderer.Elements" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Renderer.Elements</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.SVG"></a>OpenLayers.<wbr>Renderer.SVG</h1><div class=CBody><h4 class=CHeading>Inherits</h4><ul><li><a href="Elements-js.html#OpenLayers.Renderer.Elements" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Renderer.Elements</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Constants"></a>Constants</h3></div></div>
 
@@ -19,19 +19,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG"></a>OpenLayers.<span class=HB> </span>Renderer.SVG</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG"></a>OpenLayers.<wbr>Renderer.SVG</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SVG renderer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SVG renderer</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_ALIGN"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>SVG.<span class=HB> </span>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_ALIGN"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_VSHIFT"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>LABEL_VSHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_VSHIFT"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>SVG.<span class=HB> </span>LABEL_VSHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_VFACTOR"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>LABEL_VFACTOR</h3><div class=CBody><p>{Object}</p></div></div></div>
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the SVG renderer</div></div><div class=CToolTip id="tt3"><div class=CCla [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the SVG renderer</div></div><div class=CToolTip id="tt2"><div class=CClass>This is another virtual class in that it should never be instantiated by itself as a Renderer. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Renderer/SVG2-js.html b/doc/apidocs/files/OpenLayers/Renderer/SVG2-js.html
new file mode 100644
index 0000000..449c5d4
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/Renderer/SVG2-js.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.SVG2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.SVG2"></a>OpenLayers.<wbr>Renderer.SVG2</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="NG-js.html#OpenLayers.Renderer.NG" class=LClass >OpenLayers.Renderer.NG</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SE [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.labelNodeType"></a>labelNodeType</h3><div class=CBody><p>{String} The node type for text label containers.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2"></a>OpenLayers.<wbr>Renderer.SVG2</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SVG renderer</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.LABEL_ALIGN"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.LABEL_VSHIFT"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>LABEL_VSHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.LABEL_VFACTOR"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>LABEL_VFACTOR</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the SVG renderer</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Renderer/VML-js.html b/doc/apidocs/files/OpenLayers/Renderer/VML-js.html
index 07e4a58..faca888 100644
--- a/doc/apidocs/files/OpenLayers/Renderer/VML-js.html
+++ b/doc/apidocs/files/OpenLayers/Renderer/VML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer.VML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.VML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.VML"></a>OpenLayers.<span class=HB> </span>Renderer.VML</h1><div class=CBody><p>Render vector features in browsers with VML capability.   Construct a new VML renderer with the <a href="#OpenLayers.Renderer.VML.OpenLayers.Renderer.VML" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Renderer.VML</a> constructo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.VML"></a>OpenLayers.<wbr>Renderer.VML</h1><div class=CBody><p>Render vector features in browsers with VML capability.   Construct a new VML renderer with the <a href="#OpenLayers.Renderer.VML.OpenLayers.Renderer.VML" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Renderer.VML</a> constructor.</p><p>Note that [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML"></a>OpenLayers.<span class=HB> </span>Renderer.VML</h3><div class=CBody><p>Create a new VML renderer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String} The id for the element that contains the renderer</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML"></a>OpenLayers.<wbr>Renderer.VML</h3><div class=CBody><p>Create a new VML renderer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String} The id for the element that contains the renderer</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct the renderer.</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports this renderer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports the VML renderer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports this renderer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports the VML renderer</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML.LABEL_SHIFT"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>VML.<span class=HB> </span>LABEL_SHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML.LABEL_SHIFT"></a>OpenLayers.<wbr>Renderer.<wbr>VML.<wbr>LABEL_SHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
 
 </div><!--Content-->
 
@@ -33,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Deconstruct the renderer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>Determine whether a browser supports this renderer.</div></div><div class=CToolTip id="tt3">< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>Determine whether a browser supports this renderer.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new VML renderer.</div></div><div class=CToolTip id="tt3"><div class=CClass>This is another virtual class in that it should never be instantiated by itself as a Re [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Request-js.html b/doc/apidocs/files/OpenLayers/Request-js.html
index ee576f9..72bc353 100644
--- a/doc/apidocs/files/OpenLayers/Request-js.html
+++ b/doc/apidocs/files/OpenLayers/Request-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Request - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Request - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,31 +11,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request"></a>OpenLayers.<span class=HB> </span>Request</h1><div class=CBody><p>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests.   These methods work with a cross-browser W3C compliant <a href="Request/XMLHttpRequest-js.html#OpenLayers.Request.XMLHttpRequest" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request"></a>OpenLayers.<wbr>Request</h1><div class=CBody><p>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests.   These methods work with a cross-browser W3C compliant <a href="Request/XMLHttpRequest-js.html#OpenLayers.Request.XMLHttpRequest" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')"> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.Constants"></a>Constants</h3></div></div>
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.DEFAULT_CONFIG"></a>DEFAULT_CONFIG</h3><div class=CBody><p>{Object} Default configuration for all requests.</p></div></div></div>
 
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.URL_SPLIT_REGEX"></a>URL_SPLIT_REGEX</h3></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} An events object that handles all events on the {<a href="#OpenLayers.Request" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt1', 'link10')" onMouseOut="HideTip('tt1')">OpenLayers.Request</a>} object.</p><h4 class=CHeading>All event listeners will receive an event object wit [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.issue"></a>issue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>issue: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a new XMLHttpRequest object, open it, set any heade [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.issue"></a>issue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>issue: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a n [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.GET"></a>GET</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>GET: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP GET request.   Additional configuration proper [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.GET"></a>GET</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>GET: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP GET [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.POST"></a>POST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>POST: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send a POST request.   Additional configuration properti [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.POST"></a>POST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>POST: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send a POST r [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.PUT"></a>PUT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>PUT: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP PUT request.   Additional configuration proper [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.PUT"></a>PUT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>PUT: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP PUT [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.DELETE"></a>DELETE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>DELETE: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP DELETE request.   Additional configur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.DELETE"></a>DELETE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>DELETE: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.HEAD"></a>HEAD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>HEAD: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP HEAD request.   Additional configuration pr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.HEAD"></a>HEAD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>HEAD: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.OPTIONS"></a>OPTIONS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OPTIONS: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP OPTIONS request.   Additional conf [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.OPTIONS"></a>OPTIONS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OPTIONS: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send [...]
 
 </div><!--Content-->
 
@@ -43,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([28, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([26, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>issue: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>issue: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  pr [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Request/XMLHttpRequest-js.html b/doc/apidocs/files/OpenLayers/Request/XMLHttpRequest-js.html
index 3f5e20c..3892ec1 100644
--- a/doc/apidocs/files/OpenLayers/Request/XMLHttpRequest-js.html
+++ b/doc/apidocs/files/OpenLayers/Request/XMLHttpRequest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Request.XMLHttpRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Request.XMLHttpRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request.XMLHttpRequest"></a>OpenLayers.<span class=HB> </span>Request.<span class=HB> </span>XMLHttpRequest</h1><div class=CBody><p>Standard-compliant (W3C) cross-browser implementation of the XMLHttpRequest object.   From <a href="http://code.google.com/p/xmlhttprequest/" class=LURL target=_top>http://code.google.com/p/xmlhttprequest/</a>.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request.XMLHttpRequest"></a>OpenLayers.<wbr>Request.<wbr>XMLHttpRequest</h1><div class=CBody><p>Standard-compliant (W3C) cross-browser implementation of the XMLHttpRequest object.   From <a href="http://code.google.com/p/xmlhttprequest/" class=LURL target=_top>http://code.google.com/p/xmlhttprequest/</a>.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([28, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([26, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Rule-js.html b/doc/apidocs/files/OpenLayers/Rule-js.html
index 6edadc9..dfca232 100644
--- a/doc/apidocs/files/OpenLayers/Rule-js.html
+++ b/doc/apidocs/files/OpenLayers/Rule-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Rule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Rule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -27,11 +27,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>evaluates this rule for a specific feature</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>eva [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this rule.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Rule.OpenLayers.Rule" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">OpenLayers.Rule</a>} Clone of this rule. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this rule.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Rule.OpenLayers.Rule" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">OpenLayers.Rule</a [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</ [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  pr [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/SingleFile-js.html b/doc/apidocs/files/OpenLayers/SingleFile-js.html
new file mode 100644
index 0000000..37d4d0f
--- /dev/null
+++ b/doc/apidocs/files/OpenLayers/SingleFile-js.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/SingleFile.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="Conten [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="SingleFile.js"></a>SingleFile.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#SingleFile.js" >SingleFile.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td c [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="VERSION_NUMBER"></a>VERSION_NUMBER</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="singleFile"></a>singleFile</h3><div class=CBody><p>TODO: remove this in 3.0 when we stop supporting build profiles that include OpenLayers.js</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/files/OpenLayers/Strategy-js.html b/doc/apidocs/files/OpenLayers/Strategy-js.html
index 58bb430..22d0e98 100644
--- a/doc/apidocs/files/OpenLayers/Strategy-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy"></a>OpenLayers.<span class=HB> </span>Strategy</h1><div class=CBody><p>Abstract vector layer strategy class.   Not to be instantiated directly.   Use one of the strategy subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy"></a>OpenLayers.<wbr>Strategy</h1><div class=CBody><p>Abstract vector layer strategy class.   Not to be instantiated directly.   Use one of the strategy subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.OpenLayers.Strategy"></a>OpenLayers.<span class=HB> </span>Strategy</h3><div class=CBody><p>Abstract class for vector strategies.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.OpenLayers.Strategy"></a>OpenLayers.<wbr>Strategy</h3><div class=CBody><p>Abstract class for vector strategies.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the strategy.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the strategy.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the strategy.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the strategy.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/BBOX-js.html b/doc/apidocs/files/OpenLayers/Strategy/BBOX-js.html
index 3e783a6..f0cfa46 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/BBOX-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/BBOX-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.BBOX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.BBOX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.BBOX"></a>OpenLayers.<span class=HB> </span>Strategy.BBOX</h1><div class=CBody><p>A simple strategy that reads new features when the viewport invalidates some bounds.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Strategy [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.BBOX"></a>OpenLayers.<wbr>Strategy.BBOX</h1><div class=CBody><p>A simple strategy that reads new features when the viewport invalidates some bounds.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Strategy</a></li></ul><!-- [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.OpenLayers.Strategy.BBOX"></a>OpenLayers.<span class=HB> </span>Strategy.BBOX</h3><div class=CBody><p>Create a new BBOX strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.OpenLayers.Strategy.BBOX"></a>OpenLayers.<wbr>Strategy.BBOX</h3><div class=CBody><p>Create a new BBOX strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/Cluster-js.html b/doc/apidocs/files/OpenLayers/Strategy/Cluster-js.html
index e82ea9f..f454539 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/Cluster-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/Cluster-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Cluster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Cluster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Cluster"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Cluster</h1><div class=CBody><p>Strategy for vector feature clustering.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Strategy</a></li></ul><! [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Cluster"></a>OpenLayers.<wbr>Strategy.<wbr>Cluster</h1><div class=CBody><p>Strategy for vector feature clustering.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Strategy</a></li></ul><!--START_ND_SUMMARY--><div class=Summ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.Properties"></a>Properties</h3></div></div>
 
@@ -21,13 +21,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.OpenLayers.Strategy.Cluster"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Cluster</h3><div class=CBody><p>Create a new clustering strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the inst [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.OpenLayers.Strategy.Cluster"></a>OpenLayers.<wbr>Strategy.<wbr>Cluster</h3><div class=CBody><p>Create a new clustering strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CClass>Abstract  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/Filter-js.html b/doc/apidocs/files/OpenLayers/Strategy/Filter-js.html
index 36b8627..86a257d 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/Filter-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/Filter-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Filter"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Filter</h1><div class=CBody><p>Strategy for limiting features that get added to a layer by evaluating a filter.   The strategy maintains a cache of all features until removeFeatures is called on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.St [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Filter"></a>OpenLayers.<wbr>Strategy.<wbr>Filter</h1><div class=CBody><p>Strategy for limiting features that get added to a layer by evaluating a filter.   The strategy maintains a cache of all features until removeFeatures is called on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link5 onMous [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.Properties"></a>Properties</h3></div></div>
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.OpenLayers.Strategy.Filter"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Filter</h3><div class=CBody><p>Create a new filter strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.&n [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.OpenLayers.Strategy.Filter"></a>OpenLayers.<wbr>Strategy.<wbr>Filter</h3><div class=CBody><p>Create a new filter strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.  By default, this strategy automatically activates itself when a layer is added to a map.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.  By default, this strategy automatically activates itself when a layer is added to a map.</p><h4 class=CHeading>Retur [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Clear the feature cache.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated or false if the strategy was already inactive.</p></div></di [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Clear the feature cache.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated or false if the strategy was already i [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.setFilter"></a>setFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setFilter: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Update the filter for this strategy.&n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.setFilter"></a>setFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFilter: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquot [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactiv [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/Fixed-js.html b/doc/apidocs/files/OpenLayers/Strategy/Fixed-js.html
index 580f140..0f99efc 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/Fixed-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/Fixed-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Fixed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Fixed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Fixed"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Fixed</h1><div class=CBody><p>A simple strategy that requests features once and never requests new data.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">Open [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Fixed"></a>OpenLayers.<wbr>Strategy.<wbr>Fixed</h1><div class=CBody><p>A simple strategy that requests features once and never requests new data.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Strategy</a></li></ul><!--STA [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.OpenLayers.Strategy.Fixed"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Fixed</h3><div class=CBody><p>Create a new Fixed strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td>< [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.Functions"></a>Functions</h3></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the strategy.</p></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.OpenLayers.Strategy.Fixed"></a>OpenLayers.<wbr>Strategy.<wbr>Fixed</h3><div class=CBody><p>Create a new Fixed strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 </div><!--Content-->
 
@@ -31,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the strategy.</div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract vector layer strategy class. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Abstract vector layer strategy class. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/Paging-js.html b/doc/apidocs/files/OpenLayers/Strategy/Paging-js.html
index 875aeab..517673e 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/Paging-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/Paging-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Paging - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Paging - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Paging"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</h1><div class=CBody><p>Strategy for vector feature paging</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Strategy</a></li></ul><!--START [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Paging"></a>OpenLayers.<wbr>Strategy.<wbr>Paging</h1><div class=CBody><p>Strategy for vector feature paging</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Strategy</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><di [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</h3><div class=CBody><p>Create a new paging strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging"></a>OpenLayers.<wbr>Strategy.<wbr>Paging</h3><div class=CBody><p>Create a new paging strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageCount"></a>pageCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pageCount: function()</td></tr></table></blockquote><p>Get the total count of pages given the current cache of features.</p><h4 class=CHeading>Returns</h4><p>{Integer} The page count.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageCount"></a>pageCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pageCount: function()</td></tr></table></blockquote><p>Get the total count of pages given the current cache of features.</p><h4 class=CHeading>Returns</h4><p>{Integer} The page count.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNum"></a>pageNum</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pageNum: function()</td></tr></table></blockquote><p>Get the zero based page number.</p><h4 class=CHeading>Returns</h4><p>{Integer} The current page number being displayed.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNum"></a>pageNum</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pageNum: function()</td></tr></table></blockquote><p>Get the zero based page number.</p><h4 class=CHeading>Returns</h4><p>{Integer} The current page number being displayed.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageLength"></a>pageLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pageLength: function(</td><td class=PParameter nowrap>newLength</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets or sets page length.</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageLength"></a>pageLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pageLength: function(</td><td class="PParameter  prettyprint " nowrap>newLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNext"></a>pageNext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pageNext: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Display the next page of features.</p><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNext"></a>pageNext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pageNext: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pagePrevious"></a>pagePrevious</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pagePrevious: function()</td></tr></table></blockquote><p>Display the previous page of features.</p><h4 class=CHeading>Returns</h4><p>{Boolean} A new page was displayed.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pagePrevious"></a>pagePrevious</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pagePrevious: function()</td></tr></table></blockquote><p>Display the previous page of features.</p><h4 class=CHeading>Returns</h4><p>{Boolean} A new page was displayed.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><block [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/Refresh-js.html b/doc/apidocs/files/OpenLayers/Strategy/Refresh-js.html
index f9f628e..4348bee 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/Refresh-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/Refresh-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Refresh - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Refresh - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Refresh"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Refresh</h1><div class=CBody><p>A strategy that refreshes the layer.  By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Refresh.refresh" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">refresh</a> before refreshing.  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Refresh"></a>OpenLayers.<wbr>Strategy.<wbr>Refresh</h1><div class=CBody><p>A strategy that refreshes the layer.  By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Refresh.refresh" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">refresh</a> before refreshing.   By configuring the strategy with t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.OpenLayers.Strategy.Refresh"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Refresh</h3><div class=CBody><p>Create a new Refresh strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instanc [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.OpenLayers.Strategy.Refresh"></a>OpenLayers.<wbr>Strategy.<wbr>Refresh</h3><div class=CBody><p>Create a new Refresh strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.  Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.  Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.  Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.  Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated.</p></div>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>refresh: function()</td></tr></table></blockquote><p>Tell the strategy to refresh which will refresh the layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">refresh: function()</td></tr></table></blockquote><p>Tell the strategy to refresh which will refresh the layer.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><block [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Strategy/Save-js.html b/doc/apidocs/files/OpenLayers/Strategy/Save-js.html
index 0b33c58..1851b38 100644
--- a/doc/apidocs/files/OpenLayers/Strategy/Save-js.html
+++ b/doc/apidocs/files/OpenLayers/Strategy/Save-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Save - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Save - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Save"></a>OpenLayers.<span class=HB> </span>Strategy.Save</h1><div class=CBody><p>A strategy that commits newly created or modified features.   By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Save.save" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">save</a> before persisting changes.   By c [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Save"></a>OpenLayers.<wbr>Strategy.Save</h1><div class=CBody><p>A strategy that commits newly created or modified features.   By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Save.save" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">save</a> before persisting changes.   By configuring the str [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>strategy.events.register(type, obj, listener);</pre></blockquote><ul><li><b>start</b> Triggered before saving</li><li><b>success</b> Triggered after a successful transaction</li><li><b>fail</b> Trigg [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">strategy.events.register(type, obj, listener);</pre></blockquote><ul><li><b>start</b> Triggered before saving</li><li><b>success</b> Triggered after a successful transaction</li>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Properties"></a>Properties</h3></div></div>
 
@@ -23,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.OpenLayers.Strategy.Save"></a>OpenLayers.<span class=HB> </span>Strategy.Save</h3><div class=CBody><p>Create a new Save strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.OpenLayers.Strategy.Save"></a>OpenLayers.<wbr>Strategy.Save</h3><div class=CBody><p>Create a new Save strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.save"></a>save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>save: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tell the layer protocol to commit unsaved features.&n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.save"></a>save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>save: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tell  [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><block [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=C [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Style-js.html b/doc/apidocs/files/OpenLayers/Style-js.html
index 84bf3a0..c248c2f 100644
--- a/doc/apidocs/files/OpenLayers/Style-js.html
+++ b/doc/apidocs/files/OpenLayers/Style-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Style - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Style - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style"></a>OpenLayers.<span class=HB> </span>Style</h1><div class=CBody><p>This class represents a UserStyle obtained from a SLD, containing styling rules.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style" >OpenLayers.<span [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style"></a>OpenLayers.<wbr>Style</h1><div class=CBody><p>This class represents a UserStyle obtained from a SLD, containing styling rules.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style" >OpenLayers.<wbr>Style</a></td><td  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Properties"></a>Properties</h3></div></div>
 
@@ -23,21 +23,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style"></a>OpenLayers.<span class=HB> </span>Style</h3><div class=CBody><p>Creates a UserStyle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional hash of style properties that will be used as default style for this style object.  This style applies if no rule [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style"></a>OpenLayers.<wbr>Style</h3><div class=CBody><p>Creates a UserStyle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional hash of style properties that will be used as default style for this style object.  This style applies if no rules are specified.&n [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.addRules"></a>addRules</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addRules: function(</td><td class=PParameter nowrap>rules</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds rules to this style.</p><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.addRules"></a>addRules</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addRules: function(</td><td class="PParameter  prettyprint " nowrap>rules</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.setDefaultStyle"></a>setDefaultStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setDefaultStyle: function(</td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the default style for this [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.setDefaultStyle"></a>setDefaultStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setDefaultStyle: function(</td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style.OpenLayers.Style" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt7', 'link10')" onMouseOut="HideTip('tt7')">OpenLayers.Style</a>} Clone of thi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style.OpenLayers.Style" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt7', 'link10')" onMouseOut="HideTip('tt7')">OpenLayers.S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style.SYMBOLIZER_PREFIXES"></a>OpenLayers.<span class=HB> </span>Style.<span class=HB> </span>SYMBOLIZER_PREFIXES</h3><div class=CBody><p>{Array} prefixes of the sld symbolizers.  These are the same as the main geometry types</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style.SYMBOLIZER_PREFIXES"></a>OpenLayers.<wbr>Style.<wbr>SYMBOLIZER_PREFIXES</h3><div class=CBody><p>{Array} prefixes of the sld symbolizers.  These are the same as the main geometry types</p></div></div></div>
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototyp [...]
+<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpa [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Style2-js.html b/doc/apidocs/files/OpenLayers/Style2-js.html
index ead993f..5a65b66 100644
--- a/doc/apidocs/files/OpenLayers/Style2-js.html
+++ b/doc/apidocs/files/OpenLayers/Style2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Style2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Style2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style2"></a>OpenLayers.<span class=HB> </span>Style2</h1><div class=CBody><p>This class represents a collection of rules for rendering features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style2" >OpenLayers.<span class=HB> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style2"></a>OpenLayers.<wbr>Style2</h1><div class=CBody><p>This class represents a collection of rules for rendering features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style2" >OpenLayers.<wbr>Style2</a></td><td class=SDe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.Properties"></a>Properties</h3></div></div>
 
@@ -29,13 +29,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.OpenLayers.Style2"></a>OpenLayers.<span class=HB> </span>Style2</h3><div class=CBody><p>Creates a style representing a collection of rendering rules.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the style.   Any documented prop [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.OpenLayers.Style2"></a>OpenLayers.<wbr>Style2</h3><div class=CBody><p>Creates a style representing a collection of rendering rules.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the style.   Any documented properties may be set  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style2.OpenLayers.Style2" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLayers.Style2</a>} Clone of t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style2.OpenLayers.Style2" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLayers. [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an SLD Rule, as being used for rule-based SLD styling.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory le [...]
+<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an SLD Rule, as being used for rule-based SLD styling.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular re [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/StyleMap-js.html b/doc/apidocs/files/OpenLayers/StyleMap-js.html
index 6423490..932d3c5 100644
--- a/doc/apidocs/files/OpenLayers/StyleMap-js.html
+++ b/doc/apidocs/files/OpenLayers/StyleMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.StyleMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.StyleMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.StyleMap"></a>OpenLayers.<span class=HB> </span>StyleMap</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.StyleMap" >OpenLayers.<span class=HB> </span>StyleMap</a></td><td class=SDescription></td></tr><tr class= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.StyleMap"></a>OpenLayers.<wbr>StyleMap</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.StyleMap" >OpenLayers.<wbr>StyleMap</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.OpenLayers.StyleMap"></a>OpenLayers.<span class=HB> </span>StyleMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional.  Either a style hash, or a style object, or a hash of style objects (style hashes) keyed by rendering intent.  If just one st [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.OpenLayers.StyleMap"></a>OpenLayers.<wbr>StyleMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional.  Either a style hash, or a style object, or a hash of style objects (style hashes) keyed by rendering intent.  If just one style hash or style  [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Symbolizer-js.html b/doc/apidocs/files/OpenLayers/Symbolizer-js.html
index f6b25a3..f9575bc 100644
--- a/doc/apidocs/files/OpenLayers/Symbolizer-js.html
+++ b/doc/apidocs/files/OpenLayers/Symbolizer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script langua [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer"></a>OpenLayers.<span class=HB> </span>Symbolizer</h1><div class=CBody><p>Base class representing a symbolizer used for feature rendering.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer" >OpenLayers.<span  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer"></a>OpenLayers.<wbr>Symbolizer</h1><div class=CBody><p>Base class representing a symbolizer used for feature rendering.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer" >OpenLayers.<wbr>Symbolizer</a></td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.OpenLayers.Symbolizer"></a>OpenLayers.<span class=HB> </span>Symbolizer</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolize [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.OpenLayers.Symbolizer"></a>OpenLayers.<wbr>Symbolizer</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any docu [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Create a copy of this symbolizer.</p><p>Returns a symbolizer of the same type with the same properties.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Create a copy of this symbolizer.</p><p>Returns a symbolizer of the same type with the same properties.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote>Create a copy of this symbolizer.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote>Create a copy of this symbolizer.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Symbolizer/Line-js.html b/doc/apidocs/files/OpenLayers/Symbolizer/Line-js.html
index 43f6ec0..10c7e1f 100644
--- a/doc/apidocs/files/OpenLayers/Symbolizer/Line-js.html
+++ b/doc/apidocs/files/OpenLayers/Symbolizer/Line-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Line - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Line - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Line"></a>OpenLayers.<span class=HB> </span>Symbolizer.Line</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Line" >OpenLayers.<span class=H [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Line"></a>OpenLayers.<wbr>Symbolizer.Line</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Line" >OpenLayers.<wbr>Symbolizer.Line</a></td><t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.OpenLayers.Symbolizer.Line"></a>OpenLayers.<span class=HB> </span>Symbolizer.Line</h3><div class=CBody><p>Create a symbolizer for rendering lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any docu [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.OpenLayers.Symbolizer.Line"></a>OpenLayers.<wbr>Symbolizer.Line</h3><div class=CBody><p>Create a symbolizer for rendering lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documented symbolizer  [...]
 
 </div><!--Content-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Symbolizer/Point-js.html b/doc/apidocs/files/OpenLayers/Symbolizer/Point-js.html
index af07db5..6e261e2 100644
--- a/doc/apidocs/files/OpenLayers/Symbolizer/Point-js.html
+++ b/doc/apidocs/files/OpenLayers/Symbolizer/Point-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,43 +11,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Point"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Point</h1><div class=CBody><p>A symbolizer used to render point features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Point [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Point"></a>OpenLayers.<wbr>Symbolizer.<wbr>Point</h1><div class=CBody><p>A symbolizer used to render point features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Point" >OpenLayers.<wbr>Symbolizer.<wbr>P [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.pointRadius"></a>pointRadius</h3><div class=CBody><p>{Number} Pixel point radius.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.pointRadius"></a>pointRadius</h3><div class=CBody><p>{Number} Pixel point radius.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.externalGraphic"></a>externalGraphic</h3><div class=CBody><p>{String} Url to an external graphic that will be used for rendering points.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.externalGraphic"></a>externalGraphic</h3><div class=CBody><p>{String} Url to an external graphic that will be used for rendering points.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicWidth"></a>graphicWidth</h3><div class=CBody><p>{Number} Pixel width for sizing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicWidth"></a>graphicWidth</h3><div class=CBody><p>{Number} Pixel width for sizing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicHeight"></a>graphicHeight</h3><div class=CBody><p>{Number} Pixel height for sizing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicHeight"></a>graphicHeight</h3><div class=CBody><p>{Number} Pixel height for sizing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicOpacity"></a>graphicOpacity</h3><div class=CBody><p>{Number} Opacity (0-1) for an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicOpacity"></a>graphicOpacity</h3><div class=CBody><p>{Number} Opacity (0-1) for an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicXOffset"></a>graphicXOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive x axis for displacing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicXOffset"></a>graphicXOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive x axis for displacing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicYOffset"></a>graphicYOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive y axis for displacing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicYOffset"></a>graphicYOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive y axis for displacing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.rotation"></a>rotation</h3><div class=CBody><p>{Number} The rotation of a graphic in the clockwise direction about its center point (or any point off center as specified by <a href="#OpenLayers.Symbolizer.Point.graphicXOffset" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">graphicXOffset</a> and <a href="#OpenLayers.Symbolizer.Point.graphicYOff [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.rotation"></a>rotation</h3><div class=CBody><p>{Number} The rotation of a graphic in the clockwise direction about its center point (or any point off center as specified by <a href="#OpenLayers.Symbolizer.Point.graphicXOffset" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">graphicXOffset</a> and <a href="#OpenLayers.Symbolizer.Point.graphicYOff [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicName"></a>graphicName</h3><div class=CBody><p>{String} Named graphic to use when rendering points.   Supported values include “circle”, “square”, “star”, “x”, “cross”, and “triangle”.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicName"></a>graphicName</h3><div class=CBody><p>{String} Named graphic to use when rendering points.   Supported values include “circle”, “square”, “star”, “x”, “cross”, and “triangle”.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.OpenLayers.Symbolizer.Point"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Point</h3><div class=CBody><p>Create a symbolizer for rendering points.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.OpenLayers.Symbolizer.Point"></a>OpenLayers.<wbr>Symbolizer.<wbr>Point</h3><div class=CBody><p>Create a symbolizer for rendering points.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documented sy [...]
 
 </div><!--Content-->
 
@@ -55,10 +55,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Symbolizer/Polygon-js.html b/doc/apidocs/files/OpenLayers/Symbolizer/Polygon-js.html
index 1f513d6..c3b5836 100644
--- a/doc/apidocs/files/OpenLayers/Symbolizer/Polygon-js.html
+++ b/doc/apidocs/files/OpenLayers/Symbolizer/Polygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Polygon</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Po [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<wbr>Symbolizer.<wbr>Polygon</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Polygon" >OpenLayers.<wbr>Symbolizer.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Polygon</h3><div class=CBody><p>Create a symbolizer for rendering polygons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<wbr>Symbolizer.<wbr>Polygon</h3><div class=CBody><p>Create a symbolizer for rendering polygons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any docum [...]
 
 </div><!--Content-->
 
@@ -37,10 +37,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Symbolizer/Raster-js.html b/doc/apidocs/files/OpenLayers/Symbolizer/Raster-js.html
index be32c62..142c303 100644
--- a/doc/apidocs/files/OpenLayers/Symbolizer/Raster-js.html
+++ b/doc/apidocs/files/OpenLayers/Symbolizer/Raster-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Raster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Raster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Raster"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Raster</h1><div class=CBody><p>A symbolizer used to render raster images.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Rast [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Raster"></a>OpenLayers.<wbr>Symbolizer.<wbr>Raster</h1><div class=CBody><p>A symbolizer used to render raster images.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Raster" >OpenLayers.<wbr>Symbolizer.<wbr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Raster.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Raster</h3><div class=CBody><p>Create a symbolizer for rendering rasters.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster"></a>OpenLayers.<wbr>Symbolizer.<wbr>Raster</h3><div class=CBody><p>Create a symbolizer for rendering rasters.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documente [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Symbolizer/Text-js.html b/doc/apidocs/files/OpenLayers/Symbolizer/Text-js.html
index 90cc5e3..6ab8581 100644
--- a/doc/apidocs/files/OpenLayers/Symbolizer/Text-js.html
+++ b/doc/apidocs/files/OpenLayers/Symbolizer/Text-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Text"></a>OpenLayers.<span class=HB> </span>Symbolizer.Text</h1><div class=CBody><p>A symbolizer used to render text labels for features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Text" >OpenLayers.<s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Text"></a>OpenLayers.<wbr>Symbolizer.Text</h1><div class=CBody><p>A symbolizer used to render text labels for features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Text" >OpenLayers.<wbr>Symbolizer.Text [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.label"></a>label</h3><div class=CBody><p>{String} The text for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.label"></a>label</h3><div class=CBody><p>{String} The text for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontFamily"></a>fontFamily</h3><div class=CBody><p>{String} The font family for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontFamily"></a>fontFamily</h3><div class=CBody><p>{String} The font family for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontSize"></a>fontSize</h3><div class=CBody><p>{String} The font size for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontSize"></a>fontSize</h3><div class=CBody><p>{String} The font size for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontWeight"></a>fontWeight</h3><div class=CBody><p>{String} The font weight for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontWeight"></a>fontWeight</h3><div class=CBody><p>{String} The font weight for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.OpenLayers.Symbolizer.Text"></a>OpenLayers.<span class=HB> </span>Symbolizer.Text</h3><div class=CBody><p>Create a symbolizer for rendering text labels.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   An [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.OpenLayers.Symbolizer.Text"></a>OpenLayers.<wbr>Symbolizer.Text</h3><div class=CBody><p>Create a symbolizer for rendering text labels.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documented symbo [...]
 
 </div><!--Content-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Tile-js.html b/doc/apidocs/files/OpenLayers/Tile-js.html
index 51cef4a..209b312 100644
--- a/doc/apidocs/files/OpenLayers/Tile-js.html
+++ b/doc/apidocs/files/OpenLayers/Tile-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:function()</td></tr></table></blockquote><p>Nullify references to prevent circular references and memory leaks.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy:function()</td></tr></table></blockquote><p>Nullify references to prevent circular references and memory leaks.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:function()</td></tr></table></blockquote>Nullify references to prevent circular references and memory leaks.</div></div><div class=CToolTip id="tt3"><div class=CClass>This is a class designed to designate a single tile, however it is explicitly  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy:function()</td></tr></table></blockquote>Nullify references to prevent circular references and memory leaks.</div></div><div class=CToolTip id="tt3"><div class=CClass>This is a class designed to designate a single tile, how [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Tile/Image-js.html b/doc/apidocs/files/OpenLayers/Tile/Image-js.html
index 957c4c3..8279bb1 100644
--- a/doc/apidocs/files/OpenLayers/Tile/Image-js.html
+++ b/doc/apidocs/files/OpenLayers/Tile/Image-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image"></a>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image</h1><div class=CBody><p>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.Image" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Tile.Im [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image"></a>OpenLayers.<wbr>Tile.<wbr>Image</h1><div class=CBody><p>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.Image" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Tile.Image</a> constructor.</p><h4 class=CH [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.maxGetUrlLength"></a>maxGetUrlLength</h3><div class=CBody><p>{Number} If set, requests that would result in GET urls with more characters than the number provided will be made using form-encoded HTTP POST.  It is good practice to avoid urls that are longer than 2048 characters.</p><h4 class=CHeading>Caution</h4><p>Older versions of Gecko based browsers (e.g.  Firefox < 3.5) and Opera &lt [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
 </div><!--Content-->
 
@@ -23,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt3"><div class=CClass>This is a class designed to design [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt3"><div class=CClass>This is a cl [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Tile/Image/IFrame-js.html b/doc/apidocs/files/OpenLayers/Tile/Image/IFrame-js.html
index 6cb2a86..c79d833 100644
--- a/doc/apidocs/files/OpenLayers/Tile/Image/IFrame-js.html
+++ b/doc/apidocs/files/OpenLayers/Tile/Image/IFrame-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile.Image.IFrame - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile.Image.IFrame - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image.IFrame"></a>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image.<span class=HB> </span>IFrame</h1><div class=CBody><p>Instances of OpenLayers.Tile.Image.IFrame are used to manage the image tiles used by Layer.WMS.Post loaded via HTTP-POST-protocol.  Create a new image tile with the <a href="#OpenLayers.Tile.Image.IFrame.OpenLayers.Tile.Image.IFrame" clas [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.Constructor"></a>Constructor</h3></div></div>
-
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.OpenLayers.Tile.Image.IFrame"></a>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image.<span class=HB> </span>IFrame</h3><div class=CBody><p>Constructor for a new <a href="#OpenLayers.Tile.Image.IFrame.OpenLayers.Tile.Image.IFrame" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Tile.Image.IFrame</a> instance.</p [...]
+<div id=Content><div class="CConstant"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image.IFrame"></a>OpenLayers.<wbr>Tile.<wbr>Image.<wbr>IFrame</h1><div class=CBody><p>Mixin for tiles that use form-encoded POST requests to get images from remote services.  Images will be loaded using HTTP-POST into an IFrame.</p><p>This mixin will be applied to <a href="../Image-js.html#OpenLayers.Tile.Image" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'lin [...]
 
 </div><!--Content-->
 
@@ -23,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>Constructor for a new OpenLayers.Tile.Image.IFrame instance.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CClass>Instances of this class represent bounding  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Tile/WFS-js.html b/doc/apidocs/files/OpenLayers/Tile/WFS-js.html
index 790ffd3..6e32761 100644
--- a/doc/apidocs/files/OpenLayers/Tile/WFS-js.html
+++ b/doc/apidocs/files/OpenLayers/Tile/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.WFS"></a>OpenLayers.<span class=HB> </span>Tile.WFS</h1><div class=CBody><p>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.WFS" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Tile.WFS</a> constructor.</p><h4 class [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.WFS"></a>OpenLayers.<wbr>Tile.WFS</h1><div class=CBody><p>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.WFS" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Tile.WFS</a> constructor.</p><h4 class=CHeading>Inherits [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
 </div><!--Content-->
 
@@ -23,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt3"><div class=CClass>This is a class designed to designat [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt3"><div class=CClass>This is a clas [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Tween-js.html b/doc/apidocs/files/OpenLayers/Tween-js.html
index 55812e9..1f50e18 100644
--- a/doc/apidocs/files/OpenLayers/Tween-js.html
+++ b/doc/apidocs/files/OpenLayers/Tween-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tween - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tween - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tween"></a>OpenLayers.<span class=HB> </span>Tween</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Tween" >OpenLayers.<span class=HB> </span>Tween</a></td><td class=SDescription></td></tr><tr class="SGroup SInd [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tween"></a>OpenLayers.<wbr>Tween</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Tween" >OpenLayers.<wbr>Tween</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.Constants"></a>Constants</h3></div></div>
 
@@ -31,21 +31,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.OpenLayers.Tween"></a>OpenLayers.<span class=HB> </span>Tween</h3><div class=CBody><p>Creates a Tween.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>easing</td><td class=CDLDescription>{<OpenLayers.Easing>(Function)} easing function method to use</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.OpenLayers.Tween"></a>OpenLayers.<wbr>Tween</h3><div class=CBody><p>Creates a Tween.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>easing</td><td class=CDLDescription>{<OpenLayers.Easing>(Function)} easing function method to use</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.start"></a>start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>start: function(</td><td class=PParameter nowrap>begin,</td></tr><tr><td></td><td class=PParameter nowrap>finish,</td></tr><tr><td></td><td class=PParameter nowrap>duration,</td></tr><tr><td></td><td class=P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.start"></a>start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>start: function(</td><td class="PParameter  prettyprint " nowrap>begin,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>finish,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>stop: function()</td></tr></table></blockquote><p>Stops the Tween, and calls the done callback Doesn’t do anything if animation is already finished</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">stop: function()</td></tr></table></blockquote><p>Stops the Tween, and calls the done callback Doesn’t do anything if animation is already finished</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing"></a>OpenLayers.<span class=HB> </span>Easing</h2><div class=CBody><h4 class=CHeading>Credits</h4><p>Easing Equations by Robert Penner, <a href="http://www.robertpenner.com/easing/" class=LURL target=_top>http://www.robertpenner.com/easing/</a></p></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing"></a>OpenLayers.<wbr>Easing</h2><div class=CBody><h4 class=CHeading>Credits</h4><p>Easing Equations by Robert Penner, <a href="http://www.robertpenner.com/easing/" class=LURL target=_top>http://www.robertpenner.com/easing/</a></p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Linear"></a>OpenLayers.<span class=HB> </span>Easing.<span class=HB> </span>Linear</h2><div class=CBody></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Linear"></a>OpenLayers.<wbr>Easing.<wbr>Linear</h2><div class=CBody></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Expo"></a>OpenLayers.<span class=HB> </span>Easing.Expo</h2><div class=CBody></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Expo"></a>OpenLayers.<wbr>Easing.Expo</h2><div class=CBody></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Quad"></a>OpenLayers.<span class=HB> </span>Easing.Quad</h2><div class=CBody></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Quad"></a>OpenLayers.<wbr>Easing.Quad</h2><div class=CBody></div></div></div>
 
 </div><!--Content-->
 
@@ -53,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>start: function(</td><td class=PParameter nowrap>begin,</td></tr><tr><td></td><td class=PParameter nowrap>finish,</td></tr><tr><td></td><td class=PParameter nowrap>duration,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>start: function(</td><td class="PParameter  prettyprint " nowrap>begin,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>finish,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>duration,</td></tr><tr><td></td><td class="PParame [...]
 
 
 
diff --git a/doc/apidocs/files/OpenLayers/Util-js.html b/doc/apidocs/files/OpenLayers/Util-js.html
index e2f8c83..184a454 100644
--- a/doc/apidocs/files/OpenLayers/Util-js.html
+++ b/doc/apidocs/files/OpenLayers/Util-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Util - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Util - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Util"></a>Util</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Util" >Util</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Util.Functions" >Functions</a></td><td class=SDescription></t [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Util"></a>Util</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Util" >Util</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Util.Functions" >Functions</a></td><td class=SDescription></t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.extend"></a>extend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.extend = function(</td><td class=PParameter nowrap>destination,</td></tr><tr><td></td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.distVincenty"></a>distVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.distVincenty = function(</td><td class="PParameter  prettyprint " nowrap>p1,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>p2</td><td class="PAfterParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.distVincenty"></a>distVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.distVincenty = function(</td><td class=PParameter nowrap>p1,</td></tr><tr><td></td><td class=PParameter nowrap>p2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table> [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.destinationVincenty"></a>destinationVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.destinationVincenty = function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>brng,</td></tr><tr><td></td><td class=PParameter nowr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.destinationVincenty"></a>destinationVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.destinationVincenty = function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>brng [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Constants"></a>Constants</h3></div></div>
 
@@ -27,11 +25,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Util.DOTS_PER_INCH"></a>DOTS_PER_INCH</h3><div class=CBody><p>{Integer} 72 (A sensible default)</p></div></div></div>
 
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Util.IS_GECKO"></a>IS_GECKO</h3><div class=CBody><p>{Boolean} True if the userAgent reports the browser to use the Gecko engine</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Util.BROWSER_NAME"></a>BROWSER_NAME</h3><div class=CBody><p>{String} A substring of the navigator.userAgent property.   Depending on the userAgent property, this will be the empty string or one of the following:</p><ul><li>”opera” -- Opera</li><li>”msie”  -- Internet Explorer</li><li>”safari” -- Safari</li><li>”firefox” -- Firefox</li><li>”mozilla” -- Mozill [...]
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getScrollbarWidth"></a>getScrollbarWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.getScrollbarWidth = function()</td></tr></table></blockquote><p>This function has been modified by the OpenLayers from the original version, written by Matthew Eernisse and released under the Apache 2 license here:</p><p><a href="http://www.fleegix.org/articles/ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getScrollbarWidth"></a>getScrollbarWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getScrollbarWidth = function()</td></tr></table></blockquote><p>This function has been modified by the OpenLayers from the original version, written by Matthew Eernisse and released under the Apache 2 license here:</p><p><a href="http://www [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getFormattedLonLat"></a>getFormattedLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getFormattedLonLat = function(</td><td class=PParameter nowrap>coordinate,</td></tr><tr><td></td><td class=PParameter nowrap>axis,</td></tr><tr><td></td><td class=PParameter now [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getFormattedLonLat"></a>getFormattedLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getFormattedLonLat = function(</td><td class="PParameter  prettyprint " nowrap>coordinate,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>axi [...]
 
 </div><!--Content-->
 
@@ -39,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.extend = function(</td><td class=PParameter nowrap>destination,</td></tr><tr><td></td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Copy all properties of a source object to a destinatio [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.distVincenty = function(</td><td class="PParameter  prettyprint " nowrap>p1,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>p2</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
 
 
diff --git a/doc/apidocs/index/Classes.html b/doc/apidocs/index/Classes.html
index e659eda..0979cf2 100644
--- a/doc/apidocs/index/Classes.html
+++ b/doc/apidocs/index/Classes.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Class Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · S · T · <a href="Classes2.html#U">U</a> · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class= [...]
+<div id=Index><div class=IPageTitle>Class Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · S · T · <a href="Classes2.html#U">U</a> · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class= [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers object provides a namespace for all things OpenLayers</div></div><div class=CToolTip id="tt2"><div class=CClass><b>Deprecated</b>. </div></div><div class=CToolTip id="tt3"><div class=CClass>{Object}</div></div><div class=CToolTip id="tt4"><div class=CClass>Contains convenience functions for array manipulation.</div></div><div class=CToolTip id="tt5"><div class=CClass>Instances of this class represent bounding boxes. </div></di [...]
+<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers object provides a namespace for all things OpenLayers</div></div><div class=CToolTip id="tt2"><div class=CClass><b>Deprecated</b>. </div></div><div class=CToolTip id="tt3"><div class=CClass>{Object}</div></div><div class=CToolTip id="tt4"><div class=CClass>Contains convenience functions for array manipulation.</div></div><div class=CToolTip id="tt5"><div class=CClass>Instances of this class represent bounding boxes. </div></di [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Classes2.html b/doc/apidocs/index/Classes2.html
index 476b478..39295a7 100644
--- a/doc/apidocs/index/Classes2.html
+++ b/doc/apidocs/index/Classes2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Constants.html b/doc/apidocs/index/Constants.html
index 9ecb91a..0c7dfa8 100644
--- a/doc/apidocs/index/Constants.html
+++ b/doc/apidocs/index/Constants.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constant Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constant Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,77 +11,77 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constant Index</div><div class=INavigationBar>$#! · 0-9 · A · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · G · H · <a href="#I">I</a> · J · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · N · <a href="#O">O</a> · P · Q · <a href="#R">R</a> · [...]
+<div id=Index><div class=IPageTitle>Constant Index</div><div class=INavigationBar>$#! · 0-9 · A · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · G · H · <a href="#I">I</a> · J · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · N · <a href="#O">O</a> · P · Q · <a href="#R">R</a> · [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt2"><div class=CConstant>{Array(String)} supported events</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt2"><div class=CConstant>{Array(String)} supported events</div></div><div class=CToolTip id="tt3"><div class=CConstant>{String} A substring of the navigator.userAgent property. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3"><div class=CConstant>{Integer} 5. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt4"><div class=CConstant>{Integer} 5. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt4"><div class=CConstant>{Object} with the following keys</div></div><div class=CToolTip id="tt5"><div class=CConstant>{Object} Default configuration for all requests.</div></div><div class=CToolTip id="tt6"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt7"><div class=CConstant>{Object} Default layers properties.</div></div><div class=CToolTip id="tt8"><div class=CConstant>{Object} Hashtable of d [...]
+<div class=CToolTip id="tt5"><div class=CConstant>{Object} Default configuration for all requests.</div></div><div class=CToolTip id="tt6"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt7"><div class=CConstant>{Object} Default layers properties.</div></div><div class=CToolTip id="tt8"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs</div></div><div class=CToolTip id="tt9"><div class=CConstant> [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt21"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt22"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt23"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt24"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt25"><div c [...]
+<div class=CToolTip id="tt22"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt23"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt24"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt25"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt26"><div c [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt31"><div class=CConstant>{Object} Hashtable of parameter key/value pairs which describe the folder structure for tiles as configured in the mapguide serverconfig.ini section [TileServiceProperties]</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt32"><div class=CConstant>{Object} Hashtable of parameter key/value pairs which describe the folder structure for tiles as configured in the mapguide serverconfig.ini section [TileServiceProperties]</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt32"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt33"><div class=CConstant>{Object} Constant inches per unit -- borrowed from MapServer mapscale.c derivation of nautical miles from http://en.wikipedia.org/wiki/Nautical_mile Includes the full set of units supported by CS-MAP (http://trac.osgeo.org/csmap/) and PROJ.4 (http://trac.osgeo.org/proj/) The hardcoded table is maintain in a CS-MAP source [...]
+<div class=CToolTip id="tt33"><div class=CConstant>Mixin for tiles that use form-encoded POST requests to get images from remote services. </div></div><div class=CToolTip id="tt34"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt35"><div class=CConstant>{Object} Constant inches per unit -- borrowed from MapServer mapscale.c derivation of nautical miles from http://en.wikipedia.org/wiki/Nautical_mile Includes the full set  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt35"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt36"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt37"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt38"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt39"><div class=CConstant>keydown, keypress, keyup</div></div><div class=CToolTip id="tt40"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt41"><div class=CConstant>{int}</div></d [...]
+<div class=CToolTip id="tt38"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt39"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt40"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt41"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt42"><div class=CConstant>keydown, keypress, keyup</div></div><div class=CToolTip id="tt43"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt44"><div class=CConstant>{int}</div></d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt45"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt46"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt47"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt48"><div class=CConstant>{Object}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt48"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt49"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt50"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt51"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt52"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt53"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt54"><div class=CConstant>{Object}</div>< [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt49"><div class=CConstant>{Integer} Firefox has a limitation where values larger or smaller than about 15000 in an SVG document lock the browser up. </div></div><div class=CToolTip id="tt50"><div class=CConstant>{Integer} 21</div></div><div class=CToolTip id="tt51"><div class=CConstant>{Integer} 17</div></div><div class=CToolTip id="tt52"><div class=CConstant>{Integer} 19</div></div><div class=CToolTip id="tt53"><div class=CConstant>{Integer} 17</div></div><div c [...]
+<div class=CToolTip id="tt60"><div class=CConstant>{Integer} Firefox has a limitation where values larger or smaller than about 15000 in an SVG document lock the browser up. </div></div><div class=CToolTip id="tt61"><div class=CConstant>{Integer} 21</div></div><div class=CToolTip id="tt62"><div class=CConstant>{Integer} 17</div></div><div class=CToolTip id="tt63"><div class=CConstant>{Integer} 19</div></div><div class=CToolTip id="tt64"><div class=CConstant>{Integer} 17</div></div><div c [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt62"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt73"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt63"><div class=CConstant>{Integer} Constant used to make the control work in reshape mode</div></div><div class=CToolTip id="tt64"><div class=CConstant>{Integer} Constant used to make the control work in resize mode</div></div><div class=CToolTip id="tt65"><div class=CConstant>{Array} The properties that are used for calculating resolutions information.</div></div><div class=CToolTip id="tt66"><div class=CConstant>{Array(Float)} Hardcode these resolutions so tha [...]
+<div class=CToolTip id="tt74"><div class=CConstant>{Integer} Constant used to make the control work in reshape mode</div></div><div class=CToolTip id="tt75"><div class=CConstant>{Integer} Constant used to make the control work in resize mode</div></div><div class=CToolTip id="tt76"><div class=CConstant>{Array} The properties that are used for calculating resolutions information.</div></div><div class=CToolTip id="tt77"><div class=CConstant>{Array(Float)} Hardcode these resolutions so tha [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt71"><div class=CConstant>Enumeration for service types</div></div><div class=CToolTip id="tt72"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><div class=CToolTip id="tt73"><div class=CConstant>OpenLayers features can have a number of style attributes. </div></div><div class=CToolTip id="tt74"><div class=CConstant>Coordinate arrays for well known (named) symbols.</div></div><div class=CToolTip id="tt75"> [...]
+<div class=CToolTip id="tt82"><div class=CConstant>Enumeration for service types</div></div><div class=CToolTip id="tt83"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><div class=CToolTip id="tt84"><div class=CConstant>TODO: remove this in 3.0 when we stop supporting build profiles that include OpenLayers.js</div></div><div class=CToolTip id="tt85"><div class=CConstant>{Number} value for OpenLayers.Layer.PointTrack.dataFrom and  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt76"><div class=CConstant>{Integer} 256 Default tile height (unless otherwise specified)</div></div><div class=CToolTip id="tt77"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for tiled layer</div></div><div class=CToolTip id="tt78"><div class=CConstant>{Integer} 256 Default tile width (unless otherwise specified)</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt89"><div class=CConstant>{Number} value for OpenLayers.Layer.PointTrack.dataFrom and OpenLayers.Layer.PointTrack.styleFrom</div></div><div class=CToolTip id="tt90"><div class=CConstant>{Integer} 256 Default tile height (unless otherwise specified)</div></div><div class=CToolTip id="tt91"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for tiled layer</div></div><div class=CToolTip id="tt92"><div class=CConstant>{Integer} 256 Default  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt79"><div class=CConstant>{Float} Used to hash URL param strings for multi-WMS server selection. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt93"><div class=CConstant>{Float} Used to hash URL param strings for multi-WMS server selection. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt80"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v2.</div></div><div class=CToolTip id="tt81"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v3. </div></div><div class=CToolTip id="tt82"><div class=CConstant>{String} 1.0.0</div></div><div class=CToolTip id="tt83"><div class=CConstant>{String} 1.1.0</div></div><div class=CToolTip id="tt84"><div class=CConstant>{String} 0.3.1</div></div><div [...]
+<div class=CToolTip id="tt94"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v2.</div></div><div class=CToolTip id="tt95"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v3. </div></div><div class=CToolTip id="tt96"><div class=CConstant>{String} 1.0.0</div></div><div class=CToolTip id="tt97"><div class=CConstant>{String} 1.1.0</div></div><div class=CToolTip id="tt98"><div class=CConstant>{String} 0.3.1</div></div><div [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt90"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt108"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt91"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt109"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt92"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt110"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -89,10 +89,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Constructor.html b/doc/apidocs/index/Constructor.html
index fb89072..2cf24dd 100644
--- a/doc/apidocs/index/Constructor.html
+++ b/doc/apidocs/index/Constructor.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,65 +11,65 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · <a href="#J">J</a> · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · <a href="#N">N</a [...]
+<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · <a href="#J">J</a> · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · <a href="#N">N</a [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>Create a new ArcGIS93Rest layer object.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new ArcIMS layer object.</div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a new parser/writer for ArcXML. </div></div><div class=CToolTip id="tt4"><div class=CConstructor>Create a new parser for Atom.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new ArcGIS93Rest layer object.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Creates a new instance of this class</div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a new ArcIMS layer object.</div></div><div class=CToolTip id="tt4"><div class=CConstructor>Create a new parser/writer for ArcXML. </div></div><div class=CToolTip id="tt5"><div class=CConstructor>Create a new parser for Atom.</d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt5"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt6"><div class=CConstructor>Create a new BBOX strategy.</div></div><div class=CToolTip id="tt7"><div class=CConstructor>Construct a new bounds object.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt6"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt7"><div class=CConstructor>Create a new BBOX strategy.</div></div><div class=CToolTip id="tt8"><div class=CConstructor>Create a new Bing layer.</div></div><div class=CToolTip id="tt9"><div class=CConstructor>Construct a new bounds object.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt8"><div class=CConstructor>Base class used to construct all other classes. </div></div><div class=CToolTip id="tt9"><div class=CConstructor>Create a new click handler.</div></div><div class=CToolTip id="tt10"><div class=CConstructor>Create a new clustering strategy.</div></div><div class=CToolTip id="tt11"><div class=CConstructor>Creates a Geometry Collection -- a list of geoms.</div></div><div class=CToolTip id="tt12"><div class=CConstructor>Creates a compariso [...]
+<div class=CToolTip id="tt10"><div class=CConstructor>Base class used to construct all other classes. </div></div><div class=CToolTip id="tt11"><div class=CConstructor>Create a new click handler.</div></div><div class=CToolTip id="tt12"><div class=CConstructor>Create a new clustering strategy.</div></div><div class=CToolTip id="tt13"><div class=CConstructor>Creates a Geometry Collection -- a list of geoms.</div></div><div class=CToolTip id="tt14"><div class=CConstructor>Creates a compari [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt15"><div class=CConstructor>Returns OpenLayers.Handler.Drag</div></div><div class=CToolTip id="tt16"><div class=CConstructor>Create a new control to drag features.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt17"><div class=CConstructor>Returns OpenLayers.Handler.Drag</div></div><div class=CToolTip id="tt18"><div class=CConstructor>Create a new control to drag features.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt17"><div class=CConstructor>Create an editing toolbar for a given layer.</div></div><div class=CToolTip id="tt18"><div class=CConstructor>Create a new event pane layer</div></div><div class=CToolTip id="tt19"><div class=CConstructor>Construct an OpenLayers.Events object.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt19"><div class=CConstructor>Create an editing toolbar for a given layer.</div></div><div class=CToolTip id="tt20"><div class=CConstructor>Create a new event pane layer</div></div><div class=CToolTip id="tt21"><div class=CConstructor>Construct an OpenLayers.Events object.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt20"><div class=CConstructor>Constructor for features.</div></div><div class=CToolTip id="tt21"><div class=CConstructor>Creates an ogc:FeatureId rule.</div></div><div class=CToolTip id="tt22"><div class=CConstructor>Create a new parser/writer for ArcXML Features. </div></div><div class=CToolTip id="tt23"><div class=CConstructor>This is an abstract class. </div></div><div class=CToolTip id="tt24"><div class=CConstructor>Create a new parser for Filter.</div></div>< [...]
+<div class=CToolTip id="tt22"><div class=CConstructor>Constructor for features.</div></div><div class=CToolTip id="tt23"><div class=CConstructor>Creates an ogc:FeatureId rule.</div></div><div class=CToolTip id="tt24"><div class=CConstructor>Create a new parser/writer for ArcXML Features. </div></div><div class=CToolTip id="tt25"><div class=CConstructor>This class represents a generic filter.</div></div><div class=CToolTip id="tt26"><div class=CConstructor>Create a new filter strategy.</d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt29"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt30"><div class=CConstructor>Creates a geometry object.</div></div><div class=CToolTip id="tt31"><div class=CConstructor>Create a new parser for GeoRSS.</div></div><div class=CToolTip id="tt32"><div class=CConstructor>Create a GeoRSS Layer.</div></div><div class=CToolTip id="tt33"><div class=CConstructor>Create a new control for fetching remote features.</div></div>< [...]
+<div class=CToolTip id="tt31"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt32"><div class=CConstructor>Create a new control to deal with browser geolocation API</div></div><div class=CToolTip id="tt33"><div class=CConstructor>Creates a geometry object.</div></div><div class=CToolTip id="tt34"><div class=CConstructor>Create a new parser for GeoRSS.</div></div><div class=CToolTip id="tt35"><div class=CConstructor>Create a GeoRSS Layer.</div> [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt39"><div class=CConstructor>Construct a handler.</div></div><div class=CToolTip id="tt40"><div class=CConstructor>Construct a hover handler.</div></div><div class=CToolTip id="tt41"><div class=CConstructor>A class for giving layers generic HTTP protocol.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt42"><div class=CConstructor>Construct a handler.</div></div><div class=CToolTip id="tt43"><div class=CConstructor>Construct a hover handler.</div></div><div class=CToolTip id="tt44"><div class=CConstructor>A class for giving layers generic HTTP protocol.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt42"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt43"><div class=CConstructor>Constructor for a new OpenLayers.Tile.Image.IFrame instance.</div></div><div class=CToolTip id="tt44"><div class=CConstructor>Create a new image layer</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt45"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt46"><div class=CConstructor>Create a new image layer</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt45"><div class=CConstructor>Create a new parser for JSON.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt47"><div class=CConstructor>Create a new parser for JSON.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt46"><div class=CConstructor>Returns a new keyboard handler.</div></div><div class=CToolTip id="tt47"><div class=CConstructor>Create a new parser for KML.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt48"><div class=CConstructor>Returns a new keyboard handler.</div></div><div class=CToolTip id="tt49"><div class=CConstructor>Create a new parser for KML.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt48"><div class=CConstructor>Create a symbolizer for rendering lines.</div></div><div class=CToolTip id="tt49"><div class=CConstructor>Linear rings are constructed with an array of points. </div></div><div class=CToolTip id="tt50"><div class=CConstructor>Create a new LineString geometry</div></div><div class=CToolTip id="tt51"><div class=CConstructor>Creates a logical filter (And, Or, Not).</div></div><div class=CToolTip id="tt52"><div class=CConstructor>Create a [...]
+<div class=CToolTip id="tt50"><div class=CConstructor>Create a symbolizer for rendering lines.</div></div><div class=CToolTip id="tt51"><div class=CConstructor>Linear rings are constructed with an array of points. </div></div><div class=CToolTip id="tt52"><div class=CConstructor>Create a new LineString geometry</div></div><div class=CToolTip id="tt53"><div class=CConstructor>Creates a logical filter (And, Or, Not).</div></div><div class=CToolTip id="tt54"><div class=CConstructor>Create a [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt53"><div class=CConstructor>Constructor for a new OpenLayers.Map instance. </div></div><div class=CToolTip id="tt54"><div class=CConstructor>Create a new Mapguide layer, either tiled or untiled.</div></div><div class=CToolTip id="tt55"><div class=CConstructor>Create a new MapServer layer object</div></div><div class=CToolTip id="tt56"><div class=CConstructor>Create a Markers layer.</div></div><div class=CToolTip id="tt57"><div class=CConstructor>Create a new mod [...]
+<div class=CToolTip id="tt55"><div class=CConstructor>Constructor for a new OpenLayers.Map instance. </div></div><div class=CToolTip id="tt56"><div class=CConstructor>Create a new Mapguide layer, either tiled or untiled.</div></div><div class=CToolTip id="tt57"><div class=CConstructor>Create a new MapServer layer object</div></div><div class=CToolTip id="tt58"><div class=CConstructor>Create a Markers layer.</div></div><div class=CToolTip id="tt59"><div class=CConstructor>Create a new mod [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt61"><div class=CConstructor>Create a new navigation control</div></div><div class=CToolTip id="tt62"><div class=CConstructor>Add our two mousedefaults controls.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt63"><div class=CConstructor>Create a new navigation control</div></div><div class=CToolTip id="tt64"><div class=CConstructor>Add our two mousedefaults controls.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt63"><div class=CConstructor>Create a new parser for OSM.</div></div><div class=CToolTip id="tt64"><div class=CConstructor>Create a new overview map</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt65"><div class=CConstructor>Create a new parser for OGC exception reports.</div></div><div class=CToolTip id="tt66"><div class=CConstructor>Create a new parser for OSM.</div></div><div class=CToolTip id="tt67"><div class=CConstructor>Create a new overview map</div></div><div class=CToolTip id="tt68"><div class=CConstructor>Create a new parser for OWSCommon.</div></div><div class=CToolTip id="tt69"><div class=CConstructor>Create a new parser for OWS Context docum [...]
 
 </div><!--Index-->
 
@@ -77,10 +77,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Constructor2.html b/doc/apidocs/index/Constructor2.html
index 0fc8306..cafa4c3 100644
--- a/doc/apidocs/index/Constructor2.html
+++ b/doc/apidocs/index/Constructor2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
+<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt65"><div class=CConstructor>Create a new paging strategy.</div></div><div class=CToolTip id="tt66"><div class=CConstructor>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</div></div><div class=CToolTip id="tt67"><div class=CConstructor>Create a new control panel.</div></div><div class=CToolTip id="tt68"><div class=CConstructor>Add the four directional pan buttons.</div></div><div class=CToolTip id="tt69"><di [...]
+<div class=CToolTip id="tt70"><div class=CConstructor>Create a new paging strategy.</div></div><div class=CToolTip id="tt71"><div class=CConstructor>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</div></div><div class=CToolTip id="tt72"><div class=CConstructor>Create a new control panel.</div></div><div class=CToolTip id="tt73"><div class=CConstructor>Add the four directional pan buttons.</div></div><div class=CToolTip id="tt74"><di [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt82"><div class=CConstructor>Create a symbolizer for rendering rasters.</div></div><div class=CToolTip id="tt83"><div class=CConstructor>Create a new Refresh strategy.</div></div><div class=CToolTip id="tt84"><div class=CConstructor>Create a new regular polygon handler.</div></div><div class=CToolTip id="tt85"><div class=CConstructor>Create a new root container for multiple vector layer. </div></div><div class=CToolTip id="tt86"><div class=CConstructor>Creates a  [...]
+<div class=CToolTip id="tt90"><div class=CConstructor>Create a symbolizer for rendering rasters.</div></div><div class=CToolTip id="tt91"><div class=CConstructor>Create a new Refresh strategy.</div></div><div class=CToolTip id="tt92"><div class=CConstructor>Create a new regular polygon handler.</div></div><div class=CToolTip id="tt93"><div class=CConstructor>Create a new root container for multiple vector layer. </div></div><div class=CToolTip id="tt94"><div class=CConstructor>Creates a  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt87"><div class=CConstructor>Create a new Save strategy.</div></div><div class=CToolTip id="tt88"><div class=CConstructor>Create a new scale line control.</div></div><div class=CToolTip id="tt89"><div class=CConstructor>Create a new control for selecting features.</div></div><div class=CToolTip id="tt90"><div class=CConstructor>Create an instance of OpenLayers.Size</div></div><div class=CToolTip id="tt91"><div class=CConstructor>Create a new parser for SLD.</div> [...]
+<div class=CToolTip id="tt95"><div class=CConstructor>Create a new Save strategy.</div></div><div class=CToolTip id="tt96"><div class=CConstructor>Create a new scale line control.</div></div><div class=CToolTip id="tt97"><div class=CConstructor>A class for giving layers generic Script protocol.</div></div><div class=CToolTip id="tt98"><div class=CConstructor>Create a new control for selecting features.</div></div><div class=CToolTip id="tt99"><div class=CConstructor>Create an instance of [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt102"><div class=CConstructor>Create a new parser for TSV Text.</div></div><div class=CToolTip id="tt103"><div class=CConstructor>Create a text layer.</div></div><div class=CToolTip id="tt104"><div class=CConstructor>Create a symbolizer for rendering text labels.</div></div><div class=CToolTip id="tt105"><div class=CConstructor>Create a new read only TileCache layer.</div></div><div class=CToolTip id="tt106"><div class=CConstructor>Create a new transform feature  [...]
+<div class=CToolTip id="tt110"><div class=CConstructor>Create a new parser for TSV Text.</div></div><div class=CToolTip id="tt111"><div class=CConstructor>Create a text layer.</div></div><div class=CToolTip id="tt112"><div class=CConstructor>Create a symbolizer for rendering text labels.</div></div><div class=CToolTip id="tt113"><div class=CConstructor>Create a new read only TileCache layer.</div></div><div class=CToolTip id="tt114"><div class=CConstructor>Create a new navigation control [...]
 
 
 <!--START_ND_TOOLTIPS-->
@@ -33,7 +33,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt108"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt109"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt110"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt111"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id=" [...]
+<div class=CToolTip id="tt117"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt118"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt119"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt120"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id=" [...]
 
 </div><!--Index-->
 
@@ -41,10 +41,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Constructor3.html b/doc/apidocs/index/Constructor3.html
index 62c90db..015622f 100644
--- a/doc/apidocs/index/Constructor3.html
+++ b/doc/apidocs/index/Constructor3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
+<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt137"><div class=CConstructor>Create a WFS feature.</div></div><div class=CToolTip id="tt138"><div class=CConstructor>Create a WFS-T formatter. </div></div><div class=CToolTip id="tt139"><div class=CConstructor>A class for giving layers WFS protocol.</div></div><div class=CToolTip id="tt140"><div class=CConstructor>Create a new parser for WFS capabilities.</div></div><div class=CToolTip id="tt141"><div class=CConstructor>Create a new parser for WFS DescribeFeatur [...]
+<div class=CToolTip id="tt152"><div class=CConstructor>Create a WFS feature.</div></div><div class=CToolTip id="tt153"><div class=CConstructor>Create a WFS-T formatter. </div></div><div class=CToolTip id="tt154"><div class=CConstructor>A class for giving layers WFS protocol.</div></div><div class=CToolTip id="tt155"><div class=CConstructor>Create a new parser for WFS capabilities.</div></div><div class=CToolTip id="tt156"><div class=CConstructor>Create a new parser for WFS DescribeFeatur [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt150"><div class=CConstructor>Construct an XML parser. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt167"><div class=CConstructor>Create a new parser for XLS.</div></div><div class=CToolTip id="tt168"><div class=CConstructor>Construct an XML parser. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt151"><div class=CConstructor>Add the three zooming controls.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt169"><div class=CConstructor>Add the three zooming controls.</div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Files.html b/doc/apidocs/index/Files.html
index 14f25a8..1aecb54 100644
--- a/doc/apidocs/index/Files.html
+++ b/doc/apidocs/index/Files.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>File Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>File Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · <a href="#C">C</a> · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · S · T · U · <a href="#V">V</a> · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadd [...]
+<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · <a href="#C">C</a> · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · <a href="#S">S</a> · T · U · <a href="#V">V</a> · W · X · Y · Z</div><table border=0 cells [...]
 <!--START_ND_TOOLTIPS-->
 <!--END_ND_TOOLTIPS-->
 
@@ -27,16 +27,20 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <!--START_ND_TOOLTIPS-->
 <!--END_ND_TOOLTIPS-->
 
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
 </div><!--Index-->
 
 
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions.html b/doc/apidocs/index/Functions.html
index e1e9fb6..cd3b9c8 100644
--- a/doc/apidocs/index/Functions.html
+++ b/doc/apidocs/index/Functions.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K · <a hr [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K · <a hr [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request, the response object passed to this method must come from this HTTP protocol (as a result of a create, read, [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request, the response object passed to this method must come from th [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>bind: function(</td><td class=PParameter nowrap>func,</td></tr><tr><td></td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Bind a function to an object. </div></div><div class=CToolTip id="tt43"><div cl [...]
+<div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>bind: function(</td><td class="PParameter  prettyprint " nowrap>func,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Bind a function [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions2.html b/doc/apidocs/index/Functions2.html
index 1ae4e6f..16b8c2c 100644
--- a/doc/apidocs/index/Functions2.html
+++ b/doc/apidocs/index/Functions2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K & [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K & [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds for the geometry.</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds by iterating through the components and [...]
+<div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds for the geometry.</div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote>Recalculate the bo [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions3.html b/doc/apidocs/index/Functions3.html
index 231490c..de8e127 100644
--- a/doc/apidocs/index/Functions3.html
+++ b/doc/apidocs/index/Functions3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K & [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K & [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt106"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the control and all handlers.</div></div><div class=CToolTip id="tt107"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt108"><div class=CFunction><block [...]
+<div class=CToolTip id="tt113"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote>Deactivates a control and it’s associated handler if any. </div></div><div class=CToolTip id="tt114"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>D [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions4.html b/doc/apidocs/index/Functions4.html
index 314dc4e..eb15abb 100644
--- a/doc/apidocs/index/Functions4.html
+++ b/doc/apidocs/index/Functions4.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K · <a href [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K · <a href [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt202"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Determine whether another geometry is equivalent to this one. </div></div><div class=CToolTip id="tt203"><div class=CFunction><blo [...]
+<div class=CToolTip id="tt210"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Determine whether another geometry is equivalent to this one. </div></div><div cla [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt216"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>False : function()</td></tr></table></blockquote>A simple function to that just does “return false”. </div></div><div class=CToolTip id="tt217"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>filter: function(</t [...]
+<div class=CToolTip id="tt224"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">False : function()</td></tr></table></blockquote>A simple function to that just does “return false”. </div></div><div class=CToolTip id="tt225"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  p [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions5.html b/doc/apidocs/index/Functions5.html
index d73a97b..8344501 100644
--- a/doc/apidocs/index/Functions5.html
+++ b/doc/apidocs/index/Functions5.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K & [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · J · K & [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt224"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>GET: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Send an HTTP GET request. </div></div><div class=CToolTip id="tt225"><div class=CFunction><blockquote><table border=0 cellspacing=0 cel [...]
+<div class=CToolTip id="tt236"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>GET: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Send an HTTP GET request. </div></div><div class=CToolTip id="tt237"><div class=CFuncti [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions6.html b/doc/apidocs/index/Functions6.html
index f144082..d0d800d 100644
--- a/doc/apidocs/index/Functions6.html
+++ b/doc/apidocs/index/Functions6.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,37 +11,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · J · K · <a href [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · J · K · <a href [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt385"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>hasAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Determine wheth [...]
+<div class=CToolTip id="tt400"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>hasAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  prett [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt388"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt389"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>info: function()</td></tr></table></blockquote>Writes a message to the console with the visual “info” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt390"><div class=CFunction><blockquote [...]
+<div class=CToolTip id="tt403"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt404"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">info: function()</td></tr></table></blockquote>Writes a message to the console with the visual “info” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt405"><div class [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt406"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>limitSigDigs: function(</td><td class=PParameter nowrap>num,</td></tr><tr><td></td><td class=PParameter nowrap>sig</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Limit the number of significant digits on a float.</div></div><div class=C [...]
+<div class=CToolTip id="tt425"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>limitSigDigs: function(</td><td class="PParameter  prettyprint " nowrap>num,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sig</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Limit the  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt412"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Catch changeParams and uppercase the new params to be merged in before calling changeParams on the super class.</div></div [...]
+<div class=CToolTip id="tt431"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Catch changeParams and uppercase the new params to be merged in before cal [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt420"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>nextTrigger: function()</td></tr></table></blockquote>Restore the next state. </div></div><div class=CToolTip id="tt421"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>numericIf: function(</td><td class=PParameter nowrap>va [...]
+<div class=CToolTip id="tt439"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">nextTrigger: function()</td></tr></table></blockquote>Restore the next state. </div></div><div class=CToolTip id="tt440"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Proje [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt422"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>offset:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parameters px - {OpenLayers.Pixel}</div></div><div class=CToolTip id="tt423"><div class=CFunction><blockquote><table border=0 cellspacing [...]
+<div class=CToolTip id="tt442"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>offset:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parameters px - {OpenLayers.Pixel}</div></div><div class=CToolTip id="tt443"><div class=C [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt429"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pageCount: function()</td></tr></table></blockquote>Get the total count of pages given the current cache of features.</div></div><div class=CToolTip id="tt430"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pageLength: func [...]
+<div class=CToolTip id="tt449"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pageCount: function()</td></tr></table></blockquote>Get the total count of pages given the current cache of features.</div></div><div class=CToolTip id="tt450"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameter [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt442"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>raiseLayer: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>delta</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Change the index of the given layer by delta. </div></div><div class=CT [...]
+<div class=CToolTip id="tt462"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>raiseLayer: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>delta</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Change  [...]
 
 </div><!--Index-->
 
@@ -49,10 +49,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions7.html b/doc/apidocs/index/Functions7.html
index 7f71edc..edf9a84 100644
--- a/doc/apidocs/index/Functions7.html
+++ b/doc/apidocs/index/Functions7.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt504"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>save: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tell the layer protocol to commit unsaved features. </div></div><div class=CToolTip id="tt505"><div class=CFunction><blockquote><tab [...]
+<div class=CToolTip id="tt536"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>save: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Tell the layer protocol to commit unsaved features. </div></div><div class=CToolTip  [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Functions8.html b/doc/apidocs/index/Functions8.html
index 2dfd0d2..489d544 100644
--- a/doc/apidocs/index/Functions8.html
+++ b/doc/apidocs/index/Functions8.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions.html#B">B</a> · <a href="Functions2.html#C">C</a> · <a href="Functions3.html#D">D</a> · <a href="Functions4.html#E">E</a> · <a href="Functions4.html#F">F</a> · <a href="Functions5.html#G">G</a> · <a href="Functions6.html#H">H</a> · <a href="Functions6.html#I">I</a> · [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt561"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>time: function()</td></tr></table></blockquote>Creates a new timer under the given name. </div></div><div class=CToolTip id="tt562"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>timeEnd: function()</td></tr></table></blockquote>Stops a timer created by a call to OpenLayers.Console.time(name) and writes t [...]
+<div class=CToolTip id="tt604"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">time: function()</td></tr></table></blockquote>Creates a new timer under the given name. </div></div><div class=CToolTip id="tt605"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">timeEnd: function()</td></tr></table></blockquote>Stops a timer created by a call t [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt582"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>un: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div class=CToolTip id="tt583"><div class=CFunction><blo [...]
+<div class=CToolTip id="tt625"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>un: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div cla [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt590"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>value2regex: function(</td><td class=PParameter nowrap>wildCard,</td></tr><tr><td></td><td class=PParameter nowrap>singleChar,</td></tr><tr><td></td><td class=PParameter nowrap>escapeChar</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>C [...]
+<div class=CToolTip id="tt635"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>value2regex: function(</td><td class="PParameter  prettyprint " nowrap>wildCard,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>singleChar,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>escapeChar</td><td class="PAfterPar [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt592"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt593"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 [...]
+<div class=CToolTip id="tt638"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt639"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><tabl [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt609"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><td class=PParameter nowrap>nextNode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+<div class=CToolTip id="tt658"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>newNode,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>nextNode</td><td class="PAfte [...]
 
 </div><!--Index-->
 
@@ -37,10 +37,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General.html b/doc/apidocs/index/General.html
index 4686ef7..26f9127 100644
--- a/doc/apidocs/index/General.html
+++ b/doc/apidocs/index/General.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &midd [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request, the response object passed to this method must come from this HTTP protocol (as a result of a create, read, [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request, the response object passed to this method must come from th [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General10.html b/doc/apidocs/index/General10.html
index 59789a9..ce7f105 100644
--- a/doc/apidocs/index/General10.html
+++ b/doc/apidocs/index/General10.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt766"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt767"><div class=CConstructor>Constructor for a new OpenLayers.Map instance. </div></div><div class=CToolTip id="tt768"><div class=CConstructor>Create a new Mapguide layer, either tiled or untiled.</div></div><div class=CToolTip id="tt769"><div class=CGeneric>factor that are different than the [...]
+<div class=CToolTip id="tt830"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt831"><div class=CConstructor>Constructor for a new OpenLayers.Map instance. </div></div><div class=CToolTip id="tt832"><div class=CConstructor>Create a new Mapguide layer, either tiled or untiled.</div></div><div class=CToolTip id="tt833"><div class=CProperty>{Object} An object containing any [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt837"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt838"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt839"><div class=CProperty>{String} name of this rule</div></div><div class=CToolTip id="tt840"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt841"><div class=CProperty>{String} Style identifier.</div></div><div class=CToolTip id="tt842"><div class=CProperty>{Boolean} Generate a namedLayer [...]
+<div class=CToolTip id="tt905"><div class=CProperty>{String} Name of the function.</div></div><div class=CToolTip id="tt906"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt907"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt908"><div class=CProperty>{String} name of this rule</div></div><div class=CToolTip id="tt909"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt910"><div class=CProperty>{String} Style identifier.< [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General11.html b/doc/apidocs/index/General11.html
index ac20736..408efc7 100644
--- a/doc/apidocs/index/General11.html
+++ b/doc/apidocs/index/General11.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt856"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>offset:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parameters px - {OpenLayers.Pixel}</div></div><div class=CToolTip id="tt857"><div class=CFunction><blockquote><table border=0 cellspacing [...]
+<div class=CToolTip id="tt926"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>offset:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parameters px - {OpenLayers.Pixel}</div></div><div class=CToolTip id="tt927"><div class=C [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General12.html b/doc/apidocs/index/General12.html
index a727440..21724c0 100644
--- a/doc/apidocs/index/General12.html
+++ b/doc/apidocs/index/General12.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1138"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pageCount: function()</td></tr></table></blockquote>Get the total count of pages given the current cache of features.</div></div><div class=CToolTip id="tt1139"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pageLength: fu [...]
+<div class=CToolTip id="tt1240"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pageCount: function()</td></tr></table></blockquote>Get the total count of pages given the current cache of features.</div></div><div class=CToolTip id="tt1241"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParamet [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General13.html b/doc/apidocs/index/General13.html
index 1cbcf21..53944a6 100644
--- a/doc/apidocs/index/General13.html
+++ b/doc/apidocs/index/General13.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1192"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt1193"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1305"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt1306"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General14.html b/doc/apidocs/index/General14.html
index 55cda53..6aaadb2 100644
--- a/doc/apidocs/index/General14.html
+++ b/doc/apidocs/index/General14.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1194"><div class=CProperty>{Float} Optional radius in map units of the regular polygon. </div></div><div class=CToolTip id="tt1195"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>raiseLayer: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>delta</td><td class=PAfterParameters n [...]
+<div class=CToolTip id="tt1307"><div class=CProperty>{Float} Optional radius in map units of the regular polygon. </div></div><div class=CToolTip id="tt1308"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>raiseLayer: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprin [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General15.html b/doc/apidocs/index/General15.html
index 5caa4de..cc7b761 100644
--- a/doc/apidocs/index/General15.html
+++ b/doc/apidocs/index/General15.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1294"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>save: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tell the layer protocol to commit unsaved features. </div></div><div class=CToolTip id="tt1295"><div class=CConstructor>Create a ne [...]
+<div class=CToolTip id="tt1421"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>save: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Tell the layer protocol to commit unsaved features. </div></div><div class=CToolTip [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General16.html b/doc/apidocs/index/General16.html
index 61a34c8..37dff39 100644
--- a/doc/apidocs/index/General16.html
+++ b/doc/apidocs/index/General16.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1427"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt1428"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div class=CToolTip id="tt1429"><div class=CProperty>{Integer} The maximum size of the grid in pixels on the map</div></div><div class=CToolTip id="tt1430"><div class [...]
+<div class=CToolTip id="tt1578"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt1579"><div class=CConstant>{Number} value for OpenLayers.Layer.PointTrack.dataFrom and OpenLayers.Layer.PointTrack.styleFrom</div></div><div class=CToolTip id="tt1580"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1483"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>un: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div class=CToolTip id="tt1484"><div class=CProperty>{S [...]
+<div class=CToolTip id="tt1644"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>un: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div cl [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General17.html b/doc/apidocs/index/General17.html
index a8ee3b5..0349105 100644
--- a/doc/apidocs/index/General17.html
+++ b/doc/apidocs/index/General17.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1503"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt1504"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt1505"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt1506"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip  [...]
+<div class=CToolTip id="tt1670"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt1671"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt1672"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt1673"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip  [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General18.html b/doc/apidocs/index/General18.html
index 3497e42..7a91e47 100644
--- a/doc/apidocs/index/General18.html
+++ b/doc/apidocs/index/General18.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1557"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt1558"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt1559"><div class=CConstructor>Create a WFS feature.</di [...]
+<div class=CToolTip id="tt1729"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt1730"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt1731"><div class=CProperty>{Boole [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1593"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1594"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt1595"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt1596"><div class=CConstructor>Construct an XML parser. </div></div><div class=CToolTip id="tt1597"><div class=CProperty>{Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x) For GeoRSS the default is (y,x), therefore: f [...]
+<div class=CToolTip id="tt1771"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1772"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt1773"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt1774"><div class=CConstructor>Create a new parser for XLS.</div></div><div class=CToolTip id="tt1775"><div class=CConstructor>Construct an XML parser. </div></div><div class=CToolTip id="tt1776"><div class=CProperty>{Boolean} Orde [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1603"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1604"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt1605"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt1606"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1783"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1784"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt1785"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt1786"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1607"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><div class=CToolTip id="tt1608"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><t [...]
+<div class=CToolTip id="tt1787"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><div class=CToolTip id="tt1788"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prett [...]
 
 </div><!--Index-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General2.html b/doc/apidocs/index/General2.html
index 12767c6..083548a 100644
--- a/doc/apidocs/index/General2.html
+++ b/doc/apidocs/index/General2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt66"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt67"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt68"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt69"><div class=CProperty>{OpenLayers.Layer} The currently selected base layer. </div></div><div class=CToolTip id="tt70"><div class=CConstructor>Create a new BBOX strategy.</div></div><div class=CToolTip id=" [...]
+<div class=CToolTip id="tt76"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt77"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt78"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt79"><div class=CProperty>{OpenLayers.Layer} The currently selected base layer. </div></div><div class=CToolTip id="tt80"><div class=CConstructor>Create a new BBOX strategy.</div></div><div class=CToolTip id=" [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General3.html b/doc/apidocs/index/General3.html
index 3bdfbf7..c0d38ca 100644
--- a/doc/apidocs/index/General3.html
+++ b/doc/apidocs/index/General3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt85"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds for the geometry.</div></div><div class=CToolTip id="tt86"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds by iterating through the components and [...]
+<div class=CToolTip id="tt98"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds for the geometry.</div></div><div class=CToolTip id="tt99"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote>Recalculate the bo [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General4.html b/doc/apidocs/index/General4.html
index 61870c6..a779eb9 100644
--- a/doc/apidocs/index/General4.html
+++ b/doc/apidocs/index/General4.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt168"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt169"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt170"><div class=CConstant>{Object} with the following keys</div></div><div class=CToolTip id="tt171"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deac [...]
+<div class=CToolTip id="tt189"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt190"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt191"><div class=CProperty>{Number} Maximum distance in pixels between clicks for a sequence of events to be considered a double click. </div></div><div class=CToolTip id="tt192"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 clas [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General5.html b/doc/apidocs/index/General5.html
index a34ec20..04180be 100644
--- a/doc/apidocs/index/General5.html
+++ b/doc/apidocs/index/General5.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt326"><div class=CProperty>{<OpenLayers.Easing>(Function)} Easing equation used for the animation Defaultly set to OpenLayers.Easing.Expo.easeOut</div></div><div class=CToolTip id="tt327"><div class=CProperty>{Boolean} Allow splits given intersection of edges only. </div></div><div class=CToolTip id="tt328"><div class=CConstructor>Create an editing toolbar for a given layer.</div></div><div class=CToolTip id="tt329"><div class=CProperty>{String} Set this to [...]
+<div class=CToolTip id="tt359"><div class=CProperty>{<OpenLayers.Easing>(Function)} Easing equation used for the animation Defaultly set to OpenLayers.Easing.Expo.easeOut</div></div><div class=CToolTip id="tt360"><div class=CProperty>{Boolean} Allow splits given intersection of edges only. </div></div><div class=CToolTip id="tt361"><div class=CConstructor>Create an editing toolbar for a given layer.</div></div><div class=CToolTip id="tt362"><div class=CProperty>{String} Set this to [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General6.html b/doc/apidocs/index/General6.html
index 6ea7157..c979d84 100644
--- a/doc/apidocs/index/General6.html
+++ b/doc/apidocs/index/General6.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt379"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt380"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt381"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>False : function()</td></tr></table></blockquote>A simple function to that just does &ldquo [...]
+<div class=CToolTip id="tt416"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt417"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt418"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">False : function()</td></tr></table></blockquote>A simple function to [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General7.html b/doc/apidocs/index/General7.html
index 2b60bee..84abf66 100644
--- a/doc/apidocs/index/General7.html
+++ b/doc/apidocs/index/General7.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J">J</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt441"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt442"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt443"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt444"><div class=CProperty>{OpenLayers.Geometry}</div></div><div class=CToolTip id="tt445"><div class=CProperty>{String} Name of geometry element. </div></div><div clas [...]
+<div class=CToolTip id="tt483"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt484"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt485"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt486"><div class=CConstructor>Create a new control to deal with browser geolocation API</div></div><div class=CToolTip id="tt487"><div class=CProperty>{Object} Options  [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General8.html b/doc/apidocs/index/General8.html
index 1e723d0..342c960 100644
--- a/doc/apidocs/index/General8.html
+++ b/doc/apidocs/index/General8.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · <a href="#J">J</a> · <a href="#K">K</a> &mid [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · <a href="#J">J</a> · <a href="General9.html# [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt633"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt634"><div class=CConstructor>Construct a handler.</div></div><div class=CToolTip id="tt635"><div class=CProperty>{Boolean} Whether or not to handle right clicks. </div></div><div class=CToolTip id="tt636"><div class=CProperty>{Object} Used to set non-default properties on the control’s handler</div></div><div class=CToolTip id="tt637"><div class=CProperty>{Object} Additional opt [...]
+<div class=CToolTip id="tt680"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt681"><div class=CConstructor>Construct a handler.</div></div><div class=CToolTip id="tt682"><div class=CProperty>{Boolean} Whether or not to handle right clicks. </div></div><div class=CToolTip id="tt683"><div class=CProperty>{Object} Used to set non-default properties on the control’s handler</div></div><div class=CToolTip id="tt684"><div class=CProperty>{Object} Additional opt [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt653"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt654"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt655"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt656"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt657"><div class=CConstructor>Constructor for a new OpenLayers.Tile.Image.IFrame instance.</div> [...]
+<div class=CToolTip id="tt702"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt703"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt704"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt705"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt706"><div class=CConstant>Mixin for tiles that use form-encoded POST requests to get images fro [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt708"><div class=CConstructor>Create a new parser for JSON.</div></div><!--END_ND_TOOLTIPS-->
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt709"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt710"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt711"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it alw [...]
+<div class=CToolTip id="tt762"><div class=CConstructor>Create a new parser for JSON.</div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -33,10 +29,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/General9.html b/doc/apidocs/index/General9.html
index e6a8ccc..58d391e 100644
--- a/doc/apidocs/index/General9.html
+++ b/doc/apidocs/index/General9.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General8.html#I">I</a> · <a href="General8.html#J" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt726"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt727"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt728"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt729"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt730"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt731"><div class=CProperty>{String} the format of the labels, default = ‘dm&r [...]
+<div class=CToolTip id="tt763"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt764"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt765"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it alw [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt781"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt782"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt783"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt784"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt785"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt786"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt787"><div  [...]
 
 </div><!--Index-->
 
@@ -21,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Properties.html b/doc/apidocs/index/Properties.html
index d783ef7..b5662a3 100644
--- a/doc/apidocs/index/Properties.html
+++ b/doc/apidocs/index/Properties.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> · J · <a href="Properties3.html#K">K</a> &middo [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> · J · <a href="Properties3.html#K">K</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Allow the map to function with “overlays” only. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Boolean} If a layer’s display should not be scale-based, this should be set to true. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean} If set to true, the transition between zoom levels will be animated. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{Array} List of [...]
+<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} The control is active (read-only). </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Boolean} Allow the map to function with “overlays” only. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean} If is true the OpenLayers.Control.TYPE_TOOL controls can be deactivated by clicking the icon that represents them. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{Boolean} If a l [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt21"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt22"><div class=CProperty>{OpenLayers.Layer} The currently selected base layer. </div></div><div class=CToolTip id="tt23"><div class=CProperty>{Object} Values to start the animation with</div></div><div class=CToolTip id="tt24"><div class=CProperty>{OpenLayers.Bounds} null</div></div><div class=CToolTip id="tt25"><div class=CProperty>{Boolean} Allow feature selection by drawing a box. </div></ [...]
+<div class=CToolTip id="tt27"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt28"><div class=CProperty>{OpenLayers.Layer} The currently selected base layer. </div></div><div class=CToolTip id="tt29"><div class=CProperty>{Object} Values to start the animation with</div></div><div class=CToolTip id="tt30"><div class=CProperty>{Boolean} If true, map center will be set on location update.</div></div><div class=CToolTip id="tt31"><div class=CProperty>{OpenLayers.Bounds} nul [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt30"><div class=CProperty>{Object} The functions that are sent to the handlers.feature for callback</div></div><div class=CToolTip id="tt31"><div class=CProperty>{Object} An object with start, eachStep and done properties whose values are functions to be call during the animation. </div></div><div class=CToolTip id="tt32"><div class=CProperty>{OpenLayers.Geometry.Point} The center of the feature bounds. </div></div><div class=CToolTip id="tt33"><div class=CProper [...]
+<div class=CToolTip id="tt37"><div class=CProperty>{Object} Function to be called when the read operation completes.</div></div><div class=CToolTip id="tt38"><div class=CProperty>{String} The name of the query string parameter that the service recognizes as the callback identifier. </div></div><div class=CToolTip id="tt39"><div class=CProperty>{String} Where a service requires that the callback query string parameter value is prefixed by some string, this value may be set. </div></div><d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt46"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt47"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt48"><div class=CProperty>{String} Default language to use when a specific language can’t be found. </div></div><div class=CToolTip id="tt49"><div class=CProperty>{OpenLayers.Control} The control which is activated when the control is activated (turned on) [...]
+<div class=CToolTip id="tt57"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt58"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt59"><div class=CProperty>{Number} Maximum distance in pixels between clicks for a sequence of events to be considered a double click. </div></div><div class=CToolTip id="tt60"><div class=CProperty>{String} Default language to use when a specific language can&rs [...]
 
 </div><!--Index-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Properties2.html b/doc/apidocs/index/Properties2.html
index b92898b..0ee57ef 100644
--- a/doc/apidocs/index/Properties2.html
+++ b/doc/apidocs/index/Properties2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="Properties3.html#I">I</a> · J · <a href="Properties3.html#K">K</a> · < [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="Properties3.html#I">I</a> · J · <a href="Properties3.html#K">K</a> · < [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt89"><div class=CProperty>{<OpenLayers.Easing>(Function)} Easing equation used for the animation Defaultly set to OpenLayers.Easing.Expo.easeOut</div></div><div class=CToolTip id="tt90"><div class=CProperty>{Boolean} Allow splits given intersection of edges only. </div></div><div class=CToolTip id="tt91"><div class=CProperty>{String} Set this to some value to set when the mouse is outside the map.</div></div><div class=CToolTip id="tt92"><div class=CPropert [...]
+<div class=CToolTip id="tt111"><div class=CProperty>{<OpenLayers.Easing>(Function)} Easing equation used for the animation Defaultly set to OpenLayers.Easing.Expo.easeOut</div></div><div class=CToolTip id="tt112"><div class=CProperty>{Boolean} Allow splits given intersection of edges only. </div></div><div class=CToolTip id="tt113"><div class=CProperty>{String} Set this to some value to set when the mouse is outside the map.</div></div><div class=CToolTip id="tt114"><div class=CPro [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt115"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt116"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt117"><div class=CProperty>{OpenLayers.Feature.Vector} Feature currently available for transformation. </div></div><div class=CToolTip id="tt118"><div class=CProperty>{Function} Called after each fe [...]
+<div class=CToolTip id="tt141"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt142"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt143"><div class=CProperty>{OpenLayers.Feature.Vector} Feature currently available for transformation. </div></div><div class=CToolTip id="tt144"><div class=CProperty>{Function} Called after each fe [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt159"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt160"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt161"><div class=CProperty>{OpenLayers.Geometry}</div></div><div class=CToolTip id="tt162"><div class=CProperty>{String} Name of geometry element. </div></div><div class=CToolTip id="tt163"><div class=CProperty>{String} Name of geometry element. </div></div><div clas [...]
+<div class=CToolTip id="tt186"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt187"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt188"><div class=CProperty>{Object} Options to pass to the navigator’s geolocation API. </div></div><div class=CToolTip id="tt189"><div class=CProperty>{OpenLayers.Geometry}</div></div><div class=CToolTip id="tt190"><div class=CProperty>{String} Name of geometr [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt180"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt181"><div class=CProperty>{Boolean} Whether or not to handle right clicks. </div></div><div class=CToolTip id="tt182"><div class=CProperty>{Object} Used to set non-default properties on the control’s handler</div></div><div class=CToolTip id="tt183"><div class=CProperty>{Object} Additional options for the handlers used by this control. </div></div><div class=CToolTip id="tt184"> [...]
+<div class=CToolTip id="tt208"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt209"><div class=CProperty>{Boolean} Whether or not to handle right clicks. </div></div><div class=CToolTip id="tt210"><div class=CProperty>{Object} Used to set non-default properties on the control’s handler</div></div><div class=CToolTip id="tt211"><div class=CProperty>{Object} Additional options for the handlers used by this control. </div></div><div class=CToolTip id="tt212"> [...]
 
 </div><!--Index-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Properties3.html b/doc/apidocs/index/Properties3.html
index 0491fa5..8b6ae83 100644
--- a/doc/apidocs/index/Properties3.html
+++ b/doc/apidocs/index/Properties3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="#I">I</a> · J &middo [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="#I">I</a> · J &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt194"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt195"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt196"><div class=CProperty>{Boolean} Ignore dimensions higher than 2 when reading geometry coordinates.</div></div><div class=CToolTip id="tt197"><div class=CProperty>{OpenLayers.Size}</div></div><div class=CToolTip id="tt198"><div class=CProperty>{Boolean} Should the .xy property automatically be created for b [...]
+<div class=CToolTip id="tt224"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt225"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt226"><div class=CProperty>{Boolean} Ignore dimensions higher than 2 when reading geometry coordinates.</div></div><div class=CToolTip id="tt227"><div class=CProperty>{OpenLayers.Size}</div></div><div class=CToolTip id="tt228"><div class=CProperty>{Boolean} Activates the immediate measurement so that the &ldquo [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt225"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt226"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt227"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it alw [...]
+<div class=CToolTip id="tt255"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt256"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt257"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it alw [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt230"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt231"><div class=CProperty>{String} the format of the labels, default = ‘dm’. </div></div><div class=CToolTip id="tt232"><div class=CProperty>{Boolean} Should the graticule lines be labelled?. </div></div><div class=CToolTip id="tt233"><div class=CProperty>{symbolizer} the symbolizer used to render labels</div></div><div class=CToolTip id="tt234"><div class [...]
+<div class=CToolTip id="tt261"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt262"><div class=CProperty>{String} the format of the labels, default = ‘dm’. </div></div><div class=CToolTip id="tt263"><div class=CProperty>{Boolean} Should the graticule lines be labelled?. </div></div><div class=CToolTip id="tt264"><div class=CProperty>{symbolizer} the symbolizer used to render labels</div></div><div class=CToolTip id="tt265"><div class [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt255"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt256"><div class=CProperty>{Object} An object containing any non-default properties to be sent to the overview map’s map constructor. </div></div><div class=CToolTip id="tt257"><div class=CProperty>{Array(OpenLayers.Marker)} internal marker list</div></div><div class=CToolTip id="tt258"> [...]
+<div class=CToolTip id="tt287"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt288"><div class=CProperty>{Object} An object containing any non-default properties to be sent to the overview map’s map constructor. </div></div><div class=CToolTip id="tt289"><div class=CProperty>{Array(OpenLayers.Marker)} internal marker list</div></div><div class=CToolTip id="tt290"> [...]
 
 </div><!--Index-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Properties4.html b/doc/apidocs/index/Properties4.html
index af3ac51..cefdcd6 100644
--- a/doc/apidocs/index/Properties4.html
+++ b/doc/apidocs/index/Properties4.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> & [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> & [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt296"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt297"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt298"><div class=CProperty>{String} name of this rule</div></div><div class=CToolTip id="tt299"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt300"><div class=CProperty>{String} Style identifier.</div></div><div class=CToolTip id="tt301"><div class=CProperty>{Boolean} Generate a namedLayer [...]
+<div class=CToolTip id="tt333"><div class=CProperty>{String} Name of the function.</div></div><div class=CToolTip id="tt334"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt335"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt336"><div class=CProperty>{String} name of this rule</div></div><div class=CToolTip id="tt337"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt338"><div class=CProperty>{String} Style identifier.< [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt311"><div class=CProperty>{Function} Define this function if you want to know when a feature is done dragging. </div></div><div class=CToolTip id="tt312"><div class=CProperty>{Function} Define this function if you want to know about each move of a feature. </div></div><div class=CToolTip id="tt313"><div class=CProperty>{Function} <b>Deprecated</b>. </div></div><div class=CToolTip id="tt314"><div class=CProperty>{Function} <b>Deprecated</b>. </div></div><div clas [...]
+<div class=CToolTip id="tt349"><div class=CProperty>{Function} Define this function if you want to know when a feature is done dragging. </div></div><div class=CToolTip id="tt350"><div class=CProperty>{Function} Define this function if you want to know about each move of a feature. </div></div><div class=CToolTip id="tt351"><div class=CProperty>{Function} Define this function if you want to know when the mouse goes over a feature and thereby makes this feature a candidate for dragging.</ [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt322"><div class=CProperty>{Boolean} When drawn, pan map such that the entire popup is visible in the current viewport (if necessary). </div></div><div class=CToolTip id="tt323"><div class=CProperty>{Boolean} Framed Cloud does pan into view by default.</div></div><div class=CToolTip id="tt324"><div class=CProperty>{Function} The Easing function to be used for tweening. </div></div><div class=CToolTip id="tt325"><div class=CProperty>{String} Value of the csw:Param [...]
+<div class=CToolTip id="tt365"><div class=CProperty>{Boolean} Set this property to false not to display the pan icons. </div></div><div class=CToolTip id="tt366"><div class=CProperty>{Boolean} When drawn, pan map such that the entire popup is visible in the current viewport (if necessary). </div></div><div class=CToolTip id="tt367"><div class=CProperty>{Boolean} Framed Cloud does pan into view by default.</div></div><div class=CToolTip id="tt368"><div class=CProperty>{Function} The Easin [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt346"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt347"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt397"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt398"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt348"><div class=CProperty>{Float} Optional radius in map units of the regular polygon. </div></div><div class=CToolTip id="tt349"><div class=CProperty>{Float} The ratio of the feature relative to the ratio the time the feature was set. </div></div><div class=CToolTip id="tt350"><div class=CProperty>{Float} Used only when in single-tile mode, this specifies the ratio of the size of the single tile to the size of the map.</div></div><div class=CToolTip id="tt351"> [...]
+<div class=CToolTip id="tt399"><div class=CProperty>{Float} Optional radius in map units of the regular polygon. </div></div><div class=CToolTip id="tt400"><div class=CProperty>{Float} The ratio of the feature relative to the ratio the time the feature was set. </div></div><div class=CToolTip id="tt401"><div class=CProperty>{Float} Used only when in single-tile mode, this specifies the ratio of the size of the single tile to the size of the map.</div></div><div class=CToolTip id="tt402"> [...]
 
 </div><!--Index-->
 
@@ -37,10 +37,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Properties5.html b/doc/apidocs/index/Properties5.html
index fb9fc1e..4a19b8b 100644
--- a/doc/apidocs/index/Properties5.html
+++ b/doc/apidocs/index/Properties5.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> & [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> & [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt373"><div class=CProperty>{Boolean} If set to true, the active state of this panel’s controls will be stored on panel deactivation, and restored on reactivation. </div></div><div class=CToolTip id="tt374"><div class=CProperty>{Float} The scale of the feature, relative to the scale the time the feature was set. </div></div><div class=CToolTip id="tt375"><div class=CProperty>{Array}  An array of map scales in descending order. </div></div><div class=CToolTip [...]
+<div class=CToolTip id="tt426"><div class=CProperty>{Boolean} If set to true, the active state of this panel’s controls will be stored on panel deactivation, and restored on reactivation. </div></div><div class=CToolTip id="tt427"><div class=CProperty>{Float} The scale of the feature, relative to the scale the time the feature was set. </div></div><div class=CToolTip id="tt428"><div class=CProperty>{Array}  An array of map scales in descending order. </div></div><div class=CToolTip [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt429"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt430"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div class=CToolTip id="tt431"><div class=CProperty>{Integer} The maximum size of the grid in pixels on the map</div></div><div class=CToolTip id="tt432"><div class=CPr [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt454"><div class=CProperty>{String} The layer map units. </div></div><div class=CToolTip id="tt455"><div class=CProperty>{?}</div></div><div class=CToolTip id="tt456"><div class=CProperty>{String} The map units. </div></div><div class=CToolTip id="tt457"><div class=CProperty>{Array} Array with browsers, which should use the HTTP-GET protocol instead of HTTP-POST for fetching tiles from a WMS . </div></div><div class=CToolTip id="tt458"><div class=CProperty>{Numbe [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt465"><div class=CProperty>{Number} or {String} comparison value for binary comparisons. </div></div><div class=CToolTip id="tt466"><div class=CProperty>{OpenLayers.Bounds || OpenLayers.Geometry} The bounds or geometry to be used by the filter. </div></div><div class=CToolTip id="tt467"><div class=CProperty>{String} Specify a version string if one is known.</div></div><div class=CToolTip id="tt468"><div class=CProperty>{String} Specify a version string if one is  [...]
+<div class=CToolTip id="tt493"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt494"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div class=CToolTip id="tt495"><div class=CProperty>{Integer} The maximum size of the grid in pixels on the map</div></div><div class=CToolTip id="tt496"><div class=CPr [...]
 
 </div><!--Index-->
 
@@ -33,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/index/Properties6.html b/doc/apidocs/index/Properties6.html
index 61b878b..9968a4e 100644
--- a/doc/apidocs/index/Properties6.html
+++ b/doc/apidocs/index/Properties6.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> & [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties.html#C">C</a> · <a href="Properties.html#D">D</a> · <a href="Properties2.html#E">E</a> · <a href="Properties2.html#F">F</a> · <a href="Properties2.html#G">G</a> · <a href="Properties2.html#H">H</a> · <a href="Properties3.html#I">I</a> & [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt478"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt479"><div class=CProperty>{Object} Cache to use for storing parsed results from OpenLayers.Format.WFSDescribeFeatureType.read. </div></div><div class=CToolTip id="tt480"><div class=CProperty>{Boolean} #487 for more info.</div></div><div class=CToolTip id="tt481"><div class=CProperty>{Boolean} Allow user to pan forever east/west. </div></div><div class=CToolTip id="tt482"><div class=CPr [...]
+<div class=CToolTip id="tt527"><div class=CProperty>{String} The layer map units. </div></div><div class=CToolTip id="tt528"><div class=CProperty>{?}</div></div><div class=CToolTip id="tt529"><div class=CProperty>{String} The map units. </div></div><div class=CToolTip id="tt530"><div class=CProperty>{Array} Array with browsers, which should use the HTTP-GET protocol instead of HTTP-POST for fetching tiles from a WMS . </div></div><div class=CToolTip id="tt531"><div class=CProperty>{Numbe [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt484"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt485"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt486"><div class=CProperty>{Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x) For GeoRSS the default is (y,x), therefore: false</div></div><div class=CToolTip id="tt487"><div class=CProperty>{Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x) For GeoRSS the default is (y,x), ther [...]
+<div class=CToolTip id="tt542"><div class=CProperty>{Number} or {String} comparison value for binary comparisons. </div></div><div class=CToolTip id="tt543"><div class=CProperty>{OpenLayers.Bounds || OpenLayers.Geometry} The bounds or geometry to be used by the filter. </div></div><div class=CToolTip id="tt544"><div class=CProperty>{String} Specify a version string if one is known.</div></div><div class=CToolTip id="tt545"><div class=CProperty>{String} The renderIntent to use for vertice [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt492"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt493"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt494"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt549"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt550"><div class=CProperty>{Boolean} If true, position will be update regularly.</div></div><div class=CToolTip id="tt551"><div class=CProperty>{Object} Cache to use for storing parsed results from OpenLayers.Format.WFSDescribeFeatureType.read. </div></div><div class=CToolTip id="tt552"><div class=CProperty>{Boolean} #487 for more info.</div></div><div class=CToolTip id="tt553"><div cla [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt495"><div class=CProperty>{Number} The zIndex determines the rendering order for a symbolizer. </div></div><div class=CToolTip id="tt496"><div class=CProperty>{Boolean} Whether the user can draw a box to zoom</div></div><div class=CToolTip id="tt497"><div class=CProperty>{Integer} OpenLayers.Handler key code of the key, which has to be pressed, while drawing the zoom box with the mouse on the screen. </div></div><div class=CToolTip id="tt498"><div class=CPropert [...]
+<div class=CToolTip id="tt556"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt557"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt558"><div class=CProperty>{Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x) For GeoRSS the default is (y,x), therefore: false</div></div><div class=CToolTip id="tt559"><div class=CProperty>{Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x) For GeoRSS the default is (y,x), ther [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt565"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt566"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt567"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt568"><div class=CProperty>{Number} The zIndex determines the rendering order for a symbolizer. </div></div><div class=CToolTip id="tt569"><div class=CProperty>{Boolean} Whether the user can draw a box to zoom</div></div><div class=CToolTip id="tt570"><div class=CProperty>{Integer} OpenLayers.Handler key code of the key, which has to be pressed, while drawing the zoom box with the mouse on the screen. </div></div><div class=CToolTip id="tt571"><div class=CPropert [...]
 
 </div><!--Index-->
 
@@ -33,10 +41,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/apidocs/javascript/main.js b/doc/apidocs/javascript/main.js
index d9b8d3a..3f42acd 100644
--- a/doc/apidocs/javascript/main.js
+++ b/doc/apidocs/javascript/main.js
@@ -1,5 +1,10 @@
-// This file is part of Natural Docs, which is Copyright (C) 2003-2005 Greg Valure
-// Natural Docs is licensed under the GPL
+// This file is part of Natural Docs, which is Copyright � 2003-2010 Greg Valure
+// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
+// Refer to License.txt for the complete details
+
+// This file may be distributed with documentation files generated by Natural Docs.
+// Such documentation is not covered by Natural Docs' copyright and licensing,
+// and may have its own copyright and distribution terms as decided by its author.
 
 
 //
@@ -564,7 +569,8 @@ function SearchPanel(name, mode, resultsPath)
             // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
             // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
             // page anyway to get around the bug.
-            (browserType == "IE" && hasResultsPage && resultsFrame.searchResults.lastMatchCount == 0) )
+            (browserType == "IE" && hasResultsPage &&
+            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
 
             {
             resultsFrame.location.href = resultsPageWithSearch;
diff --git a/doc/apidocs/javascript/prettify.js b/doc/apidocs/javascript/prettify.js
new file mode 100644
index 0000000..fda4bf1
--- /dev/null
+++ b/doc/apidocs/javascript/prettify.js
@@ -0,0 +1,1526 @@
+
+// This code comes from the December 2009 release of Google Prettify, which is Copyright � 2006 Google Inc.
+// Minor modifications are marked with "ND Change" comments.
+// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.)
+// However, it may also be obtained separately under version 2.0 of the Apache License.
+// Refer to License.txt for the complete details
+
+
+// Main code
+// ____________________________________________________________________________
+
+// Copyright (C) 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ * <p>
+ *
+ * For a fairly comprehensive set of languages see the
+ * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
+ * file that came with this source.  At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ * <p>
+ * Usage: <ol>
+ * <li> include this source file in an html page via
+ *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
+ * <li> define style rules.  See the example page for examples.
+ * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
+ *    {@code class=prettyprint.}
+ *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
+ *    printer needs to do more substantial DOM manipulations to support that, so
+ *    some css styles may not be preserved.
+ * </ol>
+ * That's it.  I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code <pre>} or {@code <code>} element to specify the
+ * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ * <p>
+ * Change log:<br>
+ * cbeust, 2006/08/22
+ * <blockquote>
+ *   Java annotations (start with "@") are now captured as literals ("lit")
+ * </blockquote>
+ * @requires console
+ * @overrides window
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window */
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+/** the number of characters between tab columns */
+window['PR_TAB_WIDTH'] = 8;
+
+/** Walks the DOM returning a properly escaped version of innerHTML.
+  * @param {Node} node
+  * @param {Array.<string>} out output buffer that receives chunks of HTML.
+  */
+window['PR_normalizedHtml']
+
+/** Contains functions for creating and registering new language handlers.
+  * @type {Object}
+  */
+  = window['PR']
+
+/** Pretty print a chunk of code.
+  *
+  * @param {string} sourceCodeHtml code as html
+  * @return {string} code as html, but prettier
+  */
+  = window['prettyPrintOne']
+/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
+  * {@code class=prettyprint} and prettify them.
+  * @param {Function?} opt_whenDone if specified, called when the last entry
+  *     has been finished.
+  */
+  = window['prettyPrint'] = void 0;
+
+/** browser detection. @extern @returns false if not IE, otherwise the major version. */
+window['_pr_isIE6'] = function () {
+  var ieVersion = navigator && navigator.userAgent &&
+      navigator.userAgent.match(/\bMSIE ([678])\./);
+  ieVersion = ieVersion ? +ieVersion[1] : false;
+  window['_pr_isIE6'] = function () { return ieVersion; };
+  return ieVersion;
+};
+
+
+(function () {
+  // Keyword lists for various languages.
+  var FLOW_CONTROL_KEYWORDS =
+      "break continue do else for if return while ";
+  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
+      "double enum extern float goto int long register short signed sizeof " +
+      "static struct switch typedef union unsigned void volatile ";
+  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
+      "new operator private protected public this throw true try typeof ";
+  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
+      "concept concept_map const_cast constexpr decltype " +
+      "dynamic_cast explicit export friend inline late_check " +
+      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
+      "template typeid typename using virtual wchar_t where ";
+  var JAVA_KEYWORDS = COMMON_KEYWORDS +
+      "abstract boolean byte extends final finally implements import " +
+      "instanceof null native package strictfp super synchronized throws " +
+      "transient ";
+  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
+      "as base by checked decimal delegate descending event " +
+      "fixed foreach from group implicit in interface internal into is lock " +
+      "object out override orderby params partial readonly ref sbyte sealed " +
+      "stackalloc string select uint ulong unchecked unsafe ushort var ";
+  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
+      "debugger eval export function get null set undefined var with " +
+      "Infinity NaN ";
+  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
+      "goto if import last local my next no our print package redo require " +
+      "sub undef unless until use wantarray while BEGIN END ";
+  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
+      "elif except exec finally from global import in is lambda " +
+      "nonlocal not or pass print raise try with yield " +
+      "False True None ";
+  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
+      " defined elsif end ensure false in module next nil not or redo rescue " +
+      "retry self super then true undef unless until when yield BEGIN END ";
+  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
+      "function in local set then until ";
+  var ALL_KEYWORDS = (
+      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
+      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
+
+  // token style names.  correspond to css classes
+  /** token style for a string literal */
+  var PR_STRING = 'str';
+  /** token style for a keyword */
+  var PR_KEYWORD = 'kwd';
+  /** token style for a comment */
+  var PR_COMMENT = 'com';
+  /** token style for a type */
+  var PR_TYPE = 'typ';
+  /** token style for a literal value.  e.g. 1, null, true. */
+  var PR_LITERAL = 'lit';
+  /** token style for a punctuation string. */
+  var PR_PUNCTUATION = 'pun';
+  /** token style for a punctuation string. */
+  var PR_PLAIN = 'pln';
+
+  /** token style for an sgml tag. */
+  var PR_TAG = 'tag';
+  /** token style for a markup declaration such as a DOCTYPE. */
+  var PR_DECLARATION = 'dec';
+  /** token style for embedded source. */
+  var PR_SOURCE = 'src';
+  /** token style for an sgml attribute name. */
+  var PR_ATTRIB_NAME = 'atn';
+  /** token style for an sgml attribute value. */
+  var PR_ATTRIB_VALUE = 'atv';
+
+  /**
+   * A class that indicates a section of markup that is not code, e.g. to allow
+   * embedding of line numbers within code listings.
+   */
+  var PR_NOCODE = 'nocode';
+
+  /** A set of tokens that can precede a regular expression literal in
+    * javascript.
+    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
+    * list, but I've removed ones that might be problematic when seen in
+    * languages that don't support regular expression literals.
+    *
+    * <p>Specifically, I've removed any keywords that can't precede a regexp
+    * literal in a syntactically legal javascript program, and I've removed the
+    * "in" keyword since it's not a keyword in many languages, and might be used
+    * as a count of inches.
+    *
+    * <p>The link a above does not accurately describe EcmaScript rules since
+    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+    * very well in practice.
+    *
+    * @private
+    */
+  var REGEXP_PRECEDER_PATTERN = function () {
+      var preceders = [
+          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
+          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
+          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
+          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
+          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
+          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
+          "||=", "~" /* handles =~ and !~ */,
+          "break", "case", "continue", "delete",
+          "do", "else", "finally", "instanceof",
+          "return", "throw", "try", "typeof"
+          ];
+      var pattern = '(?:^^|[+-]';
+      for (var i = 0; i < preceders.length; ++i) {
+        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
+      }
+      pattern += ')\\s*';  // matches at end, and matches empty string
+      return pattern;
+      // CAVEAT: this does not properly handle the case where a regular
+      // expression immediately follows another since a regular expression may
+      // have flags for case-sensitivity and the like.  Having regexp tokens
+      // adjacent is not valid in any language I'm aware of, so I'm punting.
+      // TODO: maybe style special characters inside a regexp as punctuation.
+    }();
+
+  // Define regexps here so that the interpreter doesn't have to create an
+  // object each time the function containing them is called.
+  // The language spec requires a new object created even if you don't access
+  // the $1 members.
+  var pr_amp = /&/g;
+  var pr_lt = /</g;
+  var pr_gt = />/g;
+  var pr_quot = /\"/g;
+  /** like textToHtml but escapes double quotes to be attribute safe. */
+  function attribToHtml(str) {
+    return str.replace(pr_amp, '&')
+        .replace(pr_lt, '<')
+        .replace(pr_gt, '>')
+        .replace(pr_quot, '"');
+  }
+
+  /** escapest html special characters to html. */
+  function textToHtml(str) {
+    return str.replace(pr_amp, '&')
+        .replace(pr_lt, '<')
+        .replace(pr_gt, '>');
+  }
+
+
+  var pr_ltEnt = /</g;
+  var pr_gtEnt = />/g;
+  var pr_aposEnt = /'/g;
+  var pr_quotEnt = /"/g;
+  var pr_ampEnt = /&/g;
+  var pr_nbspEnt = / /g;
+  /** unescapes html to plain text. */
+  function htmlToText(html) {
+    var pos = html.indexOf('&');
+    if (pos < 0) { return html; }
+    // Handle numeric entities specially.  We can't use functional substitution
+    // since that doesn't work in older versions of Safari.
+    // These should be rare since most browsers convert them to normal chars.
+    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
+      var end = html.indexOf(';', pos);
+      if (end >= 0) {
+        var num = html.substring(pos + 3, end);
+        var radix = 10;
+        if (num && num.charAt(0) === 'x') {
+          num = num.substring(1);
+          radix = 16;
+        }
+        var codePoint = parseInt(num, radix);
+        if (!isNaN(codePoint)) {
+          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
+                  html.substring(end + 1));
+        }
+      }
+    }
+
+    return html.replace(pr_ltEnt, '<')
+        .replace(pr_gtEnt, '>')
+        .replace(pr_aposEnt, "'")
+        .replace(pr_quotEnt, '"')
+        .replace(pr_nbspEnt, ' ')
+        .replace(pr_ampEnt, '&');
+  }
+
+  /** is the given node's innerHTML normally unescaped? */
+  function isRawContent(node) {
+    return 'XMP' === node.tagName;
+  }
+
+  var newlineRe = /[\r\n]/g;
+  /**
+   * Are newlines and adjacent spaces significant in the given node's innerHTML?
+   */
+  function isPreformatted(node, content) {
+    // PRE means preformatted, and is a very common case, so don't create
+    // unnecessary computed style objects.
+    if ('PRE' === node.tagName) { return true; }
+    if (!newlineRe.test(content)) { return true; }  // Don't care
+    var whitespace = '';
+    // For disconnected nodes, IE has no currentStyle.
+    if (node.currentStyle) {
+      whitespace = node.currentStyle.whiteSpace;
+    } else if (window.getComputedStyle) {
+      // Firefox makes a best guess if node is disconnected whereas Safari
+      // returns the empty string.
+      whitespace = window.getComputedStyle(node, null).whiteSpace;
+    }
+    return !whitespace || whitespace === 'pre';
+  }
+
+  function normalizedHtml(node, out) {
+    switch (node.nodeType) {
+      case 1:  // an element
+        var name = node.tagName.toLowerCase();
+        out.push('<', name);
+        for (var i = 0; i < node.attributes.length; ++i) {
+          var attr = node.attributes[i];
+          if (!attr.specified) { continue; }
+          out.push(' ');
+          normalizedHtml(attr, out);
+        }
+        out.push('>');
+        for (var child = node.firstChild; child; child = child.nextSibling) {
+          normalizedHtml(child, out);
+        }
+        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
+          out.push('<\/', name, '>');
+        }
+        break;
+      case 2: // an attribute
+        out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
+        break;
+      case 3: case 4: // text
+        out.push(textToHtml(node.nodeValue));
+        break;
+    }
+  }
+
+  /**
+   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+   * matches the union o the sets o strings matched d by the input RegExp.
+   * Since it matches globally, if the input strings have a start-of-input
+   * anchor (/^.../), it is ignored for the purposes of unioning.
+   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
+   * @return {RegExp} a global regex.
+   */
+  function combinePrefixPatterns(regexs) {
+    var capturedGroupIndex = 0;
+
+    var needToFoldCase = false;
+    var ignoreCase = false;
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.ignoreCase) {
+        ignoreCase = true;
+      } else if (/[a-z]/i.test(regex.source.replace(
+                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+        needToFoldCase = true;
+        ignoreCase = false;
+        break;
+      }
+    }
+
+    function decodeEscape(charsetPart) {
+      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
+      switch (charsetPart.charAt(1)) {
+        case 'b': return 8;
+        case 't': return 9;
+        case 'n': return 0xa;
+        case 'v': return 0xb;
+        case 'f': return 0xc;
+        case 'r': return 0xd;
+        case 'u': case 'x':
+          return parseInt(charsetPart.substring(2), 16)
+              || charsetPart.charCodeAt(1);
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7':
+          return parseInt(charsetPart.substring(1), 8);
+        default: return charsetPart.charCodeAt(1);
+      }
+    }
+
+    function encodeEscape(charCode) {
+      if (charCode < 0x20) {
+        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+      }
+      var ch = String.fromCharCode(charCode);
+      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
+        ch = '\\' + ch;
+      }
+      return ch;
+    }
+
+    function caseFoldCharset(charSet) {
+      var charsetParts = charSet.substring(1, charSet.length - 1).match(
+          new RegExp(
+              '\\\\u[0-9A-Fa-f]{4}'
+              + '|\\\\x[0-9A-Fa-f]{2}'
+              + '|\\\\[0-3][0-7]{0,2}'
+              + '|\\\\[0-7]{1,2}'
+              + '|\\\\[\\s\\S]'
+              + '|-'
+              + '|[^-\\\\]',
+              'g'));
+      var groups = [];
+      var ranges = [];
+      var inverse = charsetParts[0] === '^';
+      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+        var p = charsetParts[i];
+        switch (p) {
+          case '\\B': case '\\b':
+          case '\\D': case '\\d':
+          case '\\S': case '\\s':
+          case '\\W': case '\\w':
+            groups.push(p);
+            continue;
+        }
+        var start = decodeEscape(p);
+        var end;
+        if (i + 2 < n && '-' === charsetParts[i + 1]) {
+          end = decodeEscape(charsetParts[i + 2]);
+          i += 2;
+        } else {
+          end = start;
+        }
+        ranges.push([start, end]);
+        // If the range might intersect letters, then expand it.
+        if (!(end < 65 || start > 122)) {
+          if (!(end < 65 || start > 90)) {
+            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+          }
+          if (!(end < 97 || start > 122)) {
+            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+          }
+        }
+      }
+
+      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+      // -> [[1, 12], [14, 14], [16, 17]]
+      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
+      var consolidatedRanges = [];
+      var lastRange = [NaN, NaN];
+      for (var i = 0; i < ranges.length; ++i) {
+        var range = ranges[i];
+        if (range[0] <= lastRange[1] + 1) {
+          lastRange[1] = Math.max(lastRange[1], range[1]);
+        } else {
+          consolidatedRanges.push(lastRange = range);
+        }
+      }
+
+      var out = ['['];
+      if (inverse) { out.push('^'); }
+      out.push.apply(out, groups);
+      for (var i = 0; i < consolidatedRanges.length; ++i) {
+        var range = consolidatedRanges[i];
+        out.push(encodeEscape(range[0]));
+        if (range[1] > range[0]) {
+          if (range[1] + 1 > range[0]) { out.push('-'); }
+          out.push(encodeEscape(range[1]));
+        }
+      }
+      out.push(']');
+      return out.join('');
+    }
+
+    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+      // Split into character sets, escape sequences, punctuation strings
+      // like ('(', '(?:', ')', '^'), and runs of characters that do not
+      // include any of the above.
+      var parts = regex.source.match(
+          new RegExp(
+              '(?:'
+              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
+              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
+              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
+              + '|\\\\[0-9]+'  // a back-reference or octal escape
+              + '|\\\\[^ux0-9]'  // other escape sequence
+              + '|\\(\\?[:!=]'  // start of a non-capturing group
+              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
+              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
+              + ')',
+              'g'));
+      var n = parts.length;
+
+      // Maps captured group numbers to the number they will occupy in
+      // the output or to -1 if that has not been determined, or to
+      // undefined if they need not be capturing in the output.
+      var capturedGroups = [];
+
+      // Walk over and identify back references to build the capturedGroups
+      // mapping.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          // groups are 1-indexed, so max group index is count of '('
+          ++groupIndex;
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            capturedGroups[decimalValue] = -1;
+          }
+        }
+      }
+
+      // Renumber groups and reduce capturing groups to non-capturing groups
+      // where possible.
+      for (var i = 1; i < capturedGroups.length; ++i) {
+        if (-1 === capturedGroups[i]) {
+          capturedGroups[i] = ++capturedGroupIndex;
+        }
+      }
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          ++groupIndex;
+          if (capturedGroups[groupIndex] === undefined) {
+            parts[i] = '(?:';
+          }
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            parts[i] = '\\' + capturedGroups[groupIndex];
+          }
+        }
+      }
+
+      // Remove any prefix anchors so that the output will match anywhere.
+      // ^^ really does mean an anchored match though.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+      }
+
+      // Expand letters to groupts to handle mixing of case-sensitive and
+      // case-insensitive patterns if necessary.
+      if (regex.ignoreCase && needToFoldCase) {
+        for (var i = 0; i < n; ++i) {
+          var p = parts[i];
+          var ch0 = p.charAt(0);
+          if (p.length >= 2 && ch0 === '[') {
+            parts[i] = caseFoldCharset(p);
+          } else if (ch0 !== '\\') {
+            // TODO: handle letters in numeric escapes.
+            parts[i] = p.replace(
+                /[a-zA-Z]/g,
+                function (ch) {
+                  var cc = ch.charCodeAt(0);
+                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+                });
+          }
+        }
+      }
+
+      return parts.join('');
+    }
+
+    var rewritten = [];
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.global || regex.multiline) { throw new Error('' + regex); }
+      rewritten.push(
+          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+    }
+
+    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+  }
+
+  var PR_innerHtmlWorks = null;
+  function getInnerHtml(node) {
+    // inner html is hopelessly broken in Safari 2.0.4 when the content is
+    // an html description of well formed XML and the containing tag is a PRE
+    // tag, so we detect that case and emulate innerHTML.
+    if (null === PR_innerHtmlWorks) {
+      var testNode = document.createElement('PRE');
+      testNode.appendChild(
+          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
+      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
+    }
+
+    if (PR_innerHtmlWorks) {
+      var content = node.innerHTML;
+      // XMP tags contain unescaped entities so require special handling.
+      if (isRawContent(node)) {
+        content = textToHtml(content);
+      } else if (!isPreformatted(node, content)) {
+        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
+            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
+      }
+      return content;
+    }
+
+    var out = [];
+    for (var child = node.firstChild; child; child = child.nextSibling) {
+      normalizedHtml(child, out);
+    }
+    return out.join('');
+  }
+
+  /** returns a function that expand tabs to spaces.  This function can be fed
+    * successive chunks of text, and will maintain its own internal state to
+    * keep track of how tabs are expanded.
+    * @return {function (string) : string} a function that takes
+    *   plain text and return the text with tabs expanded.
+    * @private
+    */
+  function makeTabExpander(tabWidth) {
+    var SPACES = '                ';
+    var charInLine = 0;
+
+    return function (plainText) {
+      // walk over each character looking for tabs and newlines.
+      // On tabs, expand them.  On newlines, reset charInLine.
+      // Otherwise increment charInLine
+      var out = null;
+      var pos = 0;
+      for (var i = 0, n = plainText.length; i < n; ++i) {
+        var ch = plainText.charAt(i);
+
+        switch (ch) {
+          case '\t':
+            if (!out) { out = []; }
+            out.push(plainText.substring(pos, i));
+            // calculate how much space we need in front of this part
+            // nSpaces is the amount of padding -- the number of spaces needed
+            // to move us to the next column, where columns occur at factors of
+            // tabWidth.
+            var nSpaces = tabWidth - (charInLine % tabWidth);
+            charInLine += nSpaces;
+            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
+              out.push(SPACES.substring(0, nSpaces));
+            }
+            pos = i + 1;
+            break;
+          case '\n':
+            charInLine = 0;
+            break;
+          default:
+            ++charInLine;
+        }
+      }
+      if (!out) { return plainText; }
+      out.push(plainText.substring(pos));
+      return out.join('');
+    };
+  }
+
+  var pr_chunkPattern = new RegExp(
+      '[^<]+'  // A run of characters other than '<'
+      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
+      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
+      // a probable tag that should not be highlighted
+      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
+      + '|<',  // A '<' that does not begin a larger chunk
+      'g');
+  var pr_commentPrefix = /^<\!--/;
+  var pr_cdataPrefix = /^<!\[CDATA\[/;
+  var pr_brPrefix = /^<br\b/i;
+  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
+
+  /** split markup into chunks of html tags (style null) and
+    * plain text (style {@link #PR_PLAIN}), converting tags which are
+    * significant for tokenization (<br>) into their textual equivalent.
+    *
+    * @param {string} s html where whitespace is considered significant.
+    * @return {Object} source code and extracted tags.
+    * @private
+    */
+  function extractTags(s) {
+    // since the pattern has the 'g' modifier and defines no capturing groups,
+    // this will return a list of all chunks which we then classify and wrap as
+    // PR_Tokens
+    var matches = s.match(pr_chunkPattern);
+    var sourceBuf = [];
+    var sourceBufLen = 0;
+    var extractedTags = [];
+    if (matches) {
+      for (var i = 0, n = matches.length; i < n; ++i) {
+        var match = matches[i];
+        if (match.length > 1 && match.charAt(0) === '<') {
+          if (pr_commentPrefix.test(match)) { continue; }
+          if (pr_cdataPrefix.test(match)) {
+            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
+            sourceBuf.push(match.substring(9, match.length - 3));
+            sourceBufLen += match.length - 12;
+          } else if (pr_brPrefix.test(match)) {
+            // <br> tags are lexically significant so convert them to text.
+            // This is undone later.
+            sourceBuf.push('\n');
+            ++sourceBufLen;
+          } else {
+            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
+              // A <span class="nocode"> will start a section that should be
+              // ignored.  Continue walking the list until we see a matching end
+              // tag.
+              var name = match.match(pr_tagNameRe)[2];
+              var depth = 1;
+              var j;
+              end_tag_loop:
+              for (j = i + 1; j < n; ++j) {
+                var name2 = matches[j].match(pr_tagNameRe);
+                if (name2 && name2[2] === name) {
+                  if (name2[1] === '/') {
+                    if (--depth === 0) { break end_tag_loop; }
+                  } else {
+                    ++depth;
+                  }
+                }
+              }
+              if (j < n) {
+                extractedTags.push(
+                    sourceBufLen, matches.slice(i, j + 1).join(''));
+                i = j;
+              } else {  // Ignore unclosed sections.
+                extractedTags.push(sourceBufLen, match);
+              }
+            } else {
+              extractedTags.push(sourceBufLen, match);
+            }
+          }
+        } else {
+          var literalText = htmlToText(match);
+          sourceBuf.push(literalText);
+          sourceBufLen += literalText.length;
+        }
+      }
+    }
+    return { source: sourceBuf.join(''), tags: extractedTags };
+  }
+
+  /** True if the given tag contains a class attribute with the nocode class. */
+  function isNoCodeTag(tag) {
+    return !!tag
+        // First canonicalize the representation of attributes
+        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
+                 ' $1="$2$3$4"')
+        // Then look for the attribute we want.
+        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
+  }
+
+  /**
+   * Apply the given language handler to sourceCode and add the resulting
+   * decorations to out.
+   * @param {number} basePos the index of sourceCode within the chunk of source
+   *    whose decorations are already present on out.
+   */
+  function appendDecorations(basePos, sourceCode, langHandler, out) {
+    if (!sourceCode) { return; }
+    var job = {
+      source: sourceCode,
+      basePos: basePos
+    };
+    langHandler(job);
+    out.push.apply(out, job.decorations);
+  }
+
+  /** Given triples of [style, pattern, context] returns a lexing function,
+    * The lexing function interprets the patterns to find token boundaries and
+    * returns a decoration list of the form
+    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+    * where index_n is an index into the sourceCode, and style_n is a style
+    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
+    * all characters in sourceCode[index_n-1:index_n].
+    *
+    * The stylePatterns is a list whose elements have the form
+    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+    *
+    * Style is a style constant like PR_PLAIN, or can be a string of the
+    * form 'lang-FOO', where FOO is a language extension describing the
+    * language of the portion of the token in $1 after pattern executes.
+    * E.g., if style is 'lang-lisp', and group 1 contains the text
+    * '(hello (world))', then that portion of the token will be passed to the
+    * registered lisp handler for formatting.
+    * The text before and after group 1 will be restyled using this decorator
+    * so decorators should take care that this doesn't result in infinite
+    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
+    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
+    * '<script>foo()<\/script>', which would cause the current decorator to
+    * be called with '<script>' which would not match the same rule since
+    * group 1 must not be empty, so it would be instead styled as PR_TAG by
+    * the generic tag rule.  The handler registered for the 'js' extension would
+    * then be called with 'foo()', and finally, the current decorator would
+    * be called with '<\/script>' which would not match the original rule and
+    * so the generic tag rule would identify it as a tag.
+    *
+    * Pattern must only match prefixes, and if it matches a prefix, then that
+    * match is considered a token with the same style.
+    *
+    * Context is applied to the last non-whitespace, non-comment token
+    * recognized.
+    *
+    * Shortcut is an optional string of characters, any of which, if the first
+    * character, gurantee that this pattern and only this pattern matches.
+    *
+    * @param {Array} shortcutStylePatterns patterns that always start with
+    *   a known character.  Must have a shortcut string.
+    * @param {Array} fallthroughStylePatterns patterns that will be tried in
+    *   order if the shortcut ones fail.  May have shortcuts.
+    *
+    * @return {function (Object)} a
+    *   function that takes source code and returns a list of decorations.
+    */
+  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
+    var shortcuts = {};
+    var tokenizer;
+    (function () {
+      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
+      var allRegexs = [];
+      var regexKeys = {};
+      for (var i = 0, n = allPatterns.length; i < n; ++i) {
+        var patternParts = allPatterns[i];
+        var shortcutChars = patternParts[3];
+        if (shortcutChars) {
+          for (var c = shortcutChars.length; --c >= 0;) {
+            shortcuts[shortcutChars.charAt(c)] = patternParts;
+          }
+        }
+        var regex = patternParts[1];
+        var k = '' + regex;
+        if (!regexKeys.hasOwnProperty(k)) {
+          allRegexs.push(regex);
+          regexKeys[k] = null;
+        }
+      }
+      allRegexs.push(/[\0-\uffff]/);
+      tokenizer = combinePrefixPatterns(allRegexs);
+    })();
+
+    var nPatterns = fallthroughStylePatterns.length;
+    var notWs = /\S/;
+
+    /**
+     * Lexes job.source and produces an output array job.decorations of style
+     * classes preceded by the position at which they start in job.source in
+     * order.
+     *
+     * @param {Object} job an object like {@code
+     *    source: {string} sourceText plain text,
+     *    basePos: {int} position of job.source in the larger chunk of
+     *        sourceCode.
+     * }
+     */
+    var decorate = function (job) {
+      var sourceCode = job.source, basePos = job.basePos;
+      /** Even entries are positions in source in ascending order.  Odd enties
+        * are style markers (e.g., PR_COMMENT) that run from that position until
+        * the end.
+        * @type {Array.<number|string>}
+        */
+      var decorations = [basePos, PR_PLAIN];
+      var pos = 0;  // index into sourceCode
+      var tokens = sourceCode.match(tokenizer) || [];
+      var styleCache = {};
+
+      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
+        var token = tokens[ti];
+        var style = styleCache[token];
+        var match = void 0;
+
+        var isEmbedded;
+        if (typeof style === 'string') {
+          isEmbedded = false;
+        } else {
+          var patternParts = shortcuts[token.charAt(0)];
+          if (patternParts) {
+            match = token.match(patternParts[1]);
+            style = patternParts[0];
+          } else {
+            for (var i = 0; i < nPatterns; ++i) {
+              patternParts = fallthroughStylePatterns[i];
+              match = token.match(patternParts[1]);
+              if (match) {
+                style = patternParts[0];
+                break;
+              }
+            }
+
+            if (!match) {  // make sure that we make progress
+              style = PR_PLAIN;
+            }
+          }
+
+          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
+          if (isEmbedded && !(match && typeof match[1] === 'string')) {
+            isEmbedded = false;
+            style = PR_SOURCE;
+          }
+
+          if (!isEmbedded) { styleCache[token] = style; }
+        }
+
+        var tokenStart = pos;
+        pos += token.length;
+
+        if (!isEmbedded) {
+          decorations.push(basePos + tokenStart, style);
+        } else {  // Treat group 1 as an embedded block of source code.
+          var embeddedSource = match[1];
+          var embeddedSourceStart = token.indexOf(embeddedSource);
+          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
+          if (match[2]) {
+            // If embeddedSource can be blank, then it would match at the
+            // beginning which would cause us to infinitely recurse on the
+            // entire token, so we catch the right context in match[2].
+            embeddedSourceEnd = token.length - match[2].length;
+            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
+          }
+          var lang = style.substring(5);
+          // Decorate the left of the embedded source
+          appendDecorations(
+              basePos + tokenStart,
+              token.substring(0, embeddedSourceStart),
+              decorate, decorations);
+          // Decorate the embedded source
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceStart,
+              embeddedSource,
+              langHandlerForExtension(lang, embeddedSource),
+              decorations);
+          // Decorate the right of the embedded section
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceEnd,
+              token.substring(embeddedSourceEnd),
+              decorate, decorations);
+        }
+      }
+      job.decorations = decorations;
+    };
+    return decorate;
+  }
+
+  /** returns a function that produces a list of decorations from source text.
+    *
+    * This code treats ", ', and ` as string delimiters, and \ as a string
+    * escape.  It does not recognize perl's qq() style strings.
+    * It has no special handling for double delimiter escapes as in basic, or
+    * the tripled delimiters used in python, but should work on those regardless
+    * although in those cases a single string literal may be broken up into
+    * multiple adjacent string literals.
+    *
+    * It recognizes C, C++, and shell style comments.
+    *
+    * @param {Object} options a set of optional parameters.
+    * @return {function (Object)} a function that examines the source code
+    *     in the input job and builds the decoration list.
+    */
+  function sourceDecorator(options) {
+    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
+    if (options['tripleQuotedStrings']) {
+      // '''multi-line-string''', 'single-line-string', and double-quoted
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+           null, '\'"']);
+    } else if (options['multiLineStrings']) {
+      // 'multi-line-string', "multi-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+           null, '\'"`']);
+    } else {
+      // 'single-line-string', "single-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,
+           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+           null, '"\'']);
+    }
+    if (options['verbatimStrings']) {
+      // verbatim-string-literal production from the C# grammar.  See issue 93.
+      fallthroughStylePatterns.push(
+          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+    }
+    if (options['hashComments']) {
+      if (options['cStyleComments']) {
+        // Stop C preprocessor declarations at an unclosed open comment
+        shortcutStylePatterns.push(
+            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+             null, '#']);
+        fallthroughStylePatterns.push(
+            [PR_STRING,
+             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+             null]);
+      } else {
+        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
+      }
+    }
+    if (options['cStyleComments']) {
+      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
+      fallthroughStylePatterns.push(
+          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+    }
+    if (options['regexLiterals']) {
+      var REGEX_LITERAL = (
+          // A regular expression literal starts with a slash that is
+          // not followed by * or / so that it is not confused with
+          // comments.
+          '/(?=[^/*])'
+          // and then contains any number of raw characters,
+          + '(?:[^/\\x5B\\x5C]'
+          // escape sequences (\x5C),
+          +    '|\\x5C[\\s\\S]'
+          // or non-nesting character sets (\x5B\x5D);
+          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
+          // finally closed by a /.
+          + '/');
+      fallthroughStylePatterns.push(
+          ['lang-regex',
+           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
+           ]);
+    }
+
+    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
+    if (keywords.length) {
+      fallthroughStylePatterns.push(
+          [PR_KEYWORD,
+           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
+    }
+
+    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
+    fallthroughStylePatterns.push(
+        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
+        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
+        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_LITERAL,
+         new RegExp(
+             '^(?:'
+             // A hex number
+             + '0x[a-f0-9]+'
+             // or an octal or decimal number,
+             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
+             // possibly in scientific notation
+             + '(?:e[+\\-]?\\d+)?'
+             + ')'
+             // with an optional modifier like UL for unsigned long
+             + '[a-z]*', 'i'),
+         null, '0123456789'],
+        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
+
+    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
+  }
+
+  var decorateSource = sourceDecorator({
+        'keywords': ALL_KEYWORDS,
+        'hashComments': true,
+        'cStyleComments': true,
+        'multiLineStrings': true,
+        'regexLiterals': true
+      });
+
+  /** Breaks {@code job.source} around style boundaries in
+    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
+    * and leaves the result in {@code job.prettyPrintedHtml}.
+    * @param {Object} job like {
+    *    source: {string} source as plain text,
+    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
+    *                   html preceded by their position in {@code job.source}
+    *                   in order
+    *    decorations: {Array.<number|string} an array of style classes preceded
+    *                 by the position at which they start in job.source in order
+    * }
+    * @private
+    */
+  function recombineTagsAndDecorations(job) {
+    var sourceText = job.source;
+    var extractedTags = job.extractedTags;
+    var decorations = job.decorations;
+
+    var html = [];
+    // index past the last char in sourceText written to html
+    var outputIdx = 0;
+
+    var openDecoration = null;
+    var currentDecoration = null;
+    var tagPos = 0;  // index into extractedTags
+    var decPos = 0;  // index into decorations
+    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
+
+    var adjacentSpaceRe = /([\r\n ]) /g;
+    var startOrSpaceRe = /(^| ) /gm;
+    var newlineRe = /\r\n?|\n/g;
+    var trailingSpaceRe = /[ \r\n]$/;
+    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
+
+    // A helper function that is responsible for opening sections of decoration
+    // and outputing properly escaped chunks of source
+    function emitTextUpTo(sourceIdx) {
+      if (sourceIdx > outputIdx) {
+        if (openDecoration && openDecoration !== currentDecoration) {
+          // Close the current decoration
+          html.push('</span>');
+          openDecoration = null;
+        }
+        if (!openDecoration && currentDecoration) {
+          openDecoration = currentDecoration;
+          html.push('<span class="', openDecoration, '">');
+        }
+        // This interacts badly with some wikis which introduces paragraph tags
+        // into pre blocks for some strange reason.
+        // It's necessary for IE though which seems to lose the preformattedness
+        // of <pre> tags when their innerHTML is assigned.
+        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
+        // and it serves to undo the conversion of <br>s to newlines done in
+        // chunkify.
+        var htmlChunk = textToHtml(
+            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
+            .replace(lastWasSpace
+                     ? startOrSpaceRe
+                     : adjacentSpaceRe, '$1 ');
+        // Keep track of whether we need to escape space at the beginning of the
+        // next chunk.
+        lastWasSpace = trailingSpaceRe.test(htmlChunk);
+        // IE collapses multiple adjacient <br>s into 1 line break.
+        // Prefix every <br> with ' ' can prevent such IE's behavior.
+        var lineBreakHtml = window['_pr_isIE6']() ? ' <br />' : '<br />';
+        html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
+        outputIdx = sourceIdx;
+      }
+    }
+
+    while (true) {
+      // Determine if we're going to consume a tag this time around.  Otherwise
+      // we consume a decoration or exit.
+      var outputTag;
+      if (tagPos < extractedTags.length) {
+        if (decPos < decorations.length) {
+          // Pick one giving preference to extractedTags since we shouldn't open
+          // a new style that we're going to have to immediately close in order
+          // to output a tag.
+          outputTag = extractedTags[tagPos] <= decorations[decPos];
+        } else {
+          outputTag = true;
+        }
+      } else {
+        outputTag = false;
+      }
+      // Consume either a decoration or a tag or exit.
+      if (outputTag) {
+        emitTextUpTo(extractedTags[tagPos]);
+        if (openDecoration) {
+          // Close the current decoration
+          html.push('</span>');
+          openDecoration = null;
+        }
+        html.push(extractedTags[tagPos + 1]);
+        tagPos += 2;
+      } else if (decPos < decorations.length) {
+        emitTextUpTo(decorations[decPos]);
+        currentDecoration = decorations[decPos + 1];
+        decPos += 2;
+      } else {
+        break;
+      }
+    }
+    emitTextUpTo(sourceText.length);
+    if (openDecoration) {
+      html.push('</span>');
+    }
+    job.prettyPrintedHtml = html.join('');
+  }
+
+  /** Maps language-specific file extensions to handlers. */
+  var langHandlerRegistry = {};
+  /** Register a language handler for the given file extensions.
+    * @param {function (Object)} handler a function from source code to a list
+    *      of decorations.  Takes a single argument job which describes the
+    *      state of the computation.   The single parameter has the form
+    *      {@code {
+    *        source: {string} as plain text.
+    *        decorations: {Array.<number|string>} an array of style classes
+    *                     preceded by the position at which they start in
+    *                     job.source in order.
+    *                     The language handler should assigned this field.
+    *        basePos: {int} the position of source in the larger source chunk.
+    *                 All positions in the output decorations array are relative
+    *                 to the larger source chunk.
+    *      } }
+    * @param {Array.<string>} fileExtensions
+    */
+  function registerLangHandler(handler, fileExtensions) {
+    for (var i = fileExtensions.length; --i >= 0;) {
+      var ext = fileExtensions[i];
+      if (!langHandlerRegistry.hasOwnProperty(ext)) {
+        langHandlerRegistry[ext] = handler;
+      } else if ('console' in window) {
+        console.warn('cannot override language handler %s', ext);
+      }
+    }
+  }
+  function langHandlerForExtension(extension, source) {
+    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
+      // Treat it as markup if the first non whitespace character is a < and
+      // the last non-whitespace character is a >.
+      extension = /^\s*</.test(source)
+          ? 'default-markup'
+          : 'default-code';
+    }
+    return langHandlerRegistry[extension];
+  }
+  registerLangHandler(decorateSource, ['default-code']);
+  registerLangHandler(
+      createSimpleLexer(
+          [],
+          [
+           [PR_PLAIN,       /^[^<?]+/],
+           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
+           // Unescaped content in an unknown language
+           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
+           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
+           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+           // Unescaped content in javascript.  (Or possibly vbscript).
+           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+           // Contains unescaped stylesheet content
+           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
+          ]),
+      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
+  registerLangHandler(
+      createSimpleLexer(
+          [
+           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
+           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
+           ],
+          [
+           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+           [PR_PUNCTUATION,  /^[=<>\/]+/],
+           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
+           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
+           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
+           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
+           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
+           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
+           ]),
+      ['in.tag']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CPP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true
+        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': 'null true false'
+        }), ['json']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CSHARP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true,
+          'verbatimStrings': true
+        }), ['cs']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JAVA_KEYWORDS,
+          'cStyleComments': true
+        }), ['java']);
+  registerLangHandler(sourceDecorator({
+          'keywords': SH_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true
+        }), ['bsh', 'csh', 'sh']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PYTHON_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'tripleQuotedStrings': true
+        }), ['cv', 'py']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PERL_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['perl', 'pl', 'pm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': RUBY_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['rb']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JSCRIPT_KEYWORDS,
+          'cStyleComments': true,
+          'regexLiterals': true
+        }), ['js']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
+
+  function applyDecorator(job) {
+    var sourceCodeHtml = job.sourceCodeHtml;
+    var opt_langExtension = job.langExtension;
+
+    // Prepopulate output in case processing fails with an exception.
+    job.prettyPrintedHtml = sourceCodeHtml;
+
+    try {
+      // Extract tags, and convert the source code to plain text.
+      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
+      /** Plain text. @type {string} */
+      var source = sourceAndExtractedTags.source;
+      job.source = source;
+      job.basePos = 0;
+
+      /** Even entries are positions in source in ascending order.  Odd entries
+        * are tags that were extracted at that position.
+        * @type {Array.<number|string>}
+        */
+      job.extractedTags = sourceAndExtractedTags.tags;
+
+      // Apply the appropriate language handler
+      langHandlerForExtension(opt_langExtension, source)(job);
+      // Integrate the decorations and tags back into the source code to produce
+      // a decorated html string which is left in job.prettyPrintedHtml.
+      recombineTagsAndDecorations(job);
+    } catch (e) {
+      if ('console' in window) {
+        console.log(e);
+        console.trace();
+      }
+    }
+  }
+
+  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
+    var job = {
+      sourceCodeHtml: sourceCodeHtml,
+      langExtension: opt_langExtension
+    };
+    applyDecorator(job);
+    return job.prettyPrintedHtml;
+  }
+
+  function prettyPrint(opt_whenDone) {
+    var isIE678 = window['_pr_isIE6']();
+    var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
+    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
+
+    // fetch a list of nodes to rewrite
+    var codeSegments = [
+        document.getElementsByTagName('pre'),
+        document.getElementsByTagName('code'),
+        document.getElementsByTagName('td'),  /* ND Change: Add tables to support prototypes. */
+        document.getElementsByTagName('xmp') ];
+    var elements = [];
+    for (var i = 0; i < codeSegments.length; ++i) {
+      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
+        elements.push(codeSegments[i][j]);
+      }
+    }
+    codeSegments = null;
+
+    var clock = Date;
+    if (!clock['now']) {
+      clock = { 'now': function () { return (new Date).getTime(); } };
+    }
+
+    // The loop is broken into a series of continuations to make sure that we
+    // don't make the browser unresponsive when rewriting a large page.
+    var k = 0;
+    var prettyPrintingJob;
+
+    function doWork() {
+      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
+                     clock.now() + 250 /* ms */ :
+                     Infinity);
+      for (; k < elements.length && clock.now() < endTime; k++) {
+        var cs = elements[k];
+        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
+          // If the classes includes a language extensions, use it.
+          // Language extensions can be specified like
+          //     <pre class="prettyprint lang-cpp">
+          // the language extension "cpp" is used to find a language handler as
+          // passed to PR_registerLangHandler.
+          var langExtension = cs.className.match(/\blang-(\w+)\b/);
+          if (langExtension) { langExtension = langExtension[1]; }
+
+          // make sure this is not nested in an already prettified element
+          var nested = false;
+          for (var p = cs.parentNode; p; p = p.parentNode) {
+            if ((p.tagName === 'pre' || p.tagName === 'code' ||
+                 p.tagName === 'xmp' || p.tagName === 'td') &&  /* ND Change: Add tables to support prototypes */
+                p.className && p.className.indexOf('prettyprint') >= 0) {
+              nested = true;
+              break;
+            }
+          }
+          if (!nested) {
+            // fetch the content as a snippet of properly escaped HTML.
+            // Firefox adds newlines at the end.
+            var content = getInnerHtml(cs);
+            content = content.replace(/(?:\r\n?|\n)$/, '');
+
+	  		/* ND Change: we need to preserve  s so change them to a special character instead of a space. */
+			content = content.replace(/ /g, '\x11');
+
+            // do the pretty printing
+            prettyPrintingJob = {
+              sourceCodeHtml: content,
+              langExtension: langExtension,
+              sourceNode: cs
+            };
+            applyDecorator(prettyPrintingJob);
+            replaceWithPrettyPrintedHtml();
+          }
+        }
+      }
+      if (k < elements.length) {
+        // finish up in a continuation
+        setTimeout(doWork, 250);
+      } else if (opt_whenDone) {
+        opt_whenDone();
+      }
+    }
+
+    function replaceWithPrettyPrintedHtml() {
+      var newContent = prettyPrintingJob.prettyPrintedHtml;
+      if (!newContent) { return; }
+
+      /* ND Change: Restore the preserved  s.  */
+	  newContent = newContent.replace(/\x11/g, ' ');
+
+      var cs = prettyPrintingJob.sourceNode;
+
+      // push the prettified html back into the tag.
+      if (!isRawContent(cs)) {
+        // just replace the old html with the new
+        cs.innerHTML = newContent;
+      } else {
+        // we need to change the tag to a <pre> since <xmp>s do not allow
+        // embedded tags such as the span tags used to attach styles to
+        // sections of source code.
+        var pre = document.createElement('PRE');
+        for (var i = 0; i < cs.attributes.length; ++i) {
+          var a = cs.attributes[i];
+          if (a.specified) {
+            var aname = a.name.toLowerCase();
+            if (aname === 'class') {
+              pre.className = a.value;  // For IE 6
+            } else {
+              pre.setAttribute(a.name, a.value);
+            }
+          }
+        }
+        pre.innerHTML = newContent;
+
+        // remove the old
+        cs.parentNode.replaceChild(pre, cs);
+        cs = pre;
+      }
+
+      // Replace <br>s with line-feeds so that copying and pasting works
+      // on IE 6.
+      // Doing this on other browsers breaks lots of stuff since \r\n is
+      // treated as two newlines on Firefox, and doing this also slows
+      // down rendering.
+      if (isIE678 && cs.tagName === 'PRE') {
+        var lineBreaks = cs.getElementsByTagName('br');
+        for (var j = lineBreaks.length; --j >= 0;) {
+          var lineBreak = lineBreaks[j];
+          lineBreak.parentNode.replaceChild(
+              document.createTextNode(ieNewline), lineBreak);
+        }
+      }
+    }
+
+    doWork();
+  }
+
+  window['PR_normalizedHtml'] = normalizedHtml;
+  window['prettyPrintOne'] = prettyPrintOne;
+  window['prettyPrint'] = prettyPrint;
+  window['PR'] = {
+        'combinePrefixPatterns': combinePrefixPatterns,
+        'createSimpleLexer': createSimpleLexer,
+        'registerLangHandler': registerLangHandler,
+        'sourceDecorator': sourceDecorator,
+        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
+        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
+        'PR_COMMENT': PR_COMMENT,
+        'PR_DECLARATION': PR_DECLARATION,
+        'PR_KEYWORD': PR_KEYWORD,
+        'PR_LITERAL': PR_LITERAL,
+        'PR_NOCODE': PR_NOCODE,
+        'PR_PLAIN': PR_PLAIN,
+        'PR_PUNCTUATION': PR_PUNCTUATION,
+        'PR_SOURCE': PR_SOURCE,
+        'PR_STRING': PR_STRING,
+        'PR_TAG': PR_TAG,
+        'PR_TYPE': PR_TYPE
+      };
+})();
+
+
+// ____________________________________________________________________________
+
+
+
+// Lua extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d [...]
+
+
+// Haskell extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,'	\n

\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|ins [...]
+
+
+// ML extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|fin [...]
+
+
+// SQL extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURR [...]
+
+
+// VB extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,'	\n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boole [...]
diff --git a/doc/apidocs/javascript/searchdata.js b/doc/apidocs/javascript/searchdata.js
index a41936c..2681b4d 100644
--- a/doc/apidocs/javascript/searchdata.js
+++ b/doc/apidocs/javascript/searchdata.js
@@ -110,7 +110,7 @@ var indexSectionsWithContent = {
       "P": false,
       "Q": false,
       "R": false,
-      "S": false,
+      "S": true,
       "T": false,
       "U": false,
       "V": true,
diff --git a/doc/apidocs/search/ClassesO.html b/doc/apidocs/search/ClassesO.html
index ef84745..9be5e71 100644
--- a/doc/apidocs/search/ClassesO.html
+++ b/doc/apidocs/search/ClassesO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OpenLayers><div class=IEntry><a href="../files/OpenLayers-js.html#OpenLayers" target=_parent class=ISymbol>OpenLayers</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax" target=_parent class=ISymbol>OpenLayers.Ajax</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax_p [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OpenLayers><div class=IEntry><a href="../files/OpenLayers-js.html#OpenLayers" target=_parent class=ISymbol>OpenLayers</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax" target=_parent class=ISymbol>OpenLayers.Ajax</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax_p [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ClassesU.html b/doc/apidocs/search/ClassesU.html
index 798b8f9..fad197a 100644
--- a/doc/apidocs/search/ClassesU.html
+++ b/doc/apidocs/search/ClassesU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/apidocs/search/ConstantsB.html b/doc/apidocs/search/ConstantsB.html
index b655329..bf08275 100644
--- a/doc/apidocs/search/ConstantsB.html
+++ b/doc/apidocs/search/ConstantsB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX" target=_parent class=ISymbol>BACKGROUND_ID_SUFFIX</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</span></div></div><div class=SRResult id=SR_BROWSER_undEVENT [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX" target=_parent class=ISymbol>BACKGROUND_ID_SUFFIX</a>, <span class=IParent>OpenLayers.<wbr>Renderer.<wbr>Elements</span></div></div><div class=SRResult id=SR_BROWSER_undEVENTS><div class=IEntry><a href="../file [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsC.html b/doc/apidocs/search/ConstantsC.html
index 2ee37f5..9cd097d 100644
--- a/doc/apidocs/search/ConstantsC.html
+++ b/doc/apidocs/search/ConstantsC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_CORNER_undSIZE><div class=IEntry><a href="../files/OpenLayers/Popup/AnchoredBubble-js.html#OpenLayers.Popup.AnchoredBubble.CORNER_SIZE" target=_parent class=ISymbol>CORNER_SIZE</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>AnchoredBubble</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_CORNER_undSIZE><div class=IEntry><a href="../files/OpenLayers/Popup/AnchoredBubble-js.html#OpenLayers.Popup.AnchoredBubble.CORNER_SIZE" target=_parent class=ISymbol>CORNER_SIZE</a>, <span class=IParent>OpenLayers.<wbr>Popup.<wbr>AnchoredBubble</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matc [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsD.html b/doc/apidocs/search/ConstantsD.html
index 18281fb..6a40c20 100644
--- a/doc/apidocs/search/ConstantsD.html
+++ b/doc/apidocs/search/ConstantsD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dataFrom><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" target=_parent class=ISymbol>dataFrom</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>PointTrack.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer.<span class=HB [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dataFrom><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" target=_parent class=ISymbol>dataFrom</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>OpenLayers.<wbr>Layer.<wbr>PointTrack</span></div></div><div class=SRResult id=SR_DEFAULT_undCONFIG><div cla [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsE.html b/doc/apidocs/search/ConstantsE.html
index 860c350..813ed30 100644
--- a/doc/apidocs/search/ConstantsE.html
+++ b/doc/apidocs/search/ConstantsE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EVENT_undTYPES><div class=IEntry><a href="javascript:searchResults.Toggle('SR_EVENT_undTYPES')" class=ISymbol>EVENT_TYPES</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.EVENT_TYPES" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control</a><a href="../files/OpenLayers/Control/DrawFeature-js.html#OpenLay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EVENT_undTYPES><div class=IEntry><a href="javascript:searchResults.Toggle('SR_EVENT_undTYPES')" class=ISymbol>EVENT_TYPES</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.EVENT_TYPES" target=_parent class=IParent>OpenLayers.<wbr>Control</a><a href="../files/OpenLayers/Control/DrawFeature-js.html#OpenLayers.Control.DrawFe [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsF.html b/doc/apidocs/search/ConstantsF.html
index 247d8d9..c9f7d11 100644
--- a/doc/apidocs/search/ConstantsF.html
+++ b/doc/apidocs/search/ConstantsF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_FOLDER_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.FOLDER_PARAMS" target=_parent class=ISymbol>FOLDER_PARAMS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRSta [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_FOLDER_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.FOLDER_PARAMS" target=_parent class=ISymbol>FOLDER_PARAMS</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><sc [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsI.html b/doc/apidocs/search/ConstantsI.html
index 43a0612..b7d5f10 100644
--- a/doc/apidocs/search/ConstantsI.html
+++ b/doc/apidocs/search/ConstantsI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_IMAGE_undEXTENSIONS><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js.html#OpenLayers.Layer.KaMapCache.IMAGE_EXTENSIONS" target=_parent class=ISymbol>IMAGE_EXTENSIONS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMapCache</span></div></div><div class=SRResult id=SR_INCHES_undPER_undUNIT><div class=I [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_IFrame><div class=IEntry><a href="../files/OpenLayers/Tile/Image/IFrame-js.html#OpenLayers.Tile.Image.IFrame" target=_parent class=ISymbol>IFrame</a>, <span class=IParent>OpenLayers.<wbr>Tile.<wbr>Image</span></div></div><div class=SRResult id=SR_IMAGE_undEXTENSIONS><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js.html#OpenLayers.Layer.KaMap [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsK.html b/doc/apidocs/search/ConstantsK.html
index 5dc4966..429a385 100644
--- a/doc/apidocs/search/ConstantsK.html
+++ b/doc/apidocs/search/ConstantsK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KEY_undBACKSPACE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_BACKSPACE" target=_parent class=ISymbol>KEY_BACKSPACE</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Event</span></div></div><div class=SRResult id=SR_KEY_undDELETE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_D [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KEY_undBACKSPACE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_BACKSPACE" target=_parent class=ISymbol>KEY_BACKSPACE</a>, <span class=IParent>OpenLayers.<wbr>Event</span></div></div><div class=SRResult id=SR_KEY_undDELETE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_DELETE" target=_par [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsL.html b/doc/apidocs/search/ConstantsL.html
index d876ca9..31eb0b3 100644
--- a/doc/apidocs/search/ConstantsL.html
+++ b/doc/apidocs/search/ConstantsL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')" class=ISymbol>LABEL_ALIGN</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')" class=ISymbol>LABEL_ALIGN</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN" target=_parent class=IParent>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>OpenLayers.<wbr>Renderer [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsM.html b/doc/apidocs/search/ConstantsM.html
index 51c94f0..020948c 100644
--- a/doc/apidocs/search/ConstantsM.html
+++ b/doc/apidocs/search/ConstantsM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_MAX_undPIXEL><div class=IEntry><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.MAX_PIXEL" target=_parent class=ISymbol>MAX_PIXEL</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.SVG</span></div></div><div class=SRResult id=SR_MAX_undZOOM_undLEVEL><div class=IEntry><a href="javascript:searchResults.Toggle('SR_MAX_un [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_MAX_undPIXEL><div class=IEntry><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.MAX_PIXEL" target=_parent class=ISymbol>MAX_PIXEL</a>, <span class=IParent>OpenLayers.<wbr>Renderer.SVG</span></div></div><div class=SRResult id=SR_MAX_undZOOM_undLEVEL><div class=IEntry><a href="javascript:searchResults.Toggle('SR_MAX_undZOOM_undLEVEL')"  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsO.html b/doc/apidocs/search/ConstantsO.html
index 1018228..2abd281 100644
--- a/doc/apidocs/search/ConstantsO.html
+++ b/doc/apidocs/search/ConstantsO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OVERLAY_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.OVERLAY_PARAMS" target=_parent class=ISymbol>OVERLAY_PARAMS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SR [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OVERLAY_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.OVERLAY_PARAMS" target=_parent class=ISymbol>OVERLAY_PARAMS</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsR.html b/doc/apidocs/search/ConstantsR.html
index 655c396..1e12290 100644
--- a/doc/apidocs/search/ConstantsR.html
+++ b/doc/apidocs/search/ConstantsR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RESHAPE><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js.html#OpenLayers.Control.ModifyFeature.RESHAPE" target=_parent class=ISymbol>RESHAPE</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ModifyFeature</span></div></div><div class=SRResult id=SR_RESIZE><div class=IEntry><a href="../files/OpenLa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RESHAPE><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js.html#OpenLayers.Control.ModifyFeature.RESHAPE" target=_parent class=ISymbol>RESHAPE</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>ModifyFeature</span></div></div><div class=SRResult id=SR_RESIZE><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js.html#O [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsS.html b/doc/apidocs/search/ConstantsS.html
index 0978161..9470712 100644
--- a/doc/apidocs/search/ConstantsS.html
+++ b/doc/apidocs/search/ConstantsS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_serviceTypes><div class=IEntry><a href="../files/OpenLayers/Format/Context-js.html#OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes" target=_parent class=ISymbol>serviceTypes</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format.<span cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_serviceTypes><div class=IEntry><a href="../files/OpenLayers/Format/Context-js.html#OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes" target=_parent class=ISymbol>serviceTypes</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>Context.<wbr>OpenLayers.<wbr>Format.<wbr>Context</span></div></div><div class=SRResult id=SR_SINGLE_undTILE_undPARAMS [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsT.html b/doc/apidocs/search/ConstantsT.html
index 4c6b29a..d5aef7e 100644
--- a/doc/apidocs/search/ConstantsT.html
+++ b/doc/apidocs/search/ConstantsT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_TILE_undHEIGHT><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.TILE_HEIGHT" target=_parent class=ISymbol>TILE_HEIGHT</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_TILE_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.TILE_PARAMS" target=_pa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_TARGET_undNODE><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.TARGET_NODE" target=_parent class=ISymbol>TARGET_NODE</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>OpenLayers.<wbr>Layer.<wbr>PointTrack</span></div></div><div class=SRResult id=SR_TILE_undHEIGHT [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsU.html b/doc/apidocs/search/ConstantsU.html
index ca8b8f9..ea76246 100644
--- a/doc/apidocs/search/ConstantsU.html
+++ b/doc/apidocs/search/ConstantsU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_URL_undHASH_undFACTOR><div class=IEntry><a href="../files/OpenLayers/Layer/HTTPRequest-js.html#OpenLayers.Layer.HTTPRequest.URL_HASH_FACTOR" target=_parent class=ISymbol>URL_HASH_FACTOR</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>HTTPRequest</span></div></div></table><div class=SRStatus id=Searching>Searching...</di [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_URL_undHASH_undFACTOR><div class=IEntry><a href="../files/OpenLayers/Layer/HTTPRequest-js.html#OpenLayers.Layer.HTTPRequest.URL_HASH_FACTOR" target=_parent class=ISymbol>URL_HASH_FACTOR</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>HTTPRequest</span></div></div><div class=SRResult id=SR_URL_undSPLIT_undREGEX><div class=IEntry><a href="../files/OpenLayer [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsV.html b/doc/apidocs/search/ConstantsV.html
index 1b3476a..f39a23c 100644
--- a/doc/apidocs/search/ConstantsV.html
+++ b/doc/apidocs/search/ConstantsV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v2><div class=IEntry><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2" target=_parent class=ISymbol>v2</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google</span></div></div> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v2><div class=IEntry><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2" target=_parent class=ISymbol>v2</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>Google.<wbr>OpenLayers.<wbr>Layer.<wbr>Google</span></div></div><div class=SRResult id=SR_v3><div class=IEntry><a href="../files/OpenLayers/Layer/Google/v [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsX.html b/doc/apidocs/search/ConstantsX.html
index b4b6bd4..747d031 100644
--- a/doc/apidocs/search/ConstantsX.html
+++ b/doc/apidocs/search/ConstantsX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_X><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.X" target=_parent class=ISymbol>X</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><sc [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_X><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.X" target=_parent class=ISymbol>X</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsY.html b/doc/apidocs/search/ConstantsY.html
index 0c6bff4..f973570 100644
--- a/doc/apidocs/search/ConstantsY.html
+++ b/doc/apidocs/search/ConstantsY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Y><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.Y" target=_parent class=ISymbol>Y</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><sc [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Y><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.Y" target=_parent class=ISymbol>Y</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstantsZ.html b/doc/apidocs/search/ConstantsZ.html
index 74b5974..24fc58d 100644
--- a/doc/apidocs/search/ConstantsZ.html
+++ b/doc/apidocs/search/ConstantsZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/apidocs/search/ConstructorA.html b/doc/apidocs/search/ConstructorA.html
index 10df3bb..3ac1528 100644
--- a/doc/apidocs/search/ConstructorA.html
+++ b/doc/apidocs/search/ConstructorA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Anchored><div class=IEntry><a href="../files/OpenLayers/Popup/Anchored-js.html#OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored" target=_parent class=ISymbol>Anchored</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Anchored.<span class=HB> </span>OpenLayers.<span class=HB> </span>Popup</span></div></div><div class=SR [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Anchored><div class=IEntry><a href="../files/OpenLayers/Popup/Anchored-js.html#OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored" target=_parent class=ISymbol>Anchored</a>, <span class=IParent>OpenLayers.<wbr>Popup.<wbr>Anchored.<wbr>OpenLayers.<wbr>Popup</span></div></div><div class=SRResult id=SR_AnchoredBubble><div class=IEntry><a href="../files/OpenLaye [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorB.html b/doc/apidocs/search/ConstructorB.html
index dc3e704..6a52d73 100644
--- a/doc/apidocs/search/ConstructorB.html
+++ b/doc/apidocs/search/ConstructorB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Base><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Base')" class=ISymbol>Base</a><div class=ISubIndex><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax.Base.OpenLayers.Ajax.Base" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Base.<span class=HB> </span>OpenLayers.Ajax</a><a href="../files/O [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Base><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Base')" class=ISymbol>Base</a><div class=ISubIndex><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax.Base.OpenLayers.Ajax.Base" target=_parent class=IParent>OpenLayers.<wbr>Ajax.<wbr>Base.<wbr>OpenLayers.Ajax</a><a href="../files/OpenLayers/Format/GML/Base-js.html#OpenLayers.Format.GM [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorC.html b/doc/apidocs/search/ConstructorC.html
index 6649f57..a5f54dc 100644
--- a/doc/apidocs/search/ConstructorC.html
+++ b/doc/apidocs/search/ConstructorC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Canvas><div class=IEntry><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas" target=_parent class=ISymbol>Canvas</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas.<span class=HB> </span>OpenLayers.<span class=HB> </span>Renderer</span></div></div><div class [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Canvas><div class=IEntry><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas" target=_parent class=ISymbol>Canvas</a>, <span class=IParent>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>OpenLayers.<wbr>Renderer</span></div></div><div class=SRResult id=SR_Class><div class=IEntry><a href="../files/OpenLayers/Bas [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorD.html b/doc/apidocs/search/ConstructorD.html
index fb9f490..b9fd6d0 100644
--- a/doc/apidocs/search/ConstructorD.html
+++ b/doc/apidocs/search/ConstructorD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Drag><div class=IEntry><a href="../files/OpenLayers/Handler/Drag-js.html#OpenLayers.Handler.Drag.OpenLayers.Handler.Drag" target=_parent class=ISymbol>Drag</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Drag.<span class=HB> </span>OpenLayers.<span class=HB> </span>Handler</span></div></div><div class=SRResult id=SR_D [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Drag><div class=IEntry><a href="../files/OpenLayers/Handler/Drag-js.html#OpenLayers.Handler.Drag.OpenLayers.Handler.Drag" target=_parent class=ISymbol>Drag</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>Drag.<wbr>OpenLayers.<wbr>Handler</span></div></div><div class=SRResult id=SR_DragFeature><div class=IEntry><a href="../files/OpenLayers/Control/DragFe [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorE.html b/doc/apidocs/search/ConstructorE.html
index 3c07f26..f8521ba 100644
--- a/doc/apidocs/search/ConstructorE.html
+++ b/doc/apidocs/search/ConstructorE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EditingToolbar><div class=IEntry><a href="../files/OpenLayers/Control/EditingToolbar-js.html#OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar" target=_parent class=ISymbol>EditingToolbar</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>EditingToolbar.<span class=HB> </span>OpenLayers.<span class=HB>  [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EditingToolbar><div class=IEntry><a href="../files/OpenLayers/Control/EditingToolbar-js.html#OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar" target=_parent class=ISymbol>EditingToolbar</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>EditingToolbar.<wbr>OpenLayers.<wbr>Control</span></div></div><div class=SRResult id=SR_Elements><div [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorF.html b/doc/apidocs/search/ConstructorF.html
index abc765c..6e0b11b 100644
--- a/doc/apidocs/search/ConstructorF.html
+++ b/doc/apidocs/search/ConstructorF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Feature><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Feature')" class=ISymbol>Feature</a><div class=ISubIndex><a href="../files/OpenLayers/Feature-js.html#OpenLayers.Feature.OpenLayers.Feature" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>OpenLayers</a><a href="../files/OpenLayers/Handler/Feat [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Feature><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Feature')" class=ISymbol>Feature</a><div class=ISubIndex><a href="../files/OpenLayers/Feature-js.html#OpenLayers.Feature.OpenLayers.Feature" target=_parent class=IParent>OpenLayers.<wbr>Feature.<wbr>OpenLayers</a><a href="../files/OpenLayers/Handler/Feature-js.html#OpenLayers.Handler.Featu [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorG.html b/doc/apidocs/search/ConstructorG.html
index 6a208e2..63825f3 100644
--- a/doc/apidocs/search/ConstructorG.html
+++ b/doc/apidocs/search/ConstructorG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears.<span class=HB> </span>OpenLayers.<span class=HB> </span>Prot [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears.<wbr>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_GeoJSON><div class=IEntry><a href=".. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorH.html b/doc/apidocs/search/ConstructorH.html
index cf7c1fc..a10eb1b 100644
--- a/doc/apidocs/search/ConstructorH.html
+++ b/doc/apidocs/search/ConstructorH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Handler><div class=IEntry><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.OpenLayers.Handler" target=_parent class=ISymbol>Handler</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_Hover><div class=IEntry><a href="../files/OpenLayers/Handler/Hover-js [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Handler><div class=IEntry><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.OpenLayers.Handler" target=_parent class=ISymbol>Handler</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_Hover><div class=IEntry><a href="../files/OpenLayers/Handler/Hover-js.html#OpenLayers.Handler.Hover.OpenL [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorI.html b/doc/apidocs/search/ConstructorI.html
index 8dc17e1..61c751d 100644
--- a/doc/apidocs/search/ConstructorI.html
+++ b/doc/apidocs/search/ConstructorI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Icon><div class=IEntry><a href="../files/OpenLayers/Icon-js.html#OpenLayers.Icon.OpenLayers.Icon" target=_parent class=ISymbol>Icon</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Icon.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_IFrame><div class=IEntry><a href="../files/OpenLayers/Tile/Image/IFrame-js.html#OpenLay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Icon><div class=IEntry><a href="../files/OpenLayers/Icon-js.html#OpenLayers.Icon.OpenLayers.Icon" target=_parent class=ISymbol>Icon</a>, <span class=IParent>OpenLayers.<wbr>Icon.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_Image><div class=IEntry><a href="../files/OpenLayers/Layer/Image-js.html#OpenLayers.Layer.Image.OpenLayers.Layer.Image" tar [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorJ.html b/doc/apidocs/search/ConstructorJ.html
index 485c9ca..14b852f 100644
--- a/doc/apidocs/search/ConstructorJ.html
+++ b/doc/apidocs/search/ConstructorJ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>JSON.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div></table><div class=SRStatus id=S [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>JSON.<wbr>OpenLayers.<wbr>Format</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorK.html b/doc/apidocs/search/ConstructorK.html
index 9bcc417..645b059 100644
--- a/doc/apidocs/search/ConstructorK.html
+++ b/doc/apidocs/search/ConstructorK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult id=SR_KaMap [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>KaMap.<wbr>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_KaMapCache><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorL.html b/doc/apidocs/search/ConstructorL.html
index 5153f8f..e23429a 100644
--- a/doc/apidocs/search/ConstructorL.html
+++ b/doc/apidocs/search/ConstructorL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Layer><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.OpenLayers.Layer" target=_parent class=ISymbol>Layer</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_LayerSwitcher><div class=IEntry><a href="../files/OpenLayers/Control/LayerSwitche [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Layer><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.OpenLayers.Layer" target=_parent class=ISymbol>Layer</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_LayerSwitcher><div class=IEntry><a href="../files/OpenLayers/Control/LayerSwitcher-js.html#OpenLayers.Control.LayerSw [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorM.html b/doc/apidocs/search/ConstructorM.html
index 869ef6e..5920cde 100644
--- a/doc/apidocs/search/ConstructorM.html
+++ b/doc/apidocs/search/ConstructorM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Map><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.OpenLayers.Map" target=_parent class=ISymbol>Map</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Map.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_MapGuide><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Lay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Map><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.OpenLayers.Map" target=_parent class=ISymbol>Map</a>, <span class=IParent>OpenLayers.<wbr>Map.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_MapGuide><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.OpenLayers.Layer.MapGuid [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorN.html b/doc/apidocs/search/ConstructorN.html
index 4c2e861..0409548 100644
--- a/doc/apidocs/search/ConstructorN.html
+++ b/doc/apidocs/search/ConstructorN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Navigation><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" target=_parent class=ISymbol>Navigation</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Navigation.<span class=HB> </span>OpenLayers.<span class=HB> </span>Control</span></d [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Navigation><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" target=_parent class=ISymbol>Navigation</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Navigation.<wbr>OpenLayers.<wbr>Control</span></div></div><div class=SRResult id=SR_NavigationHistory><div class=IEntry>< [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorO.html b/doc/apidocs/search/ConstructorO.html
index 64d7864..d0686ca 100644
--- a/doc/apidocs/search/ConstructorO.html
+++ b/doc/apidocs/search/ConstructorO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OSM><div class=IEntry><a href="../files/OpenLayers/Format/OSM-js.html#OpenLayers.Format.OSM.OpenLayers.Format.OSM" target=_parent class=ISymbol>OSM</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OSM.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_OverviewMap> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OGCExceptionReport><div class=IEntry><a href="../files/OpenLayers/Format/OGCExceptionReport-js.html#OpenLayers.Format.OGCExceptionReport.OpenLayers.Format.OGCExceptionReport" target=_parent class=ISymbol>OGCExceptionReport</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>OGCExceptionReport.<wbr>OpenLayers.<wbr>Format</span></div></div><div class=SRResult  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorP.html b/doc/apidocs/search/ConstructorP.html
index 3b60658..726d6f0 100644
--- a/doc/apidocs/search/ConstructorP.html
+++ b/doc/apidocs/search/ConstructorP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Paging><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging" target=_parent class=ISymbol>Paging</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging.<span class=HB> </span>OpenLayers.<span class=HB> </span>Strategy</span></div></div><div class [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Paging><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging" target=_parent class=ISymbol>Paging</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Paging.<wbr>OpenLayers.<wbr>Strategy</span></div></div><div class=SRResult id=SR_Pan><div class=IEntry><a href="../files/OpenLayers/Contr [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorR.html b/doc/apidocs/search/ConstructorR.html
index 8202b8f..f9e7c38 100644
--- a/doc/apidocs/search/ConstructorR.html
+++ b/doc/apidocs/search/ConstructorR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Raster><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Raster-js.html#OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster" target=_parent class=ISymbol>Raster</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Raster.<span class=HB> </span>OpenLayers.<span class=HB> </span>Symbolizer</span></div></div> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Raster><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Raster-js.html#OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster" target=_parent class=ISymbol>Raster</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer.<wbr>Raster.<wbr>OpenLayers.<wbr>Symbolizer</span></div></div><div class=SRResult id=SR_Rectangle><div class=IEntry><a href="../files/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorS.html b/doc/apidocs/search/ConstructorS.html
index e25ada3..17fa78e 100644
--- a/doc/apidocs/search/ConstructorS.html
+++ b/doc/apidocs/search/ConstructorS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.OpenLayers.Strategy.Save" target=_parent class=ISymbol>Save</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Save.<span class=HB> </span>OpenLayers.<span class=HB> </span>Strategy</span></div></div><div class=SRResult id [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.OpenLayers.Strategy.Save" target=_parent class=ISymbol>Save</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Save.<wbr>OpenLayers.<wbr>Strategy</span></div></div><div class=SRResult id=SR_Scale><div class=IEntry><a href="../files/OpenLayers/Control/Scale-j [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorT.html b/doc/apidocs/search/ConstructorT.html
index 8aada3c..f7409d6 100644
--- a/doc/apidocs/search/ConstructorT.html
+++ b/doc/apidocs/search/ConstructorT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Text><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Text')" class=ISymbol>Text</a><div class=ISubIndex><a href="../files/OpenLayers/Format/Text-js.html#OpenLayers.Format.Text.OpenLayers.Format.Text" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Text.<span class=HB> </span>OpenLayers.<span class=HB [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Text><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Text')" class=ISymbol>Text</a><div class=ISubIndex><a href="../files/OpenLayers/Format/Text-js.html#OpenLayers.Format.Text.OpenLayers.Format.Text" target=_parent class=IParent>OpenLayers.<wbr>Format.<wbr>Text.<wbr>OpenLayers.<wbr>Format</a><a href="../files/OpenLayers/Layer/Text-js.html#OpenL [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorU.html b/doc/apidocs/search/ConstructorU.html
index 76c2521..c218c54 100644
--- a/doc/apidocs/search/ConstructorU.html
+++ b/doc/apidocs/search/ConstructorU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Untiled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Untiled')" class=ISymbol>Untiled</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/MapServer/Untiled-js.html#OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Untiled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Untiled')" class=ISymbol>Untiled</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/MapServer/Untiled-js.html#OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled" target=_parent class=IParent>OpenLayers.<wbr>Layer.<wbr>MapServer.<wbr>Untiled.<wbr>OpenLayers.<wbr>L [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorV.html b/doc/apidocs/search/ConstructorV.html
index 9daf61c..d179af9 100644
--- a/doc/apidocs/search/ConstructorV.html
+++ b/doc/apidocs/search/ConstructorV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1.<span class=HB> </span>OpenLa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1.<wbr>OpenLayers.<wbr>Format.<wbr>OWSContext</span></div></div><div class=SRResult i [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorW.html b/doc/apidocs/search/ConstructorW.html
index 185c45f..eb697d9 100644
--- a/doc/apidocs/search/ConstructorW.html
+++ b/doc/apidocs/search/ConstructorW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WFS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_WFS')" class=ISymbol>WFS</a><div class=ISubIndex><a href="../files/OpenLayers/Feature/WFS-js.html#OpenLayers.Feature.WFS.OpenLayers.Feature.WFS" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>WFS.<span class=HB> </span>OpenLayers.<span class=HB> < [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WCSGetCoverage><div class=IEntry><a href="../files/OpenLayers/Format/WCSGetCoverage-js.html#OpenLayers.Format.WCSGetCoverage_version_1.1.0.OpenLayers.Format.WCSGetCoverage" target=_parent class=ISymbol>WCSGetCoverage</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>WCSGetCoverage version 1.<wbr>1.0.<wbr>OpenLayers.<wbr>Format</span></div></div><div class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorX.html b/doc/apidocs/search/ConstructorX.html
index 0306625..96fbd57 100644
--- a/doc/apidocs/search/ConstructorX.html
+++ b/doc/apidocs/search/ConstructorX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_XML><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.Format.XML.OpenLayers.Format.XML" target=_parent class=ISymbol>XML</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>XML.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_XYZ><div cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_XLS><div class=IEntry><a href="../files/OpenLayers/Format/XLS-js.html#OpenLayers.Format.XLS.OpenLayers.Format.XLS" target=_parent class=ISymbol>XLS</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>XLS.<wbr>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_XML><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.For [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorY.html b/doc/apidocs/search/ConstructorY.html
index 3033d64..2ced573 100644
--- a/doc/apidocs/search/ConstructorY.html
+++ b/doc/apidocs/search/ConstructorY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Yahoo><div class=IEntry><a href="../files/OpenLayers/Layer/Yahoo-js.html#OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo" target=_parent class=ISymbol>Yahoo</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Yahoo.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div></table><div class=SRStatus id= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Yahoo><div class=IEntry><a href="../files/OpenLayers/Layer/Yahoo-js.html#OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo" target=_parent class=ISymbol>Yahoo</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>Yahoo.<wbr>OpenLayers.<wbr>Layer</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches< [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/ConstructorZ.html b/doc/apidocs/search/ConstructorZ.html
index 7732e07..24abb97 100644
--- a/doc/apidocs/search/ConstructorZ.html
+++ b/doc/apidocs/search/ConstructorZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Zoomify><div class=IEntry><a href="../files/OpenLayers/Layer/Zoomify-js.html#OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify" target=_parent class=ISymbol>Zoomify</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Zoomify.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Zoomify><div class=IEntry><a href="../files/OpenLayers/Layer/Zoomify-js.html#OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify" target=_parent class=ISymbol>Zoomify</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>Zoomify.<wbr>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_ZoomPanel><div class=IEntry><a href="../files/OpenLayers/Control/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FilesA.html b/doc/apidocs/search/FilesA.html
index f9c9172..7a1c64b 100644
--- a/doc/apidocs/search/FilesA.html
+++ b/doc/apidocs/search/FilesA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Ajax_perjs><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#Ajax.js" target=_parent class=ISymbol>Ajax.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Ajax_perjs><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#Ajax.js" target=_parent class=ISymbol>Ajax.js</a></div></div><div class=SRResult id=SR_ArcGISCache_perjs><div class=IEntry><a href="../files/OpenLayers/Layer/ArcGISCache-js.html#ArcGISCache.js" target=_parent class=ISymbol>ArcGISCache.js</a></div></div></table><div class=SRStatus id=Search [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FilesC.html b/doc/apidocs/search/FilesC.html
index f4f5a3c..14f3a41 100644
--- a/doc/apidocs/search/FilesC.html
+++ b/doc/apidocs/search/FilesC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/apidocs/search/FilesO.html b/doc/apidocs/search/FilesO.html
index 1d83f8f..4eccc8f 100644
--- a/doc/apidocs/search/FilesO.html
+++ b/doc/apidocs/search/FilesO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/apidocs/search/FilesS.html b/doc/apidocs/search/FilesS.html
new file mode 100644
index 0000000..fd68300
--- /dev/null
+++ b/doc/apidocs/search/FilesS.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_SingleFile_perjs><div class=IEntry><a href="../files/OpenLayers/SingleFile-js.html#SingleFile.js" target=_parent class=ISymbol>SingleFile.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidocs/search/FilesV.html b/doc/apidocs/search/FilesV.html
index 18b067d..bd6d556 100644
--- a/doc/apidocs/search/FilesV.html
+++ b/doc/apidocs/search/FilesV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/apidocs/search/FunctionsA.html b/doc/apidocs/search/FunctionsA.html
index 16f5e09..2dd1774 100644
--- a/doc/apidocs/search/FunctionsA.html
+++ b/doc/apidocs/search/FunctionsA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_parent class=ISymbol>abort</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.HTTP</span></div></div><div class=SRResult id=SR_activate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_activate')" class=ISymbol>acti [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="javascript:searchResults.Toggle('SR_abort')" class=ISymbol>abort</a><div class=ISubIndex><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_parent class=IParent>OpenLayers.<wbr>Protocol.HTTP</a><a href="../files/OpenLayers/Protocol/Script-js.html#OpenLayers.Protocol.Script.abort" target= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsB.html b/doc/apidocs/search/FunctionsB.html
index 74d0c92..5393b42 100644
--- a/doc/apidocs/search/FunctionsB.html
+++ b/doc/apidocs/search/FunctionsB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_bind><div class=IEntry><a href="javascript:searchResults.Toggle('SR_bind')" class=ISymbol>bind</a><div class=ISubIndex><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.bind" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Function</a><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.Function.bind" target=_pare [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_bind><div class=IEntry><a href="javascript:searchResults.Toggle('SR_bind')" class=ISymbol>bind</a><div class=ISubIndex><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.bind" target=_parent class=IParent>OpenLayers.<wbr>Function</a><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.Function.bind" target=_parent class=IParent>O [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsC.html b/doc/apidocs/search/FunctionsC.html
index 2c48f91..be97577 100644
--- a/doc/apidocs/search/FunctionsC.html
+++ b/doc/apidocs/search/FunctionsC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_calculateBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_calculateBounds')" class=ISymbol>calculateBounds</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry-js.html#OpenLayers.Geometry.calculateBounds" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry</a><a href="../files/OpenLayers/Geometry/Collection-js [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_calculateBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_calculateBounds')" class=ISymbol>calculateBounds</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry-js.html#OpenLayers.Geometry.calculateBounds" target=_parent class=IParent>OpenLayers.<wbr>Geometry</a><a href="../files/OpenLayers/Geometry/Collection-js.html#OpenLayers.G [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsD.html b/doc/apidocs/search/FunctionsD.html
index 19da75f..39a19da 100644
--- a/doc/apidocs/search/FunctionsD.html
+++ b/doc/apidocs/search/FunctionsD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_deactivate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_deactivate')" class=ISymbol>deactivate</a><div class=ISubIndex><a href="../files/OpenLayers/Control/DragFeature-js.html#OpenLayers.Control.DragFeature.deactivate" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragFeature</a><a href="../fil [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_deactivate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_deactivate')" class=ISymbol>deactivate</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.deactivate" target=_parent class=IParent>OpenLayers.<wbr>Control</a><a href="../files/OpenLayers/Control/DragFeature-js.html#OpenLayers.Control.DragFeature.deac [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsE.html b/doc/apidocs/search/FunctionsE.html
index eedf52c..05057b8 100644
--- a/doc/apidocs/search/FunctionsE.html
+++ b/doc/apidocs/search/FunctionsE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_equals><div class=IEntry><a href="javascript:searchResults.Toggle('SR_equals')" class=ISymbol>equals</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Collection-js.html#OpenLayers.Geometry.Collection.equals" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Collection</a><a href="../files/OpenLayers/Ge [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_equals><div class=IEntry><a href="javascript:searchResults.Toggle('SR_equals')" class=ISymbol>equals</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Collection-js.html#OpenLayers.Geometry.Collection.equals" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Collection</a><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geom [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsF.html b/doc/apidocs/search/FunctionsF.html
index 240e1b6..62b7c78 100644
--- a/doc/apidocs/search/FunctionsF.html
+++ b/doc/apidocs/search/FunctionsF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_False><div class=IEntry><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.False" target=_parent class=ISymbol>False</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Function</span></div></div><div class=SRResult id=SR_filter><div class=IEntry><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Array.filter" target=_parent clas [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_False><div class=IEntry><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.False" target=_parent class=ISymbol>False</a>, <span class=IParent>OpenLayers.<wbr>Function</span></div></div><div class=SRResult id=SR_filter><div class=IEntry><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Array.filter" target=_parent class=ISymbol>filter</ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsG.html b/doc/apidocs/search/FunctionsG.html
index 5072452..163cb1c 100644
--- a/doc/apidocs/search/FunctionsG.html
+++ b/doc/apidocs/search/FunctionsG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_GET><div class=IEntry><a href="../files/OpenLayers/Request-js.html#OpenLayers.Request.GET" target=_parent class=ISymbol>GET</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Request</span></div></div><div class=SRResult id=SR_getArea><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getArea')" class=ISymbol>getArea</a><div class=ISubInde [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_GET><div class=IEntry><a href="../files/OpenLayers/Request-js.html#OpenLayers.Request.GET" target=_parent class=ISymbol>GET</a>, <span class=IParent>OpenLayers.<wbr>Request</span></div></div><div class=SRResult id=SR_getArea><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getArea')" class=ISymbol>getArea</a><div class=ISubIndex><a href="../file [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsH.html b/doc/apidocs/search/FunctionsH.html
index 0e5612b..4404713 100644
--- a/doc/apidocs/search/FunctionsH.html
+++ b/doc/apidocs/search/FunctionsH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_hasAttributeNS><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.Format.XML.hasAttributeNS" target=_parent class=ISymbol>hasAttributeNS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.XML</span></div></div><div class=SRResult id=SR_HEAD><div class=IEntry><a href="../files/OpenLayers/Request-js.html#OpenLayers.Reque [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_hasAttributeNS><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.Format.XML.hasAttributeNS" target=_parent class=ISymbol>hasAttributeNS</a>, <span class=IParent>OpenLayers.<wbr>Format.XML</span></div></div><div class=SRResult id=SR_HEAD><div class=IEntry><a href="../files/OpenLayers/Request-js.html#OpenLayers.Request.HEAD" target=_p [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsI.html b/doc/apidocs/search/FunctionsI.html
index 793a7dd..846a628 100644
--- a/doc/apidocs/search/FunctionsI.html
+++ b/doc/apidocs/search/FunctionsI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Lang.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_info><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<wbr>Lang.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_info><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.info" target=_parent class=ISymbol>i [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsL.html b/doc/apidocs/search/FunctionsL.html
index eeb46b6..67f5050 100644
--- a/doc/apidocs/search/FunctionsL.html
+++ b/doc/apidocs/search/FunctionsL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_limitSigDigs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_limitSigDigs')" class=ISymbol>limitSigDigs</a><div class=ISubIndex><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Number.limitSigDigs" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Number</a><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Number.N [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_limitSigDigs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_limitSigDigs')" class=ISymbol>limitSigDigs</a><div class=ISubIndex><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Number.limitSigDigs" target=_parent class=IParent>OpenLayers.<wbr>Number</a><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Number.Number.limitSigDigs [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsM.html b/doc/apidocs/search/FunctionsM.html
index 3cac745..8a44087 100644
--- a/doc/apidocs/search/FunctionsM.html
+++ b/doc/apidocs/search/FunctionsM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mergeNewParams><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mergeNewParams')" class=ISymbol>mergeNewParams</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/ArcGIS93Rest-js.html#OpenLayers.Layer.ArcGIS93Rest.mergeNewParams" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcGIS93Rest</a><a [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mergeNewParams><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mergeNewParams')" class=ISymbol>mergeNewParams</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/ArcGIS93Rest-js.html#OpenLayers.Layer.ArcGIS93Rest.mergeNewParams" target=_parent class=IParent>OpenLayers.<wbr>Layer.<wbr>ArcGIS93Rest</a><a href="../files/OpenLayers/Layer/HTT [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsN.html b/doc/apidocs/search/FunctionsN.html
index ea45412..1f6d7aa 100644
--- a/doc/apidocs/search/FunctionsN.html
+++ b/doc/apidocs/search/FunctionsN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_nextTrigger><div class=IEntry><a href="../files/OpenLayers/Control/NavigationHistory-js.html#OpenLayers.Control.NavigationHistory.nextTrigger" target=_parent class=ISymbol>nextTrigger</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavigationHistory</span></div></div><div class=SRResult id=SR_numericIf><div class=IEnt [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_nextTrigger><div class=IEntry><a href="../files/OpenLayers/Control/NavigationHistory-js.html#OpenLayers.Control.NavigationHistory.nextTrigger" target=_parent class=ISymbol>nextTrigger</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>NavigationHistory</span></div></div><div class=SRResult id=SR_nullTransform><div class=IEntry><a href="../files/OpenLayers/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsO.html b/doc/apidocs/search/FunctionsO.html
index 9079c9d..a5ecf56 100644
--- a/doc/apidocs/search/FunctionsO.html
+++ b/doc/apidocs/search/FunctionsO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Pixel</span></div></div><div class=SRResult id=SR_on><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.on" target=_parent class=ISymb [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>OpenLayers.<wbr>Pixel</span></div></div><div class=SRResult id=SR_on><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.on" target=_parent class=ISymbol>on</a>, <span c [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsP.html b/doc/apidocs/search/FunctionsP.html
index 8481f47..fefef0a 100644
--- a/doc/apidocs/search/FunctionsP.html
+++ b/doc/apidocs/search/FunctionsP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.pageCount" target=_parent class=ISymbol>pageCount</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</span></div></div><div class=SRResult id=SR_pageLength><div class=IEntry><a href="../files/OpenLayers/Str [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.pageCount" target=_parent class=ISymbol>pageCount</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Paging</span></div></div><div class=SRResult id=SR_pageLength><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Stra [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsR.html b/doc/apidocs/search/FunctionsR.html
index fbf76ea..dfedf4f 100644
--- a/doc/apidocs/search/FunctionsR.html
+++ b/doc/apidocs/search/FunctionsR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_raiseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.raiseLayer" target=_parent class=ISymbol>raiseLayer</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_read><div class=IEntry><a href="javascript:searchResults.Toggle('SR_read')" class=ISymbol>read</a><div class=ISubIndex><a href="../files/Ope [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_raiseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.raiseLayer" target=_parent class=ISymbol>raiseLayer</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_read><div class=IEntry><a href="javascript:searchResults.Toggle('SR_read')" class=ISymbol>read</a><div class=ISubIndex><a href="../files/Ope [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsS.html b/doc/apidocs/search/FunctionsS.html
index 984ca44..cc5264e 100644
--- a/doc/apidocs/search/FunctionsS.html
+++ b/doc/apidocs/search/FunctionsS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbol>save</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.Save</span></div></div><div class=SRResult id=SR_setAttributeNS><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.Format.XML.se [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbol>save</a>, <span class=IParent>OpenLayers.<wbr>Strategy.Save</span></div></div><div class=SRResult id=SR_scale><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds.scale" target=_parent class [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsT.html b/doc/apidocs/search/FunctionsT.html
index 1f35e1b..172a59c 100644
--- a/doc/apidocs/search/FunctionsT.html
+++ b/doc/apidocs/search/FunctionsT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_time><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.time" target=_parent class=ISymbol>time</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Console</span></div></div><div class=SRResult id=SR_timeEnd><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.timeEnd" target=_parent class=ISy [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_time><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.time" target=_parent class=ISymbol>time</a>, <span class=IParent>OpenLayers.<wbr>Console</span></div></div><div class=SRResult id=SR_timeEnd><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.timeEnd" target=_parent class=ISymbol>timeEnd</a>,  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsU.html b/doc/apidocs/search/FunctionsU.html
index d548cad..4d4c25c 100644
--- a/doc/apidocs/search/FunctionsU.html
+++ b/doc/apidocs/search/FunctionsU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Events</span></div></div><div class=SRResult id=SR_unregister><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.unregister" target=_parent class=ISymbol> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<wbr>Events</span></div></div><div class=SRResult id=SR_undo><div class=IEntry><a href="../files/OpenLayers/Control/DrawFeature-js.html#OpenLayers.Control.DrawFeature.undo" target=_parent class=ISymbol>undo [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsV.html b/doc/apidocs/search/FunctionsV.html
index b7218ce..3833c23 100644
--- a/doc/apidocs/search/FunctionsV.html
+++ b/doc/apidocs/search/FunctionsV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value2regex><div class=IEntry><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value2regex" target=_parent class=ISymbol>value2regex</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</span></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="../files/OpenL [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value2regex><div class=IEntry><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value2regex" target=_parent class=ISymbol>value2regex</a>, <span class=IParent>OpenLayers.<wbr>Filter.<wbr>Comparison</span></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Element-js.html#Open [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsW.html b/doc/apidocs/search/FunctionsW.html
index 1add4cb..bdb853a 100644
--- a/doc/apidocs/search/FunctionsW.html
+++ b/doc/apidocs/search/FunctionsW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Console</span></div></div><div class=SRResult id=SR_wrapDateLine><div class=IEntry><a href="javascript:searchResults.Toggle('SR_wrapDateLine')" class=ISymbol>wrapDateLine</a>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>OpenLayers.<wbr>Console</span></div></div><div class=SRResult id=SR_wrapDateLine><div class=IEntry><a href="javascript:searchResults.Toggle('SR_wrapDateLine')" class=ISymbol>wrapDateLine</a><div class=ISubInde [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/FunctionsZ.html b/doc/apidocs/search/FunctionsZ.html
index 89825d3..6ae0079 100644
--- a/doc/apidocs/search/FunctionsZ.html
+++ b/doc/apidocs/search/FunctionsZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undORDER_undDRAWING_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER" target=_parent class=ISymbol>Z_ORDER_DRAWING_ORDER</a>, <span class=IParent>OpenLayers.<span class=HB> </span>ElementsIndexer.<span class=HB> </span>IndexingMethods</span></div></div><div cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undORDER_undDRAWING_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER" target=_parent class=ISymbol>Z_ORDER_DRAWING_ORDER</a>, <span class=IParent>OpenLayers.<wbr>ElementsIndexer.<wbr>IndexingMethods</span></div></div><div class=SRResult id=SR_Z_undORDER_undY_un [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralA.html b/doc/apidocs/search/GeneralA.html
index a0227af..0b1c008 100644
--- a/doc/apidocs/search/GeneralA.html
+++ b/doc/apidocs/search/GeneralA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_parent class=ISymbol>abort</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.HTTP</span></div></div><div class=SRResult id=SR_activate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_activate')" class=ISymbol>acti [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="javascript:searchResults.Toggle('SR_abort')" class=ISymbol>abort</a><div class=ISubIndex><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_parent class=IParent>OpenLayers.<wbr>Protocol.HTTP</a><a href="../files/OpenLayers/Protocol/Script-js.html#OpenLayers.Protocol.Script.abort" target= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralB.html b/doc/apidocs/search/GeneralB.html
index 7e3169a..e5aeb68 100644
--- a/doc/apidocs/search/GeneralB.html
+++ b/doc/apidocs/search/GeneralB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX" target=_parent class=ISymbol>BACKGROUND_ID_SUFFIX</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</span></div></div><div class=SRResult id=SR_base><div class= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX" target=_parent class=ISymbol>BACKGROUND_ID_SUFFIX</a>, <span class=IParent>OpenLayers.<wbr>Renderer.<wbr>Elements</span></div></div><div class=SRResult id=SR_base><div class=IEntry><a href="../files/OpenLayers/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralC.html b/doc/apidocs/search/GeneralC.html
index 80f8bc7..016baa9 100644
--- a/doc/apidocs/search/GeneralC.html
+++ b/doc/apidocs/search/GeneralC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_calculateBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_calculateBounds')" class=ISymbol>calculateBounds</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry-js.html#OpenLayers.Geometry.calculateBounds" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry</a><a href="../files/OpenLayers/Geometry/Collection-js [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_calculateBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_calculateBounds')" class=ISymbol>calculateBounds</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry-js.html#OpenLayers.Geometry.calculateBounds" target=_parent class=IParent>OpenLayers.<wbr>Geometry</a><a href="../files/OpenLayers/Geometry/Collection-js.html#OpenLayers.G [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralD.html b/doc/apidocs/search/GeneralD.html
index 7ca6d45..144708a 100644
--- a/doc/apidocs/search/GeneralD.html
+++ b/doc/apidocs/search/GeneralD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_data><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.data" target=_parent class=ISymbol>data</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_databaseName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.databaseName" target= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_data><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.data" target=_parent class=ISymbol>data</a>, <span class=IParent>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_databaseName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.databaseName" target=_parent class=ISym [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralE.html b/doc/apidocs/search/GeneralE.html
index e7f2b72..796058d 100644
--- a/doc/apidocs/search/GeneralE.html
+++ b/doc/apidocs/search/GeneralE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easing><div class=IEntry><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Tween.easing" target=_parent class=ISymbol>easing</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Tween</span></div></div><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers.Control.Split.edge" target=_parent cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easing><div class=IEntry><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Tween.easing" target=_parent class=ISymbol>easing</a>, <span class=IParent>OpenLayers.<wbr>Tween</span></div></div><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers.Control.Split.edge" target=_parent class=ISymbol>edge</a [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralF.html b/doc/apidocs/search/GeneralF.html
index 40f63bd..f366486 100644
--- a/doc/apidocs/search/GeneralF.html
+++ b/doc/apidocs/search/GeneralF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" targ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<wbr>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" target=_parent class=I [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralG.html b/doc/apidocs/search/GeneralG.html
index b37e318..f41cef6 100644
--- a/doc/apidocs/search/GeneralG.html
+++ b/doc/apidocs/search/GeneralG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears.<span class=HB> </span>OpenLayers.<span class=HB> </span>Prot [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears.<wbr>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_geodesic><div class=IEntry><a href="j [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralH.html b/doc/apidocs/search/GeneralH.html
index 1563e74..b284702 100644
--- a/doc/apidocs/search/GeneralH.html
+++ b/doc/apidocs/search/GeneralH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_Handler><div class=IEntry><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.OpenLayers.Handler" target=_parent class=ISymbol>Handler</a>, <s [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_Handler><div class=IEntry><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.OpenLayers.Handler" target=_parent class=ISymbol>Handler</a>, <s [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralI.html b/doc/apidocs/search/GeneralI.html
index 8cde1bc..a734893 100644
--- a/doc/apidocs/search/GeneralI.html
+++ b/doc/apidocs/search/GeneralI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Lang.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_icon><div class=IEntry><a href="../files/OpenLayers/Layer/GeoRSS-js.html#OpenLayers.Lay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<wbr>Lang.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_icon><div class=IEntry><a href="../files/OpenLayers/Layer/GeoRSS-js.html#OpenLayers.Layer.GeoRSS.icon" target=_parent class [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralJ.html b/doc/apidocs/search/GeneralJ.html
index 485c9ca..14b852f 100644
--- a/doc/apidocs/search/GeneralJ.html
+++ b/doc/apidocs/search/GeneralJ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>JSON.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div></table><div class=SRStatus id=S [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>JSON.<wbr>OpenLayers.<wbr>Format</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralK.html b/doc/apidocs/search/GeneralK.html
index 62333e4..58baf90 100644
--- a/doc/apidocs/search/GeneralK.html
+++ b/doc/apidocs/search/GeneralK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult id=SR_KaMap [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>KaMap.<wbr>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_KaMapCache><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralL.html b/doc/apidocs/search/GeneralL.html
index da709a6..d438a8b 100644
--- a/doc/apidocs/search/GeneralL.html
+++ b/doc/apidocs/search/GeneralL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer.Text</span></div></div><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')"  [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer.Text</span></div></div><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')" class=ISymbol>LABE [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralM.html b/doc/apidocs/search/GeneralM.html
index 49eb9f2..adfc9e4 100644
--- a/doc/apidocs/search/GeneralM.html
+++ b/doc/apidocs/search/GeneralM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.map" target=_parent class=ISymbol>map</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult id=SR2_Map><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.OpenLayers.Map" target=_parent class=ISymbol>Map</a>, [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.map" target=_parent class=ISymbol>map</a>, <span class=IParent>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR2_Map><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.OpenLayers.Map" target=_parent class=ISymbol>Map</a>, <span class=IPare [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralN.html b/doc/apidocs/search/GeneralN.html
index cf152f5..6b52d76 100644
--- a/doc/apidocs/search/GeneralN.html
+++ b/doc/apidocs/search/GeneralN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.name" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer</a><a href="../files/OpenLayers/Layer/ArcIMS-js.html#OpenLayers.Layer.ArcIMS.name" target=_parent class=IPa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Function-js.html#OpenLayers.Filter.Function.name" target=_parent class=IParent>OpenLayers.<wbr>Filter.<wbr>Function</a><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.name" target=_parent class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralO.html b/doc/apidocs/search/GeneralO.html
index 6297192..8279c5c 100644
--- a/doc/apidocs/search/GeneralO.html
+++ b/doc/apidocs/search/GeneralO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Pixel</span></div></div><div class=SRResult id=SR_on><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.on" target=_parent class=ISymb [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>OpenLayers.<wbr>Pixel</span></div></div><div class=SRResult id=SR_OGCExceptionReport><div class=IEntry><a href="../files/OpenLayers/Format/OGCExceptionReport-js.html#OpenLayers.Format.OGCExceptionR [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralP.html b/doc/apidocs/search/GeneralP.html
index ea77156..95fdcd3 100644
--- a/doc/apidocs/search/GeneralP.html
+++ b/doc/apidocs/search/GeneralP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.pageCount" target=_parent class=ISymbol>pageCount</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</span></div></div><div class=SRResult id=SR_pageLength><div class=IEntry><a href="../files/OpenLayers/Str [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.pageCount" target=_parent class=ISymbol>pageCount</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Paging</span></div></div><div class=SRResult id=SR_pageLength><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Stra [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralQ.html b/doc/apidocs/search/GeneralQ.html
index f6c03b4..4f3f63e 100644
--- a/doc/apidocs/search/GeneralQ.html
+++ b/doc/apidocs/search/GeneralQ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible><div class=IEntry><a href="../files/OpenLayers/Control/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralR.html b/doc/apidocs/search/GeneralR.html
index 95c1287..4801137 100644
--- a/doc/apidocs/search/GeneralR.html
+++ b/doc/apidocs/search/GeneralR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</span></div></div><div class=SRResult id=SR_raiseLayer><div class=IEntry><a href="../files/Op [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</span></div></div><div class=SRResult id=SR_raiseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralS.html b/doc/apidocs/search/GeneralS.html
index 75a2a28..a1463a8 100644
--- a/doc/apidocs/search/GeneralS.html
+++ b/doc/apidocs/search/GeneralS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbol>save</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.Save</span></div></div><div class=SRResult id=SR2_Save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.OpenL [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbol>save</a>, <span class=IParent>OpenLayers.<wbr>Strategy.Save</span></div></div><div class=SRResult id=SR2_Save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.OpenLayers.Strategy.Sav [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralT.html b/doc/apidocs/search/GeneralT.html
index a283316..b62d487 100644
--- a/doc/apidocs/search/GeneralT.html
+++ b/doc/apidocs/search/GeneralT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.SQL</span></div></div><div class=SRResult id=SR_targetFilter><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_TARGET_undNODE><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTr [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralU.html b/doc/apidocs/search/GeneralU.html
index 36865bf..fe9fda2 100644
--- a/doc/apidocs/search/GeneralU.html
+++ b/doc/apidocs/search/GeneralU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Events</span></div></div><div class=SRResult id=SR_units><div class=IEntry><a href="javascript:searchResults.Toggle('SR_units')" class=ISymbol>units</a><div class=ISubIndex><a href=". [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<wbr>Events</span></div></div><div class=SRResult id=SR_undo><div class=IEntry><a href="../files/OpenLayers/Control/DrawFeature-js.html#OpenLayers.Control.DrawFeature.undo" target=_parent class=ISymbol>undo [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralV.html b/doc/apidocs/search/GeneralV.html
index ea5bc43..eca788f 100644
--- a/doc/apidocs/search/GeneralV.html
+++ b/doc/apidocs/search/GeneralV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1.<span class=HB> </span>OpenLa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1.<wbr>OpenLayers.<wbr>Format.<wbr>OWSContext</span></div></div><div class=SRResult i [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralW.html b/doc/apidocs/search/GeneralW.html
index 668fc4b..fad884f 100644
--- a/doc/apidocs/search/GeneralW.html
+++ b/doc/apidocs/search/GeneralW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>Op [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>Op [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralX.html b/doc/apidocs/search/GeneralX.html
index 59693e3..c08f2f9 100644
--- a/doc/apidocs/search/GeneralX.html
+++ b/doc/apidocs/search/GeneralX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pi [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.x" target=_parent class=IParent> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralY.html b/doc/apidocs/search/GeneralY.html
index 070fc50..3088f2f 100644
--- a/doc/apidocs/search/GeneralY.html
+++ b/doc/apidocs/search/GeneralY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pi [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.y" target=_parent class=IParent> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/GeneralZ.html b/doc/apidocs/search/GeneralZ.html
index 1d0738e..9a5aa43 100644
--- a/doc/apidocs/search/GeneralZ.html
+++ b/doc/apidocs/search/GeneralZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undINDEX_undBASE><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.Z_INDEX_BASE" target=_parent class=ISymbol>Z_INDEX_BASE</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_Z_undORDER_undDRAWING_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndex [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undINDEX_undBASE><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.Z_INDEX_BASE" target=_parent class=ISymbol>Z_INDEX_BASE</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_Z_undORDER_undDRAWING_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndex [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/NoResults.html b/doc/apidocs/search/NoResults.html
index 947d3b5..8c72496 100644
--- a/doc/apidocs/search/NoResults.html
+++ b/doc/apidocs/search/NoResults.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/apidocs/search/PropertiesA.html b/doc/apidocs/search/PropertiesA.html
index 9f71776..bbdaa72 100644
--- a/doc/apidocs/search/PropertiesA.html
+++ b/doc/apidocs/search/PropertiesA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_allOverlays><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.allOverlays" target=_parent class=ISymbol>allOverlays</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_alwaysInRange><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.alwaysInRange" target=_parent class=ISymbol>a [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_active><div class=IEntry><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.active" target=_parent class=ISymbol>active</a>, <span class=IParent>OpenLayers.<wbr>Control</span></div></div><div class=SRResult id=SR_allOverlays><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.allOverlays" target=_parent class=ISymbol>allOver [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesB.html b/doc/apidocs/search/PropertiesB.html
index 1ee4872..28fdd50 100644
--- a/doc/apidocs/search/PropertiesB.html
+++ b/doc/apidocs/search/PropertiesB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_base><div class=IEntry><a href="../files/OpenLayers/Control/Permalink-js.html#OpenLayers.Control.Permalink.base" target=_parent class=ISymbol>base</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Permalink</span></div></div><div class=SRResult id=SR_baseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#O [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_base><div class=IEntry><a href="../files/OpenLayers/Control/Permalink-js.html#OpenLayers.Control.Permalink.base" target=_parent class=ISymbol>base</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Permalink</span></div></div><div class=SRResult id=SR_baseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.baseLayer" target=_par [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesC.html b/doc/apidocs/search/PropertiesC.html
index 26d1103..2c94bfc 100644
--- a/doc/apidocs/search/PropertiesC.html
+++ b/doc/apidocs/search/PropertiesC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_callbacks><div class=IEntry><a href="javascript:searchResults.Toggle('SR_callbacks')" class=ISymbol>callbacks</a><div class=ISubIndex><a href="../files/OpenLayers/Control/SelectFeature-js.html#OpenLayers.Control.SelectFeature.callbacks" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SelectFeature</a><a href="../f [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_callback><div class=IEntry><a href="../files/OpenLayers/Protocol/Script-js.html#OpenLayers.Protocol.Script.callback" target=_parent class=ISymbol>callback</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>Script</span></div></div><div class=SRResult id=SR_callbackKey><div class=IEntry><a href="../files/OpenLayers/Protocol/Script-js.html#OpenLayers.Protoc [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesD.html b/doc/apidocs/search/PropertiesD.html
index ea360c2..7d2906c 100644
--- a/doc/apidocs/search/PropertiesD.html
+++ b/doc/apidocs/search/PropertiesD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_data><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.data" target=_parent class=ISymbol>data</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_databaseName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.databaseName" target= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_data><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.data" target=_parent class=ISymbol>data</a>, <span class=IParent>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_databaseName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.databaseName" target=_parent class=ISym [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesE.html b/doc/apidocs/search/PropertiesE.html
index 0993821..503705e 100644
--- a/doc/apidocs/search/PropertiesE.html
+++ b/doc/apidocs/search/PropertiesE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easing><div class=IEntry><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Tween.easing" target=_parent class=ISymbol>easing</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Tween</span></div></div><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers.Control.Split.edge" target=_parent cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easing><div class=IEntry><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Tween.easing" target=_parent class=ISymbol>easing</a>, <span class=IParent>OpenLayers.<wbr>Tween</span></div></div><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers.Control.Split.edge" target=_parent class=ISymbol>edge</a [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesF.html b/doc/apidocs/search/PropertiesF.html
index 2f15cc6..d77e838 100644
--- a/doc/apidocs/search/PropertiesF.html
+++ b/doc/apidocs/search/PropertiesF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" targ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<wbr>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" target=_parent class=I [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesG.html b/doc/apidocs/search/PropertiesG.html
index 92eb064..7d33962 100644
--- a/doc/apidocs/search/PropertiesG.html
+++ b/doc/apidocs/search/PropertiesG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geodesic><div class=IEntry><a href="javascript:searchResults.Toggle('SR_geodesic')" class=ISymbol>geodesic</a><div class=ISubIndex><a href="../files/OpenLayers/Control/Scale-js.html#OpenLayers.Control.Scale.geodesic" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Scale</a><a href="../files/OpenLayers/Control/Scal [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geodesic><div class=IEntry><a href="javascript:searchResults.Toggle('SR_geodesic')" class=ISymbol>geodesic</a><div class=ISubIndex><a href="../files/OpenLayers/Control/Scale-js.html#OpenLayers.Control.Scale.geodesic" target=_parent class=IParent>OpenLayers.<wbr>Control.<wbr>Scale</a><a href="../files/OpenLayers/Control/ScaleLine-js.html#OpenLayers.Control.Sca [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesH.html b/doc/apidocs/search/PropertiesH.html
index 3f4980b..09731ef 100644
--- a/doc/apidocs/search/PropertiesH.html
+++ b/doc/apidocs/search/PropertiesH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_handleRightClicks><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.handleRightClicks" target=_paren [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_handleRightClicks><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.handleRightClicks" target=_paren [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesI.html b/doc/apidocs/search/PropertiesI.html
index 242e6dd..3237e7b 100644
--- a/doc/apidocs/search/PropertiesI.html
+++ b/doc/apidocs/search/PropertiesI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_icon><div class=IEntry><a href="../files/OpenLayers/Layer/GeoRSS-js.html#OpenLayers.Layer.GeoRSS.icon" target=_parent class=ISymbol>icon</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>GeoRSS</span></div></div><div class=SRResult id=SR_id><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.id"  [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_icon><div class=IEntry><a href="../files/OpenLayers/Layer/GeoRSS-js.html#OpenLayers.Layer.GeoRSS.icon" target=_parent class=ISymbol>icon</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>GeoRSS</span></div></div><div class=SRResult id=SR_id><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.id" target=_parent class=ISymbol>id</a>, [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesK.html b/doc/apidocs/search/PropertiesK.html
index bf57649..ba26de8 100644
--- a/doc/apidocs/search/PropertiesK.html
+++ b/doc/apidocs/search/PropertiesK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keepData><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.keepData" target=_parent class=ISymbol>keepData</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_keepInMap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_keepInMap')" class=ISymbol>keepInMap</a>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keepData><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.keepData" target=_parent class=ISymbol>keepData</a>, <span class=IParent>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_keepInMap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_keepInMap')" class=ISymbol>keepInMap</a><div class=ISubInde [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesL.html b/doc/apidocs/search/PropertiesL.html
index c369bf2..fac72c8 100644
--- a/doc/apidocs/search/PropertiesL.html
+++ b/doc/apidocs/search/PropertiesL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer.Text</span></div></div><div class=SRResult id=SR_labelFormat><div class=IEntry><a href="../files/OpenLayers/Control/Graticule-js.html#OpenLayers. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer.Text</span></div></div><div class=SRResult id=SR_labelFormat><div class=IEntry><a href="../files/OpenLayers/Control/Graticule-js.html#OpenLayers.Control.Graticule. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesM.html b/doc/apidocs/search/PropertiesM.html
index 964b80f..6cbb3b4 100644
--- a/doc/apidocs/search/PropertiesM.html
+++ b/doc/apidocs/search/PropertiesM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.map" target=_parent class=ISymbol>map</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult id=SR_mapOptions><div class=IEntry><a href="../files/OpenLayers/Control/OverviewMap-js.html#OpenLayers.Control.OverviewMap.mapOptions" tar [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.map" target=_parent class=ISymbol>map</a>, <span class=IParent>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_mapOptions><div class=IEntry><a href="../files/OpenLayers/Control/OverviewMap-js.html#OpenLayers.Control.OverviewMap.mapOptions" target=_parent class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesN.html b/doc/apidocs/search/PropertiesN.html
index eab7f69..31e1ac1 100644
--- a/doc/apidocs/search/PropertiesN.html
+++ b/doc/apidocs/search/PropertiesN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.name" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer</a><a href="../files/OpenLayers/Layer/ArcIMS-js.html#OpenLayers.Layer.ArcIMS.name" target=_parent class=IPa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Function-js.html#OpenLayers.Filter.Function.name" target=_parent class=IParent>OpenLayers.<wbr>Filter.<wbr>Function</a><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.name" target=_parent class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesO.html b/doc/apidocs/search/PropertiesO.html
index 161272e..4dcb1e6 100644
--- a/doc/apidocs/search/PropertiesO.html
+++ b/doc/apidocs/search/PropertiesO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_onComplete><div class=IEntry><a href="../files/OpenLayers/Control/DragFeature-js.html#OpenLayers.Control.DragFeature.onComplete" target=_parent class=ISymbol>onComplete</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragFeature</span></div></div><div class=SRResult id=SR_onDrag><div class=IEntry><a href="../files/Ope [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_onComplete><div class=IEntry><a href="../files/OpenLayers/Control/DragFeature-js.html#OpenLayers.Control.DragFeature.onComplete" target=_parent class=ISymbol>onComplete</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>DragFeature</span></div></div><div class=SRResult id=SR_onDrag><div class=IEntry><a href="../files/OpenLayers/Control/DragFeature-js.html# [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesP.html b/doc/apidocs/search/PropertiesP.html
index a39c72e..c2b403b 100644
--- a/doc/apidocs/search/PropertiesP.html
+++ b/doc/apidocs/search/PropertiesP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_panMapIfOutOfView><div class=IEntry><a href="javascript:searchResults.Toggle('SR_panMapIfOutOfView')" class=ISymbol>panMapIfOutOfView</a><div class=ISubIndex><a href="../files/OpenLayers/Popup-js.html#OpenLayers.Popup.panMapIfOutOfView" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Popup</a><a href="../files/OpenLayers/Popup/FramedCloud-js.ht [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_panIcons><div class=IEntry><a href="../files/OpenLayers/Control/PanZoomBar-js.html#OpenLayers.Control.PanZoomBar.panIcons" target=_parent class=ISymbol>panIcons</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>PanZoomBar</span></div></div><div class=SRResult id=SR_panMapIfOutOfView><div class=IEntry><a href="javascript:searchResults.Toggle('SR_panMapIfOu [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesQ.html b/doc/apidocs/search/PropertiesQ.html
index f6c03b4..4f3f63e 100644
--- a/doc/apidocs/search/PropertiesQ.html
+++ b/doc/apidocs/search/PropertiesQ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible><div class=IEntry><a href="../files/OpenLayers/Control/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesR.html b/doc/apidocs/search/PropertiesR.html
index 86d7813..6d13e73 100644
--- a/doc/apidocs/search/PropertiesR.html
+++ b/doc/apidocs/search/PropertiesR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</span></div></div><div class=SRResult id=SR_ratio><div class=IEntry><a href="javascript:searc [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</span></div></div><div class=SRResult id=SR_ratio><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ratio')" class=I [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesS.html b/doc/apidocs/search/PropertiesS.html
index c7785bb..d5015ff 100644
--- a/doc/apidocs/search/PropertiesS.html
+++ b/doc/apidocs/search/PropertiesS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_saveState><div class=IEntry><a href="../files/OpenLayers/Control/Panel-js.html#OpenLayers.Control.Panel.saveState" target=_parent class=ISymbol>saveState</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Panel</span></div></div><div class=SRResult id=SR_scale><div class=IEntry><a href="../files/OpenLayers/Control/Transf [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_saveState><div class=IEntry><a href="../files/OpenLayers/Control/Panel-js.html#OpenLayers.Control.Panel.saveState" target=_parent class=ISymbol>saveState</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Panel</span></div></div><div class=SRResult id=SR_scale><div class=IEntry><a href="../files/OpenLayers/Control/TransformFeature-js.html#OpenLayers.Contro [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesT.html b/doc/apidocs/search/PropertiesT.html
index 7541539..dbe0874 100644
--- a/doc/apidocs/search/PropertiesT.html
+++ b/doc/apidocs/search/PropertiesT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.SQL</span></div></div><div class=SRResult id=SR_targetFilter><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_targetFilter><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers.Control.Split.targ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesU.html b/doc/apidocs/search/PropertiesU.html
index d5ef61b..40f360e 100644
--- a/doc/apidocs/search/PropertiesU.html
+++ b/doc/apidocs/search/PropertiesU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_units><div class=IEntry><a href="javascript:searchResults.Toggle('SR_units')" class=ISymbol>units</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.units" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer</a><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.units" target=_parent class= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_units><div class=IEntry><a href="javascript:searchResults.Toggle('SR_units')" class=ISymbol>units</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.units" target=_parent class=IParent>OpenLayers.<wbr>Layer</a><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.units" target=_parent class=IParent>OpenLayers [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesV.html b/doc/apidocs/search/PropertiesV.html
index e444d2f..4ee24cf 100644
--- a/doc/apidocs/search/PropertiesV.html
+++ b/doc/apidocs/search/PropertiesV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value><div class=IEntry><a href="javascript:searchResults.Toggle('SR_value')" class=ISymbol>value</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</a><a href="../files/OpenLayers/Filter/Spati [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value><div class=IEntry><a href="javascript:searchResults.Toggle('SR_value')" class=ISymbol>value</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value" target=_parent class=IParent>OpenLayers.<wbr>Filter.<wbr>Comparison</a><a href="../files/OpenLayers/Filter/Spatial-js.html#OpenLayers.Filter.Spatial [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesW.html b/doc/apidocs/search/PropertiesW.html
index 59f4716..53cb037 100644
--- a/doc/apidocs/search/PropertiesW.html
+++ b/doc/apidocs/search/PropertiesW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_wfsCache><div class=IEntry><a href="../files/OpenLayers/Control/SLDSelect-js.html#OpenLayers.Control.SLDSelect.wfsCache" target=_parent class=ISymbol>wfsC [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_watch><div class=IEntry><a href="../files/OpenLayers/Control/Geolocate-js.html#OpenLayers.Control.Geolocate.watch" target=_parent class=ISymbol>watch</a>, [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesX.html b/doc/apidocs/search/PropertiesX.html
index c4c2271..61da1bf 100644
--- a/doc/apidocs/search/PropertiesX.html
+++ b/doc/apidocs/search/PropertiesX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pi [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.x" target=_parent class=IParent> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesY.html b/doc/apidocs/search/PropertiesY.html
index 1ba286d..61b2f3c 100644
--- a/doc/apidocs/search/PropertiesY.html
+++ b/doc/apidocs/search/PropertiesY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pi [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/BaseTypes/Pixel-js.html#OpenLayers.Pixel.y" target=_parent class=IParent> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/search/PropertiesZ.html b/doc/apidocs/search/PropertiesZ.html
index b5325be..fc81e9f 100644
--- a/doc/apidocs/search/PropertiesZ.html
+++ b/doc/apidocs/search/PropertiesZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zIndex><div class=IEntry><a href="../files/OpenLayers/Symbolizer-js.html#OpenLayers.Symbolizer.zIndex" target=_parent class=ISymbol>zIndex</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer</span></div></div><div class=SRResult id=SR_zoomBoxEnabled><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zIndex><div class=IEntry><a href="../files/OpenLayers/Symbolizer-js.html#OpenLayers.Symbolizer.zIndex" target=_parent class=ISymbol>zIndex</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer</span></div></div><div class=SRResult id=SR_zoomBoxEnabled><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.zoomBox [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/apidocs/styles/1.css b/doc/apidocs/styles/1.css
index 9ea166f..1832d8f 100644
--- a/doc/apidocs/styles/1.css
+++ b/doc/apidocs/styles/1.css
@@ -10,12 +10,17 @@
    directory, the changes will automatically be applied to all your projects
    that use this style the next time Natural Docs is run on them.
 
-   This file is part of Natural Docs, which is Copyright (C) 2003-2005 Greg Valure
-   Natural Docs is licensed under the GPL
+   This file is part of Natural Docs, which is Copyright � 2003-2010 Greg Valure.
+   Natural Docs is licensed under version 3 of the GNU Affero General Public
+   License (AGPL).  Refer to License.txt for the complete details.
+
+   This file may be distributed with documentation files generated by Natural Docs.
+   Such documentation is not covered by Natural Docs' copyright and licensing,
+   and may have its own copyright and distribution terms as decided by its author.
 */
 
 body {
-    font: 10pt Verdana, Arial, sans-serif;
+    font: 8pt Verdana, Arial, sans-serif;
     color: #000000;
     margin: 0; padding: 0;
     }
@@ -53,11 +58,10 @@ p {
     text-indent: 5ex; margin: 0 }
 
 
-/*  Can't use something like display: none or it won't break.  */
-.HB {
-    font-size: 1px;
-    visibility: hidden;
-    }
+/*  Opera doesn't break with just wbr, but will if you add this.  */
+.Opera wbr:after {
+	content: "\00200B";
+	}
 
 /*  Blockquotes are used as containers for things that may need to scroll.  */
 blockquote {
@@ -84,7 +88,7 @@ blockquote {
 
 
 #Menu {
-    font-size: 9pt;
+    font-size: 8pt;
     padding: 10px 0 0 0;
     }
 .ContentPage #Menu,
@@ -175,7 +179,7 @@ blockquote {
 
 
     #MSearchField {
-        font: italic 9pt Verdana, sans-serif;
+        font: italic 8pt Verdana, sans-serif;
         color: #606060;
         background-color: #E8E8E8;
         border: none;
@@ -277,7 +281,7 @@ blockquote {
     border-style: solid;
     border-color: #000000;
     background-color: #FFFFFF;
-    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
+    font-size: 8pt;  /* To make 31ex match the menu's 31ex. */
     margin-left: 31ex;
     }
 .ContentPage .Firefox #Content {
@@ -287,13 +291,13 @@ blockquote {
 
 
     .CTopic {
-        font-size: 10pt;
+        font-size: 8pt;
         margin-bottom: 3em;
         }
 
 
     .CTitle {
-        font-size: 12pt; font-weight: bold;
+        font-size: 11pt; font-weight: bold;
         border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
         margin: 0 15px .5em 15px }
 
@@ -347,13 +351,18 @@ blockquote {
         }
 
     .CHeading {
-        font-weight: bold; font-size: 10pt;
+        font-weight: bold; font-size: 9pt;
         margin: 1.5em 0 .5em 0;
         }
 
     .CBody pre {
-        font: 10pt "Courier New", Courier, monospace;
-        margin: 1em 0;
+        font: 8pt "Courier New", Courier, monospace;
+	    background-color: #FCFCFC;
+	    margin: 1em 35px;
+	    padding: 10px 15px 10px 10px;
+	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
+	    border-width: 1px 1px 1px 6px;
+	    border-style: dashed dashed dashed solid;
         }
 
     .CBody ul {
@@ -367,12 +376,12 @@ blockquote {
         margin: .5em 5ex 0 5ex }
 
         .CDLEntry {
-            font: 10pt "Courier New", Courier, monospace; color: #808080;
+            font: 8pt "Courier New", Courier, monospace; color: #808080;
             padding-bottom: .25em;
             white-space: nowrap }
 
         .CDLDescription {
-            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
+            font-size: 8pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
             padding-bottom: .5em; padding-left: 5ex }
 
 
@@ -403,14 +412,14 @@ blockquote {
 
 
 .Prototype {
-    font: 10pt "Courier New", Courier, monospace;
+    font: 8pt "Courier New", Courier, monospace;
     padding: 5px 3ex;
     border-width: 1px; border-style: solid;
     margin: 0 5ex 1.5em 5ex;
     }
 
     .Prototype td {
-        font-size: 10pt;
+        font-size: 8pt;
         }
 
     .PDefaultValue,
@@ -436,12 +445,20 @@ blockquote {
     .CVariable .Prototype {
         background-color: #FFFFF0; border-color: #E0E0A0 }
 
+    .CClass .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        background-color: #F4F4F4;
+        }
+    .CInterface .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+        background-color: #F4F4FF;
+        }
+
     .CDatabaseIndex .Prototype,
     .CConstant .Prototype {
         background-color: #D0D0D0; border-color: #000000 }
     .CType .Prototype,
-    .CClass .Prototype,
-    .CInterface .Prototype {
+    .CEnumeration .Prototype {
         background-color: #FAF0F0; border-color: #E0B0B0;
         }
     .CDatabaseTrigger .Prototype,
@@ -462,7 +479,7 @@ blockquote {
     margin: 1.5em 5ex 0 5ex }
 
     .STitle {
-        font-size: 12pt; font-weight: bold;
+        font-size: 11pt; font-weight: bold;
         margin-bottom: .5em }
 
 
@@ -483,7 +500,7 @@ blockquote {
 
 
     .STable {
-        font-size: 9pt; width: 100% }
+        font-size: 8pt; width: 100% }
 
     .SEntry {
         width: 30% }
@@ -559,7 +576,7 @@ blockquote {
         border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
         margin-bottom: 3px;
         padding: 2px 2ex;
-        font-size: 10pt;
+        font-size: 8pt;
         background-color: #F4F4F4; color: #606060;
         }
 
@@ -610,7 +627,7 @@ blockquote {
     border-width: 0 0 1px 1px;
     border-style: solid;
     border-color: #000000;
-    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
+    font-size: 8pt;  /* To make 27ex match the menu's 27ex. */
     margin-left: 27ex;
     }
 
@@ -627,7 +644,6 @@ blockquote {
         }
 
     .INavigationBar {
-        font-size: 10pt;
         text-align: center;
         background-color: #FFFFF0;
         padding: 5px;
@@ -639,7 +655,7 @@ blockquote {
         font-weight: bold }
 
     .IHeading {
-        font-size: 16pt; font-weight: bold;
+        font-size: 14pt; font-weight: bold;
         padding: 2.5em 0 .5em 0;
         text-align: center;
         width: 3.5ex;
@@ -649,7 +665,6 @@ blockquote {
         }
 
     .IEntry {
-        font-size: 10pt;
         padding-left: 1ex;
         }
     .PopupSearchResultsPage .IEntry {
@@ -677,7 +692,6 @@ blockquote {
 
     .IndexPage .ISymbolPrefix,
     .FramedIndexPage .ISymbolPrefix {
-        font-size: 10pt;
         text-align: right;
         color: #C47C7C;
         background-color: #F8F8F8;
@@ -718,7 +732,7 @@ blockquote {
         font-style: italic;
         }
     .FramedSearchResultsPage .SRStatus {
-        font-size: 10pt;
+        font-size: 8pt;
         font-style: italic;
         }
 
@@ -757,3 +771,54 @@ blockquote {
     #Footer a:visited { color: #989898 }
     #Footer a:active { color: #A00000 }
 
+
+
+.prettyprint .kwd { color: #800000; }  /* keywords */
+
+    .prettyprint.PDefaultValue .kwd,
+    .prettyprint.PDefaultValuePrefix .kwd,
+    .prettyprint.PTypePrefix .kwd {
+        color: #C88F8F;
+        }
+
+.prettyprint .com { color: #008000; }  /* comments */
+
+    .prettyprint.PDefaultValue .com,
+    .prettyprint.PDefaultValuePrefix .com,
+    .prettyprint.PTypePrefix .com {
+        color: #8FC88F;
+        }
+
+.prettyprint .str { color: #0000B0; }  /* strings */
+.prettyprint .lit { color: #0000B0; }  /* literals */
+
+    .prettyprint.PDefaultValue .str,
+    .prettyprint.PDefaultValuePrefix .str,
+    .prettyprint.PTypePrefix .str,
+    .prettyprint.PDefaultValue .lit,
+    .prettyprint.PDefaultValuePrefix .lit,
+    .prettyprint.PTypePrefix .lit {
+        color: #8F8FC0;
+        }
+
+.prettyprint .typ { color: #000000; }  /* types */
+.prettyprint .pun { color: #000000; }  /* punctuation */
+.prettyprint .pln { color: #000000; }  /* punctuation */
+
+    .prettyprint.PDefaultValue .typ,
+    .prettyprint.PDefaultValuePrefix .typ,
+    .prettyprint.PTypePrefix .typ,
+    .prettyprint.PDefaultValue .pun,
+    .prettyprint.PDefaultValuePrefix .pun,
+    .prettyprint.PTypePrefix .pun,
+    .prettyprint.PDefaultValue .pln,
+    .prettyprint.PDefaultValuePrefix .pln,
+    .prettyprint.PTypePrefix .pln {
+        color: #8F8F8F;
+        }
+
+.prettyprint .tag { color: #008; }
+.prettyprint .atn { color: #606; }
+.prettyprint .atv { color: #080; }
+.prettyprint .dec { color: #606; }
+
diff --git a/doc/authors.txt b/doc/authors.txt
index 45206fd..dfcd9ff 100644
--- a/doc/authors.txt
+++ b/doc/authors.txt
@@ -1,8 +1,11 @@
 OpenLayers contributors:
 
+Antoine Abt
 Mike Adair
 Jeff Adams
 Seb Benthall
+Bruno Binet
+Stéphane Brunner
 Howard Butler
 Bertil Chaupis                                                               
 John Cole
@@ -15,8 +18,11 @@ Christian López Espínola
 John Frank
 Sean Gilles
 Pierre Giraud
+Ivan Grcic
 Andreas Hocevar
+Marc Jansen
 Ian Johnson
+Frédéric Junod
 Eric Lemoine
 Philip Lindsay
 Martijn van Oosterhout
diff --git a/doc/devdocs/files/OpenLayers-js.html b/doc/devdocs/files/OpenLayers-js.html
index 88fdd68..6cf8d4d 100644
--- a/doc/devdocs/files/OpenLayers-js.html
+++ b/doc/devdocs/files/OpenLayers-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers"></a>OpenLayers</h1><div class=CBody><p>The OpenLayers object provides a namespace for all things OpenLayers</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers" >OpenLayers</a></td><td class=SDescription>The OpenLayers object provi [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Properties"></a>Properties</h3></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers._scriptName"></a>_scriptName</h3><div class=CBody><p>{String} Relative path of this script.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers"></a>OpenLayers</h1><div class=CBody><p>The OpenLayers object provides a namespace for all things OpenLayers</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers" >OpenLayers</a></td><td class=SDescription>The OpenLayers object provi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers._getScriptLocation"></a>_getScriptLocation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>_getScriptLocation: function ()</td></tr></table></blockquote><p>Return the path to this script.</p><h4 class=CHeading>Returns</h4><p>{String} Path to this script</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers._getScriptLocation"></a>_getScriptLocation</h3><div class=CBody><p>Return the path to this script.  This is also implemented in OpenLayers/SingleFile.js</p><h4 class=CHeading>Returns</h4><p>{String} Path to this script</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Constants"></a>Constants</h3></div></div>
 
@@ -31,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile id=MSelected>OpenLayers</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile> [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile id=MSelected>OpenLayers</div></div><div class=MEntry><div class=MFile><a href="OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Ba [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>_getScriptLocation: function ()</td></tr></table></blockquote>Return the path to this script.</div></div><!--END_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Ajax-js.html b/doc/devdocs/files/OpenLayers/Ajax-js.html
index 67bb0a0..f93a813 100644
--- a/doc/devdocs/files/OpenLayers/Ajax-js.html
+++ b/doc/devdocs/files/OpenLayers/Ajax-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Ajax.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Ajax.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,29 +11,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Ajax.js"></a>Ajax.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Ajax.js" >Ajax.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td>< [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Ajax.js"></a>Ajax.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Ajax.js" >Ajax.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.nullHandler"></a>OpenLayers.<span class=HB> </span>nullHandler</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.nullHandler = function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>@ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.nullHandler"></a>OpenLayers.<wbr>nullHandler</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.nullHandler = function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.loadURL"></a>OpenLayers.<span class=HB> </span>loadURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.loadURL = function(</td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>params,</td></tr><tr><td></td><td class=PParameter nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.loadURL"></a>OpenLayers.<wbr>loadURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.loadURL = function(</td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params,</td></tr><tr><td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.parseXMLString"></a>OpenLayers.<span class=HB> </span>parseXMLString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.parseXMLString = function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.parseXMLString"></a>OpenLayers.<wbr>parseXMLString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.parseXMLString = function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
 <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax"></a>OpenLayers.Ajax</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#OpenLayers.Ajax.emptyFunction" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.emptyFunction"></a>emptyFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>emptyFunction: function ()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.emptyFunction"></a>emptyFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">emptyFunction: function ()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.getTransport"></a>getTransport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getTransport: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} Transport mechanism for whichever browser we’re in, or false if none available.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.getTransport"></a>getTransport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTransport: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} Transport mechanism for whichever browser we’re in, or false if none available.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.activeRequestCount"></a>activeRequestCount</h3><div class=CBody><p>{Integer}</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Responders"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Responders</h2><div class=CBody><p>{Object}</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Responders.Properties" >Properties</a></td><td class=SDescription></td></tr> [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Responders"></a>OpenLayers.<wbr>Ajax.<wbr>Responders</h2><div class=CBody><p>{Object}</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Responders.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarke [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.Properties"></a>Properties</h3></div></div>
 
@@ -41,23 +41,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>register: function(</td><td class=PParameter nowrap>responderToAdd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>register: function(</td><td class="PParameter  prettyprint " nowrap>responderToAdd</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unregister: function(</td><td class=PParameter nowrap>responderToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unregister: function(</td><td class="PParameter  prettyprint " nowrap>responderToRemove</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.dispatch"></a>dispatch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dispatch: function(</td><td class=PParameter nowrap>callback,</td></tr><tr><td></td><td class=PParameter nowrap>request,</td></tr><tr><td></td><td class=PParameter nowrap>transport</td><td cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.dispatch"></a>dispatch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dispatch: function(</td><td class="PParameter  prettyprint " nowrap>callback,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>request,</td></tr><tr><td></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.onCreate"></a>onCreate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onCreate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.onCreate"></a>onCreate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onCreate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.onComplete"></a>onComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onComplete: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Responders.onComplete"></a>onComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onComplete: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Base"></a>OpenLayers.<span class=HB> </span>Ajax.Base</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Base.Constructor" >Constructor</a></td><td class=SDescription></td></tr><tr class="SConstructor SIndent1 SMarked"><td class=SE [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Base"></a>OpenLayers.<wbr>Ajax.Base</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Base.Constructor" >Constructor</a></td><td class=SDescription></td></tr><tr class="SConstructor SIndent1 SMarked"><td class=SEntry><a href="#Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Base.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Base.OpenLayers.Ajax.Base"></a>OpenLayers.<span class=HB> </span>Ajax.Base</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Base.OpenLayers.Ajax.Base"></a>OpenLayers.<wbr>Ajax.Base</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Request"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Request</h2><div class=CBody><p><b>Deprecated</b>.   Use <a href="Request-js.html#OpenLayers.Request" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt22', 'link41')" onMouseOut="HideTip('tt22')">OpenLayers.Request</a> method instead.</p><h4 class=CHeading>Inherit</h4><ul><li><a href="#OpenLayers.Ajax.Base" class=LClass >Open [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Request"></a>OpenLayers.<wbr>Ajax.<wbr>Request</h2><div class=CBody><p><b>Deprecated</b>.   Use <a href="Request-js.html#OpenLayers.Request" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt24', 'link41')" onMouseOut="HideTip('tt24')">OpenLayers.Request</a> method instead.</p><h4 class=CHeading>Inherit</h4><ul><li><a href="#OpenLayers.Ajax.Base" class=LClass >OpenLayers.Ajax.Base</a></li></ul><!--ST [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.Properties"></a>Properties</h3></div></div>
 
@@ -65,31 +65,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.OpenLayers.Ajax.Request"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Request</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.OpenLayers.Ajax.Request"></a>OpenLayers.<wbr>Ajax.<wbr>Request</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>request: function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>request: function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.onStateChange"></a>onStateChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onStateChange: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.onStateChange"></a>onStateChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onStateChange: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.setRequestHeaders"></a>setRequestHeaders</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setRequestHeaders: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.setRequestHeaders"></a>setRequestHeaders</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setRequestHeaders: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.success"></a>success</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>success: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} -</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.success"></a>success</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">success: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} -</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.getStatus"></a>getStatus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getStatus: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Integer}</td><td class=CDLDescription>Status</td></tr></table></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.getStatus"></a>getStatus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getStatus: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Integer}</td><td class=CDLDescription>Status</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.respondToReadyState"></a>respondToReadyState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>respondToReadyState: function(</td><td class=PParameter nowrap>readyState</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.respondToReadyState"></a>respondToReadyState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>respondToReadyState: function(</td><td class="PParameter  prettyprint " nowrap>readyState</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.getHeader"></a>getHeader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getHeader: function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table borde [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.getHeader"></a>getHeader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getHeader: function(</td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.dispatchException"></a>dispatchException</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dispatchException: function(</td><td class=PParameter nowrap>exception</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>If the optiona [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.dispatchException"></a>dispatchException</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dispatchException: function(</td><td class="PParameter  prettyprint " nowrap>exception</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Request.Events"></a>Events</h3><div class=CBody><p>{Array(String)}</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Response"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Response</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Response.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty  [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Ajax.Response"></a>OpenLayers.<wbr>Ajax.<wbr>Response</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Ajax.Response.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.Properties"></a>Properties</h3></div></div>
 
@@ -99,7 +99,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.OpenLayers.Ajax.Response"></a>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>request</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.OpenLayers.Ajax.Response"></a>OpenLayers.<wbr>Ajax.<wbr>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>request</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.Functions"></a>Functions</h3></div></div>
 
@@ -109,11 +109,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.getHeader"></a>getHeader</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.getResponseHeader"></a>getResponseHeader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getResponseHeader: function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Re [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.getResponseHeader"></a>getResponseHeader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getResponseHeader: function(</td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.getElementsByTagNameNS"></a>getElementsByTagNameNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Ajax.getElementsByTagNameNS = function(</td><td class=PParameter nowrap>parentnode,</td></tr><tr><td></td><td class=PParameter nowrap>nsuri,</td></tr><tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.getElementsByTagNameNS"></a>getElementsByTagNameNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Ajax.getElementsByTagNameNS = function(</td><td class="PParameter  prettyprint " nowrap>parentnode,</td></tr><tr><td></td><td class="PPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.serializeXMLToString"></a>serializeXMLToString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Ajax.serializeXMLToString = function(</td><td class=PParameter nowrap>xmldom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bloc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Ajax.Response.serializeXMLToString"></a>serializeXMLToString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Ajax.serializeXMLToString = function(</td><td class="PParameter  prettyprint " nowrap>xmldom</td><td class="PAfterParameters  prettyprint "no [...]
 
 </div><!--Content-->
 
@@ -121,15 +121,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile id=MSelected>Ajax</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Base [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.nullHandler = function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>@param {} request</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspaci [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.nullHandler = function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>@param {} request</div></div><div class=CToolTip id="tt2"><div class [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes-js.html b/doc/devdocs/files/OpenLayers/BaseTypes-js.html
index f445b25..8f89c60 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers Base Types - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers Base Types - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script langua [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,46 +11,46 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers_Base_Types"></a>OpenLayers Base Types</h1><div class=CBody><p>OpenLayers custom string, number and function functions are described here.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers_Base_Types" >OpenLayers Base Types</a></td> [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers_Base_Types"></a>OpenLayers Base Types</h1><div class=CBody><p>OpenLayers custom string, number and function functions are described here.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers_Base_Types" >OpenLayers Base Types</a></td> [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.String"></a>OpenLayers.<span class=HB> </span>String</h2><div class=CBody><p>Contains convenience functions for string manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.String.Functions" >Functions</a></td><td class=SDescription></td></tr><tr c [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.String"></a>OpenLayers.<wbr>String</h2><div class=CBody><p>Contains convenience functions for string manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.String.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SI [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.startsWith"></a>startsWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>startsWith: function(</td><td class=PParameter nowrap>str,</td></tr><tr><td></td><td class=PParameter nowrap>sub</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.startsWith"></a>startsWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>startsWith: function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sub</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contains: function(</td><td class=PParameter nowrap>str,</td></tr><tr><td></td><td class=PParameter nowrap>sub</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contains: function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sub</td><td class="PAfterParameters  prettyp [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.trim"></a>trim</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>trim: function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes leading and trailing whitespace characters from a string. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.trim"></a>trim</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>trim: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes leading a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.camelize"></a>camelize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>camelize: function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Camel-case a hyphenated string.  Ex.  &ldqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.camelize"></a>camelize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>camelize: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Camel [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>format: function(</td><td class=PParameter nowrap>template,</td></tr><tr><td></td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>args</td><td class=PAfterParameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>format: function(</td><td class="PParameter  prettyprint " nowrap>template,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PPa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.OpenLayers.String.tokenRegEx"></a>OpenLayers.<span class=HB> </span>String.<span class=HB> </span>tokenRegEx</h3><div class=CBody><p>Used to find tokens in a string.  Examples: ${a}, ${a.b.c}, ${a-b}, ${5}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.tokenRegEx"></a>tokenRegEx</h3><div class=CBody><p>Used to find tokens in a string.  Examples: ${a}, ${a.b.c}, ${a-b}, ${5}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.OpenLayers.String.numberRegEx"></a>OpenLayers.<span class=HB> </span>String.<span class=HB> </span>numberRegEx</h3><div class=CBody><p>Used to test strings as numbers.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.numberRegEx"></a>numberRegEx</h3><div class=CBody><p>Used to test strings as numbers.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.OpenLayers.String.isNumeric"></a>OpenLayers.<span class=HB> </span>String.<span class=HB> </span>isNumeric</h3><div class=CBody><p>Determine whether a string contains only a numeric value.</p><h4 class=CHeading>Examples</h4><blockquote><pre>OpenLayers.String.isNumeric("6.02e23") // true
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.isNumeric"></a>isNumeric</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isNumeric: function(</td><td class="PParameter  prettyprint " nowrap>value</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 OpenLayers.String.isNumeric("12 dozen") // false
 OpenLayers.String.isNumeric("4") // true
 OpenLayers.String.isNumeric(" 4 ") // false</pre></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} String contains only a number.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.numericIf"></a>numericIf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>numericIf: function(</td><td class=PParameter nowrap>value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts a string that appears to be a numeric v [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.numericIf"></a>numericIf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>numericIf: function(</td><td class="PParameter  prettyprint " nowrap>value</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.startsWith"></a>String.<span class=HB> </span>startsWith</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string starts with another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sStart</td><td class=CDLDescription>{Sring} The string we’re testing for.</td></tr></table><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.startsWith"></a>String.<wbr>startsWith</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string starts with another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sStart</td><td class=CDLDescription>{String} The string we’re testing for.</td></tr></table><h4 class=CHeading>Returns</h4><p>{ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.contains"></a>String.<span class=HB> </span>contains</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string contains another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>{String} The string that we’re testing for.</td></tr></table><h4 class=CHeading>Ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.contains"></a>String.<wbr>contains</h3><div class=CBody><p><b>Deprecated</b>.  Whether or not a string contains another string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>{String} The string that we’re testing for.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Boole [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.trim"></a>String.trim</h3><div class=CBody><p><b>Deprecated</b>.  Removes leading and trailing whitespace characters from a string.</p><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{String} A trimmed version of the string</td><td class=CDLDescription>all leading and trailing spaces removed</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.camelize"></a>String.<span class=HB> </span>camelize</h3><div class=CBody><p><b>Deprecated</b>.  Camel-case a hyphenated string.  Ex.  “chicken-head” becomes “chickenHead”, and “-chicken-head” becomes “ChickenHead”.</p><h4 class=CHeading>Returns</h4><p>{String} The string, camelized</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.String.String.camelize"></a>String.<wbr>camelize</h3><div class=CBody><p><b>Deprecated</b>.  Camel-case a hyphenated string.  Ex.  “chicken-head” becomes “chickenHead”, and “-chicken-head” becomes “ChickenHead”.</p><h4 class=CHeading>Returns</h4><p>{String} The string, camelized</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Number"></a>OpenLayers.<span class=HB> </span>Number</h2><div class=CBody><p>Contains convenience functions for manipulating numbers.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Number.Properties" >Properties</a></td><td class=SDescription></td></tr><t [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Number"></a>OpenLayers.<wbr>Number</h2><div class=CBody><p>Contains convenience functions for manipulating numbers.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Number.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Properties"></a>Properties</h3></div></div>
 
@@ -60,41 +60,35 @@ OpenLayers.String.isNumeric(" 4 ") // false</pre></blockquote><h4 clas
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.limitSigDigs"></a>limitSigDigs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>limitSigDigs: function(</td><td class=PParameter nowrap>num,</td></tr><tr><td></td><td class=PParameter nowrap>sig</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.limitSigDigs"></a>limitSigDigs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>limitSigDigs: function(</td><td class="PParameter  prettyprint " nowrap>num,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sig</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>format: function(</td><td class=PParameter nowrap>num,</td></tr><tr><td></td><td class=PParameter nowrap>dec,</td></tr><tr><td></td><td class=PParameter nowrap>tsep,</td></tr><tr><td></td><td class=PParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>format: function(</td><td class="PParameter  prettyprint " nowrap>num,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dec,</td></tr><tr><td></td><td class="PParameter   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Number.limitSigDigs"></a>Number.<span class=HB> </span>limitSigDigs</h3><div class=CBody><p><b>Deprecated</b>.  Limit the number of significant digits on an integer.  Does <b>not</b> work with floats!</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sig</td><td class=CDLDescription>{Integer}</td></tr></table><h4 class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Number.Number.limitSigDigs"></a>Number.<wbr>limitSigDigs</h3><div class=CBody><p><b>Deprecated</b>.  Limit the number of significant digits on an integer.  Does <b>not</b> work with floats!</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sig</td><td class=CDLDescription>{Integer}</td></tr></table><h4 class=CHeading>Returns< [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Function"></a>OpenLayers.<span class=HB> </span>Function</h2><div class=CBody><p>Contains convenience functions for function manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Function.Functions" >Functions</a></td><td class=SDescription></td></ [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Function"></a>OpenLayers.<wbr>Function</h2><div class=CBody><p>Contains convenience functions for function manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Function.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFun [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bind"></a>bind</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>bind: function(</td><td class=PParameter nowrap>func,</td></tr><tr><td></td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Bind [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bind"></a>bind</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>bind: function(</td><td class="PParameter  prettyprint " nowrap>func,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint " [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bindAsEventListener"></a>bindAsEventListener</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>bindAsEventListener: function(</td><td class=PParameter nowrap>func,</td></tr><tr><td></td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.bindAsEventListener"></a>bindAsEventListener</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>bindAsEventListener: function(</td><td class="PParameter  prettyprint " nowrap>func,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>object</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.False"></a>False</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>False : function()</td></tr></table></blockquote><p>A simple function to that just does “return false”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>Usage</h4><p>document.o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.False"></a>False</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">False : function()</td></tr></table></blockquote><p>A simple function to that just does “return false”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>U [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.True"></a>True</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>True : function()</td></tr></table></blockquote><p>A simple function to that just does “return true”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>Usage</h4><p>document.oncli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.True"></a>True</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">True : function()</td></tr></table></blockquote><p>A simple function to that just does “return true”.  We use this to avoid attaching anonymous functions to DOM event handlers, which causes “issues” on IE<8.</p><h4 class=CHeading>Usage [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Void"></a>Void</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">Void: function()</td></tr></table></blockquote><p>A reusable function that returns ``undefined``.</p><h4 class=CHeading>Returns</h4><p>{undefined}</p></div></div></div>
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Function.bind"></a>Function.bind</h3><div class=CBody><p><b>Deprecated</b>.  Bind a function to an object.  Method to easily create closures with ‘this’ altered.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} the this parameter</td></tr></table><h4 class=CHe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Function.bindAsEventListener"></a>Function.<span class=HB> </span>bindAsEventListener</h3><div class=CBody><p><b>Deprecated</b>.  Bind a function to an object, and configure it to receive the event object as first parameter when called.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Function.Function.bindAsEventListener"></a>Function.<wbr>bindAsEventListener</h3><div class=CBody><p><b>Deprecated</b>.  Bind a function to an object, and configure it to receive the event object as first parameter when called.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} A referen [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Array"></a>OpenLayers.<span class=HB> </span>Array</h2><div class=CBody><p>Contains convenience functions for array manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Array.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Array"></a>OpenLayers.<wbr>Array</h2><div class=CBody><p>Contains convenience functions for array manipulation.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Array.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SInden [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Array.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Array.filter"></a>filter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>filter: function(</td><td class=PParameter nowrap>array,</td></tr><tr><td></td><td class=PParameter nowrap>callback,</td></tr><tr><td></td><td class=PParameter nowrap>caller</td><td class=PAfterParameters  [...]
-
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Date"></a>OpenLayers.Date</h2><div class=CBody><p>Contains implementations of Date.parse and date.toISOString that match the ECMAScript 5 specification for parsing RFC 3339 dates.  <a href="http://tools.ietf.org/html/rfc3339" class=LURL target=_top>http://tools.ietf.org/html/rfc3339</a></p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.Functions"></a>Functions</h3></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.toISOString"></a>toISOString</h3><div class=CBody><p>Generates a string representing a date.   The format of the string follows the profile of ISO 8601 for date and time on the Internet <img mode="link" target="
url target=”http://tools.ietf.org/html/rfc3339” name=”http://tools.ietf.org/html/rfc3339”>” original=”(see <url target=”http://tools.ietf.org/html/rfc [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.parse"></a>parse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parse: function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate a date object from a string.   The format for the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Array.filter"></a>filter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>filter: function(</td><td class="PParameter  prettyprint " nowrap>array,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>callback,</td></tr><tr><td></td><td class="PParam [...]
 
 </div><!--Content-->
 
@@ -102,15 +96,15 @@ OpenLayers.String.isNumeric(" 4 ") // false</pre></blockquote><h4 clas
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>startsWith: function(</td><td class=PParameter nowrap>str,</td></tr><tr><td></td><td class=PParameter nowrap>sub</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Test whether a string starts with another string.</div></div><div class=CToolT [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>startsWith: function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sub</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Test whether a [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/Bounds-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/Bounds-js.html
index 57cf45c..112e664 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes/Bounds-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/Bounds-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Bounds - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Bounds - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scrip [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,10 +11,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Bounds"></a>OpenLayers.<span class=HB> </span>Bounds</h1><div class=CBody><p>Instances of this class represent bounding boxes.   Data stored as left, bottom, right, top floats.  All values are initialized to null, however, you should make sure you set them before using the bounds for anything.</p><h4 class=CHeading>Possible use case</h4><blockquote><pre>bounds = new OpenLayer [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Bounds"></a>OpenLayers.<wbr>Bounds</h1><div class=CBody><p>Instances of this class represent bounding boxes.   Data stored as left, bottom, right, top floats.  All values are initialized to null, however, you should make sure you set them before using the bounds for anything.</p><h4 class=CHeading>Possible use case</h4><blockquote><pre class="prettyprint">bounds = new OpenLay [...]
 bounds.extend(new OpenLayers.LonLat(4,5));
 bounds.extend(new OpenLayers.LonLat(5,6));
-bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Bounds" >OpenLayers.<span class=HB> </span>Bounds</a></td><td class=SDescription>Instances of this class represent bounding boxes. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Bounds.Properties" >Proper [...]
+bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Bounds" >OpenLayers.<wbr>Bounds</a></td><td class=SDescription>Instances of this class represent bounding boxes. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Bounds.Properties" >Properties</a></td><td c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.Properties"></a>Properties</h3></div></div>
 
@@ -30,61 +30,61 @@ bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><di
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.OpenLayers.Bounds"></a>OpenLayers.<span class=HB> </span>Bounds</h3><div class=CBody><p>Construct a new bounds object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>left</td><td class=CDLDescription>{Number} The left bounds of the box.   Note that for width calculations, this is assumed to be less than the right valu [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.OpenLayers.Bounds"></a>OpenLayers.<wbr>Bounds</h3><div class=CBody><p>Construct a new bounds object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>left</td><td class=CDLDescription>{Number} The left bounds of the box.   Note that for width calculations, this is assumed to be less than the right value.</td></tr><tr><t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><p>Create a cloned instance of this bounds.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Bounds.OpenLayers.Bounds" class=LConstructor id=link33 onMouseOver="ShowTip(event, 'tt30', 'link33')" onMouseOut="HideTip('tt30')">OpenLaye [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><p>Create a cloned instance of this bounds.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Bounds.OpenLayers.Bounds" class=LConstructor id=link33 onMouseOver="ShowTip(event, 'tt30', 'link33')" onMouseOut="Hid [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test a two bounds for equivalence.</p><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test a tw [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String representation of bounds object.  (ex.<i>”left-bottom=(5,42) right-top=(10,45)”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String representation of bounds object.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toArray"></a>toArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toArray: function(</td><td class=PParameter nowrap>reverseAxisOrder</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table borde [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toArray"></a>toArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toArray: function(</td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toBBOX"></a>toBBOX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toBBOX:function(</td><td class=PParameter nowrap>decimal,</td></tr><tr><td></td><td class=PParameter nowrap>reverseAxisOrder</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toBBOX"></a>toBBOX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toBBOX:function(</td><td class="PParameter  prettyprint " nowrap>decimal,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toGeometry"></a>toGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toGeometry: function()</td></tr></table></blockquote><p>Create a new polygon geometry based on this bounds.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt31', 'link35' [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.toGeometry"></a>toGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toGeometry: function()</td></tr></table></blockquote><p>Create a new polygon geometry based on this bounds.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link35 onMouseOver="ShowTip(e [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getWidth"></a>getWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWidth:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The width of the bounds</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getWidth"></a>getWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWidth:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The width of the bounds</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getHeight:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The height of the bounds (top minus bottom).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getHeight:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The height of the bounds (top minus bottom).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSize:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Size-js.html#OpenLayers.Size" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt11', 'link36')" onMouseOut="HideTip('tt11')">OpenLayers.Size</a>} The size of the box.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSize:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Size-js.html#OpenLayers.Size" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt11', 'link36')" onMouseOut="HideTip('tt11')">OpenLayers.Size</a>} The size of the box. [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterPixel"></a>getCenterPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCenterPixel:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Pixel-js.html#OpenLayers.Pixel" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt13', 'link37')" onMouseOut="HideTip('tt13')">OpenLayers.Pixel</a>} The center of the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterPixel"></a>getCenterPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCenterPixel:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Pixel-js.html#OpenLayers.Pixel" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt13', 'link37')" onMouseOut="HideTip('tt13')">OpenLayers.Pixel</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterLonLat"></a>getCenterLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCenterLonLat:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="LonLat-js.html#OpenLayers.LonLat" class=LClass id=link38 onMouseOver="ShowTip(event, 'tt1', 'link38')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} The center of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.getCenterLonLat"></a>getCenterLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCenterLonLat:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="LonLat-js.html#OpenLayers.LonLat" class=LClass id=link38 onMouseOver="ShowTip(event, 'tt1', 'link38')" onMouseOut="HideTip('tt1')">OpenLayers.LonL [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.scale"></a>scale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>scale: function(</td><td class=PParameter nowrap>ratio,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.scale"></a>scale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>scale: function(</td><td class="PParameter  prettyprint " nowrap>ratio,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParameters  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>add:function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>add:function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.extend"></a>extend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>extend:function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend the bounds to include the point, lonlat, or bounds [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.extend"></a>extend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extend:function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend th [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsLonLat"></a>containsLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsLonLat:function(</td><td class=PParameter nowrap>ll,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsLonLat"></a>containsLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsLonLat:function(</td><td class="PParameter  prettyprint " nowrap>ll,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>inclusive</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsPixel"></a>containsPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsPixel:function(</td><td class=PParameter nowrap>px,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsPixel"></a>containsPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsPixel:function(</td><td class="PParameter  prettyprint " nowrap>px,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>inclusive</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contains:function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contains:function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.intersectsBounds"></a>intersectsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersectsBounds:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.intersectsBounds"></a>intersectsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersectsBounds:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>inclusive</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsBounds"></a>containsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsBounds:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>partial,</td></tr><tr><td></td><td class=PParameter nowrap>inclusive</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.containsBounds"></a>containsBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsBounds:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>partial,</td></tr><tr><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.determineQuadrant"></a>determineQuadrant</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>determineQuadrant: function(</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.determineQuadrant"></a>determineQuadrant</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>determineQuadrant: function(</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wrapDateLine: function(</td><td class=PParameter nowrap>maxExtent,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wrapDateLine: function(</td><td class="PParameter  prettyprint " nowrap>maxExtent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromString"></a>fromString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.fromString = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromString"></a>fromString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.fromString = function(</td><td class="PParameter  prettyprint " nowrap>str,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromArray"></a>fromArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.fromArray = function(</td><td class=PParameter nowrap>bbox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromArray"></a>fromArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.fromArray = function(</td><td class="PParameter  prettyprint " nowrap>bbox,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reverseAxisOrder</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromSize"></a>fromSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.fromSize = function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that buil [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.fromSize"></a>fromSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.fromSize = function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.oppositeQuadrant"></a>oppositeQuadrant</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Bounds.oppositeQuadrant = function(</td><td class=PParameter nowrap>quadrant</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Bounds.oppositeQuadrant"></a>oppositeQuadrant</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Bounds.oppositeQuadrant = function(</td><td class="PParameter  prettyprint " nowrap>quadrant</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
 </div><!--Content-->
 
@@ -92,15 +92,15 @@ bounds.toBBOX(); // returns 4,5,5,6</pre></blockquote><!--START_ND_SUMMARY--><di
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote>Create a cloned instance of this bounds.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspa [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote>Create a cloned instance of this bounds.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/Class-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/Class-js.html
index 800503b..2ce5726 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes/Class-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/Class-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Class.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><b [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Class.js"></a>Class.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Class.js" >Class.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constructor" >Constructor</a></td><td class=SDescriptio [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Class.js"></a>Class.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Class.js" >Class.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constructor" >Constructor</a></td><td class=SDescriptio [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Class"></a>OpenLayers.<span class=HB> </span>Class</h3><div class=CBody><p>Base class used to construct all other classes.  Includes support for multiple inheritance.</p><p>This constructor is new in OpenLayers 2.5.   At OpenLayers 3.0, the old syntax for creating classes and dealing with inheritance will be removed.</p><h4 class=CHeading>To create a new OpenLayers-style class, use the following sy [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Class"></a>OpenLayers.<wbr>Class</h3><div class=CBody><p>Base class used to construct all other classes.  Includes support for multiple inheritance.</p><p>This constructor is new in OpenLayers 2.5.   At OpenLayers 3.0, the old syntax for creating classes and dealing with inheritance will be removed.</p><h4 class=CHeading>To create a new OpenLayers-style class, use the following syntax</h4><blockquo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
 
@@ -23,9 +23,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.create"></a>OpenLayers.<span class=HB> </span>create</h3><div class=CBody><p><b>Deprecated</b>.   Old method to create an OpenLayers style class.   Use the <a href="#OpenLayers.Class" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Class</a> constructor instead.</p><h4 class=CHeading>Returns</h4><p>An OpenLayers class</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.create"></a>OpenLayers.<wbr>create</h3><div class=CBody><p><b>Deprecated</b>.   Old method to create an OpenLayers style class.   Use the <a href="#OpenLayers.Class" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Class</a> constructor instead.</p><h4 class=CHeading>Returns</h4><p>An OpenLayers class</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="inherit"></a>inherit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Class.inherit = function ()</td></tr></table></blockquote><p><b>Deprecated</b>.   Old method to inherit from one or more OpenLayers style classes.   Use the <a href="#OpenLayers.Class" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="inherit"></a>inherit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Class.inherit = function (</td><td class="PParameter  prettyprint " nowrap>P</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprec [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.inherit"></a>OpenLayers.<wbr>inherit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.inherit = function(</td><td class="PParameter  prettyprint " nowrap>C,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>P</td><td class="PAfterParam [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="extend"></a>extend</h3><div class=CBody><p>Copy all properties of a source object to a destination object.   Modifies the passed in destination object.   Any properties on the source object that are set to undefined will not be (re)set on the destination object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>destination</td><td class [...]
 
 </div><!--Content-->
 
@@ -33,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Class.inherit = function ()</td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="tt2"><div class=CConstructor>Base class used to construct all other classes. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Class.inherit = function (</td><td class="PParameter  prettyprint " nowrap>P</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="tt2"><div class= [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/Date-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/Date-js.html
new file mode 100644
index 0000000..336bd63
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/Date-js.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Date - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script  [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Date"></a>OpenLayers.Date</h1><div class=CBody><p>Contains implementations of Date.parse and date.toISOString that match the ECMAScript 5 specification for parsing RFC 3339 dates.  <a href="http://tools.ietf.org/html/rfc3339" class=LURL target=_top>http://tools.ietf.org/html/rfc3339</a></p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.toISOString"></a>toISOString</h3><div class=CBody><p>Generates a string representing a date.   The format of the string follows the profile of ISO 8601 for date and time on the Internet <img mode="link" target="
url target=”http://tools.ietf.org/html/rfc3339” name=”http://tools.ietf.org/html/rfc3339”>” original=”(see <url target=”http://tools.ietf.org/html/rfc [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Date.parse"></a>parse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parse: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate a date  [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parse: function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Generate a date object from a string. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/Element-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/Element-js.html
index f95c5b4..0ed5b0c 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes/Element-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/Element-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Element - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Element - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,33 +11,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Element"></a>OpenLayers.<span class=HB> </span>Element</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Element" >OpenLayers.<span class=HB> </span>Element</a></td><td class=SDescription></td></tr><tr class="SGr [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Element"></a>OpenLayers.<wbr>Element</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Element" >OpenLayers.<wbr>Element</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a hr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>visible: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>visible: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.toggle"></a>toggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toggle: function()</td></tr></table></blockquote><p>Toggle the visibility of element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement} Actually us [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.toggle"></a>toggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toggle: function()</td></tr></table></blockquote><p>Toggle the visibility of element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{D [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>hide: function()</td></tr></table></blockquote><p>Hide element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement} Actually user can pass any number of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">hide: function()</td></tr></table></blockquote><p><b>Deprecated</b>.  Hide element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Show element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement} Actually user can pass any number of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p><b>Deprecated</b>.  Show element(s) passed in</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>remove: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove the specified element from the DOM.</p><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>remove: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getHeight: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getHeight"></a>getHeight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getHeight: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getDimensions"></a>getDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getDimensions: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprecated</b>.  Returns  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getDimensions"></a>getDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getDimensions: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.hasClass"></a>hasClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>hasClass: function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.hasClass"></a>hasClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>hasClass: function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.addClass"></a>addClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addClass: function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.addClass"></a>addClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addClass: function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.removeClass"></a>removeClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeClass: function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.removeClass"></a>removeClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeClass: function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.toggleClass"></a>toggleClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toggleClass: function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.toggleClass"></a>toggleClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toggleClass: function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getStyle: function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Element.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getStyle: function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterParameters   [...]
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>visible: function(</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototyp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>visible: function(</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bor [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/LonLat-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/LonLat-js.html
index 5d0e900..7b59722 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes/LonLat-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/LonLat-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.LonLat - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.LonLat - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scrip [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.LonLat"></a>OpenLayers.<span class=HB> </span>LonLat</h1><div class=CBody><p>This class represents a longitude and latitude pair</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.LonLat" >OpenLayers.<span class=HB> </span>LonLat</ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.LonLat"></a>OpenLayers.<wbr>LonLat</h1><div class=CBody><p>This class represents a longitude and latitude pair</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.LonLat" >OpenLayers.<wbr>LonLat</a></td><td class=SDescription>This c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.Properties"></a>Properties</h3></div></div>
 
@@ -21,25 +21,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.OpenLayers.LonLat"></a>OpenLayers.<span class=HB> </span>LonLat</h3><div class=CBody><p>Create a new map location.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lon</td><td class=CDLDescription>{Number} The x-axis coordinate in map units.   If your map is in a geographic projection, this will be the Longitude.   [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.OpenLayers.LonLat"></a>OpenLayers.<wbr>LonLat</h3><div class=CBody><p>Create a new map location.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lon</td><td class=CDLDescription>{Number} The x-axis coordinate in map units.   If your map is in a geographic projection, this will be the Longitude.   Otherwise, it wil [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote><p>Return a readable string version of the lonlat</p><h4 class=CHeading>Returns</h4><p>{String} String representation of OpenLayers.LonLat object.  (ex.  <i>”lon=5,lat=42”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote><p>Return a readable string version of the lonlat</p><h4 class=CHeading>Returns</h4><p>{String} String representation of OpenLayers.LonLat object.  (e.g.  <i>”lon=5,lat=42”</i>) [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.toShortString"></a>toShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toShortString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} Shortened String representation of OpenLayers.LonLat object.  (ex.  <i>”5, 42”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.toShortString"></a>toShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toShortString:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} Shortened String representation of OpenLayers.LonLat object.  (e.g.  <i>”5, 42”</i>)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.LonLat.OpenLayers.LonLat" class=LConstructor id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">OpenLayers.LonLat</a>} New OpenLayers.LonLat object with  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.LonLat.OpenLayers.LonLat" class=LConstructor id=link13 onMouseOver="ShowTip(event, 'tt4', 'link13')" onMouseOut="HideTip('tt4')">OpenLayers.LonLat</a>} New OpenLaye [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>add:function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>add:function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>lat</td><td class="PAfterParameters  prettyprint "nowrap>)</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>ll</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>ll</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wrapDateLine: function(</td><td class=PParameter nowrap>maxExtent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wrapDateLine: function(</td><td class="PParameter  prettyprint " nowrap>maxExtent</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.fromString"></a>fromString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.LonLat.fromString = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Alternative constructor that [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.fromString"></a>fromString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.LonLat.fromString = function(</td><td class="PParameter  prettyprint " nowrap>str</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.LonLat.fromArray"></a>fromArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.LonLat.fromArray = function(</td><td class="PParameter  prettyprint " nowrap>arr</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
 </div><!--Content-->
 
@@ -47,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote>Return a readable string version of the lonlat</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toShortString:function()</td></tr></table></blockquote>{String} Shortened String representation of OpenLayers.LonLat object. [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote>Return a readable string version of the lonlat</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toShortString:function()</td></tr></table></blockquote>{String} Shortened String [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/Pixel-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/Pixel-js.html
index 1b8d1fa..a6cc970 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes/Pixel-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/Pixel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Pixel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Pixel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Pixel"></a>OpenLayers.<span class=HB> </span>Pixel</h1><div class=CBody><p>This class represents a screen coordinate, in x and y coordinates</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Pixel" >OpenLayers.<span class=HB> </sp [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Pixel"></a>OpenLayers.<wbr>Pixel</h1><div class=CBody><p>This class represents a screen coordinate, in x and y coordinates</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Pixel" >OpenLayers.<wbr>Pixel</a></td><td class=SDescript [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.Properties"></a>Properties</h3></div></div>
 
@@ -21,19 +21,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.OpenLayers.Pixel"></a>OpenLayers.<span class=HB> </span>Pixel</h3><div class=CBody><p>Create a new OpenLayers.Pixel instance</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{Number} The x coordinate</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{Number} The y coordinate</td></t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.OpenLayers.Pixel"></a>OpenLayers.<wbr>Pixel</h3><div class=CBody><p>Create a new OpenLayers.Pixel instance</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{Number} The x coordinate</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{Number} The y coordinate</td></tr></table><h4 clas [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote><p>Cast this object into a string</p><h4 class=CHeading>Returns</h4><p>{String} The string representation of Pixel. ex: “x=200.4,y=242.2”</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote><p>Cast this object into a string</p><h4 class=CHeading>Returns</h4><p>{String} The string representation of Pixel. ex: “x=200.4,y=242.2”</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><p>Return a clone of this pixel object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Pixel.OpenLayers.Pixel" class=LConstructor id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">OpenLayers.Pixel</a> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><p>Return a clone of this pixel object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Pixel.OpenLayers.Pixel" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7') [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether one pixel is equivalent to another</p><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>add:function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Re [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.offset"></a>offset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>offset:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parameters px - {<a href="#OpenLayers.Pixel.OpenLayers.Pixel"  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>add:function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Pixel.offset"></a>offset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>offset:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parameters px  [...]
 
 </div><!--Content-->
 
@@ -41,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote>Cast this object into a string</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote>Return a clone of this pixel object</div></div><div class=CToolTip id="tt3"><div class=CFunct [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote>Cast this object into a string</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote>Return a clone of this pixel object</div></div><d [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/BaseTypes/Size-js.html b/doc/devdocs/files/OpenLayers/BaseTypes/Size-js.html
index 1b9ccbc..216a824 100644
--- a/doc/devdocs/files/OpenLayers/BaseTypes/Size-js.html
+++ b/doc/devdocs/files/OpenLayers/BaseTypes/Size-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Size - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Size - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script  [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -25,11 +25,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote><p>Return the string representation of a size object</p><h4 class=CHeading>Returns</h4><p>{String} The string representation of OpenLayers.Size object.  (ex.  <i>”w=55,h=66”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote><p>Return the string representation of a size object</p><h4 class=CHeading>Returns</h4><p>{String} The string representation of OpenLayers.Size object.  (e.g.  <i>”w=55,h=66”</i>) [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote><p>Create a clone of this size object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Size.OpenLayers.Size" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Size</a>} A n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote><p>Create a clone of this size object</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Size.OpenLayers.Size" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">Op [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals:function(</td><td class=PParameter nowrap>sz</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine where this size is equal to another</p><h4 class=CHea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Size.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals:function(</td><td class="PParameter  prettyprint " nowrap>sz</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine where [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([1, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([1, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString:function()</td></tr></table></blockquote>Return the string representation of a size object</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone:function()</td></tr></table></blockquote>Create a clone of this size object</div></div><div class=CToolTip id="tt3" [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString:function()</td></tr></table></blockquote>Return the string representation of a size object</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone:function()</td></tr></table></blockquote>Create a clone of this size ob [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Console-js.html b/doc/devdocs/files/OpenLayers/Console-js.html
index f4ebf73..d5316c7 100644
--- a/doc/devdocs/files/OpenLayers/Console-js.html
+++ b/doc/devdocs/files/OpenLayers/Console-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Console - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Console - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,43 +11,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Console"></a>OpenLayers.<span class=HB> </span>Console</h1><div class=CBody><p>The OpenLayers.Console namespace is used for debugging and error logging.  If the Firebug Lite (../Firebug/firebug.js) is included before this script, calls to OpenLayers.Console methods will get redirected to window.console.  This makes use of the Firebug extension where available and allows for c [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Console"></a>OpenLayers.<wbr>Console</h1><div class=CBody><p>The OpenLayers.Console namespace is used for debugging and error logging.  If the Firebug Lite (../Firebug/firebug.js) is included before this script, calls to OpenLayers.Console methods will get redirected to window.console.  This makes use of the Firebug extension where available and allows for cross-browser debug [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.log"></a>log</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>log: function()</td></tr></table></blockquote><p>Log an object in the console.   The Firebug Lite console logs string representation of objects.   Given multiple arguments, they will be cast to strings and logged with a space delimiter.   If the first argument is a string with [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.log"></a>log</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">log: function()</td></tr></table></blockquote><p>Log an object in the console.   The Firebug Lite console logs string representation of objects.   Given multiple arguments, they will be cast to strings and logged with a space delimiter.   If the first arg [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.debug"></a>debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>debug: function()</td></tr></table></blockquote><p>Writes a message to the console, including a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.debug"></a>debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">debug: function()</td></tr></table></blockquote><p>Writes a message to the console, including a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Parameters</h4><table borde [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.info"></a>info</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>info: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “info” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.info"></a>info</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">info: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “info” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.warn"></a>warn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>warn: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.warn"></a>warn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">warn: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log(). [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.error"></a>error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>error: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “error” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.error"></a>error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">error: function()</td></tr></table></blockquote><p>Writes a message to the console with the visual “error” icon and color coding and a hyperlink to the line where it was called.</p><p>May be called with multiple arguments as with OpenLayers.Console.log() [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.userError"></a>userError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>userError: function(</td><td class=PParameter nowrap>error</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>A single interface for showing error messages t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.userError"></a>userError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>userError: function(</td><td class="PParameter  prettyprint " nowrap>error</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.assert"></a>assert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>assert: function()</td></tr></table></blockquote><p>Tests that an expression is true.  If not, it will write a message to the console and throw an exception.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.assert"></a>assert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">assert: function()</td></tr></table></blockquote><p>Tests that an expression is true.  If not, it will write a message to the console and throw an exception.</p><p>May be called with multiple arguments as with OpenLayers.Console.log().</p><h4 class=CHeading>P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dir"></a>dir</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>dir: function()</td></tr></table></blockquote><p>Prints an interactive listing of all properties of the object.  This looks identical to the view that you would see in the DOM tab.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dir"></a>dir</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">dir: function()</td></tr></table></blockquote><p>Prints an interactive listing of all properties of the object.  This looks identical to the view that you would see in the DOM tab.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dirxml"></a>dirxml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>dirxml: function()</td></tr></table></blockquote><p>Prints the XML source tree of an HTML or XML element.  This looks identical to the view that you would see in the HTML tab.  You can click on any node to inspect it in the HTML tab.</p><h4 class=CHeading>Parameters</h4><tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.dirxml"></a>dirxml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">dirxml: function()</td></tr></table></blockquote><p>Prints the XML source tree of an HTML or XML element.  This looks identical to the view that you would see in the HTML tab.  You can click on any node to inspect it in the HTML tab.</p><h4 class=CHeadin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.trace"></a>trace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trace: function()</td></tr></table></blockquote><p>Prints an interactive stack trace of JavaScript execution at the point where it is called.   The stack trace details the functions on the stack, as well as the values that were passed as arguments to each function.  You can cli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.trace"></a>trace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trace: function()</td></tr></table></blockquote><p>Prints an interactive stack trace of JavaScript execution at the point where it is called.   The stack trace details the functions on the stack, as well as the values that were passed as arguments to each funct [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.group"></a>group</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>group: function()</td></tr></table></blockquote><p>Writes a message to the console and opens a nested block to indent all future messages sent to the console.  Call OpenLayers.Console.groupEnd() to close the block.</p><p>May be called with multiple arguments as with OpenLayers.Conso [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.group"></a>group</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">group: function()</td></tr></table></blockquote><p>Writes a message to the console and opens a nested block to indent all future messages sent to the console.  Call OpenLayers.Console.groupEnd() to close the block.</p><p>May be called with multiple arguments as [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.groupEnd"></a>groupEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>groupEnd: function()</td></tr></table></blockquote><p>Closes the most recently opened block created by a call to OpenLayers.Console.group</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.groupEnd"></a>groupEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">groupEnd: function()</td></tr></table></blockquote><p>Closes the most recently opened block created by a call to OpenLayers.Console.group</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.time"></a>time</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>time: function()</td></tr></table></blockquote><p>Creates a new timer under the given name.  Call OpenLayers.Console.timeEnd(name) with the same name to stop the timer and print the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CD [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.time"></a>time</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">time: function()</td></tr></table></blockquote><p>Creates a new timer under the given name.  Call OpenLayers.Console.timeEnd(name) with the same name to stop the timer and print the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.timeEnd"></a>timeEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>timeEnd: function()</td></tr></table></blockquote><p>Stops a timer created by a call to OpenLayers.Console.time(name) and writes the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.timeEnd"></a>timeEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">timeEnd: function()</td></tr></table></blockquote><p>Stops a timer created by a call to OpenLayers.Console.time(name) and writes the time elapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profile"></a>profile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>profile: function()</td></tr></table></blockquote><p>Turns on the JavaScript profiler.  The optional argument title would contain the text to be printed in the header of the profile report.</p><p>This function is not currently implemented in Firebug Lite.</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profile"></a>profile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">profile: function()</td></tr></table></blockquote><p>Turns on the JavaScript profiler.  The optional argument title would contain the text to be printed in the header of the profile report.</p><p>This function is not currently implemented in Firebug Lite.</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profileEnd"></a>profileEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>profileEnd: function()</td></tr></table></blockquote><p>Turns off the JavaScript profiler and prints its report.</p><p>This function is not currently implemented in Firebug Lite.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.profileEnd"></a>profileEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">profileEnd: function()</td></tr></table></blockquote><p>Turns off the JavaScript profiler and prints its report.</p><p>This function is not currently implemented in Firebug Lite.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.count"></a>count</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>count: function()</td></tr></table></blockquote><p>Writes the number of times that the line of code where count was called was executed.  The optional argument title will print a message in addition to the number of the count.</p><p>This function is not currently implemented in Fire [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Console.count"></a>count</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">count: function()</td></tr></table></blockquote><p>Writes the number of times that the line of code where count was called was executed.  The optional argument title will print a message in addition to the number of the count.</p><p>This function is not current [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>log: function()</td></tr></table></blockquote>Log an object in the console. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>debug: function()</td></tr></table></blockquote>Writes a message to the console, including a hyperlink to the line where it was called.</div></d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">log: function()</td></tr></table></blockquote>Log an object in the console. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">debug: function()</td></tr></table></blockquote>Writes a message to the console, including a hyperli [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control-js.html b/doc/devdocs/files/OpenLayers/Control-js.html
index 987b3a6..b0ad001 100644
--- a/doc/devdocs/files/OpenLayers/Control-js.html
+++ b/doc/devdocs/files/OpenLayers/Control-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control"></a>OpenLayers.<span class=HB> </span>Control</h1><div class=CBody><p>Controls affect the display or behavior of the map.  They allow everything from panning and zooming to displaying a scale indicator.  Controls by default are added to the map they are contained within however it is possible to add a control to an external div by passing the div in the options param [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control"></a>OpenLayers.<wbr>Control</h1><div class=CBody><p>Controls affect the display or behavior of the map.  They allow everything from panning and zooming to displaying a scale indicator.  Controls by default are added to the map they are contained within however it is possible to add a control to an external div by passing the div in the options parameter.</p><h4 class [...]
 
 map.addControl(new OpenLayers.Control.PanZoomBar());
 map.addControl(new OpenLayers.Control.MouseToolbar());
@@ -35,7 +35,7 @@ OpenLayers.Util.extend(control, {
         OpenLayers.Console.userError(bounds);
     }
 });
-map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control" >OpenLayers.<span class=HB> </span>Control</a></td><td class=SDescription>Controls affect the display or behavior of the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Control.Properties" >Properties</ [...]
+map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control" >OpenLayers.<wbr>Control</a></td><td class=SDescription>Controls affect the display or behavior of the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Control.Properties" >Properties</a></td><td class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Properties"></a>Properties</h3></div></div>
 
@@ -43,7 +43,7 @@ map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Sum
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.map"></a>map</h3><div class=CBody><p>{<a href="Map-js.html#OpenLayers.Map" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt1', 'link10')" onMouseOut="HideTip('tt1')">OpenLayers.Map</a>} this gets set in the addControl() function in OpenLayers.Map</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.div"></a>div</h3><div class=CBody><p>{DOMElement}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.div"></a>div</h3><div class=CBody><p>{DOMElement} The element that contains the control, if not present the control is placed inside the map.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.type"></a>type</h3><div class=CBody><p>{Number} Controls can have a ‘type’.  The type determines the type of interactions which are possible with them when they are placed in an <a href="Control/Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">OpenLayers.Control.Panel</a>.</p></div></div></div>
 
@@ -55,43 +55,43 @@ map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Sum
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.active"></a>active</h3><div class=CBody><p>{Boolean} The control is active.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.active"></a>active</h3><div class=CBody><p>{Boolean} The control is active (read-only).   Use <a href="#OpenLayers.Control.activate" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt8', 'link12')" onMouseOut="HideTip('tt8')">activate</a> and <a href="#OpenLayers.Control.deactivate" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt9', 'link13')" onMouseOut="HideTip('tt9')">deactivate [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.handler"></a>handler</h3><div class=CBody><p>{<a href="Handler-js.html#OpenLayers.Handler" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt2', 'link12')" onMouseOut="HideTip('tt2')">OpenLayers.Handler</a>} null</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.handler"></a>handler</h3><div class=CBody><p>{<a href="Handler-js.html#OpenLayers.Handler" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt2', 'link14')" onMouseOut="HideTip('tt2')">OpenLayers.Handler</a>} null</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt3', 'link13')" onMouseOut="HideTip('tt3')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for  [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link15 onMouseOver="ShowTip(event, 'tt3', 'link15')" onMouseOut="HideTip('tt3')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for  [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} Events instance for triggering control specific events.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} Events instance for listeners and triggering control specific events.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p><h4 [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly w [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control"></a>OpenLayers.<span class=HB> </span>Control</h3><div class=CBody><p>Create an OpenLayers Control.   The options passed as a parameter directly extend the control.   For example passing the following:</p><blockquote><pre>var control = new OpenLayers.Control({div: myDiv});</pre></blockquote><p>Overrides the default div attribute value of null.</p><h4 class=CHeading>Param [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control"></a>OpenLayers.<wbr>Control</h3><div class=CBody><p>Create an OpenLayers Control.   The options passed as a parameter directly extend the control.   For example passing the following:</p><blockquote><pre>var control = new OpenLayers.Control({div: myDiv});</pre></blockquote><p>Overrides the default div attribute value of null.</p><h4 class=CHeading>Parameters</h4><table b [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote><p>The destroy method is used to perform any clean up before the control is dereferenced.   Typically this is where event listeners are removed to prevent memory leaks.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote><p>The destroy method is used to perform any clean up before the control is dereferenced.   Typically this is where event listeners are removed to prevent memory leaks.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control.  This is done t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the ma [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The draw method is called when the control is ready to be displa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>The draw method  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the left and top style attributes to the passed in pi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function ()</td></tr></table></blockquote><p>Explicitly activates a control and it’s associated handler if one has been set.   Controls can be deactivated by calling the deactivate() method.</p><h4 class=CHeading>Returns</h4><p>{Boolean}  True if the control wa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote><p>Explicitly activates a control and it’s associated handler if one has been set.   Controls can be deactivated by calling the deactivate() method.</p><h4 class=CHeading>Returns</h4><p>{Boolean}   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function ()</td></tr></table></blockquote><p>Deactivates a control and it’s associated handler if any.   The exact effect of this depends on the control itself.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the control was effectively deactivated [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote><p>Deactivates a control and it’s associated handler if any.   The exact effect of this depends on the control itself.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the control was e [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_BUTTON"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TYPE_BUTTON</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_BUTTON"></a>OpenLayers.<wbr>Control.<wbr>TYPE_BUTTON</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOGGLE"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TYPE_TOGGLE</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOGGLE"></a>OpenLayers.<wbr>Control.<wbr>TYPE_TOGGLE</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOOL"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TYPE_TOOL</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OpenLayers.Control.TYPE_TOOL"></a>OpenLayers.<wbr>Control.<wbr>TYPE_TOOL</h3></div></div>
 
 </div><!--Content-->
 
@@ -99,15 +99,15 @@ map.addControl(control);</pre></blockquote><!--START_ND_SUMMARY--><div class=Sum
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>on: function(</td><t [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class to construct a higher-level handler for event sequences. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>on: [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ArgParser-js.html b/doc/devdocs/files/OpenLayers/Control/ArgParser-js.html
index 94a64f5..94069b9 100644
--- a/doc/devdocs/files/OpenLayers/Control/ArgParser-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ArgParser-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ArgParser - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ArgParser - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ArgParser"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ArgParser</h1><div class=CBody><p>The ArgParser control adds location bar querystring parsing functionality to an OpenLayers Map.  When added to a Map control, on a page load/refresh, the Map will automatically take the href string and parse it for lon, lat, zoom, and layers information.</p><h4 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ArgParser"></a>OpenLayers.<wbr>Control.<wbr>ArgParser</h1><div class=CBody><p>The ArgParser control adds location bar querystring parsing functionality to an OpenLayers Map.  When added to a Map control, on a page load/refresh, the Map will automatically take the href string and parse it for lon, lat, zoom, and layers information.</p><h4 class=CHeading>Inherits from</h4><u [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.displayProjection"></a>displayProjection</h3><div class=CBody><p>{<a href="../Projection-js.html#OpenLayers.Projection" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">OpenLayers.Projection</a>} Requires proj4js support.  Projection used when reading the coordinates from the URL.  This will</p><p>reproject the map coordinates from the UR [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.displayProjection"></a>displayProjection</h3><div class=CBody><p>{<a href="../Projection-js.html#OpenLayers.Projection" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">OpenLayers.Projection</a>} Requires proj4js support.  Projection used when reading the coordinates from the URL.  This will</p><p>reproject the map coordinates from the UR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.OpenLayers.Control.ArgParser"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ArgParser</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.OpenLayers.Control.ArgParser"></a>OpenLayers.<wbr>Control.<wbr>ArgParser</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control.</p><h4 cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.getParameters"></a>getParameters</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getParameters: function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.setCenter"></a>setCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setCenter: function()</td></tr></table></blockquote><p>As soon as a baseLayer has been loaded, we center and zoom ...and remove the handler.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.configureLayers"></a>configureLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>configureLayers: function()</td></tr></table></blockquote><p>As soon as all the layers are loaded, cycle through them and hide or show them.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.setCenter"></a>setCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setCenter: function()</td></tr></table></blockquote><p>As soon as a baseLayer has been loaded, we center and zoom ...and remove the handler.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ArgParser.configureLayers"></a>configureLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">configureLayers: function()</td></tr></table></blockquote><p>As soon as all the layers are loaded, cycle through them and hide or show them.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the map proper [...]
+<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getParameters: function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Attribution-js.html b/doc/devdocs/files/OpenLayers/Control/Attribution-js.html
index 6fff2f7..5900f8c 100644
--- a/doc/devdocs/files/OpenLayers/Control/Attribution-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Attribution-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Attribution - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Attribution - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Attribution"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Attribution</h1><div class=CBody><p>The attribution control adds attribution from layers to the map display.  It uses ‘attribution’ property of each layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Attribution"></a>OpenLayers.<wbr>Control.<wbr>Attribution</h1><div class=CBody><p>The attribution control adds attribution from layers to the map display.  It uses ‘attribution’ property of each layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4') [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.Properties"></a>Properties</h3></div></div>
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.OpenLayers.Control.Attribution"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Attribution</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.OpenLayers.Control.Attribution"></a>OpenLayers.<wbr>Control.<wbr>Attribution</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Initialize control.</p><h4 class=CHeading>Returns</h4><p>{DOMElement} A reference to the DIV DOMElement containing the control</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Initialize control.</p><h4 class=CHeading>Returns</h4><p>{DOMElement} A reference to the DIV DOMElement containing the control</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.updateAttribution"></a>updateAttribution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateAttribution: function()</td></tr></table></blockquote><p>Update attribution string.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Attribution.updateAttribution"></a>updateAttribution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateAttribution: function()</td></tr></table></blockquote><p>Update attribution string.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy control.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>Initialize control.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy control.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>Initialize control.</div></div><div class=CToolTip id="tt3"><di [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Button-js.html b/doc/devdocs/files/OpenLayers/Control/Button-js.html
index dc8bceb..d0f0c53 100644
--- a/doc/devdocs/files/OpenLayers/Control/Button-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Button-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Button - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Button - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,10 +11,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Button"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Button</h1><div class=CBody><p>The Button control is a very simple push-button, for use with <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a>.  When clicked, the function tri [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Button"></a>OpenLayers.<wbr>Control.<wbr>Button</h1><div class=CBody><p>The Button control is a very simple push-button, for use with <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a>.  When clicked, the function trigger() is executed.</p><h4 class=CHe [...]
     displayClass: "MyButton", trigger: myFunction
 });
-panel.addControls([button]);</pre></blockquote><p>Will create a button with CSS class MyButtonItemInactive, that will call the function MyFunction() when clicked.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.Button" >OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Button</a></td><td class=SDescription>T [...]
+panel.addControls([button]);</pre></blockquote><p>Will create a button with CSS class MyButtonItemInactive, that will call the function MyFunction() when clicked.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.Button" >OpenLayers.<wbr>Control.<wbr>Button</a></td><td class=SDescription>The Button control is a very simple p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Button.Properties"></a>Properties</h3></div></div>
 
@@ -22,7 +22,7 @@ panel.addControls([button]);</pre></blockquote><p>Will create a button with CSS
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Button.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Button.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote><p>Called by a control panel when the button is clicked.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Button.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote><p>Called by a control panel when the button is clicked.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -30,15 +30,15 @@ panel.addControls([button]);</pre></blockquote><p>Will create a button with CSS
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote>Called by a control panel when the button is clicked.</div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote>Called by a control panel when the button is clicked.</div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><! [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/DragFeature-js.html b/doc/devdocs/files/OpenLayers/Control/DragFeature-js.html
index e499ea4..6c2f7e1 100644
--- a/doc/devdocs/files/OpenLayers/Control/DragFeature-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/DragFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.DragFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.DragFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,57 +11,65 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragFeature</h1><div class=CBody><p>The DragFeature control moves a feature with a drag of the mouse.  Create a new control with the <a href="#OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature" class=LConstructor id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragFeature"></a>OpenLayers.<wbr>Control.<wbr>DragFeature</h1><div class=CBody><p>The DragFeature control moves a feature with a drag of the mouse.  Create a new control with the <a href="#OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature" class=LConstructor id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">OpenLayers.Control [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.geometryTypes"></a>geometryTypes</h3><div class=CBody><p>{Array(String)} To restrict dragging to a limited set of geometry types, send a list of strings corresponding to the geometry class names.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onStart"></a>onStart</h3><div class=CBody><p>{Function} Define this function if you want to know when a drag starts.  The function should expect to receive two arguments: the feature that is about to be dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><t [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onStart"></a>onStart</h3><div class=CBody><p>{Function} Define this function if you want to know when a drag starts.  The function should expect to receive two arguments: the feature that is about to be dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><t [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onDrag"></a>onDrag</h3><div class=CBody><p>{Function} Define this function if you want to know about each move of a feature.  The function should expect to receive two arguments: the feature that is being dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td> [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onDrag"></a>onDrag</h3><div class=CBody><p>{Function} Define this function if you want to know about each move of a feature.  The function should expect to receive two arguments: the feature that is being dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td> [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onComplete"></a>onComplete</h3><div class=CBody><p>{Function} Define this function if you want to know when a feature is done dragging.  The function should expect to receive two arguments: the feature that is being dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>f [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onComplete"></a>onComplete</h3><div class=CBody><p>{Function} Define this function if you want to know when a feature is done dragging.  The function should expect to receive two arguments: the feature that is being dragged and the pixel location of the mouse.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>f [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onEnter"></a>onEnter</h3><div class=CBody><p>{Function} Define this function if you want to know when the mouse goes over a feature and thereby makes this feature a candidate for dragging.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href="../Feature/Vector-js.html#OpenL [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.onLeave"></a>onLeave</h3><div class=CBody><p>{Function} Define this function if you want to know when the mouse goes out of the feature that was dragged.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass  [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} If set to true, mouse dragging will continue even if the mouse cursor leaves the map viewport.  Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link23')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Vector</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt1', 'link27')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Vector</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt2', 'link24')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt2', 'link28')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.dragCallbacks"></a>dragCallbacks</h3><div class=CBody><p>{Object} The functions that are sent to the drag handler for callback.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.featureCallbacks"></a>featureCallbacks</h3><div class=CBody><p>{Object} The functions that are sent to the feature handler for callback.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.lastPixel"></a>lastPixel</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt3', 'link25')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.lastPixel"></a>lastPixel</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt3', 'link29')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>}</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragFeature</h3><div class=CBody><p>Create a new control to drag features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Ve [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.OpenLayers.Control.DragFeature"></a>OpenLayers.<wbr>Control.<wbr>DragFeature</h3><div class=CBody><p>Create a new control to drag features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link30 onMouse [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.clickFeature"></a>clickFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clickFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.clickoutFeature"></a>clickoutFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clickoutFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control and the feature handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control and feature handler.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control and the feature handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control and feature handler.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control and all handlers.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control and all handlers.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.overFeature"></a>overFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>overFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the feature han [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.overFeature"></a>overFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>overFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.downFeature"></a>downFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>downFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the drag handler  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.downFeature"></a>downFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>downFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.moveFeature"></a>moveFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the drag handler  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.moveFeature"></a>moveFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.upFeature"></a>upFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>upFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the drag handler detect [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.upFeature"></a>upFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>upFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.doneDragging"></a>doneDragging</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>doneDragging: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the drag handl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.doneDragging"></a>doneDragging</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>doneDragging: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.outFeature"></a>outFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>outFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the feature handle [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.outFeature"></a>outFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>outFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Called when the drag handler detects a mouse-out (from the map viewport).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Called when the drag handler detects a mouse-out (from the map viewport).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control and all h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
 </div><!--Content-->
 
@@ -69,15 +77,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/DragPan-js.html b/doc/devdocs/files/OpenLayers/Control/DragPan-js.html
index b4df032..a75dcdb 100644
--- a/doc/devdocs/files/OpenLayers/Control/DragPan-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/DragPan-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.DragPan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.DragPan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragPan"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DragPan</h1><div class=CBody><p>The DragPan control pans the map with a drag of the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">OpenLayers.Control</ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DragPan"></a>OpenLayers.<wbr>Control.<wbr>DragPan</h1><div class=CBody><p>The DragPan control pans the map with a drag of the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt5', 'link7')" onMouseOut="HideTip('tt5')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY-->< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.Properties"></a>Properties</h3></div></div>
 
@@ -19,17 +19,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.panned"></a>panned</h3><div class=CBody><p>{Boolean} The map moved.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.interval"></a>interval</h3><div class=CBody><p>{Integer} The number of milliseconds that should ellapse before panning the map again.  Set this to increase dragging performance.  Defaults to 25 milliseconds.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.interval"></a>interval</h3><div class=CBody><p>{Integer} The number of milliseconds that should ellapse before panning the map again.  Defaults to 1 millisecond.  In most cases you won’t want to change this value.  For slow machines/devices larger values can be tried out.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} If set to true, mouse dragging will continue even if the mouse cursor leaves the map viewport.  Default is false.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.kinetic"></a>kinetic</h3><div class=CBody><p>{OpenLayers.Kinetic} The OpenLayers.Kinetic object.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.enableKinetic"></a>enableKinetic</h3><div class=CBody><p>{Boolean} Set this option to enable “kinetic dragging”.  Can be set to true or to an object.  If set to an object this object will be passed to the {<a href="../Kinetic-js.html#OpenLayers.Kinetic" class=LConstructor >OpenLayers.Kinetic</a>} constructor.  Defaults to false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.kineticInterval"></a>kineticInterval</h3><div class=CBody><p>{Integer} Interval in milliseconds between 2 steps in the “kinetic scrolling”.  Applies only if enableKinetic is set.  Defaults to 10 milliseconds.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Creates a Drag handler, using <a href="#OpenLayers.Control.DragPan.panMap" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt2', 'link7')" onMouseOut="HideTip('tt2')">panMap</a> and <a href="#OpenLayers.Control.DragPan.panMapD [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Creates a Drag handler, using <a href="#OpenLayers.Control.DragPan.panMap" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">panMap</a> and <a href="#OpenLayers.C [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.panMapStart"></a>panMapStart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">panMapStart: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.panMap"></a>panMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>panMap: function(</td><td class=PParameter nowrap>xy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.panMap"></a>panMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>panMap: function(</td><td class="PParameter  prettyprint " nowrap>xy</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.panMapDone"></a>panMapDone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>panMapDone: function(</td><td class=PParameter nowrap>xy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finish the panning operation.   On [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DragPan.panMapDone"></a>panMapDone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>panMapDone: function(</td><td class="PParameter  prettyprint " nowrap>xy</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
 </div><!--Content-->
 
@@ -37,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>Creates a Drag handler, using panMap and panMapDone as callbacks.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>panMap: function(</td><td [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>Creates a Drag handler, using panMap and panMapDone as callbacks.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  pretty [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/DrawFeature-js.html b/doc/devdocs/files/OpenLayers/Control/DrawFeature-js.html
index a7ffc85..51c85f3 100644
--- a/doc/devdocs/files/OpenLayers/Control/DrawFeature-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/DrawFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.DrawFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.DrawFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DrawFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DrawFeature</h1><div class=CBody><p>The DrawFeature control draws point, line or polygon features on a vector layer when active.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMous [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.DrawFeature"></a>OpenLayers.<wbr>Control.<wbr>DrawFeature</h1><div class=CBody><p>The DrawFeature control draws point, line or polygon features on a vector layer when active.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">OpenLayers [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Vector</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Vector</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.callbacks"></a>callbacks</h3><div class=CBody><p>{Object} The functions that are sent to the handler for callback</p></div></div></div>
 
@@ -33,11 +33,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.OpenLayers.Control.DrawFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>DrawFeature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link5 onMouseOver="Show [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.OpenLayers.Control.DrawFeature"></a>OpenLayers.<wbr>Control.<wbr>DrawFeature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMous [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawFeature: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertXY"></a>insertXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertDeltaXY"></a>insertDeltaXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDeltaXY: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class= [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertDirectionLength"></a>insertDirectionLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDirectionLength: function(</td><td class="PParameter  prettyprint " nowrap>direction,</td></tr><tr><td></td><td class="PParameter  prettyp [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.insertDeflectionLength"></a>insertDeflectionLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDeflectionLength: function(</td><td class="PParameter  prettyprint " nowrap>deflection,</td></tr><tr><td></td><td class="PParameter  pre [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.undo"></a>undo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">undo: function()</td></tr></table></blockquote><p>Remove the most recently added point in the current sketch geometry.</p><h4 class=CHeading>Returns</h4><p>{Boolean} An edit was undone.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.redo"></a>redo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redo: function()</td></tr></table></blockquote><p>Reinsert the most recently removed point resulting from an <a href="#OpenLayers.Control.DrawFeature.undo" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt7', 'link16')" onMouseOut="HideTip('tt7')"> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.finishSketch"></a>finishSketch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finishSketch: function()</td></tr></table></blockquote><p>Finishes the sketch without including the currently drawn point.  This method can be called to terminate drawing programmatically instead of waiting for the user to end the sket [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.DrawFeature.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Cancel the current sketch.   This removes the current sketch and keeps the drawing control active.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -45,15 +61,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawFeature: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParamet [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/EditingToolbar-js.html b/doc/devdocs/files/OpenLayers/Control/EditingToolbar-js.html
index 268c128..1686de8 100644
--- a/doc/devdocs/files/OpenLayers/Control/EditingToolbar-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/EditingToolbar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.EditingToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.EditingToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.EditingToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>EditingToolbar</h1><div class=CBody><p>The EditingToolbar is a panel of 4 controls to draw polygons, lines, points, or to navigate the map by panning.  By default it appears in the upper right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLay [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.EditingToolbar"></a>OpenLayers.<wbr>Control.<wbr>EditingToolbar</h1><div class=CBody><p>The EditingToolbar is a panel of 4 controls to draw polygons, lines, points, or to navigate the map by panning.  By default it appears in the upper right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>EditingToolbar</h3><div class=CBody><p>Create an editing toolbar for a given layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#Open [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar"></a>OpenLayers.<wbr>Control.<wbr>EditingToolbar</h3><div class=CBody><p>Create an editing toolbar for a given layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>calls the default draw, and then activates mouse defaults.</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.EditingToolbar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>calls the default draw, and then activates mouse defaults.</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>calls the default draw, and then activates mouse defaults.</div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>calls the default draw, and then activates mouse defaults.</div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector d [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Geolocate-js.html b/doc/devdocs/files/OpenLayers/Control/Geolocate-js.html
new file mode 100644
index 0000000..c78b49f
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Control/Geolocate-js.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Geolocate - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Geolocate"></a>OpenLayers.<wbr>Control.<wbr>Geolocate</h1><div class=CBody><p>The Geolocate control wraps w3c geolocation API into control that can be bound to a map, and generate events on location update</p><p>To use this control requires to load the proj4js library if the projection of the map is not EPSG:4326 or EPSG:900913.</p><h4 class=CHeading>Inherits from</h4><ul><li>< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types</h4><ul><li><b>locationupdated</b> Triggered when browser return a new position</li><li><b>locationfailed</b> Triggered when geolocation has failed</li><li><b>locationuncapable</b> Triggered when control is activated on a browser which doesn’t support geolocation</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.geolocation"></a>geolocation</h3><div class=CBody><p>{Object} The geolocation engine, as a property to be possibly mocked.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.bind"></a>bind</h3><div class=CBody><p>{Boolean} If true, map center will be set on location update.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.watch"></a>watch</h3><div class=CBody><p>{Boolean} If true, position will be update regularly.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.geolocationOptions"></a>geolocationOptions</h3><div class=CBody><p>{Object} Options to pass to the navigator’s geolocation API.  See <a href="http://dev.w3.org/geo/api/spec-source.html" class=LURL target=_top>http://dev.w3.org/geo/api/spec-source.html</a>.  No specific option is passed to the geolocation API by default.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.OpenLayers.Control.Geolocate"></a>OpenLayers.<wbr>Control.<wbr>Geolocate</h3><div class=CBody><p>Create a new control to deal with browser geolocation API</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.geolocate"></a>geolocate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>geolocate: function (</td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.getCurrentLocation"></a>getCurrentLocation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCurrentLocation: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Returns true if a event will be fired (successfull registration)</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Geolocate.failure"></a>failure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>failure: function (</td><td class="PParameter  prettyprint " nowrap>error</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote>Activates the control.</div></div><div class=CToolTip id="tt3"><div class= [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Control/GetFeature-js.html b/doc/devdocs/files/OpenLayers/Control/GetFeature-js.html
index 4104726..b5adf48 100644
--- a/doc/devdocs/files/OpenLayers/Control/GetFeature-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/GetFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.GetFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.GetFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.GetFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>GetFeature</h1><div class=CBody><p>Gets vector features for locations underneath the mouse cursor.  Can be configured to act on click, hover or dragged boxes.  Uses an <a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt1', 'link26')" on [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.GetFeature"></a>OpenLayers.<wbr>Control.<wbr>GetFeature</h1><div class=CBody><p>Gets vector features for locations underneath the mouse cursor.  Can be configured to act on click, hover or dragged boxes.  Uses an <a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt1', 'link26')" onMouseOut="HideTip('tt1')">OpenLayers [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.Properties"></a>Properties</h3></div></div>
 
@@ -57,37 +57,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.OpenLayers.Control.GetFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>GetFeature</h3><div class=CBody><p>Create a new control for fetching remote features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} A configuration object which at l [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.OpenLayers.Control.GetFeature"></a>OpenLayers.<wbr>Control.<wbr>GetFeature</h3><div class=CBody><p>Create a new control for fetching remote features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} A configuration object which at least has to contain a <a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.selectClick"></a>selectClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>selectClick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on click</p><h4 class=CHe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.selectClick"></a>selectClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.selectBox"></a>selectBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>selectBox: function(</td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Callback from the handlers.box se [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.selectBox"></a>selectBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectBox: function(</td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.cancelHover"></a>cancelHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancelHover: function()</td></tr></table></blockquote><p>Callback from the handlers.hover set up when <a href="#OpenLayers.Control.GetFeature.hover" class=LProperty id=link57 onMouseOver="ShowTip(event, 'tt15', 'link57')" onMouseOut="HideTip('tt15')">hover</a> sele [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.cancelHover"></a>cancelHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancelHover: function()</td></tr></table></blockquote><p>Callback from the handlers.hover set up when <a href="#OpenLayers.Control.GetFeature.hover" class=LProperty id=link57 onMouseOver="ShowTip(event, 'tt15', 'link57')" onMouseOut="HideTip(' [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>request: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>request: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.selectBestFeature"></a>selectBestFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>selectBestFeature: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>clickPosition,</td></tr><tr><td></td><td class=PP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.selectBestFeature"></a>selectBestFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectBestFeature: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.setModifiers"></a>setModifiers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setModifiers: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the multiple and toggle  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.setModifiers"></a>setModifiers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setModifiers: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.select"></a>select</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>select: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add feature to the hash of selected featur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.select"></a>select</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>select: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.hoverSelect"></a>hoverSelect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>hoverSelect: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets/unsets the <hoverFea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.hoverSelect"></a>hoverSelect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>hoverSelect: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.unselect"></a>unselect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unselect: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove feature from the hash of selec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.unselect"></a>unselect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unselect: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.unselectAll"></a>unselectAll</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>unselectAll: function()</td></tr></table></blockquote><p>Unselect all selected features.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.unselectAll"></a>unselectAll</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">unselectAll: function()</td></tr></table></blockquote><p>Unselect all selected features.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control.</p><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.pixelToBounds"></a>pixelToBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pixelToBounds: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a pixel as argumen [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.GetFeature.pixelToBounds"></a>pixelToBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pixelToBounds: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
 </div><!--Content-->
 
@@ -95,15 +95,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Abstract vector layer protocol class. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Boolean} Allow selection of multiple geometries. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean} Unselect a selected feature on click. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{OpenLayers.Protocol} Required. </div></div><div class=CToolTip id="tt5"><div class=CClass>Vector features use the OpenLaye [...]
+<div class=CToolTip id="tt1"><div class=CClass>Abstract vector layer protocol class. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Boolean} Allow selection of multiple geometries. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean} Unselect a selected feature on click. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{OpenLayers.Protocol} Required. </div></div><div class=CToolTip id="tt5"><div class=CClass>Vector features use the OpenLaye [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Graticule-js.html b/doc/devdocs/files/OpenLayers/Control/Graticule-js.html
index ec20dd9..cef8afd 100644
--- a/doc/devdocs/files/OpenLayers/Control/Graticule-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Graticule-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Graticule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Graticule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Graticule"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Graticule</h1><div class=CBody><p>The Graticule displays a grid of latitude/longitude lines reprojected on the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip(' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Graticule"></a>OpenLayers.<wbr>Control.<wbr>Graticule</h1><div class=CBody><p>The Graticule displays a grid of latitude/longitude lines reprojected on the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Control</a></li></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.Properties"></a>Properties</h3></div></div>
 
@@ -41,19 +41,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.OpenLayers.Control.Graticule"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Graticule</h3><div class=CBody><p>Create a new graticule control to display a grid of latitude longitude lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An option [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.OpenLayers.Control.Graticule"></a>OpenLayers.<wbr>Control.<wbr>Graticule</h3><div class=CBody><p>Create a new graticule control to display a grid of latitude longitude lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be u [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>initializes the graticule layer and does the initial update</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>initializes the graticule layer and does the initial update</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>update: function()</td></tr></table></blockquote><p>calculates the grid to be displayed and actually draws it</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Graticule.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">update: function()</td></tr></table></blockquote><p>calculates the grid to be displayed and actually draws it</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
 </div><!--Content-->
 
@@ -61,15 +61,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Internationalization namespace. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>initializes the graticule layer  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Internationalization namespace. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table>< [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/KeyboardDefaults-js.html b/doc/devdocs/files/OpenLayers/Control/KeyboardDefaults-js.html
index eaef20d..fb667f1 100644
--- a/doc/devdocs/files/OpenLayers/Control/KeyboardDefaults-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/KeyboardDefaults-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.KeyboardDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.KeyboardDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>KeyboardDefaults</h1><div class=CBody><p>The KeyboardDefaults control adds panning and zooming functions, controlled with the keyboard.  By default arrow keys pan, +/- keys zoom & Page Up/Page Down/Home/End scroll by three quarters of a page.</p><p>This control has no visible appeara [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<wbr>Control.<wbr>KeyboardDefaults</h1><div class=CBody><p>The KeyboardDefaults control adds panning and zooming functions, controlled with the keyboard.  By default arrow keys pan, +/- keys zoom & Page Up/Page Down/Home/End scroll by three quarters of a page.</p><p>This control has no visible appearance.</p><h4 class=CHeading>Inherits  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.Properties"></a>Properties</h3></div></div>
 
@@ -21,15 +21,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>KeyboardDefaults</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.OpenLayers.Control.KeyboardDefaults"></a>OpenLayers.<wbr>Control.<wbr>KeyboardDefaults</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Create handler.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Create handler.</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.defaultKeyPress"></a>defaultKeyPress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultKeyPress: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When handling [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.KeyboardDefaults.defaultKeyPress"></a>defaultKeyPress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultKeyPress: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
 </div><!--Content-->
 
@@ -37,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>Create handler.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>Create handler.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultKeyPress: function (</td><td  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/LayerSwitcher-js.html b/doc/devdocs/files/OpenLayers/Control/LayerSwitcher-js.html
index 9e9d129..5cf0832 100644
--- a/doc/devdocs/files/OpenLayers/Control/LayerSwitcher-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/LayerSwitcher-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.LayerSwitcher - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.LayerSwitcher - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>LayerSwitcher</h1><div class=CBody><p>The LayerSwitcher control displays a table of contents for the map.  This allows the user interface to switch between BaseLasyers and to show or hide Overlays.  By default the switcher is shown minimized on the right edge of the map, the user may e [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<wbr>Control.<wbr>LayerSwitcher</h1><div class=CBody><p>The LayerSwitcher control displays a table of contents for the map.  This allows the user interface to switch between BaseLasyers and to show or hide Overlays.  By default the switcher is shown minimized on the right edge of the map, the user may expand it by clicking on the handle.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.Properties"></a>Properties</h3></div></div>
 
@@ -41,39 +41,39 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>LayerSwitcher</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.OpenLayers.Control.LayerSwitcher"></a>OpenLayers.<wbr>Control.<wbr>LayerSwitcher</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Properties</h4><table border [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} A reference to the DIV DOMElement containing the switcher tabs.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} A reference to the DIV DOMElement containing the switcher tabs.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.clearLayersArray"></a>clearLayersArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clearLayersArray: function(</td><td class=PParameter nowrap>layersType</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>User sp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.clearLayersArray"></a>clearLayersArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clearLayersArray: function(</td><td class="PParameter  prettyprint " nowrap>layersType</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.checkRedraw"></a>checkRedraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>checkRedraw: function()</td></tr></table></blockquote><p>Checks if the layer state has changed since the last redraw() call.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer state changed since the last redraw() call.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.checkRedraw"></a>checkRedraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">checkRedraw: function()</td></tr></table></blockquote><p>Checks if the layer state has changed since the last redraw() call.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer state changed since the last redraw() call.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>redraw: function()</td></tr></table></blockquote><p>Goes through and takes the current state of the Map and rebuilds the control to display that state.  Groups base layers into a radio-button group and lists each data layer with a checkbox.</p><h4 class=CHeading>Retu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>Goes through and takes the current state of the Map and rebuilds the control to display that state.  Groups base layers into a radio-button group and lists each data layer with a checkbox.</p>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.onLayerClick"></a>onLayerClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onLayerClick: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Need to update the map accor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.onLayerClick"></a>onLayerClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onLayerClick: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.updateMap"></a>updateMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateMap: function()</td></tr></table></blockquote><p>Cycles through the loaded data and base layer input arrays and makes the necessary calls to the Map object such that that the map’s visual state corresponds to what the user has selected in the control.</p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.updateMap"></a>updateMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateMap: function()</td></tr></table></blockquote><p>Cycles through the loaded data and base layer input arrays and makes the necessary calls to the Map object such that that the map’s visual state corresponds to what the user has selec [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.maximizeControl"></a>maximizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>maximizeControl: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set up the labels a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.maximizeControl"></a>maximizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>maximizeControl: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.minimizeControl"></a>minimizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>minimizeControl: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide all the conten [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.minimizeControl"></a>minimizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>minimizeControl: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.showControls"></a>showControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>showControls: function(</td><td class=PParameter nowrap>minimize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide/Show all LayerSw [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.showControls"></a>showControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>showControls: function(</td><td class="PParameter  prettyprint " nowrap>minimize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.loadContents"></a>loadContents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadContents: function()</td></tr></table></blockquote><p>Set up the labels and divs for the control</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.loadContents"></a>loadContents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadContents: function()</td></tr></table></blockquote><p>Set up the labels and divs for the control</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.ignoreEvent"></a>ignoreEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ignoreEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.ignoreEvent"></a>ignoreEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>ignoreEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.mouseDown"></a>mouseDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseDown: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Register a local ‘mouseDown&r [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.mouseDown"></a>mouseDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseDown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.mouseUp"></a>mouseUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseUp: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>If the ‘isMouseDown’ flag has [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.LayerSwitcher.mouseUp"></a>mouseUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseUp: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 </div><!--Content-->
 
@@ -81,15 +81,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters no [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  pre [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Measure-js.html b/doc/devdocs/files/OpenLayers/Control/Measure-js.html
index 76c9ba7..a09452e 100644
--- a/doc/devdocs/files/OpenLayers/Control/Measure-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Measure-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Measure - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Measure - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Measure"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Measure</h1><div class=CBody><p>Allows for drawing of features for measurements.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">OpenLayers.Control</a></li [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Measure"></a>OpenLayers.<wbr>Control.<wbr>Measure</h1><div class=CBody><p>Allows for drawing of features for measurements.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY--><div cl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on e [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Properties"></a>Properties</h3></div></div>
 
@@ -33,31 +33,41 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.delayedTrigger"></a>delayedTrigger</h3><div class=CBody><p>{Number} Timeout id of trigger for measurepartial.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.persist"></a>persist</h3><div class=CBody><p>{Boolean} Keep the temporary measurement sketch drawn after the measurement is complete.   The geometry will persist until a new measurement is started, the control is deactivated, or <a href="#OpenLayers.Control.Measure.cancel" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">cancel</a> is calle [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.persist"></a>persist</h3><div class=CBody><p>{Boolean} Keep the temporary measurement sketch drawn after the measurement is complete.   The geometry will persist until a new measurement is started, the control is deactivated, or <a href="#OpenLayers.Control.Measure.cancel" class=LFunction id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip('tt2')">cancel</a> is calle [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.immediate"></a>immediate</h3><div class=CBody><p>{Boolean} Activates the immediate measurement so that the “measurepartial” event is also fired once the measurement sketch is modified.  Default is false.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.OpenLayers.Control.Measure"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Measure</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{<a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt12',  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.OpenLayers.Control.Measure"></a>OpenLayers.<wbr>Control.<wbr>Measure</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{<a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt17', 'link21')" onMouseOut="HideTip('tt17 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Stop the control from measuring.   If <a href="#OpenLayers.Control.Measure.persist" class=LProperty id=link16 onMouseOver="ShowTip(event, 'tt13', 'link16')" onMouseOut="HideTip('tt13')">persist</a> is true, the temporary  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Stop the control from measuring.   If <a href="#OpenLayers.Control.Measure.persist" class=LProperty id=link22 onMouseOver="ShowTip(event, 'tt18', 'link22')" onMouseOut="HideTip('tt18')">persist</a> i [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.setImmediate"></a>setImmediate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setImmediate: function(</td><td class="PParameter  prettyprint " nowrap>immediate</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.updateHandler"></a>updateHandler</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>updateHandler: function(</td><td class="PParameter  prettyprint " nowrap>handler,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measureComplete"></a>measureComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>measureComplete: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.updateHandler"></a>updateHandler</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>updateHandler: function(</td><td class=PParameter nowrap>handler,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measurePartial"></a>measurePartial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>measurePartial: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measureComplete"></a>measureComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>measureComplete: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the me [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measureImmediate"></a>measureImmediate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>measureImmediate : function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>feature, [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measurePartial"></a>measurePartial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>measurePartial: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.cancelDelay"></a>cancelDelay</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancelDelay: function()</td></tr></table></blockquote><p>Cancels the delay measurement that measurePartial began.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measure"></a>measure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>measure: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>eventType</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.measure"></a>measure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>measure: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>eventType</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getBestArea"></a>getBestArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBestArea: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Based on the <a href="#OpenLay [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getBestArea"></a>getBestArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBestArea: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getArea: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>units</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getArea: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>units</td><td class="PAfterParame [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getBestLength"></a>getBestLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBestLength: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Based on the <a href="#O [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getBestLength"></a>getBestLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBestLength: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLength: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>units</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Measure.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLength: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>units</td><td class="PAfter [...]
 
 </div><!--Content-->
 
@@ -65,15 +75,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote>Stop the control from measuring. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>updateHandler: function(</td><td class=PParameter nowra [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote>Stop the control from measuring. </div></div><div class=CToolTip id="tt3"> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ModifyFeature-js.html b/doc/devdocs/files/OpenLayers/Control/ModifyFeature-js.html
index 1c98308..8cd174f 100644
--- a/doc/devdocs/files/OpenLayers/Control/ModifyFeature-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ModifyFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ModifyFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ModifyFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ModifyFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ModifyFeature</h1><div class=CBody><p>Control to modify features.   When activated, a click renders the vertices of a feature - these vertices can then be dragged.   By default, the delete key will delete the vertex under the mouse.   New features are added by dragging “virt [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ModifyFeature"></a>OpenLayers.<wbr>Control.<wbr>ModifyFeature</h1><div class=CBody><p>Control to modify features.   When activated, a click renders the vertices of a feature - these vertices can then be dragged.   By default, the delete key will delete the vertex under the mouse.   New features are added by dragging “virtual vertices” between vertices [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Properties"></a>Properties</h3></div></div>
 
@@ -41,14 +41,16 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.virtualStyle"></a>virtualStyle</h3><div class=CBody><p>{Object} A symbolizer to be used for virtual vertices.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.mode"></a>mode</h3><div class=CBody><p>{Integer} Bitfields specifying the modification mode.  Defaults to OpenLayers.Control.ModifyFeature.RESHAPE.  To set the mode to a combination of options, use the | operator.  For example, to allow the control to both resize and rotate features, use the following syntax</p><blockquote><pre>control.mode = OpenLayers.Control.ModifyFeature [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.vertexRenderIntent"></a>vertexRenderIntent</h3><div class=CBody><p>{String} The renderIntent to use for vertices.  If no <a href="#OpenLayers.Control.ModifyFeature.virtualStyle" class=LProperty id=link35 onMouseOver="ShowTip(event, 'tt23', 'link35')" onMouseOut="HideTip('tt23')">virtualStyle</a> is provided, this renderIntent will also be used for virtual vertices, with a fillOpacity  [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.mode"></a>mode</h3><div class=CBody><p>{Integer} Bitfields specifying the modification mode.  Defaults to OpenLayers.Control.ModifyFeature.RESHAPE.  To set the mode to a combination of options, use the | operator.  For example, to allow the control to both resize and rotate features, use the following syntax</p><blockquote><pre class="prettyprint">control.mode = OpenLayers.C [...]
                OpenLayers.Control.ModifyFeature.ROTATE;</pre></blockquote></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.modified"></a>modified</h3><div class=CBody><p>{Boolean} The currently selected feature has been modified.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.radiusHandle"></a>radiusHandle</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt2', 'link35')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} A handle for rotating/resizing a feature.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.radiusHandle"></a>radiusHandle</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt2', 'link36')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} A handle for rotating/resizing a feature.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragHandle"></a>dragHandle</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt2', 'link36')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} A handle for dragging a feature.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragHandle"></a>dragHandle</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt2', 'link37')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} A handle for dragging a feature.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.onModificationStart"></a>onModificationStart</h3><div class=CBody><p>{Function} <b>Deprecated</b>.   Register for “beforefeaturemodified” instead.  The “beforefeaturemodified” event is triggered on the layer before any modification begins.</p><p>Optional function to be called when a feature is selected to be modified.  The function should expect to be [...]
 
@@ -58,41 +60,41 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.OpenLayers.Control.ModifyFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ModifyFeature</h3><div class=CBody><p>Create a new modify feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Laye [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.OpenLayers.Control.ModifyFeature"></a>OpenLayers.<wbr>Control.<wbr>ModifyFeature</h3><div class=CBody><p>Create a new modify feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link38 onM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully activated the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Successfully deactivated the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.beforeSelectFeature"></a>beforeSelectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>beforeSelectFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.beforeSelectFeature"></a>beforeSelectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>beforeSelectFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.selectFeature"></a>selectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>selectFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the sel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.selectFeature"></a>selectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.unselectFeature"></a>unselectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unselectFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.unselectFeature"></a>unselectFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unselectFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragStart"></a>dragStart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragStart: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragStart"></a>dragStart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragStart: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragVertex"></a>dragVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragVertex: function(</td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragVertex"></a>dragVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragVertex: function(</td><td class="PParameter  prettyprint " nowrap>vertex,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pixel</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragComplete"></a>dragComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragComplete: function(</td><td class=PParameter nowrap>vertex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called by the drag feat [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.dragComplete"></a>dragComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragComplete: function(</td><td class="PParameter  prettyprint " nowrap>vertex</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.setFeatureState"></a>setFeatureState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setFeatureState: function()</td></tr></table></blockquote><p>Called when the feature is modified.   If the current state is not INSERT or DELETE, the state is set to UPDATE.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.setFeatureState"></a>setFeatureState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setFeatureState: function()</td></tr></table></blockquote><p>Called when the feature is modified.   If the current state is not INSERT or DELETE, the state is set to UPDATE.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.resetVertices"></a>resetVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>resetVertices: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.resetVertices"></a>resetVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">resetVertices: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.handleKeypress"></a>handleKeypress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleKeypress: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called by the featur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.handleKeypress"></a>handleKeypress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleKeypress: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.collectVertices"></a>collectVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>collectVertices: function()</td></tr></table></blockquote><p>Collect the vertices from the modifiable feature’s geometry and push them on to the control’s vertices array.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.collectVertices"></a>collectVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">collectVertices: function()</td></tr></table></blockquote><p>Collect the vertices from the modifiable feature’s geometry and push them on to the control’s vertices array.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.collectDragHandle"></a>collectDragHandle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>collectDragHandle: function()</td></tr></table></blockquote><p>Collect the drag handle for the selected geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.collectDragHandle"></a>collectDragHandle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">collectDragHandle: function()</td></tr></table></blockquote><p>Collect the drag handle for the selected geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.collectRadiusHandle"></a>collectRadiusHandle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>collectRadiusHandle: function()</td></tr></table></blockquote><p>Collect the radius handle for the selected geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.collectRadiusHandle"></a>collectRadiusHandle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">collectRadiusHandle: function()</td></tr></table></blockquote><p>Collect the radius handle for the selected geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control and all [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ModifyFeature.Constants"></a>Constants</h3></div></div>
 
@@ -110,15 +112,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>The SelectFeature control selects vector features from a given layer on click or hover.</div></div><div class=CToolTip id="tt4"><div class=CClass>The DragF [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>The SelectFeature control selects vector features from a given layer on click or hover.</div></div><div class=CToolTip id="tt4"><div class=CClass>The DragF [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/MouseDefaults-js.html b/doc/devdocs/files/OpenLayers/Control/MouseDefaults-js.html
index 32830b7..d696fea 100644
--- a/doc/devdocs/files/OpenLayers/Control/MouseDefaults-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/MouseDefaults-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.MouseDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.MouseDefaults - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseDefaults</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="Navigation-js.html#OpenLayers.Control.Navigation" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15') [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseDefaults"></a>OpenLayers.<wbr>Control.<wbr>MouseDefaults</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="Navigation-js.html#OpenLayers.Control.Navigation" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">OpenLayers.Control.Navigation</a>  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.Properties"></a>Properties</h3></div></div>
 
@@ -21,37 +21,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.OpenLayers.Control.MouseDefaults"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseDefaults</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.OpenLayers.Control.MouseDefaults"></a>OpenLayers.<wbr>Control.<wbr>MouseDefaults</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.registerWheelEvents"></a>registerWheelEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>registerWheelEvents: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.registerWheelEvents"></a>registerWheelEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">registerWheelEvents: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultClick"></a>defaultClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultClick"></a>defaultClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultDblClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultDblClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseDown"></a>defaultMouseDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseDown: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseDown"></a>defaultMouseDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseDown: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseMove"></a>defaultMouseMove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseMove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseMove"></a>defaultMouseMove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseMove: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseUp"></a>defaultMouseUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseUp: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseUp"></a>defaultMouseUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseUp: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseOut"></a>defaultMouseOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseOut: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultMouseOut"></a>defaultMouseOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseOut: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultWheelUp"></a>defaultWheelUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultWheelUp: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>User spun scroll whe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultWheelUp"></a>defaultWheelUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultWheelUp: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultWheelDown"></a>defaultWheelDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultWheelDown: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>User spun scro [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.defaultWheelDown"></a>defaultWheelDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultWheelDown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.zoomBoxEnd"></a>zoomBoxEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomBoxEnd: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoombox function.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.zoomBoxEnd"></a>zoomBoxEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomBoxEnd: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.removeZoomBox"></a>removeZoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>removeZoomBox: function()</td></tr></table></blockquote><p>Remove the zoombox from the screen and nullify our reference to it.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.removeZoomBox"></a>removeZoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeZoomBox: function()</td></tr></table></blockquote><p>Remove the zoombox from the screen and nullify our reference to it.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.onWheelEvent"></a>onWheelEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onWheelEvent: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Catch the wheel event and ha [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseDefaults.onWheelEvent"></a>onWheelEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onWheelEvent: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
 </div><!--Content-->
 
@@ -59,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><tabl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/MousePosition-js.html b/doc/devdocs/files/OpenLayers/Control/MousePosition-js.html
index 85c400a..e8b2918 100644
--- a/doc/devdocs/files/OpenLayers/Control/MousePosition-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/MousePosition-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.MousePosition - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.MousePosition - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MousePosition"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MousePosition</h1><div class=CBody><p>The MousePosition control displays geographic coordinates of the mouse pointer, as it is moved about the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, ' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MousePosition"></a>OpenLayers.<wbr>Control.<wbr>MousePosition</h1><div class=CBody><p>The MousePosition control displays geographic coordinates of the mouse pointer, as it is moved about the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.Properties"></a>Properties</h3></div></div>
 
@@ -37,23 +37,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.OpenLayers.Control.MousePosition"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MousePosition</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.OpenLayers.Control.MousePosition"></a>OpenLayers.<wbr>Control.<wbr>MousePosition</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for control.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>redraw: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>redraw: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.reset"></a>reset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>reset: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.reset"></a>reset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>reset: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.formatOutput"></a>formatOutput</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>formatOutput: function(</td><td class=PParameter nowrap>lonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Override to provide cus [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MousePosition.formatOutput"></a>formatOutput</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>formatOutput: function(</td><td class="PParameter  prettyprint " nowrap>lonLat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
 </div><!--Content-->
 
@@ -61,15 +61,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunction><blockq [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div c [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/MouseToolbar-js.html b/doc/devdocs/files/OpenLayers/Control/MouseToolbar-js.html
index 8f6065f..9acecbb 100644
--- a/doc/devdocs/files/OpenLayers/Control/MouseToolbar-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/MouseToolbar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.MouseToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.MouseToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseToolbar</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="NavToolbar-js.html#OpenLayers.Control.NavToolbar" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')"> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.MouseToolbar"></a>OpenLayers.<wbr>Control.<wbr>MouseToolbar</h1><div class=CBody><p>This class is DEPRECATED in 2.4 and will be removed by 3.0.  If you need this functionality, use <a href="NavToolbar-js.html#OpenLayers.Control.NavToolbar" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">OpenLayers.Control.NavToolbar</a> in [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.Properties"></a>Properties</h3></div></div>
 
@@ -25,35 +25,35 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.OpenLayers.Control.MouseToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseToolbar</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>position</td><td class=CDLDescription>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link15 onMouseOver="S [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.OpenLayers.Control.MouseToolbar"></a>OpenLayers.<wbr>Control.<wbr>MouseToolbar</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>position</td><td class=CDLDescription>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar._addButton"></a>_addButton</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_addButton:function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>img,</td></tr><tr><td></td><td class=PParameter nowrap>activeImg,</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar._addButton"></a>_addButton</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_addButton:function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>img,</td></tr><tr><td></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.buttonDown"></a>buttonDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buttonDown: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.buttonDown"></a>buttonDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buttonDown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.buttonUp"></a>buttonUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buttonUp: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.buttonUp"></a>buttonUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buttonUp: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultDblClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultDblClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseDown"></a>defaultMouseDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseDown: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseDown"></a>defaultMouseDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseDown: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.switchModeTo"></a>switchModeTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>switchModeTo: function(</td><td class=PParameter nowrap>mode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.switchModeTo"></a>switchModeTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>switchModeTo: function(</td><td class="PParameter  prettyprint " nowrap>mode</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.leaveMode"></a>leaveMode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>leaveMode: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.leaveMode"></a>leaveMode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">leaveMode: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseMove"></a>defaultMouseMove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseMove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseMove"></a>defaultMouseMove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseMove: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseUp"></a>defaultMouseUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseUp: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseUp"></a>defaultMouseUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseUp: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseOut"></a>defaultMouseOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultMouseOut: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultMouseOut"></a>defaultMouseOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultMouseOut: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultClick"></a>defaultClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.MouseToolbar.defaultClick"></a>defaultClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 </div><!--Content-->
 
@@ -61,15 +61,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><tabl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/NavToolbar-js.html b/doc/devdocs/files/OpenLayers/Control/NavToolbar-js.html
index 66fbf96..2e37a37 100644
--- a/doc/devdocs/files/OpenLayers/Control/NavToolbar-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/NavToolbar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.NavToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.NavToolbar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavToolbar</h1><div class=CBody><p>This Toolbar is an alternative to the Navigation control that displays the state of the control, and provides a UI for changing state to use the zoomBox via a Panel control.</p><p>If you wish to change the properties of the Navigation control used in the NavToolba [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavToolbar"></a>OpenLayers.<wbr>Control.<wbr>NavToolbar</h1><div class=CBody><p>This Toolbar is an alternative to the Navigation control that displays the state of the control, and provides a UI for changing state to use the zoomBox via a Panel control.</p><p>If you wish to change the properties of the Navigation control used in the NavToolbar, see: <a href="http://trac.openlay [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.OpenLayers.Control.NavToolbar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavToolbar</h3><div class=CBody><p>Add our two mousedefaults controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.OpenLayers.Control.NavToolbar"></a>OpenLayers.<wbr>Control.<wbr>NavToolbar</h3><div class=CBody><p>Add our two mousedefaults controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>calls the default draw, and then activates mouse defaults.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavToolbar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>calls the default draw, and then activates mouse defaults.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>calls the default draw, and then activates mouse defaults.</div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>calls the default draw, and then activates mouse defaults.</div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Navigation-js.html b/doc/devdocs/files/OpenLayers/Control/Navigation-js.html
index 88a3da7..51223bf 100644
--- a/doc/devdocs/files/OpenLayers/Control/Navigation-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Navigation-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Navigation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Navigation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,59 +11,67 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Navigation"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Navigation</h1><div class=CBody><p>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel).   Create a new navigation control with the <a href="#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" class=LConstructor id=link18  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Navigation"></a>OpenLayers.<wbr>Control.<wbr>Navigation</h1><div class=CBody><p>The navigation control handles map browsing with mouse events (dragging, double-clicking, and scrolling the wheel).   Create a new navigation control with the <a href="#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" class=LConstructor id=link19 onMouseOver="ShowTip(event, 'tt19',  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.dragPan"></a>dragPan</h3><div class=CBody><p>{<a href="DragPan-js.html#OpenLayers.Control.DragPan" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt1', 'link21')" onMouseOut="HideTip('tt1')">OpenLayers.Control.DragPan</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.dragPan"></a>dragPan</h3><div class=CBody><p>{<a href="DragPan-js.html#OpenLayers.Control.DragPan" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt1', 'link22')" onMouseOut="HideTip('tt1')">OpenLayers.Control.DragPan</a>}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.dragPanOptions"></a>dragPanOptions</h3><div class=CBody><p>{Object} Options passed to the DragPan control.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.pinchZoom"></a>pinchZoom</h3><div class=CBody><p>{<a href="PinchZoom-js.html#OpenLayers.Control.PinchZoom" class=LClass >OpenLayers.Control.PinchZoom</a>}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.pinchZoomOptions"></a>pinchZoomOptions</h3><div class=CBody><p>{Object} Options passed to the PinchZoom control.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} Allow panning of the map by dragging outside map viewport.  Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomBox"></a>zoomBox</h3><div class=CBody><p>{<a href="ZoomBox-js.html#OpenLayers.Control.ZoomBox" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt2', 'link22')" onMouseOut="HideTip('tt2')">OpenLayers.Control.ZoomBox</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomBox"></a>zoomBox</h3><div class=CBody><p>{<a href="ZoomBox-js.html#OpenLayers.Control.ZoomBox" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt2', 'link23')" onMouseOut="HideTip('tt2')">OpenLayers.Control.ZoomBox</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomBoxEnabled"></a>zoomBoxEnabled</h3><div class=CBody><p>{Boolean} Whether the user can draw a box to zoom</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomWheelEnabled"></a>zoomWheelEnabled</h3><div class=CBody><p>{Boolean} Whether the mousewheel should zoom the map</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.mouseWheelOptions"></a>mouseWheelOptions</h3><div class=CBody><p>{Object} Options passed to the MouseWheel control (only useful if <a href="#OpenLayers.Control.Navigation.zoomWheelEnabled" class=LProperty id=link23 onMouseOver="ShowTip(event, 'tt3', 'link23')" onMouseOut="HideTip('tt3')">zoomWheelEnabled</a> is set to true)</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.mouseWheelOptions"></a>mouseWheelOptions</h3><div class=CBody><p>{Object} Options passed to the MouseWheel control (only useful if <a href="#OpenLayers.Control.Navigation.zoomWheelEnabled" class=LProperty id=link24 onMouseOver="ShowTip(event, 'tt3', 'link24')" onMouseOut="HideTip('tt3')">zoomWheelEnabled</a> is set to true)</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.handleRightClicks"></a>handleRightClicks</h3><div class=CBody><p>{Boolean} Whether or not to handle right clicks.  Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomBoxKeyMask"></a>zoomBoxKeyMask</h3><div class=CBody><p>{Integer} <a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt4', 'link24')" onMouseOut="HideTip('tt4')">OpenLayers.Handler</a> key code of the key, which has to be pressed, while drawing the zoom box with the mouse on the screen.  You should probably set handleRightClicks to true [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.zoomBoxKeyMask"></a>zoomBoxKeyMask</h3><div class=CBody><p>{Integer} <a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt4', 'link25')" onMouseOut="HideTip('tt4')">OpenLayers.Handler</a> key code of the key, which has to be pressed, while drawing the zoom box with the mouse on the screen.  You should probably set handleRightClicks to true [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is true.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.OpenLayers.Control.Navigation"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Navigation</h3><div class=CBody><p>Create a new navigation control</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.OpenLayers.Control.Navigation"></a>OpenLayers.<wbr>Control.<wbr>Navigation</h3><div class=CBody><p>Create a new navigation control</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on the control</td></tr></table></div></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>The destroy method is used to perform any clean up before the control is dereferenced.   Typically this is where event listeners are removed to prevent memory leaks.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>The destroy method is used to perform any clean up before the control is dereferenced.   Typically this is where event listeners are removed to prevent memory leaks.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.defaultClick"></a>defaultClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultDblClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultDblClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.defaultDblRightClick"></a>defaultDblRightClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>defaultDblRightClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.defaultDblRightClick"></a>defaultDblRightClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultDblRightClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.wheelChange"></a>wheelChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wheelChange: function(</td><td class=PParameter nowrap>evt,</td></tr><tr><td></td><td class=PParameter nowrap>deltaZ</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.wheelChange"></a>wheelChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wheelChange: function(</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>deltaZ</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.wheelUp"></a>wheelUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wheelUp: function(</td><td class=PParameter nowrap>evt,</td></tr><tr><td></td><td class=PParameter nowrap>delta</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.wheelUp"></a>wheelUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wheelUp: function(</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>delta</td><td class="PAfterParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.wheelDown"></a>wheelDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wheelDown: function(</td><td class=PParameter nowrap>evt,</td></tr><tr><td></td><td class=PParameter nowrap>delta</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.wheelDown"></a>wheelDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wheelDown: function(</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>delta</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.disableZoomBox"></a>disableZoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>disableZoomBox : function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.disableZoomBox"></a>disableZoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">disableZoomBox : function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.enableZoomBox"></a>enableZoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>enableZoomBox : function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.enableZoomBox"></a>enableZoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">enableZoomBox : function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.disableZoomWheel"></a>disableZoomWheel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>disableZoomWheel : function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.disableZoomWheel"></a>disableZoomWheel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">disableZoomWheel : function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.enableZoomWheel"></a>enableZoomWheel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>enableZoomWheel : function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Navigation.enableZoomWheel"></a>enableZoomWheel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">enableZoomWheel : function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -71,15 +79,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The DragPan control pans the map with a drag of the mouse.</div></div><div class=CToolTip id="tt2"><div class=CClass>The ZoomBox control enables zooming directly to a given extent, by drawing a box on the map. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean} Whether the mousewheel should zoom the map</div></div><div class=CToolTip id="tt4"><div class=CClass>Base class to construct a higher-level handler for event seque [...]
+<div class=CToolTip id="tt1"><div class=CClass>The DragPan control pans the map with a drag of the mouse.</div></div><div class=CToolTip id="tt2"><div class=CClass>The ZoomBox control enables zooming directly to a given extent, by drawing a box on the map. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean} Whether the mousewheel should zoom the map</div></div><div class=CToolTip id="tt4"><div class=CClass>Base class to construct a higher-level handler for event seque [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/NavigationHistory-js.html b/doc/devdocs/files/OpenLayers/Control/NavigationHistory-js.html
index f4332f4..3b9f909 100644
--- a/doc/devdocs/files/OpenLayers/Control/NavigationHistory-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/NavigationHistory-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.NavigationHistory - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.NavigationHistory - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavigationHistory"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavigationHistory</h1><div class=CBody><p>A navigation history control.   This is a meta-control, that creates two dependent controls: <a href="#OpenLayers.Control.NavigationHistory.previous" class=LProperty id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.NavigationHistory"></a>OpenLayers.<wbr>Control.<wbr>NavigationHistory</h1><div class=CBody><p>A navigation history control.   This is a meta-control, that creates two dependent controls: <a href="#OpenLayers.Control.NavigationHistory.previous" class=LProperty id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">previous</a> and <a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.Properties"></a>Properties</h3></div></div>
 
@@ -43,37 +43,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.OpenLayers.Control.NavigationHistory"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavigationHistory</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the contro [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.OpenLayers.Control.NavigationHistory"></a>OpenLayers.<wbr>Control.<wbr>NavigationHistory</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.onPreviousChange"></a>onPreviousChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onPreviousChange: function(</td><td class=PParameter nowrap>state,</td></tr><tr><td></td><td class=PParameter nowrap>length</td><td class=PAfterParameters nowrap>)</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.onPreviousChange"></a>onPreviousChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onPreviousChange: function(</td><td class="PParameter  prettyprint " nowrap>state,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.onNextChange"></a>onNextChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onNextChange: function(</td><td class=PParameter nowrap>state,</td></tr><tr><td></td><td class=PParameter nowrap>length</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.onNextChange"></a>onNextChange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onNextChange: function(</td><td class="PParameter  prettyprint " nowrap>state,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>length</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control and [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Called when the control is added to the map.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Called when the control is added to the map.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.previousTrigger"></a>previousTrigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>previousTrigger: function()</td></tr></table></blockquote><p>Restore the previous state.   If no items are in the previous history stack, this has no effect.</p><h4 class=CHeading>Returns</h4><p>{Object} Item representing state that was restored [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.previousTrigger"></a>previousTrigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">previousTrigger: function()</td></tr></table></blockquote><p>Restore the previous state.   If no items are in the previous history stack, this has no effect.</p><h4 class=CHeading>Returns</h4><p>{Object} Item representing s [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.nextTrigger"></a>nextTrigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>nextTrigger: function()</td></tr></table></blockquote><p>Restore the next state.   If no items are in the next history stack, this has no effect.   The next history stack is populated as states are restored from the previous history stack.</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.nextTrigger"></a>nextTrigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">nextTrigger: function()</td></tr></table></blockquote><p>Restore the next state.   If no items are in the next history stack, this has no effect.   The next history stack is populated as states are restored from the previous h [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear history.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear history.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.getState"></a>getState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getState: function()</td></tr></table></blockquote><p>Get the current state and return it.</p><h4 class=CHeading>Returns</h4><p>{Object} An object representing the current state.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.getState"></a>getState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getState: function()</td></tr></table></blockquote><p>Get the current state and return it.</p><h4 class=CHeading>Returns</h4><p>{Object} An object representing the current state.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.restore"></a>restore</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>restore: function(</td><td class=PParameter nowrap>state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Update the state with the given obj [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.restore"></a>restore</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>restore: function(</td><td class="PParameter  prettyprint " nowrap>state</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.setListeners"></a>setListeners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setListeners: function()</td></tr></table></blockquote><p>Sets functions to be registered in the listeners object.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.setListeners"></a>setListeners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setListeners: function()</td></tr></table></blockquote><p>Sets functions to be registered in the listeners object.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.   This registers any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.   This registers any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.initStack"></a>initStack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initStack: function()</td></tr></table></blockquote><p>Called after the control is activated if the previous history stack is empty.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.initStack"></a>initStack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initStack: function()</td></tr></table></blockquote><p>Called after the control is activated if the previous history stack is empty.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   This unregisters any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.NavigationHistory.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   This unregisters any listeners.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Control successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -81,15 +81,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the previous state managed by this control.</div></div><div class=CToolTip id="tt3"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the next state managed by this control.</div></div><div class=CToolTip id="tt4"> [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the previous state managed by this control.</div></div><div class=CToolTip id="tt3"><div class=CProperty>{OpenLayers.Control} A button type control whose trigger method restores the next state managed by this control.</div></div><div class=CToolTip id="tt4"> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/OverviewMap-js.html b/doc/devdocs/files/OpenLayers/Control/OverviewMap-js.html
index 30612fb..73e5da1 100644
--- a/doc/devdocs/files/OpenLayers/Control/OverviewMap-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/OverviewMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.OverviewMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.OverviewMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.OverviewMap"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>OverviewMap</h1><div class=CBody><p>The OverMap control creates a small overview map, useful to display the extent of a zoomed map and your main map and provide additional navigation options to the User.   By default the overview map is drawn in the lower right corner of the main map.  C [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.OverviewMap"></a>OpenLayers.<wbr>Control.<wbr>OverviewMap</h1><div class=CBody><p>The OverMap control creates a small overview map, useful to display the extent of a zoomed map and your main map and provide additional navigation options to the User.   By default the overview map is drawn in the lower right corner of the main map.  Create a new overview map with the <a [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.Properties"></a>Properties</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minRectSize"></a>minRectSize</h3><div class=CBody><p>{Integer} The minimum width or height (in pixels) of the extent rectangle on the overview map.   When the extent rectangle reaches this size, it will be replaced depending on the value of the <a href="#OpenLayers.Control.OverviewMap.minRectDisplayClass" class=LProperty id=link26 onMouseOver="ShowTip(event, 'tt24', 'link26')" onMouseOu [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minRectDisplayClass"></a>minRectDisplayClass</h3><div class=CBody><p>{String} Replacement style class name for the extent rectangle when <a href="#OpenLayers.Control.OverviewMap.minRectSize" class=LProperty id=link27 onMouseOver="ShowTip(event, 'tt3', 'link27')" onMouseOut="HideTip('tt3')">minRectSize</a> is reached.   This string will be suffixed on to the displayClass.   Default  [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minRectDisplayClass"></a>minRectDisplayClass</h3><div class=CBody><p>{String} Replacement style class name for the extent rectangle when <a href="#OpenLayers.Control.OverviewMap.minRectSize" class=LProperty id=link27 onMouseOver="ShowTip(event, 'tt3', 'link27')" onMouseOut="HideTip('tt3')">minRectSize</a> is reached.   This string will be suffixed on to the displayClass.   Default  [...]
     overflow: hidden;
     cursor: move;
     background-image: url("img/overview_replacement.gif");
@@ -49,45 +49,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.OpenLayers.Control.OverviewMap"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>OverviewMap</h3><div class=CBody><p>Create a new overview map</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} Properties of this object will be set on the overview ma [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.OpenLayers.Control.OverviewMap"></a>OpenLayers.<wbr>Control.<wbr>OverviewMap</h3><div class=CBody><p>Create a new overview map</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} Properties of this object will be set on the overview map object.   Note, to set option [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct the control</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Deconstruct the control</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Render the control in the browser.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Render the control in the browser.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.baseLayerDraw"></a>baseLayerDraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>baseLayerDraw: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Draw the base layer</td><td class=CDLDescription>called if unable to complete in the initial draw</td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.baseLayerDraw"></a>baseLayerDraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">baseLayerDraw: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Draw the base layer</td><td class=CDLDescription>called if unable to complete in the initial [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.rectDrag"></a>rectDrag</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rectDrag: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle extent rectangle drag</p><h4 class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.rectDrag"></a>rectDrag</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rectDrag: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.mapDivClick"></a>mapDivClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mapDivClick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle browser events</p><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.mapDivClick"></a>mapDivClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mapDivClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.maximizeControl"></a>maximizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>maximizeControl: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Unhide the control.&n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.maximizeControl"></a>maximizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>maximizeControl: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minimizeControl"></a>minimizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>minimizeControl: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide all the contents [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.minimizeControl"></a>minimizeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>minimizeControl: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.showToggle"></a>showToggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>showToggle: function(</td><td class=PParameter nowrap>minimize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide/Show the toggle dependin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.showToggle"></a>showToggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>showToggle: function(</td><td class="PParameter  prettyprint " nowrap>minimize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>update: function()</td></tr></table></blockquote><p>Update the overview map after layers move.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">update: function()</td></tr></table></blockquote><p>Update the overview map after layers move.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.isSuitableOverview"></a>isSuitableOverview</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>isSuitableOverview: function()</td></tr></table></blockquote><p>Determines if the overview map is suitable given the extent and resolution of the main map.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.isSuitableOverview"></a>isSuitableOverview</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">isSuitableOverview: function()</td></tr></table></blockquote><p>Determines if the overview map is suitable given the extent and resolution of the main map.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.createMap"></a>createMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createMap: function()</td></tr></table></blockquote><p>Construct the map that this control contains</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.createMap"></a>createMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createMap: function()</td></tr></table></blockquote><p>Construct the map that this control contains</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.updateRectToMap"></a>updateRectToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateRectToMap: function()</td></tr></table></blockquote><p>Updates the extent rectangle position and size to match the map extent</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.updateRectToMap"></a>updateRectToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateRectToMap: function()</td></tr></table></blockquote><p>Updates the extent rectangle position and size to match the map extent</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.updateMapToRect"></a>updateMapToRect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateMapToRect: function()</td></tr></table></blockquote><p>Updates the map extent to match the extent rectangle position and size</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.updateMapToRect"></a>updateMapToRect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateMapToRect: function()</td></tr></table></blockquote><p>Updates the map extent to match the extent rectangle position and size</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.setRectPxBounds"></a>setRectPxBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setRectPxBounds: function(</td><td class=PParameter nowrap>pxBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set extent rec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.setRectPxBounds"></a>setRectPxBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setRectPxBounds: function(</td><td class="PParameter  prettyprint " nowrap>pxBounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getRectBoundsFromMapBounds"></a>getRectBoundsFromMapBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getRectBoundsFromMapBounds: function(</td><td class=PParameter nowrap>lonLatBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getRectBoundsFromMapBounds"></a>getRectBoundsFromMapBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getRectBoundsFromMapBounds: function(</td><td class="PParameter  prettyprint " nowrap>lonLatBounds</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getMapBoundsFromRectBounds"></a>getMapBoundsFromRectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapBoundsFromRectBounds: function(</td><td class=PParameter nowrap>pxBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getMapBoundsFromRectBounds"></a>getMapBoundsFromRectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapBoundsFromRectBounds: function(</td><td class="PParameter  prettyprint " nowrap>pxBounds</td><td class="PAfterParameters  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getLonLatFromOverviewPx"></a>getLonLatFromOverviewPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromOverviewPx: function(</td><td class=PParameter nowrap>overviewMapPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getLonLatFromOverviewPx"></a>getLonLatFromOverviewPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromOverviewPx: function(</td><td class="PParameter  prettyprint " nowrap>overviewMapPx</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getOverviewPxFromLonLat"></a>getOverviewPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOverviewPxFromLonLat: function(</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.OverviewMap.getOverviewPxFromLonLat"></a>getOverviewPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOverviewPxFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowr [...]
 
 </div><!--Content-->
 
@@ -95,15 +95,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CProperty>{Integer} The minimum width or height (in pixels) of the extent rectangle on the overview map. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CProperty>{Integer} The minimum width or height (in pixels) of the extent rectangle on the overview map. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Pan-js.html b/doc/devdocs/files/OpenLayers/Control/Pan-js.html
index fd19b39..75438d7 100644
--- a/doc/devdocs/files/OpenLayers/Control/Pan-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Pan-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Pan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Pan - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Pan"></a>OpenLayers.<span class=HB> </span>Control.Pan</h1><div class=CBody><p>The Pan control is a single button to pan the map in one direction.  For a more complete control see <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Control.PanPanel</a>.</p><h4 class [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Pan"></a>OpenLayers.<wbr>Control.Pan</h1><div class=CBody><p>The Pan control is a single button to pan the map in one direction.  For a more complete control see <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Control.PanPanel</a>.</p><h4 class=CHeading>Inherits [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.   If you want to pan by some ratio of the map dimensions, use <a href="#OpenLayers.Control.Pan.slideRatio" class=LProperty id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">slideRatio</a>  [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.slideRatio"></a>slideRatio</h3><div class=CBody><p>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons.   Default is null.   If set, will override <a href="#OpenLayers.Control.Pan.slideFactor" class=LProperty id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">slideFactor</a>.  E.g. if slideRatio is .5, [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.direction"></a>direction</h3><div class=CBody><p>{String} in {‘North’, ‘South’, ‘East’, ‘West’}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.type"></a>type</h3><div class=CBody><p>{String} The type of <a href="../Control-js.html#OpenLayers.Control" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a> -- When added to a <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt2', 'link7')" onMouseOut="HideTip('tt2')">Control.Panel [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.type"></a>type</h3><div class=CBody><p>{String} The type of <a href="../Control-js.html#OpenLayers.Control" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a> -- When added to a <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt2', 'link9')" onMouseOut="HideTip('tt2')">Control.Panel [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.OpenLayers.Control.Pan"></a>OpenLayers.<span class=HB> </span>Control.Pan</h3><div class=CBody><p>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>direction</td><td class=CDLDescription>{String} The direction this butt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.OpenLayers.Control.Pan"></a>OpenLayers.<wbr>Control.Pan</h3><div class=CBody><p>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>direction</td><td class=CDLDescription>{String} The direction this button should pan.</td [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Pan.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -35,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CClass>The PanPanel is visible contro [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CClass>The PanP [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/PanPanel-js.html b/doc/devdocs/files/OpenLayers/Control/PanPanel-js.html
index 3502bb6..b7c5d45 100644
--- a/doc/devdocs/files/OpenLayers/Control/PanPanel-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/PanPanel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.PanPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PanPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanPanel</h1><div class=CBody><p>The PanPanel is visible control for panning the map North, South, East or West in small steps.  By default it is drawn in the top left corner of the map.</p><h4 class=CHeading>Note</h4><p>If you wish to use this class with the default images and you want it to lo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanPanel"></a>OpenLayers.<wbr>Control.<wbr>PanPanel</h1><div class=CBody><p>The PanPanel is visible control for panning the map North, South, East or West in small steps.  By default it is drawn in the top left corner of the map.</p><h4 class=CHeading>Note</h4><p>If you wish to use this class with the default images and you want it to look nice in ie6, you should add the f [...]
   <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
-<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.PanPanel" >Open [...]
+<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.PanPanel" >Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.slideFactor"></a>slideFactor</h3><div class=CBody><p>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50.   If you want to pan by some ratio of the map dimensions, use <a href="#OpenLayers.Control.PanPanel.slideRatio" class=LProperty id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">slide [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.slideRatio"></a>slideRatio</h3><div class=CBody><p>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons.   Default is null.   If set, will override <a href="#OpenLayers.Control.PanPanel.slideFactor" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">slideFactor</a>.  E.g. if slideRa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.OpenLayers.Control.PanPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanPanel</h3><div class=CBody><p>Add the four directional pan buttons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanPanel.OpenLayers.Control.PanPanel"></a>OpenLayers.<wbr>Control.<wbr>PanPanel</h3><div class=CBody><p>Add the four directional pan buttons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table [...]
 
 </div><!--Content-->
 
@@ -29,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The Panel control is a container for other controls. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Number} The fraction of map width/height by which we’ll pan the map on clicking the arrow buttons. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Integer} Number of pixels by which we’ll pan the map in any direction on clicking the arrow buttons, defaults to 50. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/PanZoom-js.html b/doc/devdocs/files/OpenLayers/Control/PanZoom-js.html
index 53391d6..754ff15 100644
--- a/doc/devdocs/files/OpenLayers/Control/PanZoom-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/PanZoom-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.PanZoom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PanZoom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoom"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</h1><div class=CBody><p>The PanZoom is a visible control, composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <a href="ZoomPanel-js.html#OpenL [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoom"></a>OpenLayers.<wbr>Control.<wbr>PanZoom</h1><div class=CBody><p>The PanZoom is a visible control, composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <a href="ZoomPanel-js.html#OpenLayers.Control.ZoomPanel" class=LClas [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Properties"></a>Properties</h3></div></div>
 
@@ -25,23 +25,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.OpenLayers.Control.PanZoom"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.OpenLayers.Control.PanZoom"></a>OpenLayers.<wbr>Control.<wbr>PanZoom</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CH [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom._addButton"></a>_addButton</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_addButton:function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>img,</td></tr><tr><td></td><td class=PParameter nowrap>xy,</td></tr><tr><td></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom._addButton"></a>_addButton</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_addButton:function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>img,</td></tr><tr><td></td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom._removeButton"></a>_removeButton</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_removeButton: function(</td><td class=PParameter nowrap>btn</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom._removeButton"></a>_removeButton</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_removeButton: function(</td><td class="PParameter  prettyprint " nowrap>btn</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.removeButtons"></a>removeButtons</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>removeButtons: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.removeButtons"></a>removeButtons</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeButtons: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.doubleClick"></a>doubleClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>doubleClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.doubleClick"></a>doubleClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>doubleClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.buttonDown"></a>buttonDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buttonDown: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.buttonDown"></a>buttonDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buttonDown: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoom.Constants"></a>Constants</h3></div></div>
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>The ZoomPanel control is a compact collecton of 3 zoom controls: a OpenLayers.Control.ZoomIn, a OpenLayers.Control.ZoomToMaxExtent, and a OpenLayers.Control.ZoomOut. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates< [...]
+<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>The ZoomPanel control is a compact collecton of 3 zoom controls: a OpenLayers.Control.ZoomIn, a OpenLayers.Control.ZoomToMaxExtent, and a OpenLayers.Control.ZoomOut. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates< [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/PanZoomBar-js.html b/doc/devdocs/files/OpenLayers/Control/PanZoomBar-js.html
index 445c6f9..c976d05 100644
--- a/doc/devdocs/files/OpenLayers/Control/PanZoomBar-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/PanZoomBar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.PanZoomBar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PanZoomBar - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoomBar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoomBar</h1><div class=CBody><p>The PanZoomBar is a visible control composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <OpenLayers.Control.Z [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PanZoomBar"></a>OpenLayers.<wbr>Control.<wbr>PanZoomBar</h1><div class=CBody><p>The PanZoomBar is a visible control composed of a <a href="PanPanel-js.html#OpenLayers.Control.PanPanel" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">OpenLayers.Control.PanPanel</a> and a <OpenLayers.Control.ZoomBar>.  By default it is d [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.Properties"></a>Properties</h3></div></div>
 
@@ -29,41 +29,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomWorldIcon"></a>zoomWorldIcon</h3><div class=CBody><p>{Boolean}</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.panIcons"></a>panIcons</h3><div class=CBody><p>{Boolean} Set this property to false not to display the pan icons.  If false the zoom world icon is placed under the zoom bar.  Defaults to true.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.forceFixedZoomLevel"></a>forceFixedZoomLevel</h3><div class=CBody><p>{Boolean} Force a fixed zoom level even though the map has fractionalZoom</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.mouseDragStart"></a>mouseDragStart</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt2', 'link18')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>}</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.deltaY"></a>deltaY</h3><div class=CBody><p>{Number} The cumulative vertical pixel offset during a zoom bar drag.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomStart"></a>zoomStart</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>}</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.OpenLayers.Control.PanZoomBar"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoomBar</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.OpenLayers.Control.PanZoomBar"></a>OpenLayers.<wbr>Control.<wbr>PanZoomBar</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>redraw: function()</td></tr></table></blockquote><p>clear the div and start over.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>clear the div and start over.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar._addZoomBar"></a>_addZoomBar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_addZoomBar:function(</td><td class=PParameter nowrap>centered</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar._addZoomBar"></a>_addZoomBar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_addZoomBar:function(</td><td class="PParameter  prettyprint " nowrap>centered</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar._removeZoomBar"></a>_removeZoomBar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>_removeZoomBar: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar._removeZoomBar"></a>_removeZoomBar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">_removeZoomBar: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.passEventToSlider"></a>passEventToSlider</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>passEventToSlider:function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.passEventToSlider"></a>passEventToSlider</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>passEventToSlider:function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.divClick"></a>divClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>divClick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Picks up on clicks directly on the zoomb [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.divClick"></a>divClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>divClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomBarDown"></a>zoomBarDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomBarDown:function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>event listener for clicks on the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomBarDown"></a>zoomBarDown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomBarDown:function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomBarDrag"></a>zoomBarDrag</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomBarDrag:function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This is what happens when a click [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomBarDrag"></a>zoomBarDrag</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomBarDrag:function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomBarUp"></a>zoomBarUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomBarUp:function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Perform cleanup when a mouseup event is [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.zoomBarUp"></a>zoomBarUp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomBarUp:function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.moveZoomBar"></a>moveZoomBar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>moveZoomBar:function()</td></tr></table></blockquote><p>Change the location of the slider to match the current zoom level.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PanZoomBar.moveZoomBar"></a>moveZoomBar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">moveZoomBar:function()</td></tr></table></blockquote><p>Change the location of the slider to match the current zoom level.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -71,15 +75,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id [...]
+<div class=CToolTip id="tt1"><div class=CClass>The PanPanel is visible control for panning the map North, South, East or West in small steps. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Panel-js.html b/doc/devdocs/files/OpenLayers/Control/Panel-js.html
index a03e5b2..abc667f 100644
--- a/doc/devdocs/files/OpenLayers/Control/Panel-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Panel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Panel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Panel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,51 +11,57 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Panel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Panel</h1><div class=CBody><p>The Panel control is a container for other controls.  With it toolbars may be composed.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="Hide [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Panel"></a>OpenLayers.<wbr>Control.<wbr>Panel</h1><div class=CBody><p>The Panel control is a container for other controls.  With it toolbars may be composed.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.controls"></a>controls</h3><div class=CBody><p>{Array(<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt1', 'link17')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a>)}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.controls"></a>controls</h3><div class=CBody><p>{Array(<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a>)}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is true.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.defaultControl"></a>defaultControl</h3><div class=CBody><p>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a>} The control which is activated when the control is activated (turned on), which also happens at instantiation.  If <a href="#OpenLayers.Control.Panel.saveState" class [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.defaultControl"></a>defaultControl</h3><div class=CBody><p>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt1', 'link20')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a>} The control which is activated when the control is activated (turned on), which also happens at instantiation.  If <a href="#OpenLayers.Control.Panel.saveState" class [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.saveState"></a>saveState</h3><div class=CBody><p>{Boolean} If set to true, the active state of this panel’s controls will be stored on panel deactivation, and restored on reactivation.  Default is false.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.allowDepress"></a>allowDepress</h3><div class=CBody><p>{Boolean} If is true the <a href="../Control-js.html#OpenLayers.Control.OpenLayers.Control.TYPE_TOOL" class=LConstant >OpenLayers.Control.TYPE_TOOL</a> controls can be deactivated by clicking the icon that represents them.   Default is false.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activeState"></a>activeState</h3><div class=CBody><p>{Object} stores the active state of this panel’s controls.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.OpenLayers.Control.Panel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Panel</h3><div class=CBody><p>Create a new control panel.</p><p>Each control in the panel is represented by an icon.  When clicking on an icon, the <a href="#OpenLayers.Control.Panel.activateControl" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt7', 'link21')" onMouseOut="HideTip('tt7' [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.OpenLayers.Control.Panel"></a>OpenLayers.<wbr>Control.<wbr>Panel</h3><div class=CBody><p>Create a new control panel.</p><p>Each control in the panel is represented by an icon.  When clicking on an icon, the <a href="#OpenLayers.Control.Panel.activateControl" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt7', 'link23')" onMouseOut="HideTip('tt7')">activateControl</a> method is cal [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activateControl"></a>activateControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>activateControl: function (</td><td class="PParameter  prettyprint " nowrap>control</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>redraw: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControls: function(</td><td class="PParameter  prettyprint " nowrap>controls</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.activateControl"></a>activateControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>activateControl: function (</td><td class=PParameter nowrap>control</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is calle [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.addControlsToMap"></a>addControlsToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControlsToMap: function (</td><td class="PParameter  prettyprint " nowrap>controls</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControls: function(</td><td class=PParameter nowrap>controls</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>To build a toolbar, you add a se [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.iconOn"></a>iconOn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">iconOn: function()</td></tr></table></blockquote><p>Internal use, for use only with “controls[i].events.on/un”.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.addControlsToMap"></a>addControlsToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControlsToMap: function (</td><td class=PParameter nowrap>controls</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Only for interna [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.iconOff"></a>iconOff</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">iconOff: function()</td></tr></table></blockquote><p>Internal use, for use only with “controls[i].events.on/un”.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.onClick"></a>onClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onClick: function (</td><td class=PParameter nowrap>ctrl,</td></tr><tr><td></td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.onClick"></a>onClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onClick: function (</td><td class="PParameter  prettyprint " nowrap>ctrl,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.onDoubleClick"></a>onDoubleClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onDoubleClick: function(</td><td class=PParameter nowrap>ctrl,</td></tr><tr><td></td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.onDoubleClick"></a>onDoubleClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onDoubleClick: function(</td><td class="PParameter  prettyprint " nowrap>ctrl,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>match</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByName"></a>getControlsByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsByName: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of con [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByName"></a>getControlsByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsByName: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsByClass: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Panel.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsByClass: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
 </div><!--Content-->
 
@@ -63,15 +69,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></ [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: funct [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Permalink-js.html b/doc/devdocs/files/OpenLayers/Control/Permalink-js.html
index 19751bd..8e31870 100644
--- a/doc/devdocs/files/OpenLayers/Control/Permalink-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Permalink-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Permalink - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Permalink - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Permalink"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Permalink</h1><div class=CBody><p>The Permalink control is hyperlink that will return the user to the current map view.  By default it is drawn in the lower right corner of the map.  The href is updated as the map is zoomed, panned and whilst layers are switched.  ` Inherits from:</p> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Permalink"></a>OpenLayers.<wbr>Control.<wbr>Permalink</h1><div class=CBody><p>The Permalink control is hyperlink that will return the user to the current map view.  By default it is drawn in the lower right corner of the map.  The href is updated as the map is zoomed, panned and whilst layers are switched.  ` Inherits from:</p><ul><li><a href="../Control-js.html# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.Properties"></a>Properties</h3></div></div>
 
@@ -19,25 +19,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.element"></a>element</h3><div class=CBody><p>{DOMElement}</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.anchor"></a>anchor</h3><div class=CBody><h4 class=CHeading>{Boolean} This option changes 3 things</h4><p>the character ‘#’ is used in place of the character ‘?’, the window.href is updated if no element is provided.  When this option is set to true it’s not recommend to provide a base without provide an element.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.base"></a>base</h3><div class=CBody><p>{String}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.displayProjection"></a>displayProjection</h3><div class=CBody><p>{<a href="../Projection-js.html#OpenLayers.Projection" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">OpenLayers.Projection</a>} Requires proj4js support.   Projection used when creating the coordinates in the link.  This will reproject the map coordinates into display coo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.OpenLayers.Control.Permalink"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Permalink</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>base</td><td class=CDLDescription>{String}</td></tr><tr>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.OpenLayers.Control.Permalink"></a>OpenLayers.<wbr>Control.<wbr>Permalink</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>base</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td cl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control.</p><h4 cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.updateLink"></a>updateLink</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateLink: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.updateLink"></a>updateLink</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateLink: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.createParams"></a>createParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createParams: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom,</td></tr><tr><td></td><td class=PParameter nowrap>layers</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Permalink.createParams"></a>createParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createParams: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom,</td></tr><tr [...]
 
 </div><!--Content-->
 
@@ -45,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td [...]
+<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/PinchZoom-js.html b/doc/devdocs/files/OpenLayers/Control/PinchZoom-js.html
new file mode 100644
index 0000000..de34e5b
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Control/PinchZoom-js.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.PinchZoom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.PinchZoom"></a>OpenLayers.<wbr>Control.<wbr>PinchZoom</h1><div class=CBody><h4 class=CHeading>Inherits</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorde [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.type"></a>type</h3><div class=CBody><p>{OpenLayers.Control.TYPES}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.containerOrigin"></a>containerOrigin</h3><div class=CBody><p>{Object} Cached object representing the layer container origin (in pixels).</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.pinchOrigin"></a>pinchOrigin</h3><div class=CBody><p>{Object} Cached object representing the pinch start (in pixels).</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.currentCenter"></a>currentCenter</h3><div class=CBody><p>{Object} Cached object representing the latest pinch center (in pixels).</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is true.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.OpenLayers.Control.PinchZoom"></a>OpenLayers.<wbr>Control.<wbr>PinchZoom</h3><div class=CBody><p>Create a control for zooming with pinch gestures.   This works on devices with multi-touch support.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate this control.   Must be called after the control is added to a map.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was successfully activated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate this control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was successfully deactivated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.updateContainerOrigin"></a>updateContainerOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateContainerOrigin: function()</td></tr></table></blockquote><p>Must be called each time the layer container origin changes.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.pinchStart"></a>pinchStart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pinchStart: function(</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pinchData</td><td class="PA [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.pinchMove"></a>pinchMove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pinchMove: function(</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pinchData</td><td class="PAfte [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.applyTransform"></a>applyTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>applyTransform: function(</td><td class="PParameter  prettyprint " nowrap>transform</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.PinchZoom.pinchDone"></a>pinchDone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pinchDone: function(</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>start,</td></tr><tr><td></td>< [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate this control. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate this control.</div></div><div class=CT [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Control/SLDSelect-js.html b/doc/devdocs/files/OpenLayers/Control/SLDSelect-js.html
index 2bf9baf..1122e1a 100644
--- a/doc/devdocs/files/OpenLayers/Control/SLDSelect-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/SLDSelect-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.SLDSelect - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.SLDSelect - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SLDSelect"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SLDSelect</h1><div class=CBody><p>Perform selections on WMS layers using Styled Layer Descriptor (SLD)</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">Op [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SLDSelect"></a>OpenLayers.<wbr>Control.<wbr>SLDSelect</h1><div class=CBody><p>Perform selections on WMS layers using Styled Layer Descriptor (SLD)</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">OpenLayers.Control</a></li></ul><!--ST [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happen [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Properties"></a>Properties</h3></div></div>
 
@@ -31,7 +31,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Used to set non-default properties on the control’s handler</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.sketchStyle"></a>sketchStyle</h3><div class=CBody><p>{<OpenLayers.Style>|Object} Style or symbolizer to use for the sketch handler.  The recommended way of styling the sketch layer, however, is to configure an <a href="../StyleMap-js.html#OpenLayers.StyleMap" class=LClass >OpenLayers.StyleMap</a> in the layerOptions of the <a href="#OpenLayers.Control.SLDSelect.handlerOptions" class [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.sketchStyle"></a>sketchStyle</h3><div class=CBody><p>{<OpenLayers.Style>|Object} Style or symbolizer to use for the sketch handler.  The recommended way of styling the sketch layer, however, is to configure an <a href="../StyleMap-js.html#OpenLayers.StyleMap" class=LClass >OpenLayers.StyleMap</a> in the layerOptions of the <a href="#OpenLayers.Control.SLDSelect.handlerOptions" class [...]
     handlerOptions: {
         layerOptions: {
             styleMap: new OpenLayers.StyleMap({
@@ -43,37 +43,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.wfsCache"></a>wfsCache</h3><div class=CBody><p>{Object} Cache to use for storing parsed results from <OpenLayers.Format.WFSDescribeFeatureType.read>.  If not provided, these will be cached on the prototype.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.layerCache"></a>layerCache</h3><div class=CBody><p>{Object} Cache to use for storing references to the selection layers.  Normally each source layer will have exactly 1 selection layer of type OpenLayers.Layer.WMS.Post.  If not provided, layers will be cached on the prototype.  Note that if <a href="#OpenLayers.Control.SLDSelect.clearOnDeactivate" class=LProperty id=link18 onMou [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.layerCache"></a>layerCache</h3><div class=CBody><p>{Object} Cache to use for storing references to the selection layers.  Normally each source layer will have exactly 1 selection layer of type OpenLayers.Layer.WMS.  If not provided, layers will be cached on the prototype.  Note that if <a href="#OpenLayers.Control.SLDSelect.clearOnDeactivate" class=LProperty id=link18 onMouseOve [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.OpenLayers.Control.SLDSelect"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SLDSelect</h3><div class=CBody><p>Create a new control for selecting features in WMS layers using Styled Layer Descriptor (SLD).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.OpenLayers.Control.SLDSelect"></a>OpenLayers.<wbr>Control.<wbr>SLDSelect</h3><div class=CBody><p>Create a new control for selecting features in WMS layers using Styled Layer Descriptor (SLD).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handler</td><td class=CDLDescription>{<a href="../BaseTypes/Class-js.html# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.coupleLayerVisiblity"></a>coupleLayerVisiblity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>coupleLayerVisiblity: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Couple [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.coupleLayerVisiblity"></a>coupleLayerVisiblity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>coupleLayerVisiblity: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.createSelectionLayer"></a>createSelectionLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createSelectionLayer: function(</td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cre [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.createSelectionLayer"></a>createSelectionLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createSelectionLayer: function(</td><td class="PParameter  prettyprint " nowrap>source</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.createSLD"></a>createSLD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createSLD: function(</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>filters,</td></tr><tr><td></td><td class=PParameter nowrap>geometryAttributes [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.createSLD"></a>createSLD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createSLD: function(</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filters,</td></tr><tr><td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.parseDescribeLayer"></a>parseDescribeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseDescribeLayer: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.parseDescribeLayer"></a>parseDescribeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseDescribeLayer: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.getGeometryAttributes"></a>getGeometryAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeometryAttributes: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>L [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.getGeometryAttributes"></a>getGeometryAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeometryAttributes: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.  Activating the control will perform a SLD WMS DescribeLayer request followed by a WFS DescribeFeatureType request so that the proper symbolizers can be chosen based on the geometry type.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.  Activating the control will perform a SLD WMS DescribeLayer request followed by a WFS DescribeFeatureType request so that the proper symbolizers can be chosen based on  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.  If clearOnDeactivate is true, remove the selection layer(s).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.  If clearOnDeactivate is true, remove the selection layer(s).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.setLayers"></a>setLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayers: function(</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the layers on which the selectio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.setLayers"></a>setLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayers: function(</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.createFilter"></a>createFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFilter: function(</td><td class=PParameter nowrap>geometryAttribute,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.createFilter"></a>createFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFilter: function(</td><td class="PParameter  prettyprint " nowrap>geometryAttribute,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.select"></a>select</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>select: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the handler is done, use SLD_BODY on t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.select"></a>select</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>select: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.applySelection"></a>applySelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>applySelection: function()</td></tr></table></blockquote><p>Checks if all required wfs data is cached, and applies the selection</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SLDSelect.applySelection"></a>applySelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">applySelection: function()</td></tr></table></blockquote><p>Checks if all required wfs data is cached, and applies the selection</p></div></div></div>
 
 </div><!--Content-->
 
@@ -81,15 +81,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Take care of things that are not handled in superclass.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table borde [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Scale-js.html b/doc/devdocs/files/OpenLayers/Control/Scale-js.html
index 5fc1e8e..8e45663 100644
--- a/doc/devdocs/files/OpenLayers/Control/Scale-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Scale-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Scale - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Scale - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Scale"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Scale</h1><div class=CBody><p>The Scale control displays the current map scale as a ratio (e.g.  Scale = 1:1M).  By default it is displayed in the lower right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Scale"></a>OpenLayers.<wbr>Control.<wbr>Scale</h1><div class=CBody><p>The Scale control displays the current map scale as a ratio (e.g.  Scale = 1:1M).  By default it is displayed in the lower right corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.OpenLayers.Control.Scale"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Scale</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.OpenLayers.Control.Scale"></a>OpenLayers.<wbr>Control.<wbr>Scale</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>element</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.updateScale"></a>updateScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateScale: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Scale.updateScale"></a>updateScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateScale: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>{DOMElement}</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateScale: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the m [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>{DOMElement}</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateScale: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>Cont [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ScaleLine-js.html b/doc/devdocs/files/OpenLayers/Control/ScaleLine-js.html
index d54915b..47e9ee9 100644
--- a/doc/devdocs/files/OpenLayers/Control/ScaleLine-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ScaleLine-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ScaleLine - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ScaleLine - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ScaleLine"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ScaleLine</h1><div class=CBody><p>The ScaleLine displays a small line indicator representing the current map scale on the map.  By default it is drawn in the lower left corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ScaleLine"></a>OpenLayers.<wbr>Control.<wbr>ScaleLine</h1><div class=CBody><p>The ScaleLine displays a small line indicator representing the current map scale on the map.  By default it is drawn in the lower left corner of the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(even [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.Properties"></a>Properties</h3></div></div>
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.OpenLayers.Control.ScaleLine"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ScaleLine</h3><div class=CBody><p>Create a new scale line control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to ex [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.OpenLayers.Control.ScaleLine"></a>OpenLayers.<wbr>Control.<wbr>ScaleLine</h3><div class=CBody><p>Create a new scale line control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.getBarLen"></a>getBarLen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBarLen: function(</td><td class=PParameter nowrap>maxLen</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a number, round it down to the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.getBarLen"></a>getBarLen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBarLen: function(</td><td class="PParameter  prettyprint " nowrap>maxLen</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>update: function()</td></tr></table></blockquote><p>Update the size of the bars, and the labels they contain.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ScaleLine.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">update: function()</td></tr></table></blockquote><p>Update the size of the bars, and the labels they contain.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote>{DOMElement}</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBarLen: function(</td><td class=PParameter nowrap>maxLen</td><td class=PAft [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote>{DOMElement}</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBarLen: function(</td><td class="PPa [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/SelectFeature-js.html b/doc/devdocs/files/OpenLayers/Control/SelectFeature-js.html
index 05af140..6bdaa52 100644
--- a/doc/devdocs/files/OpenLayers/Control/SelectFeature-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/SelectFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.SelectFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.SelectFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SelectFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SelectFeature</h1><div class=CBody><p>The SelectFeature control selects vector features from a given layer on click or hover.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt26', 'link29')" onMo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.SelectFeature"></a>OpenLayers.<wbr>Control.<wbr>SelectFeature</h1><div class=CBody><p>The SelectFeature control selects vector features from a given layer on click or hover.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt26', 'link29')" onMouseOut="HideTip('tt26')">OpenLayers. [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.Constants"></a>Constants</h3></div></div>
 
@@ -31,7 +31,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.hover"></a>hover</h3><div class=CBody><p>{Boolean} Select on mouse over and deselect on mouse out.   If true, this ignores clicks and only listens to mouse moves.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.highlightOnly"></a>highlightOnly</h3><div class=CBody><p>{Boolean} If true do not actually select features (i.e. place them in the layer’s selected features array), just highlight them.  This property has no effect if hover is false.  Defaults to false.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.highlightOnly"></a>highlightOnly</h3><div class=CBody><p>{Boolean} If true do not actually select features (that is place them in the layer’s selected features array), just highlight them.  This property has no effect if hover is false.  Defaults to false.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.box"></a>box</h3><div class=CBody><p>{Boolean} Allow feature selection by drawing a box.</p></div></div></div>
 
@@ -47,7 +47,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt3', 'link32')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Vector</a>} The vector layer with a common renderer root for all layers this control is configured with (if an array of layers was passed to the constructor), or the vector layer [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.layers"></a>layers</h3><div class=CBody><p>{Array(<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt3', 'link33')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Vector</a>} The layers this control will work on, or null if the control was configured with a single layer</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.layers"></a>layers</h3><div class=CBody><p>{Array(<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt3', 'link33')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Vector</a>)} The layers this control will work on, or null if the control was configured with a single layer</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.callbacks"></a>callbacks</h3><div class=CBody><p>{Object} The functions that are sent to the handlers.feature for callback</p></div></div></div>
 
@@ -59,45 +59,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.OpenLayers.Control.SelectFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>SelectFeature</h3><div class=CBody><p>Create a new control for selecting features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layers</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLa [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.OpenLayers.Control.SelectFeature"></a>OpenLayers.<wbr>Control.<wbr>SelectFeature</h3><div class=CBody><p>Create a new control for selecting features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layers</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.initLayer"></a>initLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initLayer: function(</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Assign the layer property.  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.initLayer"></a>initLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initLayer: function(</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.unselectAll"></a>unselectAll</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unselectAll: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Unselect all selected fea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.unselectAll"></a>unselectAll</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unselectAll: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.clickFeature"></a>clickFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clickFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on click in a f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.clickFeature"></a>clickFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clickFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.multipleSelect"></a>multipleSelect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>multipleSelect: function()</td></tr></table></blockquote><p>Allow for multiple selected features based on <a href="#OpenLayers.Control.SelectFeature.multiple" class=LProperty id=link38 onMouseOver="ShowTip(event, 'tt1', 'link38')" onMouseOut="HideTip('tt1' [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.multipleSelect"></a>multipleSelect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">multipleSelect: function()</td></tr></table></blockquote><p>Allow for multiple selected features based on <a href="#OpenLayers.Control.SelectFeature.multiple" class=LProperty id=link38 onMouseOver="ShowTip(event, 'tt1', 'link38')" onM [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.toggleSelect"></a>toggleSelect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toggleSelect: function()</td></tr></table></blockquote><p>Event should toggle the selected state of a feature based on <a href="#OpenLayers.Control.SelectFeature.toggle" class=LProperty id=link40 onMouseOver="ShowTip(event, 'tt2', 'link40')" onMouseOut="HideTi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.toggleSelect"></a>toggleSelect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toggleSelect: function()</td></tr></table></blockquote><p>Event should toggle the selected state of a feature based on <a href="#OpenLayers.Control.SelectFeature.toggle" class=LProperty id=link40 onMouseOver="ShowTip(event, 'tt2', 'link40 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.clickoutFeature"></a>clickoutFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clickoutFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on cli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.clickoutFeature"></a>clickoutFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clickoutFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.overFeature"></a>overFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>overFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on over a feature. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.overFeature"></a>overFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>overFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.outFeature"></a>outFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>outFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on out of a selected  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.outFeature"></a>outFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>outFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.highlight"></a>highlight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>highlight: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Redraw feature with the select  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.highlight"></a>highlight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>highlight: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.unhighlight"></a>unhighlight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unhighlight: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Redraw feature with the & [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.unhighlight"></a>unhighlight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unhighlight: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.select"></a>select</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>select: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add feature to the layer’s selecte [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.select"></a>select</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>select: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.unselect"></a>unselect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unselect: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove feature from the layer&rsqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.unselect"></a>unselect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unselect: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.selectBox"></a>selectBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>selectBox: function(</td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Callback from the handlers.box [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.selectBox"></a>selectBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectBox: function(</td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control.</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Attach a new layer to the control,  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.SelectFeature.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
 </div><!--Content-->
 
@@ -105,15 +105,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Allow selection of multiple geometries. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Boolean} Unselect a selected feature on click. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt4"><div class=CClass>Base class to construct a higher-level handler for event sequences. < [...]
+<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Allow selection of multiple geometries. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Boolean} Unselect a selected feature on click. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt4"><div class=CClass>Base class to construct a higher-level handler for event sequences. < [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Snapping-js.html b/doc/devdocs/files/OpenLayers/Control/Snapping-js.html
index a7d73ed..135afeb 100644
--- a/doc/devdocs/files/OpenLayers/Control/Snapping-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Snapping-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Snapping - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Snapping - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Snapping"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Snapping</h1><div class=CBody><p>Acts as a snapping agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">OpenLayers.Contro [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Snapping"></a>OpenLayers.<wbr>Control.<wbr>Snapping</h1><div class=CBody><p>Acts as a snapping agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY- [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happene [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on  [...]
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>Default target properties.</p></div></div></div>
 
@@ -37,37 +37,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.OpenLayers.Control.Snapping"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Snapping</h3><div class=CBody><p>Creates a new snapping control.  A control is constructed with an editable layer and a set of configuration objects for target layers.  While the control is active, dragging vertices while drawing new features or modifying existing features on the edita [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.OpenLayers.Control.Snapping"></a>OpenLayers.<wbr>Control.<wbr>Snapping</h3><div class=CBody><p>Creates a new snapping control.  A control is constructed with an editable layer and a set of configuration objects for target layers.  While the control is active, dragging vertices while drawing new features or modifying existing features on the editable layer will engage snapping to fe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the editable layer.   Call the s [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.setTargets"></a>setTargets</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setTargets: function(</td><td class=PParameter nowrap>targets</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the targets for the snapping  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.setTargets"></a>setTargets</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setTargets: function(</td><td class="PParameter  prettyprint " nowrap>targets</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.addTargetLayer"></a>addTargetLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTargetLayer: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add a target layer with [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.addTargetLayer"></a>addTargetLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTargetLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.addTarget"></a>addTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTarget: function(</td><td class=PParameter nowrap>target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add a configured target layer.</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.addTarget"></a>addTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTarget: function(</td><td class="PParameter  prettyprint " nowrap>target</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.removeTargetLayer"></a>removeTargetLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeTargetLayer: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove a targe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.removeTargetLayer"></a>removeTargetLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeTargetLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.removeTarget"></a>removeTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeTarget: function(</td><td class=PParameter nowrap>target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove a target.</p><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.removeTarget"></a>removeTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeTarget: function(</td><td class="PParameter  prettyprint " nowrap>target</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, moving vertices will trigger snapping.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, moving vertices will trigger snapping.</p></div> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the snapping agent.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the snapping agent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.onSketchModified"></a>onSketchModified</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onSketchModified: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Registered as a l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.onSketchModified"></a>onSketchModified</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onSketchModified: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.onVertexModified"></a>onVertexModified</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onVertexModified: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Registered as a l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.onVertexModified"></a>onVertexModified</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onVertexModified: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.considerSnapping"></a>considerSnapping</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>considerSnapping: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>loc</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.considerSnapping"></a>considerSnapping</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>considerSnapping: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>loc</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.testTarget"></a>testTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>testTarget: function(</td><td class=PParameter nowrap>target,</td></tr><tr><td></td><td class=PParameter nowrap>loc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.testTarget"></a>testTarget</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>testTarget: function(</td><td class="PParameter  prettyprint " nowrap>target,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>loc</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.getGeoTolerance"></a>getGeoTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeoTolerance: function(</td><td class=PParameter nowrap>tolerance</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate a tole [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.getGeoTolerance"></a>getGeoTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeoTolerance: function(</td><td class="PParameter  prettyprint " nowrap>tolerance,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resolut [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Snapping.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the control.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -75,15 +75,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/Split-js.html b/doc/devdocs/files/OpenLayers/Control/Split-js.html
index 13f7ea9..ce77205 100644
--- a/doc/devdocs/files/OpenLayers/Control/Split-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/Split-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.Split - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.Split - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Split"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Split</h1><div class=CBody><p>Acts as a split feature agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')">OpenLayers.Control [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.Split"></a>OpenLayers.<wbr>Control.<wbr>Split</h1><div class=CBody><p>Acts as a split feature agent while editing vector features.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')">OpenLayers.Control</a></li></ul><!--START_ND_SUMMARY-- [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.< [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">control.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Properties"></a>Properties</h3></div></div>
 
@@ -41,29 +41,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.OpenLayers.Control.Split"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Split</h3><div class=CBody><p>Creates a new split control.  A control is constructed with a target layer and an optional source layer.  While the control is active, creating new features or modifying existing features on the source layer will result in splitting any eligible features on the  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.OpenLayers.Control.Split"></a>OpenLayers.<wbr>Control.<wbr>Split</h3><div class=CBody><p>Creates a new split control.  A control is constructed with a target layer and an optional source layer.  While the control is active, creating new features or modifying existing features on the source layer will result in splitting any eligible features on the target layer.   If no source la [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.setSource"></a>setSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSource: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the source layer for edits layer.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.setSource"></a>setSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSource: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, features in the target will be considered for splitting.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the control.   Activating the control registers listeners for editing related events so that during feature creation and modification, features in the target will be considered for split [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the split agent.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the control.   Deactivating the control unregisters listeners so feature editing may proceed without engaging the split agent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.onSketchComplete"></a>onSketchComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onSketchComplete: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Registered as a list [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.onSketchComplete"></a>onSketchComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onSketchComplete: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.afterFeatureModified"></a>afterFeatureModified</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>afterFeatureModified: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Register [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.afterFeatureModified"></a>afterFeatureModified</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>afterFeatureModified: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.removeByGeometry"></a>removeByGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeByGeometry: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.removeByGeometry"></a>removeByGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeByGeometry: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.isEligible"></a>isEligible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isEligible: function(</td><td class=PParameter nowrap>target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test if a target feature is eligible  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.isEligible"></a>isEligible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isEligible: function(</td><td class="PParameter  prettyprint " nowrap>target</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.considerSplit"></a>considerSplit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>considerSplit: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Decide whether or not to sp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.considerSplit"></a>considerSplit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>considerSplit: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.geomsToFeatures"></a>geomsToFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>geomsToFeatures: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>geoms</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.geomsToFeatures"></a>geomsToFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>geomsToFeatures: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geoms</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.Split.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the control.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -71,15 +71,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Handler to draw a path on the map. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSource: function(</td><td cl [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Handler to draw a path on the map. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSource: fun [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/TouchNavigation-js.html b/doc/devdocs/files/OpenLayers/Control/TouchNavigation-js.html
new file mode 100644
index 0000000..9efd191
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Control/TouchNavigation-js.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.TouchNavigation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.TouchNavigation"></a>OpenLayers.<wbr>Control.<wbr>TouchNavigation</h1><div class=CBody><p>The navigation control handles map browsing with touch events (dragging, double-tapping, tap with two fingers, and pinch zoom).   Create a new control with the <a href="#OpenLayers.Control.TouchNavigation.OpenLayers.Control.TouchNavigation" class=LConstructor id=link8 onMouseOver="Sho [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.dragPan"></a>dragPan</h3><div class=CBody><p>{<a href="DragPan-js.html#OpenLayers.Control.DragPan" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Control.DragPan</a>}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.dragPanOptions"></a>dragPanOptions</h3><div class=CBody><p>{Object} Options passed to the DragPan control.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.pinchZoom"></a>pinchZoom</h3><div class=CBody><p>{<a href="PinchZoom-js.html#OpenLayers.Control.PinchZoom" class=LClass >OpenLayers.Control.PinchZoom</a>}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.pinchZoomOptions"></a>pinchZoomOptions</h3><div class=CBody><p>{Object} Options passed to the PinchZoom control.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.clickHandlerOptions"></a>clickHandlerOptions</h3><div class=CBody><p>{Object} Options passed to the Click handler.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} Allow panning of the map by dragging outside map viewport.  Default is false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.autoActivate"></a>autoActivate</h3><div class=CBody><p>{Boolean} Activate the control when it is added to a map.   Default is true.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.OpenLayers.Control.TouchNavigation"></a>OpenLayers.<wbr>Control.<wbr>TouchNavigation</h3><div class=CBody><p>Create a new navigation control</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on the control</td></tr>< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>The destroy method is used to perform any clean up before the control is dereferenced.   Typically this is where event listeners are removed to prevent memory leaks.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.defaultClick"></a>defaultClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TouchNavigation.defaultDblClick"></a>defaultDblClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>defaultDblClick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>The DragPan control pans the map with a drag of the mouse.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>The destroy method is used to perform any clean up before the control is dereferenced. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table borde [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Control/TransformFeature-js.html b/doc/devdocs/files/OpenLayers/Control/TransformFeature-js.html
index e7b9a8f..af68153 100644
--- a/doc/devdocs/files/OpenLayers/Control/TransformFeature-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/TransformFeature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.TransformFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.TransformFeature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,36 +11,36 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.TransformFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TransformFeature</h1><div class=CBody><p>Control to transform features with a standard transformation box.</p><h4 class=CHeading>Inherits From</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt14', 'link17')" onMouseOut="HideTip( [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.TransformFeature"></a>OpenLayers.<wbr>Control.<wbr>TransformFeature</h1><div class=CBody><p>Control to transform features with a standard transformation box.</p><h4 class=CHeading>Inherits From</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMouseOut="HideTip('tt15')">OpenLayers.Control</a></li> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types</h4><ul><li><b>beforesetfeature</b> Triggered before a feature is set for tranformation.  The feature will not be set if a listener returns false.  Listeners receive a <b>feature</b> property, with the feature that will be set for transformation.  Listeners are allowed to set the co [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types</h4><ul><li><b>beforesetfeature</b> Triggered before a feature is set for tranformation.  The feature will not be set if a listener returns false.  Listeners receive a <b>feature</b> property, with the feature that will be set for transformation.  Listeners are allowed to set the co [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.geometryTypes"></a>geometryTypes</h3><div class=CBody><p>{Array(String)} To restrict transformation to a limited set of geometry types, send a list of strings corresponding to the geometry class names.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt1', 'link21')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Vector</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt1', 'link22')" onMouseOut="HideTip('tt1')">OpenLayers.Layer.Vector</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.preserveAspectRatio"></a>preserveAspectRatio</h3><div class=CBody><p>{Boolean} set to true to not change the feature’s aspect ratio.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotate"></a>rotate</h3><div class=CBody><p>{Boolean} set to false if rotation should be disabled.  Default is true.  To be passed with the constructor or set when the control is not active.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt2', 'link22')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} Feature currently available for transformation.  Read-only, use <a href="#OpenLayers.Control.TransformFeature.setFeature" class=LFunction id=link23  [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt2', 'link23')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} Feature currently available for transformation.  Read-only, use <a href="#OpenLayers.Control.TransformFeature.setFeature" class=LFunction id=link24  [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.renderIntent"></a>renderIntent</h3><div class=CBody><p>{String|Object} Render intent for the transformation box and handles.  A symbolizer object can also be provided here.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandleSymbolizer"></a>rotationHandleSymbolizer</h3><div class=CBody><p>{Object|String} Optional.  A custom symbolizer for the rotation handles.  A render intent can also be provided here.  Defaults to</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandleSymbolizer"></a>rotationHandleSymbolizer</h3><div class=CBody><p>{Object|String} Optional.  A custom symbolizer for the rotation handles.  A render intent can also be provided here.  Defaults to</p><blockquote><pre class="prettyprint">{
     stroke: false,
     pointRadius: 10,
     fillOpacity: 0,
     cursor: "pointer"
 }</pre></blockquote></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.box"></a>box</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt2', 'link24')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} The transformation box rectangle.  Read-only.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.box"></a>box</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt2', 'link25')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>} The transformation box rectangle.  Read-only.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.center"></a>center</h3><div class=CBody><p>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt3', 'link25')" onMouseOut="HideTip('tt3')">OpenLayers.Geometry.Point</a>} The center of the feature bounds.  Read-only.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.center"></a>center</h3><div class=CBody><p>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt3', 'link26')" onMouseOut="HideTip('tt3')">OpenLayers.Geometry.Point</a>} The center of the feature bounds.  Read-only.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.scale"></a>scale</h3><div class=CBody><p>{Float} The scale of the feature, relative to the scale the time the feature was set.  Read-only, except for <b>beforesetfeature</b> listeners.</p></div></div></div>
 
@@ -48,35 +48,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotation"></a>rotation</h3><div class=CBody><p>{Integer} the current rotation angle of the box.  Read-only, except for <b>beforesetfeature</b> listeners.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.handles"></a>handles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt2', 'link26')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>)} The 8 handles currently available for scaling/resizing.  Numbered counterclockwise, starting from the southwest corner.  Read-only.</p>< [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.handles"></a>handles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt2', 'link27')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>)} The 8 handles currently available for scaling/resizing.  Numbered counterclockwise, starting from the southwest corner.  Read-only.</p>< [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandles"></a>rotationHandles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt2', 'link27')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>)} The 4 rotation handles currently available for rotating.  Numbered counterclockwise, starting from the southwest corner.&nbsp [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.rotationHandles"></a>rotationHandles</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt2', 'link28')" onMouseOut="HideTip('tt2')">OpenLayers.Feature.Vector</a>)} The 4 rotation handles currently available for rotating.  Numbered counterclockwise, starting from the southwest corner.&nbsp [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.dragControl"></a>dragControl</h3><div class=CBody><p>{<a href="DragFeature-js.html#OpenLayers.Control.DragFeature" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt4', 'link28')" onMouseOut="HideTip('tt4')">OpenLayers.Control.DragFeature</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.dragControl"></a>dragControl</h3><div class=CBody><p>{<a href="DragFeature-js.html#OpenLayers.Control.DragFeature" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt4', 'link29')" onMouseOut="HideTip('tt4')">OpenLayers.Control.DragFeature</a>}</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.OpenLayers.Control.TransformFeature"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>TransformFeature</h3><div class=CBody><p>Create a new transform feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#Ope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.OpenLayers.Control.TransformFeature"></a>OpenLayers.<wbr>Control.<wbr>TransformFeature</h3><div class=CBody><p>Create a new transform feature control.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass i [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activates the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activates the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivates the control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivates the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.setFeature"></a>setFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setFeature: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>initialParams</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.setFeature"></a>setFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>initialParams</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.createBox"></a>createBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createBox: function()</td></tr></table></blockquote><p>Creates the box with all handles and transformation handles.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.unsetFeature"></a>unsetFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">unsetFeature: function()</td></tr></table></blockquote><p>Remove the transformation box off any feature.  If the control is active, it will be deactivated first.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.createControl"></a>createControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createControl: function()</td></tr></table></blockquote><p>Creates a DragFeature control for this control.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.createBox"></a>createBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createBox: function()</td></tr></table></blockquote><p>Creates the box with all handles and transformation handles.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.drawHandles"></a>drawHandles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>drawHandles: function()</td></tr></table></blockquote><p>Draws the handles to match the box.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.createControl"></a>createControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createControl: function()</td></tr></table></blockquote><p>Creates a DragFeature control for this control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.transformFeature"></a>transformFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transformFeature: function(</td><td class=PParameter nowrap>mods</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Transforms [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.drawHandles"></a>drawHandles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">drawHandles: function()</td></tr></table></blockquote><p>Draws the handles to match the box.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.transformFeature"></a>transformFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transformFeature: function(</td><td class="PParameter  prettyprint " nowrap>mods</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ta [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.TransformFeature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Take care of things that are not handled in superclass.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -84,15 +86,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt4"><div class=CClass>The DragFeature control moves a feature with a drag of the mouse. </div></d [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt4"><div class=CClass>The DragFeature control moves a feature with a drag of the mouse. </div></d [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html b/doc/devdocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
index 708bbf6..7f20161 100644
--- a/doc/devdocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMSGetFeatureInfo</h1><div class=CBody><p>The WMSGetFeatureInfo control uses a WMS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabilitie [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo"></a>OpenLayers.<wbr>Control.<wbr>WMSGetFeatureInfo</h1><div class=CBody><p>The WMSGetFeatureInfo control uses a WMS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabilities and the client’s configurati [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -23,6 +23,8 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.clickCallback"></a>clickCallback</h3><div class=CBody><p>{String} The click callback to register in the {<a href="../Handler/Click-js.html#OpenLayers.Handler.Click" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt1', 'link22')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Click</a>} object created when the hover option is set to false.  Default is “click”.</p>< [...]
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.output"></a>output</h3><div class=CBody><p>{String} Either “features” or “object”.  When triggering a getfeatureinfo request should we pass on an array of features or an object with with a “features” property and other properties (such as the url of the WMS).  Default is “features”.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.layers"></a>layers</h3><div class=CBody><p>{Array(<a href="../Layer/WMS-js.html#OpenLayers.Layer.WMS" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt2', 'link23')" onMouseOut="HideTip('tt2')">OpenLayers.Layer.WMS</a>)} The layers to query for feature info.  If omitted, all map WMS layers with a url that matches this <a href="#OpenLayers.Control.WMSGetFeatureInfo.url" class= [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.queryVisible"></a>queryVisible</h3><div class=CBody><p>{Boolean} If true, filter out hidden layers when searching the map for layers to query.   Default is false.</p></div></div></div>
@@ -31,58 +33,58 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.layerUrls"></a>layerUrls</h3><div class=CBody><p>{Array(String)} Optional list of urls for layers that should be queried.  This can be used when the layer url differs from the url used for making GetFeatureInfo requests (in the case of a layer using cached tiles).</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.infoFormat"></a>infoFormat</h3><div class=CBody><p>{String} The mimetype to request from the server</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.infoFormat"></a>infoFormat</h3><div class=CBody><p>{String} The mimetype to request from the server.  If you are using drillDown mode and have multiple servers that do not share a common infoFormat, you can override the control’s infoFormat by providing an INFO_FORMAT parameter in your <a href="../Layer/WMS-js.html#OpenLayers.Layer.WMS" class=LClass id=link26 onMouseOver="Sh [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.vendorParams"></a>vendorParams</h3><div class=CBody><p>{Object} Additional parameters that will be added to the request, for WMS implementations that support them.  This could e.g. look like</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.vendorParams"></a>vendorParams</h3><div class=CBody><p>{Object} Additional parameters that will be added to the request, for WMS implementations that support them.  This could e.g. look like</p><blockquote><pre class="prettyprint">{
     radius: 5
 }</pre></blockquote></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.format"></a>format</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt3', 'link26')" onMouseOut="HideTip('tt3')">OpenLayers.Format</a>} A format for parsing GetFeatureInfo responses.  Default is <a href="../Format/WMSGetFeatureInfo-js.html#OpenLayers.Format.WMSGetFeatureInfo" class=LClass id=link27 onMouseOv [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.format"></a>format</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt3', 'link27')" onMouseOut="HideTip('tt3')">OpenLayers.Format</a>} A format for parsing GetFeatureInfo responses.  Default is <a href="../Format/WMSGetFeatureInfo-js.html#OpenLayers.Format.WMSGetFeatureInfo" class=LClass id=link28 onMouseOv [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.formatOptions"></a>formatOptions</h3><div class=CBody><p>{Object} Optional properties to set on the format (if one is not provided in the <a href="#OpenLayers.Control.WMSGetFeatureInfo.format" class=LProperty id=link28 onMouseOver="ShowTip(event, 'tt4', 'link28')" onMouseOut="HideTip('tt4')">format</a> property.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.formatOptions"></a>formatOptions</h3><div class=CBody><p>{Object} Optional properties to set on the format (if one is not provided in the <a href="#OpenLayers.Control.WMSGetFeatureInfo.format" class=LProperty id=link29 onMouseOver="ShowTip(event, 'tt4', 'link29')" onMouseOut="HideTip('tt4')">format</a> property.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre class="prettyprint">{
     "click": {delay: 100},
     "hover": {delay: 300}
 }</pre></blockquote></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handler"></a>handler</h3><div class=CBody><p>{Object} Reference to the <a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt5', 'link29')" onMouseOut="HideTip('tt5')">OpenLayers.Handler</a> for this control</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handler"></a>handler</h3><div class=CBody><p>{Object} Reference to the <a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt5', 'link30')" onMouseOut="HideTip('tt5')">OpenLayers.Handler</a> for this control</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.hoverRequest"></a>hoverRequest</h3><div class=CBody><p>{<a href="../Request-js.html#OpenLayers.Request" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt6', 'link30')" onMouseOut="HideTip('tt6')">OpenLayers.Request</a>} contains the currently running hover request (if any).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.hoverRequest"></a>hoverRequest</h3><div class=CBody><p>{<a href="../Request-js.html#OpenLayers.Request" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt6', 'link31')" onMouseOut="HideTip('tt6')">OpenLayers.Request</a>} contains the currently running hover request (if any).</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types (in addition to those from <a href="../Control-js.html#OpenLayers.Control" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt21', 'link31')" onMouseOut="HideTip('tt21')">OpenLayers.Control</a>)</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>befor [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types (in addition to those from <a href="../Control-js.html#OpenLayers.Control" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt21', 'link32')" onMouseOut="HideTip('tt21')">OpenLayers.Control</a>)</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>befor [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.OpenLayers.Control.WMSGetFeatureInfo"></a><OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.OpenLayers.Control.WMSGetFeatureInfo"></a><OpenLayers.<wbr>Control.<wbr>WMSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.getInfoForClick"></a>getInfoForClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getInfoForClick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on cli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.getInfoForClick"></a>getInfoForClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getInfoForClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.getInfoForHover"></a>getInfoForHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getInfoForHover: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Pause callbac [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.getInfoForHover"></a>getInfoForHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getInfoForHover: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.cancelHover"></a>cancelHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancelHover: function()</td></tr></table></blockquote><p>Cancel callback for the hover handler</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.cancelHover"></a>cancelHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancelHover: function()</td></tr></table></blockquote><p>Cancel callback for the hover handler</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.findLayers"></a>findLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>findLayers: function()</td></tr></table></blockquote><p>Internal method to get the layers, independent of whether we are inspecting the map or using a client-provided array</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.findLayers"></a>findLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">findLayers: function()</td></tr></table></blockquote><p>Internal method to get the layers, independent of whether we are inspecting the map or using a client-provided array</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.urlMatches"></a>urlMatches</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>urlMatches: function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test to see if the provided  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.urlMatches"></a>urlMatches</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>urlMatches: function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.buildWMSOptions"></a>buildWMSOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildWMSOptions: function(</td><td class=PParameter nowrap>url,</td></tr><tr><td></td><td class=PParameter nowrap>layers,</td></tr><tr><td></td><td class=PParameter no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.buildWMSOptions"></a>buildWMSOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildWMSOptions: function(</td><td class="PParameter  prettyprint " nowrap>url,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>laye [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.getStyleNames"></a>getStyleNames</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getStyleNames: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the STYLES p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.getStyleNames"></a>getStyleNames</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getStyleNames: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>request: function(</td><td class=PParameter nowrap>clickPosition,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>request: function(</td><td class="PParameter  prettyprint " nowrap>clickPosition,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.triggerGetFeatureInfo"></a>triggerGetFeatureInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>triggerGetFeatureInfo: function(</td><td class=PParameter nowrap>request,</td></tr><tr><td></td><td class=PParameter nowrap>xy,</td></tr><tr><td></td><td c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.triggerGetFeatureInfo"></a>triggerGetFeatureInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>triggerGetFeatureInfo: function(</td><td class="PParameter  prettyprint " nowrap>request,</td></tr><tr><td></td><td class="PParameter  pre [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleResponse: function(</td><td class=PParameter nowrap>xy,</td></tr><tr><td></td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMSGetFeatureInfo.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleResponse: function(</td><td class="PParameter  prettyprint " nowrap>xy,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>request, [...]
 
 </div><!--Content-->
 
@@ -90,15 +92,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A handler for mouse clicks. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{OpenLayers.Format} A format for parsing GetFeatureInfo responses. </div></div><div cla [...]
+<div class=CToolTip id="tt1"><div class=CClass>A handler for mouse clicks. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{OpenLayers.Format} A format for parsing GetFeatureInfo responses. </div></div><div cla [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html b/doc/devdocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html
index 5ad8532..46f6de6 100644
--- a/doc/devdocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/WMTSGetFeatureInfo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.WMTSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.WMTSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMTSGetFeatureInfo</h1><div class=CBody><p>The WMTSGetFeatureInfo control uses a WMTS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabil [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo"></a>OpenLayers.<wbr>Control.<wbr>WMTSGetFeatureInfo</h1><div class=CBody><p>The WMTSGetFeatureInfo control uses a WMTS query to get information about a point on the map.   The information may be in a display-friendly format such as HTML, or a machine-friendly format such as GML, depending on the server’s capabilities and the client’s configu [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -23,34 +23,34 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.maxFeatures"></a>maxFeatures</h3><div class=CBody><p>{Integer} Maximum number of features to return from a WMTS query.  This sets the feature_count parameter on WMTS GetFeatureInfo requests.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.clickCallback"></a>clickCallback</h3><div class=CBody><p>{String} The click callback to register in the {<a href="../Handler/Click-js.html#OpenLayers.Handler.Click" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Click</a>} object created when the hover option is set to false.  Default is “click”.</p> [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.clickCallback"></a>clickCallback</h3><div class=CBody><p>{String} The click callback to register in the {<a href="../Handler/Click-js.html#OpenLayers.Handler.Click" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt1', 'link15')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Click</a>} object created when the hover option is set to false.  Default is “click”.</p> [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.layers"></a>layers</h3><div class=CBody><p>{Array(<a href="../Layer/WMTS-js.html#OpenLayers.Layer.WMTS" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">OpenLayers.Layer.WMTS</a>)} The layers to query for feature info.  If omitted, all map WMTS layers will be considered.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.layers"></a>layers</h3><div class=CBody><p>{Array(<a href="../Layer/WMTS-js.html#OpenLayers.Layer.WMTS" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt2', 'link16')" onMouseOut="HideTip('tt2')">OpenLayers.Layer.WMTS</a>)} The layers to query for feature info.  If omitted, all map WMTS layers will be considered.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.queryVisible"></a>queryVisible</h3><div class=CBody><p>{Boolean} Filter out hidden layers when searching the map for layers to query.   Default is true.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.infoFormat"></a>infoFormat</h3><div class=CBody><p>{String} The mimetype to request from the server</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.vendorParams"></a>vendorParams</h3><div class=CBody><p>{Object} Additional parameters that will be added to the request, for WMTS implementations that support them.  This could e.g. look like</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.vendorParams"></a>vendorParams</h3><div class=CBody><p>{Object} Additional parameters that will be added to the request, for WMTS implementations that support them.  This could e.g. look like</p><blockquote><pre class="prettyprint">{
     radius: 5
 }</pre></blockquote></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.format"></a>format</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt3', 'link20')" onMouseOut="HideTip('tt3')">OpenLayers.Format</a>} A format for parsing GetFeatureInfo responses.  Default is <a href="../Format/WMSGetFeatureInfo-js.html#OpenLayers.Format.WMSGetFeatureInfo" class=LClass id=link21 onMouseO [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.format"></a>format</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt3', 'link17')" onMouseOut="HideTip('tt3')">OpenLayers.Format</a>} A format for parsing GetFeatureInfo responses.  Default is <a href="../Format/WMSGetFeatureInfo-js.html#OpenLayers.Format.WMSGetFeatureInfo" class=LClass id=link18 onMouseO [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.formatOptions"></a>formatOptions</h3><div class=CBody><p>{Object} Optional properties to set on the format (if one is not provided in the <a href="#OpenLayers.Control.WMTSGetFeatureInfo.format" class=LProperty id=link22 onMouseOver="ShowTip(event, 'tt4', 'link22')" onMouseOut="HideTip('tt4')">format</a> property.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.formatOptions"></a>formatOptions</h3><div class=CBody><p>{Object} Optional properties to set on the format (if one is not provided in the <a href="#OpenLayers.Control.WMTSGetFeatureInfo.format" class=LProperty id=link19 onMouseOver="ShowTip(event, 'tt4', 'link19')" onMouseOut="HideTip('tt4')">format</a> property.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre>{
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handlerOptions"></a>handlerOptions</h3><div class=CBody><p>{Object} Additional options for the handlers used by this control, e.g.</p><blockquote><pre class="prettyprint">{
     "click": {delay: 100},
     "hover": {delay: 300}
 }</pre></blockquote></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handler"></a>handler</h3><div class=CBody><p>{Object} Reference to the <a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt5', 'link23')" onMouseOut="HideTip('tt5')">OpenLayers.Handler</a> for this control</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handler"></a>handler</h3><div class=CBody><p>{Object} Reference to the <a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt5', 'link20')" onMouseOut="HideTip('tt5')">OpenLayers.Handler</a> for this control</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.hoverRequest"></a>hoverRequest</h3><div class=CBody><p>{<a href="../Request-js.html#OpenLayers.Request" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt6', 'link24')" onMouseOut="HideTip('tt6')">OpenLayers.Request</a>} contains the currently running hover request (if any).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.hoverRequest"></a>hoverRequest</h3><div class=CBody><p>{<a href="../Request-js.html#OpenLayers.Request" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt6', 'link21')" onMouseOut="HideTip('tt6')">OpenLayers.Request</a>} contains the currently running hover request (if any).</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types (in addition to those from <a href="../Control-js.html#OpenLayers.Control" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt17', 'link25')" onMouseOut="HideTip('tt17')">OpenLayers.Control</a>)</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>befo [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><h4 class=CHeading>Supported event types (in addition to those from <a href="../Control-js.html#OpenLayers.Control" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt14', 'link22')" onMouseOut="HideTip('tt14')">OpenLayers.Control</a>)</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>befo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -58,29 +58,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.OpenLayers.Control.WMTSGetFeatureInfo"></a><OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>WMTSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.OpenLayers.Control.WMTSGetFeatureInfo"></a><OpenLayers.<wbr>Control.<wbr>WMTSGetFeatureInfo></h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function ()</td></tr></table></blockquote><p>Activates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.getInfoForClick"></a>getInfoForClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getInfoForClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function ()</td></tr></table></blockquote><p>Deactivates the control.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The control was effectively deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.getInfoForHover"></a>getInfoForHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getInfoForHover: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.getInfoForClick"></a>getInfoForClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getInfoForClick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.cancelHover"></a>cancelHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancelHover: function()</td></tr></table></blockquote><p>Cancel callback for the hover handler</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.getInfoForHover"></a>getInfoForHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getInfoForHover: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Pause callba [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.findLayers"></a>findLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">findLayers: function()</td></tr></table></blockquote><p>Internal method to get the layers, independent of whether we are inspecting the map or using a client-provided array</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.cancelHover"></a>cancelHover</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancelHover: function()</td></tr></table></blockquote><p>Cancel callback for the hover handler</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.buildRequestOptions"></a>buildRequestOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildRequestOptions: function(</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.findLayers"></a>findLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>findLayers: function()</td></tr></table></blockquote><p>Internal method to get the layers, independent of whether we are inspecting the map or using a client-provided array</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>request: function(</td><td class="PParameter  prettyprint " nowrap>xy,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.buildRequestOptions"></a>buildRequestOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildRequestOptions: function(</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>xy</td><td class=PAfterParameters nowr [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.request"></a>request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>request: function(</td><td class=PParameter nowrap>xy,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleResponse: function(</td><td class=PParameter nowrap>xy,</td></tr><tr><td></td><td class=PParameter nowrap>request,</td></tr><tr><td></td><td class=PParameter nowr [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the control.</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.WMTSGetFeatureInfo.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleResponse: function(</td><td class="PParameter  prettyprint " nowrap>xy,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>request [...]
 
 </div><!--Content-->
 
@@ -88,15 +82,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A handler for mouse clicks. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of the WMTS class allow viewing of tiles from a service that implements the OGC WMTS specification version 1.0.0.</div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{OpenLayers.Format} A format for parsing GetFeatureInf [...]
+<div class=CToolTip id="tt1"><div class=CClass>A handler for mouse clicks. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of the WMTS class allow viewing of tiles from a service that implements the OGC WMTS specification version 1.0.0.</div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CProperty>{OpenLayers.Format} A format for parsing GetFeatureInf [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ZoomBox-js.html b/doc/devdocs/files/OpenLayers/Control/ZoomBox-js.html
index 4661ae1..2b13cc5 100644
--- a/doc/devdocs/files/OpenLayers/Control/ZoomBox-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ZoomBox-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomBox - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomBox - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomBox"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomBox</h1><div class=CBody><p>The ZoomBox control enables zooming directly to a given extent, by drawing a box on the map.  The box is drawn by holding down shift, whilst dragging the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LC [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomBox"></a>OpenLayers.<wbr>Control.<wbr>ZoomBox</h1><div class=CBody><p>The ZoomBox control enables zooming directly to a given extent, by drawing a box on the map.  The box is drawn by holding down shift, whilst dragging the mouse.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link3 onMouseOver="ShowTip(e [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomBox.Properties"></a>Properties</h3></div></div>
 
@@ -23,9 +23,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomBox.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomBox.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomBox.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomBox.zoomBox"></a>zoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomBox: function (</td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomBox.zoomBox"></a>zoomBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomBox: function (</td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomBox: function (</td><td class=PParameter nowrap>position</td><td class=PAfterParameter [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomBox: function (</td><td class="PParameter  pret [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ZoomIn-js.html b/doc/devdocs/files/OpenLayers/Control/ZoomIn-js.html
index 9f6e5b3..5b61a6a 100644
--- a/doc/devdocs/files/OpenLayers/Control/ZoomIn-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ZoomIn-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomIn - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomIn - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomIn"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomIn</h1><div class=CBody><p>The ZoomIn control is a button to increase the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Co [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomIn"></a>OpenLayers.<wbr>Control.<wbr>ZoomIn</h1><div class=CBody><p>The ZoomIn control is a button to increase the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></li></ul><!--START_ND_SUMM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomIn.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomIn.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomIn.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomIn.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ZoomOut-js.html b/doc/devdocs/files/OpenLayers/Control/ZoomOut-js.html
index 2bd1ef2..bca427d 100644
--- a/doc/devdocs/files/OpenLayers/Control/ZoomOut-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ZoomOut-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomOut - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomOut - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomOut"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomOut</h1><div class=CBody><p>The ZoomOut control is a button to decrease the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomOut"></a>OpenLayers.<wbr>Control.<wbr>ZoomOut</h1><div class=CBody><p>The ZoomOut control is a button to decrease the zoom level of a map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Control-js.html#OpenLayers.Control" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control</a></li></ul><!--START_ND_S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomOut.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomOut.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomOut.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomOut.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ZoomPanel-js.html b/doc/devdocs/files/OpenLayers/Control/ZoomPanel-js.html
index 6b4c40c..989911f 100644
--- a/doc/devdocs/files/OpenLayers/Control/ZoomPanel-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ZoomPanel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomPanel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomPanel</h1><div class=CBody><p>The ZoomPanel control is a compact collecton of 3 zoom controls: a <a href="ZoomIn-js.html#OpenLayers.Control.ZoomIn" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control.ZoomIn</a>, a <a href="ZoomToMaxEx [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomPanel"></a>OpenLayers.<wbr>Control.<wbr>ZoomPanel</h1><div class=CBody><p>The ZoomPanel control is a compact collecton of 3 zoom controls: a <a href="ZoomIn-js.html#OpenLayers.Control.ZoomIn" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Control.ZoomIn</a>, a <a href="ZoomToMaxExtent-js.html#OpenLayers.Control.Zoom [...]
   <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
-<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.ZoomPanel" >Ope [...]
+<![endif]--></pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">OpenLayers.Control.Panel</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Control.ZoomPanel" >Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomPanel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomPanel.OpenLayers.Control.ZoomPanel"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomPanel</h3><div class=CBody><p>Add the three zooming controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to ext [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomPanel.OpenLayers.Control.ZoomPanel"></a>OpenLayers.<wbr>Control.<wbr>ZoomPanel</h3><div class=CBody><p>Add the three zooming controls.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be used to extend the control.</td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html b/doc/devdocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html
index 60028e9..9cec414 100644
--- a/doc/devdocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html
+++ b/doc/devdocs/files/OpenLayers/Control/ZoomToMaxExtent-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Control.ZoomToMaxExtent - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Control.ZoomToMaxExtent - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent"></a>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ZoomToMaxExtent</h1><div class=CBody><p>The ZoomToMaxExtent control is a button that zooms out to the maximum extent of the map.  It is designed to be used with a <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent"></a>OpenLayers.<wbr>Control.<wbr>ZoomToMaxExtent</h1><div class=CBody><p>The ZoomToMaxExtent control is a button that zooms out to the maximum extent of the map.  It is designed to be used with a <a href="Panel-js.html#OpenLayers.Control.Panel" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">OpenLayers.Control [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote><p>Do the zoom.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Control.ZoomToMaxExtent.trigger"></a>trigger</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote><p>Do the zoom.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([2, 3, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([2, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>trigger: function()</td></tr></table></blockquote>Do the zoom.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>The Panel control is a container for other controls. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">trigger: function()</td></tr></table></blockquote>Do the zoom.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Events-js.html b/doc/devdocs/files/OpenLayers/Events-js.html
index 0a80071..156064c 100644
--- a/doc/devdocs/files/OpenLayers/Events-js.html
+++ b/doc/devdocs/files/OpenLayers/Events-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Event - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Event - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Event"></a>OpenLayers.<span class=HB> </span>Event</h1><div class=CBody><p>Utility functions for event handling.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Event" >OpenLayers.<span class=HB> </span>Event</a></td><td class=S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Event"></a>OpenLayers.<wbr>Event</h1><div class=CBody><p>Utility functions for event handling.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Event" >OpenLayers.<wbr>Event</a></td><td class=SDescription>Utility functions for ev [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.Properties"></a>Properties</h3></div></div>
 
@@ -39,27 +39,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.element"></a>element</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>element: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cross browser event element detection.</p><h4 class=CHe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.element"></a>element</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>element: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cross b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.isLeftClick"></a>isLeftClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isLeftClick: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether event was caused by a lef [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.isSingleTouch"></a>isSingleTouch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isSingleTouch: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.isRightClick"></a>isRightClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isRightClick: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether event was caused by a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.isMultiTouch"></a>isMultiTouch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isMultiTouch: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>stop: function(</td><td class=PParameter nowrap>event,</td></tr><tr><td></td><td class=PParameter nowrap>allowDefault</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.isLeftClick"></a>isLeftClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isLeftClick: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.findElement"></a>findElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>findElement: function(</td><td class=PParameter nowrap>event,</td></tr><tr><td></td><td class=PParameter nowrap>tagName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.isRightClick"></a>isRightClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isRightClick: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.observe"></a>observe</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>observe: function(</td><td class=PParameter nowrap>elementParam,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>observer,</td></tr><tr><td></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>stop: function(</td><td class="PParameter  prettyprint " nowrap>event,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>allowDefault</td><td class="PAfterParameters  prettypri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.stopObservingElement"></a>stopObservingElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>stopObservingElement: function(</td><td class=PParameter nowrap>elementParam</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.findElement"></a>findElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>findElement: function(</td><td class="PParameter  prettyprint " nowrap>event,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>tagName</td><td class="PAfterParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event._removeElementObservers"></a>_removeElementObservers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_removeElementObservers: function(</td><td class=PParameter nowrap>elementObservers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.observe"></a>observe</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>observe: function(</td><td class="PParameter  prettyprint " nowrap>elementParam,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.stopObserving"></a>stopObserving</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>stopObserving: function(</td><td class=PParameter nowrap>elementParam,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>observer,</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.stopObservingElement"></a>stopObservingElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>stopObservingElement: function(</td><td class="PParameter  prettyprint " nowrap>elementParam</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.unloadCache"></a>unloadCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>unloadCache: function()</td></tr></table></blockquote><p>Cycle through all the element entries in the events cache and call stopObservingElement on each.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event._removeElementObservers"></a>_removeElementObservers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_removeElementObservers: function(</td><td class="PParameter  prettyprint " nowrap>elementObservers</td><td class="PAfterParameters  prettyprint "nowrap>) [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Events"></a>OpenLayers.<span class=HB> </span>Events</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Events.Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1 SMarked"><td class=SEntry><a href="#O [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.stopObserving"></a>stopObserving</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>stopObserving: function(</td><td class="PParameter  prettyprint " nowrap>elementParam,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Event.unloadCache"></a>unloadCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">unloadCache: function()</td></tr></table></blockquote><p>Cycle through all the element entries in the events cache and call stopObservingElement on each.</p></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Events"></a>OpenLayers.<wbr>Events</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Events.Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1 SMarked"><td class=SEntry><a href="#OpenLayers.Events.B [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Constants"></a>Constants</h3></div></div>
 
@@ -83,22 +87,22 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.clearMouseListener"></a>clearMouseListener</h3><div class=CBody><p>A version of <a href="#OpenLayers.Events.clearMouseCache" class=LFunction id=link43 onMouseOver="ShowTip(event, 'tt11', 'link43')" onMouseOut="HideTip('tt11')">clearMouseCache</a> that is bound to this instance so that it can be used with <a href="#OpenLayers.Event.observe" class=LFunction id=link44 onMouseOver="ShowTip(event, 'tt6', 'lin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.clearMouseListener"></a>clearMouseListener</h3><div class=CBody><p>A version of <a href="#OpenLayers.Events.clearMouseCache" class=LFunction id=link45 onMouseOver="ShowTip(event, 'tt13', 'link45')" onMouseOut="HideTip('tt13')">clearMouseCache</a> that is bound to this instance so that it can be used with <a href="#OpenLayers.Event.observe" class=LFunction id=link46 onMouseOver="ShowTip(event, 'tt8', 'lin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.OpenLayers.Events"></a>OpenLayers.<span class=HB> </span>Events</h3><div class=CBody><p>Construct an OpenLayers.Events object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} The js object to which this Events object  is being</td></tr><tr><td class=CDLEntry>added element</td><td [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.OpenLayers.Events"></a>OpenLayers.<wbr>Events</h3><div class=CBody><p>Construct an OpenLayers.Events object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} The js object to which this Events object  is being added</td></tr><tr><td class=CDLEntry>element</td><td class=CDLDescript [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.addEventType"></a>addEventType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addEventType: function(</td><td class=PParameter nowrap>eventName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add a new event type to this events [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.addEventType"></a>addEventType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addEventType: function(</td><td class="PParameter  prettyprint " nowrap>eventName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.attachToElement"></a>attachToElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>attachToElement: function (</td><td class=PParameter nowrap>element</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.attachToElement"></a>attachToElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>attachToElement: function (</td><td class="PParameter  prettyprint " nowrap>element</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.on"></a>on</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>on: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method for registering listeners with a common scope.&nb [...]
-events.on({"loadstart", loadStartListener});
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.on"></a>on</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>on: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method f [...]
+events.on({"loadstart": loadStartListener});
 
 // this is equivalent to the following
 events.register("loadstart", undefined, loadStartListener);
@@ -112,14 +116,14 @@ events.on({
 
 // this is equivalent to the following
 events.register("loadstart", object, loadStartListener);
-events.register("loadstart", object, loadEndListener);</pre></blockquote></div></div></div>
+events.register("loadend", object, loadEndListener);</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>register: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>func</td><td class=PAfterParameters  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>register: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.registerPriority"></a>registerPriority</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>registerPriority: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>func</td><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.registerPriority"></a>registerPriority</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>registerPriority: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.un"></a>un</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>un: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method for unregistering listeners with a common scope.& [...]
-events.un({"loadstart", loadStartListener});
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.un"></a>un</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>un: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convenience method f [...]
+events.un({"loadstart": loadStartListener});
 
 // this is equivalent to the following
 events.unregister("loadstart", undefined, loadStartListener);
@@ -133,19 +137,19 @@ events.un({
 
 // this is equivalent to the following
 events.unregister("loadstart", object, loadStartListener);
-events.unregister("loadstart", object, loadEndListener);</pre></blockquote></div></div></div>
+events.unregister("loadend", object, loadEndListener);</pre></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unregister: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>func</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unregister: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>remove: function(</td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove all listeners for a given event type.  If type [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>remove: function(</td><td class="PParameter  prettyprint " nowrap>type</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove all [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.triggerEvent"></a>triggerEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>triggerEvent: function (</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.triggerEvent"></a>triggerEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>triggerEvent: function (</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.handleBrowserEvent"></a>handleBrowserEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleBrowserEvent: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Basically just a wrapp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.handleBrowserEvent"></a>handleBrowserEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleBrowserEvent: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.clearMouseCache"></a>clearMouseCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearMouseCache: function()</td></tr></table></blockquote><p>Clear cached data about the mouse position.  This should be called any time the element that events are registered on changes position within the page.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.clearMouseCache"></a>clearMouseCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearMouseCache: function()</td></tr></table></blockquote><p>Clear cached data about the mouse position.  This should be called any time the element that events are registered on changes position within the page.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.getMousePosition"></a>getMousePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMousePosition: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Events.getMousePosition"></a>getMousePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMousePosition: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
 </div><!--Content-->
 
@@ -153,15 +157,15 @@ events.unregister("loadstart", object, loadEndListener);</pre></blockq
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>element: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Cross browser event element detection.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellsp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>element: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Cross browser event element detection.</div></div><div class=CToolTip id="tt2"><div cl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Feature-js.html b/doc/devdocs/files/OpenLayers/Feature-js.html
index 77d3c79..a742e20 100644
--- a/doc/devdocs/files/OpenLayers/Feature-js.html
+++ b/doc/devdocs/files/OpenLayers/Feature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature"></a>OpenLayers.<span class=HB> </span>Feature</h1><div class=CBody><p>Features are combinations of geography and attributes.  The OpenLayers.Feature class specifically combines a marker and a lonlat.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature"></a>OpenLayers.<wbr>Feature</h1><div class=CBody><p>Features are combinations of geography and attributes.  The OpenLayers.Feature class specifically combines a marker and a lonlat.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a hr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Properties"></a>Properties</h3></div></div>
 
@@ -31,21 +31,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.OpenLayers.Feature"></a>OpenLayers.<span class=HB> </span>Feature</h3><div class=CBody><p>Constructor for features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>lonlat</td><td  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.OpenLayers.Feature"></a>OpenLayers.<wbr>Feature</h3><div class=CBody><p>Constructor for features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescripti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onScreen:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the feature is currently visible on screen (based on its ‘lonlat’ property)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onScreen:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the feature is currently visible on screen (based on its ‘lonlat’ property)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.createMarker"></a>createMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createMarker: function()</td></tr></table></blockquote><p>Based on the data associated with the Feature, create and return a marker object.</p><h4 class=CHeading>Returns</h4><p>{<a href="Marker-js.html#OpenLayers.Marker" class=LClass id=link17 onMouseOver="ShowTip(event, 't [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.createMarker"></a>createMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createMarker: function()</td></tr></table></blockquote><p>Based on the data associated with the Feature, create and return a marker object.</p><h4 class=CHeading>Returns</h4><p>{<a href="Marker-js.html#OpenLayers.Marker" class=LClass id=link17 onMouseO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.destroyMarker"></a>destroyMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyMarker: function()</td></tr></table></blockquote><p>Destroys marker.  If user overrides the createMarker() function, s/he should be able to also specify an alternative function for destroying it</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.destroyMarker"></a>destroyMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyMarker: function()</td></tr></table></blockquote><p>Destroys marker.  If user overrides the createMarker() function, s/he should be able to also specify an alternative function for destroying it</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.createPopup"></a>createPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createPopup: function(</td><td class=PParameter nowrap>closeBox</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a popup object created from th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.createPopup"></a>createPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createPopup: function(</td><td class="PParameter  prettyprint " nowrap>closeBox</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.destroyPopup"></a>destroyPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyPopup: function()</td></tr></table></blockquote><p>Destroys the popup created via createPopup.</p><p>As with the marker, if user overrides the createPopup() function, s/he should also be able to override the destruction</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.destroyPopup"></a>destroyPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyPopup: function()</td></tr></table></blockquote><p>Destroys the popup created via createPopup.</p><p>As with the marker, if user overrides the createPopup() function, s/he should also be able to override the destruction</p></div></div></div>
 
 </div><!--Content-->
 
@@ -53,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([4, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([3, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt3"><div class=CConstructor>Base class used to construct all other classes. </div></div><div class=CToolTip id="tt4"><div class=CClass>A popup is a small div that can opened and closed on the map. </div> [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt3"><div class=CConstructor>Base class used to construct all other classes. </div></div><div class=CToolTip id="tt4"><div class=CClass>A popup is a small div that can opened and closed on the map. </div> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Feature/Vector-js.html b/doc/devdocs/files/OpenLayers/Feature/Vector-js.html
index 0af4475..afe1d34 100644
--- a/doc/devdocs/files/OpenLayers/Feature/Vector-js.html
+++ b/doc/devdocs/files/OpenLayers/Feature/Vector-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Feature.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Feature.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.Vector"></a>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>Vector</h1><div class=CBody><p>Vector features use the OpenLayers.Geometry classes as geometry description.  They have an ‘attributes’ property, which is the data object, and a ‘style’ property, the default values of which are defined in the <a href="#OpenLayers.Feature.Vec [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.Vector"></a>OpenLayers.<wbr>Feature.<wbr>Vector</h1><div class=CBody><p>Vector features use the OpenLayers.Geometry classes as geometry description.  They have an ‘attributes’ property, which is the data object, and a ‘style’ property, the default values of which are defined in the <a href="#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Properties"></a>Properties</h3></div></div>
 
@@ -31,37 +31,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.renderIntent"></a>renderIntent</h3><div class=CBody><p>{String} rendering intent currently being used</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.modified"></a>modified</h3><div class=CBody><p>{Object} An object with the originals of the geometry and attributes of the feature, if they were changed.  Currently this property is only read by <a href="../Format/WFST/v1-js.html#OpenLayers.Format.WFST.v1" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt17', 'link20')" onMouseOut="HideTip('tt17')">OpenLayers.Format.WFST.v1</a>, and wri [...]
+    geometry: >Object
+}</pre></blockquote><p>When an application has made changes to feature attributes, it could have set the attributes to something like this:</p><blockquote><pre class="prettyprint">{
+    attributes: {
+        myAttribute: "original"
+    }
+}</pre></blockquote><p>Note that <a href="../Format/WFST/v1-js.html#OpenLayers.Format.WFST.v1" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt17', 'link22')" onMouseOut="HideTip('tt17')">OpenLayers.Format.WFST.v1</a> only checks for truthy values in <b>modified.geometry</b> and the attribute names in <b>modified.attributes</b>, but it is recommended to set the original values (and not just true) as attribute value, so applications could use this information to undo changes.</p></d [...]
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector"></a>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>Vector</h3><div class=CBody><p>Create a vector feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link20 onMou [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector"></a>OpenLayers.<wbr>Feature.<wbr>Vector</h3><div class=CBody><p>Create a vector feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link2 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function ()</td></tr></table></blockquote><p>Create a clone of this vector feature.   Does not set any non-standard properties.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector" class=LConstructor id=link22 onMouseOver [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function ()</td></tr></table></blockquote><p>Create a clone of this vector feature.   Does not set any non-standard properties.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector" class=LConstructor [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onScreen:function(</td><td class=PParameter nowrap>boundsOnly</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether the feature is within [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onScreen:function(</td><td class="PParameter  prettyprint " nowrap>boundsOnly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.getVisibility"></a>getVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getVisibility: function()</td></tr></table></blockquote><p>Determine whether the feature is displayed or not.  It may not displayed because:</p><ul><li>its style display property is set to ‘none’,</li><li>it doesn’t belong to any layer,</li>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.getVisibility"></a>getVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getVisibility: function()</td></tr></table></blockquote><p>Determine whether the feature is displayed or not.  It may not displayed because:</p><ul><li>its style display property is set to ‘none’,</li><li>it doesn’t belo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.createMarker"></a>createMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createMarker: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to create markers</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.createMarker"></a>createMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createMarker: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to create  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.destroyMarker"></a>destroyMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyMarker: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to delete markers</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.destroyMarker"></a>destroyMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyMarker: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to dele [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.createPopup"></a>createPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createPopup: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to create popups</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.createPopup"></a>createPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createPopup: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to create pop [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.atPoint"></a>atPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>atPoint: function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>toleranceLon,</td></tr><tr><td></td><td class=PParameter nowrap>toleranceLat</td><td  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.atPoint"></a>atPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>atPoint: function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>toleranceLon,</td></tr><tr><td></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.destroyPopup"></a>destroyPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyPopup: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to delete popups</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.destroyPopup"></a>destroyPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyPopup: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>HACK</td><td class=CDLDescription>we need to decide if all vector features should be able to delete  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>location</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the feature and redraws it at its new location [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>location</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Move [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.toState"></a>toState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toState: function(</td><td class=PParameter nowrap>state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the new state</p><h4 class=CHeading>Param [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.toState"></a>toState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toState: function(</td><td class="PParameter  prettyprint " nowrap>state</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style"></a>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>Vector.<span class=HB> </span>style</h3><div class=CBody><p>OpenLayers features can have a number of style attributes.  The ‘default’ style will typically be used if no other style is specified.  These styles correspond for the most part, to the styling properties defined by [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style"></a>OpenLayers.<wbr>Feature.<wbr>Vector.<wbr>style</h3><div class=CBody><p>OpenLayers features can have a number of style attributes.  The ‘default’ style will typically be used if no other style is specified.  These styles correspond for the most part, to the styling properties defined by the SVG standard.  Information on fill propertie [...]
 
 </div><!--Content-->
 
@@ -69,15 +77,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([4, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([3, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td [...]
+<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">d [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Feature/WFS-js.html b/doc/devdocs/files/OpenLayers/Feature/WFS-js.html
index 7ab2e17..16123e7 100644
--- a/doc/devdocs/files/OpenLayers/Feature/WFS-js.html
+++ b/doc/devdocs/files/OpenLayers/Feature/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Feature.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Feature.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.WFS"></a>OpenLayers.<span class=HB> </span>Feature.WFS</h1><div class=CBody><p>WFS handling class, for use as a featureClass on the WFS layer for handling ‘point’ WFS types.  Good for subclassing when creating a custom WFS like XML application.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Feature-js.html#OpenLayers.Feature" class=LClass id=link3  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Feature.WFS"></a>OpenLayers.<wbr>Feature.WFS</h1><div class=CBody><p>WFS handling class, for use as a featureClass on the WFS layer for handling ‘point’ WFS types.  Good for subclassing when creating a custom WFS like XML application.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Feature-js.html#OpenLayers.Feature" class=LClass id=link3 onMouseOver="ShowT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.OpenLayers.Feature.WFS"></a>OpenLayers.<span class=HB> </span>Feature.WFS</h3><div class=CBody><p>Create a WFS feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>xmlN [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.OpenLayers.Feature.WFS"></a>OpenLayers.<wbr>Feature.WFS</h3><div class=CBody><p>Create a WFS feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layer</td><td class=CDLDescription>{<a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>}</td></tr><tr><td class=CDLEntry>xmlNode</td><td class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.processXMLNode"></a>processXMLNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>processXMLNode: function(</td><td class=PParameter nowrap>xmlNode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When passed an xmlNode, pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Feature.WFS.processXMLNode"></a>processXMLNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>processXMLNode: function(</td><td class="PParameter  prettyprint " nowrap>xmlNode</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 </div><!--Content-->
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([4, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([3, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>processXMLNode: funct [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  pr [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Filter-js.html b/doc/devdocs/files/OpenLayers/Filter-js.html
index cc541ca..1b2cd7b 100644
--- a/doc/devdocs/files/OpenLayers/Filter-js.html
+++ b/doc/devdocs/files/OpenLayers/Filter-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter"></a>OpenLayers.<span class=HB> </span>Filter</h1><div class=CBody><p>This class represents an OGC Filter.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Filter" >OpenLayers.<span class=HB> </span>Filter</a></td><td clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter"></a>OpenLayers.<wbr>Filter</h1><div class=CBody><p>This class represents an OGC Filter.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Filter" >OpenLayers.<wbr>Filter</a></td><td class=SDescription>This class represents [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.OpenLayers.Filter"></a>OpenLayers.<span class=HB> </span>Filter</h3><div class=CBody><p>This is an abstract class.   Create an instance of a filter subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.OpenLayers.Filter"></a>OpenLayers.<wbr>Filter</h3><div class=CBody><p>This class represents a generic filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a href [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Remove reference to anything added.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Remove reference to anything added.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter in a specific context.&nbsp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>E [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.  Should be implementted by subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.OpenLayers.Filter" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="Hide [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.  Should be implementted by subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.OpenLayers.Filter" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt4', 'lin [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Remove reference to anything added.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Remove reference to anything added.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: fun [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Filter/Comparison-js.html b/doc/devdocs/files/OpenLayers/Filter/Comparison-js.html
index d79c816..4d9d127 100644
--- a/doc/devdocs/files/OpenLayers/Filter/Comparison-js.html
+++ b/doc/devdocs/files/OpenLayers/Filter/Comparison-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.Comparison - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Comparison - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Comparison"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</h1><div class=CBody><p>This class represents a comparison filter.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Filter</a></li></ul><!--START_ND_SUMMARY [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Comparison"></a>OpenLayers.<wbr>Filter.<wbr>Comparison</h1><div class=CBody><p>This class represents a comparison filter.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Filter</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.Properties"></a>Properties</h3></div></div>
 
@@ -29,17 +29,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</h3><div class=CBody><p>Creates a comparison rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison"></a>OpenLayers.<wbr>Filter.<wbr>Comparison</h3><div class=CBody><p>Creates a comparison rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td></tr></table><h4 class=CHeading>Return [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter in a specific co [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.value2regex"></a>value2regex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>value2regex: function(</td><td class=PParameter nowrap>wildCard,</td></tr><tr><td></td><td class=PParameter nowrap>singleChar,</td></tr><tr><td></td><td class=PParameter nowrap>escape [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.value2regex"></a>value2regex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>value2regex: function(</td><td class="PParameter  prettyprint " nowrap>wildCard,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>singleChar,</td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.regex2value"></a>regex2value</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>regex2value: function()</td></tr></table></blockquote><p>Convert the value of this rule from a regular expression string into an ogc literal string using a wildCard of *, a singleChar of ., and an escape of !.   Leaves the <a href="#OpenLayers.Filter.Comparison [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.regex2value"></a>regex2value</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">regex2value: function()</td></tr></table></blockquote><p>Convert the value of this rule from a regular expression string into an ogc literal string using a wildCard of *, a singleChar of ., and an escape of !.   Leaves the <a href="#OpenLa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMouseOut="HideTip('tt6')" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Comparison.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Comparison.OpenLayers.Filter.Comparison" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMou [...]
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates this filter in a specific context.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates this filter in a specific context.</div></div><div class=CToolTip id="tt2 [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Filter/FeatureId-js.html b/doc/devdocs/files/OpenLayers/Filter/FeatureId-js.html
index 3a54873..d2a54c3 100644
--- a/doc/devdocs/files/OpenLayers/Filter/FeatureId-js.html
+++ b/doc/devdocs/files/OpenLayers/Filter/FeatureId-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.FeatureId - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.FeatureId - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.FeatureId"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>FeatureId</h1><div class=CBody><p>This class represents a ogc:FeatureId Filter, as being used for rule-based SLD styling</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayer [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.FeatureId"></a>OpenLayers.<wbr>Filter.<wbr>FeatureId</h1><div class=CBody><p>This class represents a ogc:FeatureId Filter, as being used for rule-based SLD styling</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Filter</a></li></ul><!--START_ND_S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.fids"></a>fids</h3><div class=CBody><p>{Array(String)} Feature Ids to evaluate this rule against.  To be passed To be passed inside the params object.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.type"></a>type</h3><div class=CBody><p>{String} Type to identify this filter.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>FeatureId</h3><div class=CBody><p>Creates an ogc:FeatureId rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId"></a>OpenLayers.<wbr>Filter.<wbr>FeatureId</h3><div class=CBody><p>Creates an ogc:FeatureId rule.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the rule</td></tr></table><h4 class=CHeading>Retur [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>evaluates this rule for a specific feat [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">Op [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.FeatureId.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.FeatureId.OpenLayers.Filter.FeatureId" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseO [...]
 
 </div><!--Content-->
 
@@ -33,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>evaluates this rule for a specific feature</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>evaluates this rule for a specific feature</div></div><div class=CToolTip id="tt2"> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Filter/Function-js.html b/doc/devdocs/files/OpenLayers/Filter/Function-js.html
new file mode 100644
index 0000000..0f50f9b
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Filter/Function-js.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Function - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Function"></a>OpenLayers.<wbr>Filter.<wbr>Function</h1><div class=CBody><p>This class represents a filter function.  We are using this class for creation of complex filters that can contain filter functions as values.  Nesting function as other functions parameter is supported.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.name"></a>name</h3><div class=CBody><p>{String} Name of the function.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.params"></a>params</h3><div class=CBody><p>{Array(<a href="#OpenLayers.Filter.Function.OpenLayers.Filter.Function" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">OpenLayers.Filter.Function</a> || String || Number)} Function parameters For now support only other Functions, String or Number</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Function.OpenLayers.Filter.Function"></a>OpenLayers.<wbr>Filter.<wbr>Function</h3><div class=CBody><p>Creates a filter function.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the function.</td></tr></table><h4 class=CHeading>Returns [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Creates a filter function.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an OGC Filter.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Filter/Logical-js.html b/doc/devdocs/files/OpenLayers/Filter/Logical-js.html
index 87f11b8..9dd9331 100644
--- a/doc/devdocs/files/OpenLayers/Filter/Logical-js.html
+++ b/doc/devdocs/files/OpenLayers/Filter/Logical-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.Logical - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Logical - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Logical"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Logical</h1><div class=CBody><p>This class represents ogc:And, ogc:Or and ogc:Not rules.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Filter</a></li></ul><!--START_ND [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Logical"></a>OpenLayers.<wbr>Filter.<wbr>Logical</h1><div class=CBody><p>This class represents ogc:And, ogc:Or and ogc:Not rules.</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Filter</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.Properties"></a>Properties</h3></div></div>
 
@@ -21,15 +21,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.OpenLayers.Filter.Logical"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Logical</h3><div class=CBody><p>Creates a logical filter (And, Or, Not).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.OpenLayers.Filter.Logical"></a>OpenLayers.<wbr>Filter.<wbr>Logical</h3><div class=CBody><p>Creates a logical filter (And, Or, Not).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter.</td></tr></table><h4 class=CHeadin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Remove reference to child filters.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Remove reference to child filters.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter in a specific conte [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Logical.OpenLayers.Filter.Logical" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLaye [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Logical.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Logical.OpenLayers.Filter.Logical" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="Hi [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Remove reference to child filters.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Remove reference to child filters.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 c [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Filter/Spatial-js.html b/doc/devdocs/files/OpenLayers/Filter/Spatial-js.html
index 59511d5..8a54385 100644
--- a/doc/devdocs/files/OpenLayers/Filter/Spatial-js.html
+++ b/doc/devdocs/files/OpenLayers/Filter/Spatial-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Filter.Spatial - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Filter.Spatial - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Spatial"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Spatial</h1><div class=CBody><p>This class represents a spatial filter.  Currently implemented: BBOX, DWithin and Intersects</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">Op [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Filter.Spatial"></a>OpenLayers.<wbr>Filter.<wbr>Spatial</h1><div class=CBody><p>This class represents a spatial filter.  Currently implemented: BBOX, DWithin and Intersects</p><p>Inherits from</p><ul><li><a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Filter</a></li></ul><!--STA [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.Properties"></a>Properties</h3></div></div>
 
@@ -27,13 +27,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial"></a>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Spatial</h3><div class=CBody><p>Creates a spatial filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter.</td></tr></ta [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial"></a>OpenLayers.<wbr>Filter.<wbr>Spatial</h3><div class=CBody><p>Creates a spatial filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the filter.</td></tr></table><h4 class=CHeading>Returns</h4>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates this filter for a specific feat [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt6', 'link10')" onMouseOut="HideTip('tt6')">OpenLa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Filter.Spatial.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this filter.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Filter.Spatial.OpenLayers.Filter.Spatial" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt6', 'link10')" onMouseOut=" [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([5, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([4, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParame [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format-js.html b/doc/devdocs/files/OpenLayers/Format-js.html
index 6047696..4a7c6d6 100644
--- a/doc/devdocs/files/OpenLayers/Format-js.html
+++ b/doc/devdocs/files/OpenLayers/Format-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format"></a>OpenLayers.<span class=HB> </span>Format</h1><div class=CBody><p>Base class for format reading/writing a variety of formats.   Subclasses of OpenLayers.Format are expected to have read and write methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMai [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format"></a>OpenLayers.<wbr>Format</h1><div class=CBody><p>Base class for format reading/writing a variety of formats.   Subclasses of OpenLayers.Format are expected to have read and write methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Properties"></a>Properties</h3></div></div>
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OpenLayers.Format"></a>OpenLayers.<span class=HB> </span>Format</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the format</td></tr></ta [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OpenLayers.Format"></a>OpenLayers.<wbr>Format</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object with properties to set on the format</td></tr></table><h4 class=CHea [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return an object whose type depends [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept an object, and return a string.</p><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept an o [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class [...]
+<div class=CToolTip id="tt1"><div class=CClass>Class for coordinate transforms between coordinate systems. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: functi [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/ArcXML-js.html b/doc/devdocs/files/OpenLayers/Format/ArcXML-js.html
index 3262da2..5be9cc4 100644
--- a/doc/devdocs/files/OpenLayers/Format/ArcXML-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/ArcXML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.ArcXML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.ArcXML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML</h1><div class=CBody><p>Read/Wite ArcXML.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML" class=LConstructor id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">OpenLayers.Format.ArcXML</a> constructor.</p><h4 clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML"></a>OpenLayers.<wbr>Format.<wbr>ArcXML</h1><div class=CBody><p>Read/Wite ArcXML.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML" class=LConstructor id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">OpenLayers.Format.ArcXML</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Properties"></a>Properties</h3></div></div>
 
@@ -23,29 +23,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML</h3><div class=CBody><p>Create a new parser/writer for ArcXML.   Create an instance of this class to begin authoring a request to an ArcIMS service.   This is used primarily by the ArcIMS layer, but could be used to do other wild stuff, like geocoding.</p><h4 class=CHeading>Parameters< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.OpenLayers.Format.ArcXML"></a>OpenLayers.<wbr>Format.<wbr>ArcXML</h3><div class=CBody><p>Create a new parser/writer for ArcXML.   Create an instance of this class to begin authoring a request to an ArcIMS service.   This is used primarily by the ArcIMS layer, but could be used to do other wild stuff, like geocoding.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 ce [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parseEnvelope"></a>parseEnvelope</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseEnvelope: function(</td><td class=PParameter nowrap>env,</td></tr><tr><td></td><td class=PParameter nowrap>arr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parseEnvelope"></a>parseEnvelope</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseEnvelope: function(</td><td class="PParameter  prettyprint " nowrap>env,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>arr</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.addLayers"></a>addLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addLayers: function(</td><td class=PParameter nowrap>ll,</td></tr><tr><td></td><td class=PParameter nowrap>lyrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.addLayers"></a>addLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addLayers: function(</td><td class="PParameter  prettyprint " nowrap>ll,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>lyrs</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.addImageSize"></a>addImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addImageSize: function(</td><td class=PParameter nowrap>imsize,</td></tr><tr><td></td><td class=PParameter nowrap>olsize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.addImageSize"></a>addImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addImageSize: function(</td><td class="PParameter  prettyprint " nowrap>imsize,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>olsize</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.addCoordSys"></a>addCoordSys</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addCoordSys: function(</td><td class=PParameter nowrap>featOrFilt,</td></tr><tr><td></td><td class=PParameter nowrap>fsys</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.addCoordSys"></a>addCoordSys</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addCoordSys: function(</td><td class="PParameter  prettyprint " nowrap>featOrFilt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>fsys</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.iserror"></a>iserror</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>iserror: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check to see if the response from the server was [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.iserror"></a>iserror</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>iserror: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return an response.</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate an ArcXml document string for sending to a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gen [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parseResponse"></a>parseResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseResponse: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Take an ArcXML response, and p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parseResponse"></a>parseResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseResponse: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseAttributes: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parsePointGeometry"></a>parsePointGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parsePointGeometry: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.parsePointGeometry"></a>parsePointGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parsePointGeometry: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
 </div><!--Content-->
 
@@ -53,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseEnvelope: function(</td><td class=PParameter nowrap>env,</td></tr><tr><td></td><td class=PParameter nowrap>arr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse an array of coordinates into an ArcXML envelope structure.</div></div [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseEnvelope: function(</td><td class="PParameter  prettyprint " nowrap>env,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>arr</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse an ar [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/ArcXML/Features-js.html b/doc/devdocs/files/OpenLayers/Format/ArcXML/Features-js.html
index af45d0e..29b94d8 100644
--- a/doc/devdocs/files/OpenLayers/Format/ArcXML/Features-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/ArcXML/Features-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.ArcXML.Features - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.ArcXML.Features - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnL [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML.<span class=HB> </span>Features</h1><div class=CBody><p>Read/Wite ArcXML features.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideT [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<wbr>Format.<wbr>ArcXML.<wbr>Features</h1><div class=CBody><p>Read/Wite ArcXML features.  Create a new instance with the <a href="#OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.ArcXML.Features</a> const [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>ArcXML.<span class=HB> </span>Features</h3><div class=CBody><p>Create a new parser/writer for ArcXML Features.   Create an instance of this class to get a set of features from an ArcXML response.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 cla [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.OpenLayers.Format.ArcXML.Features"></a>OpenLayers.<wbr>Format.<wbr>ArcXML.<wbr>Features</h3><div class=CBody><p>Create a new parser/writer for ArcXML Features.   Create an instance of this class to get a set of features from an ArcXML response.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string of ArcXML, and return a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.ArcXML.Features.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string of ArcXML, and return a set of OpenLayers features.</div></div><div class=CToolTip id="tt2"><div class=CConstructo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string of ArcXML, and return a set of OpenLayers features.</div></div><di [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Atom-js.html b/doc/devdocs/files/OpenLayers/Format/Atom-js.html
index 3cb3186..a4a3d66 100644
--- a/doc/devdocs/files/OpenLayers/Format/Atom-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Atom-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Atom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Atom - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Atom"></a>OpenLayers.<span class=HB> </span>Format.Atom</h1><div class=CBody><p>Read/write Atom feeds.  Create a new instance with the <OpenLayers.Format.AtomFeed> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">Op [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Atom"></a>OpenLayers.<wbr>Format.Atom</h1><div class=CBody><p>Read/write Atom feeds.  Create a new instance with the <OpenLayers.Format.AtomFeed> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">OpenLayers.Format.XM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.Properties"></a>Properties</h3></div></div>
 
@@ -27,31 +27,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.OpenLayers.Format.AtomEntry"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>AtomEntry</h3><div class=CBody><p>Create a new parser for Atom.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance. [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.OpenLayers.Format.AtomEntry"></a>OpenLayers.<wbr>Format.<wbr>AtomEntry</h3><div class=CBody><p>Create a new parser for Atom.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize or more feature nodes to Atom documents.</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Seri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildContentNode"></a>buildContentNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildContentNode: function(</td><td class=PParameter nowrap>content</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildContentNode"></a>buildContentNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildContentNode: function(</td><td class="PParameter  prettyprint " nowrap>content</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildEntryNode"></a>buildEntryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildEntryNode: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Build an Atom entry node f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildEntryNode"></a>buildEntryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildEntryNode: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.initGmlParser"></a>initGmlParser</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initGmlParser: function()</td></tr></table></blockquote><p>Creates a GML parser.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.initGmlParser"></a>initGmlParser</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initGmlParser: function()</td></tr></table></blockquote><p>Creates a GML parser.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildGeometryNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>builds a GeoRSS  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildGeometryNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildPersonConstructNode"></a>buildPersonConstructNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildPersonConstructNode: function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>value</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.buildPersonConstructNode"></a>buildPersonConstructNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildPersonConstructNode: function(</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.getFirstChildValue"></a>getFirstChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFirstChildValue: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>nsuri,</td></tr><tr><td></td><td class=PParameter nowrap> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.getFirstChildValue"></a>getFirstChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFirstChildValue: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>nsuri,</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeature: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse feature from an Atom entry no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeature: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeatures: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return features from an Atom ent [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parseLocations"></a>parseLocations</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseLocations: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the locations from an A [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parseLocations"></a>parseLocations</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseLocations: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parsePersonConstruct"></a>parsePersonConstruct</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parsePersonConstructs: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Atom.parsePersonConstruct"></a>parsePersonConstruct</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parsePersonConstructs: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>n [...]
 
 </div><!--Content-->
 
@@ -59,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Serialize or more feature nodes to Atom documents.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Serialize or more feature nodes to Atom documents.</div></div><div class=CToolTip id= [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/CQL-js.html b/doc/devdocs/files/OpenLayers/Format/CQL-js.html
new file mode 100644
index 0000000..e0c765d
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/CQL-js.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CQL - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CQL"></a>OpenLayers.<wbr>Format.CQL</h1><div class=CBody><p>Read CQL strings to get <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Filter</a> objects.   Write <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read CQL strings to get OpenLayers.Filter objects. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/CSWGetDomain-js.html b/doc/devdocs/files/OpenLayers/Format/CSWGetDomain-js.html
index 21cad5a..fe425cd 100644
--- a/doc/devdocs/files/OpenLayers/Format/CSWGetDomain-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/CSWGetDomain-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetDomain.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetDomain - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="CSWGetDomain.js"></a>CSWGetDomain.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#CSWGetDomain.js" >CSWGetDomain.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain"></a>OpenLayers.<wbr>Format.<wbr>CSWGetDomain</h1><div class=CBody><p>Default version is 2.0.2.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A CSWGetDomain format of the given version.</p><!--START_ND_SUMMARY--> [...]
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.Constants"></a>Constants</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.</h3><div class=CBody><p>Default version is 2.0.2.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A CSWGetDomain format of the given version.</p></div></div></div>
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
-
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.<span class=HB> </span>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the CSWGetDomain format.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the CSWGetDomain format.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html b/doc/devdocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html
index 4e27d7b..3a04d29 100644
--- a/doc/devdocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/CSWGetDomain/v2_0_2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.CSWGetDomain.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetDomain.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="N [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.<span class=HB> </span>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetDomain v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2" class=LConstructor id=link3 onMouseOver="Show [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetDomain.<wbr>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetDomain v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3') [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.Properties"></a>Properties</h3></div></div>
 
@@ -21,7 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.version"></a>version</h3><div class=CBody><p>{String} CSW version number.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/cat/csw/2.0.2" class=LURL target=_top>http://www.opengis.net/cat/csw/2.0.2</a> <a href="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd" class=LURL target=_top>http://schemas.opengis.net<span class=HB>- </span>/csw<span class=HB>- </span>/2.0.2<span class=HB>- </span>/CSW-discove [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/cat/csw/2.0.2" class=LURL target=_top>http://www.opengis.net/cat/csw/2.0.2</a> <a href="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/csw<wbr>/2.0.2<wbr>/CSW-discovery.xsd</a></p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.PropertyName"></a>PropertyName</h3><div class=CBody><p>{String} Value of the csw:PropertyName element, used when writing a GetDomain document.</p></div></div></div>
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetDomain.<span class=HB> </span>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetDomain v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.OpenLayers.Format.CSWGetDomain.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetDomain.<wbr>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetDomain v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the response from a GetDomain request. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an configuration js object, writ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetDomain.v2_0_2.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetDomain request.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetDomain request.</div></div><div class=CToolTip id="tt2"><div  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/CSWGetRecords-js.html b/doc/devdocs/files/OpenLayers/Format/CSWGetRecords-js.html
index f289901..81ed87a 100644
--- a/doc/devdocs/files/OpenLayers/Format/CSWGetRecords-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/CSWGetRecords-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetRecords.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetRecords - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="CSWGetRecords.js"></a>CSWGetRecords.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#CSWGetRecords.js" >CSWGetRecords.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</ [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords"></a>OpenLayers.<wbr>Format.<wbr>CSWGetRecords</h1><div class=CBody><p>Default version is 2.0.2.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A CSWGetRecords format of the given version.</p><!--START_ND_SUMMARY [...]
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.Constants"></a>Constants</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.</h3><div class=CBody><p>Default version is 2.0.2.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A CSWGetRecords format of the given version.</p></div></d [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
-
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the CSWGetRecords format.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the CSWGetRecords format.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html b/doc/devdocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html
index 51f4597..73470cb 100644
--- a/doc/devdocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.CSWGetRecords.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.CSWGetRecords.v2_0_2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad=" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetRecords v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2" class=LConstructor id=link3 onMouseOver= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</h1><div class=CBody><p>A format for creating CSWGetRecords v2.0.2 transactions.  Create a new instance with the <a href="#OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip(' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.Properties"></a>Properties</h3></div></div>
 
@@ -21,7 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.version"></a>version</h3><div class=CBody><p>{String} CSW version number.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/cat/csw/2.0.2" class=LURL target=_top>http://www.opengis.net/cat/csw/2.0.2</a> <a href="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd" class=LURL target=_top>http://schemas.opengis.net<span class=HB>- </span>/csw<span class=HB>- </span>/2.0.2<span class=HB>- </span>/CSW-discov [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/cat/csw/2.0.2" class=LURL target=_top>http://www.opengis.net/cat/csw/2.0.2</a> <a href="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/csw<wbr>/2.0.2<wbr>/CSW-discovery.xsd</a></p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.requestId"></a>requestId</h3><div class=CBody><p>{String} Value of the requestId attribute of the GetRecords element.</p></div></div></div>
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetRecords v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.OpenLayers.Format.CSWGetRecords.v2_0_2"></a>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</h3><div class=CBody><p>A class for parsing and generating CSWGetRecords v2.0.2 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object wh [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the response from a GetRecords reques [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an configuration js object, wri [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.CSWGetRecords.v2_0_2.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
@@ -63,15 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetRecords request.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cel [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse the response from a GetRecords request.</div></div><div class=CToolTip id="tt2"><div [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Context-js.html b/doc/devdocs/files/OpenLayers/Format/Context-js.html
index 800aa7e..bd46c4b 100644
--- a/doc/devdocs/files/OpenLayers/Format/Context-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Context-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Context - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Context - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,39 +11,35 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Context"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context</h1><div class=CBody><p>Base class for both Format.WMC and Format.OWSContext</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.Cont [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Context"></a>OpenLayers.<wbr>Format.<wbr>Context</h1><div class=CBody><p>Base class for both Format.WMC and Format.OWSContext</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.Context" >OpenLayers.<wbr>Format.<wbr>Co [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.layerOptions"></a>layerOptions</h3><div class=CBody><p>{Object} Default options for layers created by the parser.  These options are overridden by the options which are read from the capabilities document.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.layerParams"></a>layerParams</h3><div class=CBody><p>{Object} Default parameters for layers created by the parser.  This can be used e.g. to override DEFAULT_PARAMS for OpenLayers.Layer.WMS.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.parser"></a>parser</h3><div class=CBody><p>{Object} Instance of the versioned parser.   Cached for multiple read and write calls of the same version.</p></div></div></div>
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context</h3><div class=CBody><p>Create a new parser for Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on th [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context"></a>OpenLayers.<wbr>Format.<wbr>Context</h3><div class=CBody><p>Create a new parser for Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.getLayerFromContext"></a>getLayerFromContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerFromContext: function(</td><td class=PParameter nowrap>layerContext</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cre [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.getLayerFromContext"></a>getLayerFromContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerFromContext: function(</td><td class="PParameter  prettyprint " nowrap>layerContext</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.getLayersFromContext"></a>getLayersFromContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersFromContext: function(</td><td class=PParameter nowrap>layersContext</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.getLayersFromContext"></a>getLayersFromContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersFromContext: function(</td><td class="PParameter  prettyprint " nowrap>layersContext</td><td class="PAfterParameters  prettyprint "nowrap>)</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.contextToMap"></a>contextToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contextToMap: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.contextToMap"></a>contextToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contextToMap: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.mergeContextToMap"></a>mergeContextToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeContextToMap: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.mergeContextToMap"></a>mergeContextToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeContextToMap: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>map</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  pret [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context.<span class=HB> </span>serviceTypes</h3><div class=CBody><p>Enumeration for service types</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes"></a>OpenLayers.<wbr>Format.<wbr>Context.<wbr>serviceTypes</h3><div class=CBody><p>Enumeration for service types</p></div></div></div>
 
 </div><!--Content-->
 
@@ -51,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read Context data from a string, and return an object with map properties and a [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read Context da [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Filter-js.html b/doc/devdocs/files/OpenLayers/Format/Filter-js.html
index 63b7cf7..daa0297 100644
--- a/doc/devdocs/files/OpenLayers/Format/Filter-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Filter-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter</h1><div class=CBody><p>Read/Wite ogc:Filter.  Create a new instance with the <a href="#OpenLayers.Format.Filter.OpenLayers.Format.Filter" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.Filter</a> constructor.</p><h4 clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter"></a>OpenLayers.<wbr>Format.<wbr>Filter</h1><div class=CBody><p>Read/Wite ogc:Filter.  Create a new instance with the <a href="#OpenLayers.Format.Filter" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.Filter</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.h [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.parser"></a>parser</h3><div class=CBody><p>{Object} Instance of the versioned parser.   Cached for multiple read and write calls of the same version.</p></div></div></div>
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.Constructor"></a>Constructor</h3></div></div>
-
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.OpenLayers.Format.Filter"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter</h3><div class=CBody><p>Create a new parser for Filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</ [...]
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.write"></a>write</h3><div class=CBody><p>Write an ogc:Filter given a filter object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filter</td><td class=CDLDescription>{<a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers. [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read and Filter doc and return an object representing the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.read"></a>read</h3><div class=CBody><p>Read and Filter doc and return an object representing the Filter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a href="../Filter-js.html#OpenLayers.Filter"  [...]
 
 </div><!--Content-->
 
@@ -37,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Write an ogc:Filter given a filter object.</div></div><div class=CToolTip id [...]
+<div class=CToolTip id="tt1"><div class=CClass>Read/Wite ogc:Filter. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents an OGC Filter.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Filter/v1-js.html b/doc/devdocs/files/OpenLayers/Format/Filter/v1-js.html
index ecae27c..caa2920 100644
--- a/doc/devdocs/files/OpenLayers/Format/Filter/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Filter/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.v1</h1><div class=CBody><p>Superclass for Filter version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Format.XML</a></li></ul><! [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1"></a>OpenLayers.<wbr>Format.<wbr>Filter.v1</h1><div class=CBody><p>Superclass for Filter version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.Properties"></a>Properties</h3></div></div>
 
@@ -23,23 +23,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.OpenLayers.Format.Filter.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Format.Filter</a> constructor instead.< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.OpenLayers.Format.Filter.v1"></a>OpenLayers.<wbr>Format.<wbr>Filter.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Format.Filter</a> constructor instead.</p><h4 class=CHeading>Parameters [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.readSpatial"></a>readSpatial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>readSpatial: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.readSpatial"></a>readSpatial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readSpatial: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.readOgcExpression"></a>readOgcExpression</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>readOgcExpression: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Limited support [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.readOgcExpression"></a>readOgcExpression</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readOgcExpression: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.writeOgcExpression"></a>writeOgcExpression</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeOgcExpression: function(</td><td class="PParameter  prettyprint " nowrap>value,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>no [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.writeFeatureIdNodes"></a>writeFeatureIdNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeFeatureIdNodes: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowra [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.getFilterType"></a>getFilterType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFilterType: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.getFilterType"></a>getFilterType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFilterType: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1.filterMap"></a>filterMap</h3><div class=CBody><p>{Object} Contains a member for each filter type.   Values are node names for corresponding OGC Filter child elements.</p></div></div></div>
 
@@ -49,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Filter/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/Filter/v1_0_0-js.html
index 0f0f082..8ca1242 100644
--- a/doc/devdocs/files/OpenLayers/Format/Filter/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Filter/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoa [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Write ogc:Filter version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../GML/v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayer [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_0_0</h1><div class=CBody><p>Write ogc:Filter version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../GML/v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GML.v2</a></li><li><a href="v1-js.html#OpenLa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/ogc/filter/1.0.0/filter.xsd" class=LURL target=_top>http://www.opengis.net<span class=HB>- </span>/ogc<span class=HB>- </span>/filter<span class=HB>- </span>/1.0.0<span class=HB>- </span>/filter.xsd</a></p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/ogc/filter/1.0.0/filter.xsd" class=LURL target=_top>http://www.opengis.net<wbr>/ogc<wbr>/filter<wbr>/1.0.0<wbr>/filter.xsd</a></p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Form [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.OpenLayers.Format.Filter.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Format.Filter</a> constructor instead.</p><h4 class=CHeadi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -33,7 +33,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.writeSpatial"></a>writeSpatial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>writeSpatial: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_0_0.writeSpatial"></a>writeSpatial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeSpatial: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td cl [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>writeSpatial: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read a {OpenLayers.Filter.Spatial} filter and converts it into XML.</div [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeSpatial: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read a { [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Filter/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/Filter/v1_1_0-js.html
index dbcf676..070989d 100644
--- a/doc/devdocs/files/OpenLayers/Format/Filter/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Filter/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Filter.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Filter.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoa [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Write ogc:Filter version 1.1.0.</p><h4 class=CHeading>Differences from the v1.0.0 parser</h4><ul><li>uses GML v3 instead of GML v2</li><li>reads matchCase attribute on ogc:PropertyIsEqual and ogc:PropertyIsNotEqualelements.</li><li>write [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_1_0</h1><div class=CBody><p>Write ogc:Filter version 1.1.0.</p><h4 class=CHeading>Differences from the v1.0.0 parser</h4><ul><li>uses GML v3 instead of GML v2</li><li>reads matchCase attribute on ogc:PropertyIsEqual and ogc:PropertyIsNotEqual elements.</li><li>writes matchCase attribute from comparison filters of type [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/ogc/filter/1.1.0/filter.xsd" class=LURL target=_top>http://www.opengis.net<span class=HB>- </span>/ogc<span class=HB>- </span>/filter<span class=HB>- </span>/1.1.0<span class=HB>- </span>/filter.xsd</a></p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/ogc/filter/1.1.0/filter.xsd" class=LURL target=_top>http://www.opengis.net<wbr>/ogc<wbr>/filter<wbr>/1.1.0<wbr>/filter.xsd</a></p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Filter.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Form [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.OpenLayers.Format.Filter.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>Filter.<wbr>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../Filter-js.html#OpenLayers.Format.Filter" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.Filter</a> constructor instead.</p><h4 class=CHeadi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -33,7 +33,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.writeSpatial"></a>writeSpatial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>writeSpatial: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Filter.v1_1_0.writeSpatial"></a>writeSpatial</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeSpatial: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td cl [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([6, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([5, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>writeSpatial: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read a {OpenLayers.Filter.Spatial} filter and converts it into XML.</div [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeSpatial: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read a { [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GML-js.html b/doc/devdocs/files/OpenLayers/Format/GML-js.html
index 6d86977..c4b38ed 100644
--- a/doc/devdocs/files/OpenLayers/Format/GML-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML"></a>OpenLayers.<span class=HB> </span>Format.GML</h1><div class=CBody><p>Read/Wite GML.  Create a new instance with the <a href="#OpenLayers.Format.GML.OpenLayers.Format.GML" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Format.GML</a> constructor.   Supports the GML simple features profile.</p><h4  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML"></a>OpenLayers.<wbr>Format.GML</h1><div class=CBody><p>Read/Wite GML.  Create a new instance with the <a href="#OpenLayers.Format.GML.OpenLayers.Format.GML" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Format.GML</a> constructor.   Supports the GML simple features profile.</p><h4 class=CHeading>Inh [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Properties"></a>Properties</h3></div></div>
 
@@ -35,57 +35,57 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.OpenLayers.Format.GML"></a>OpenLayers.<span class=HB> </span>Format.GML</h3><div class=CBody><p>Create a new parser for GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.OpenLayers.Format.GML"></a>OpenLayers.<wbr>Format.GML</h3><div class=CBody><p>Create a new parser for GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return a list of features.</p>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data fr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeature: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function is the core of the GML [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeature: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry"></a>parseGeometry</h3><div class=CBody><p>Properties of this object are the functions that parse geometries based on their type.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.point"></a>parseGeometry.<span class=HB> </span>point</h3><div class=CBody><p>Given a GML node representing a point geometry, create an OpenLayers point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHeading>Retu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.point"></a>parseGeometry.<wbr>point</h3><div class=CBody><p>Given a GML node representing a point geometry, create an OpenLayers point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a hre [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.multipoint"></a>parseGeometry.<span class=HB> </span>multipoint</h3><div class=CBody><p>Given a GML node representing a multipoint geometry, create an OpenLayers multipoint geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.multipoint"></a>parseGeometry.<wbr>multipoint</h3><div class=CBody><p>Given a GML node representing a multipoint geometry, create an OpenLayers multipoint geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHeading>Re [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.linestring"></a>parseGeometry.<span class=HB> </span>linestring</h3><div class=CBody><p>Given a GML node representing a linestring geometry, create an OpenLayers linestring geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.linestring"></a>parseGeometry.<wbr>linestring</h3><div class=CBody><p>Given a GML node representing a linestring geometry, create an OpenLayers linestring geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHeading>Re [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.multilinestring"></a>parseGeometry.<span class=HB> </span>multilinestring</h3><div class=CBody><p>Given a GML node representing a multilinestring geometry, create an OpenLayers multilinestring geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.multilinestring"></a>parseGeometry.<wbr>multilinestring</h3><div class=CBody><p>Given a GML node representing a multilinestring geometry, create an OpenLayers multilinestring geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.polygon"></a>parseGeometry.<span class=HB> </span>polygon</h3><div class=CBody><p>Given a GML node representing a polygon geometry, create an OpenLayers polygon geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHead [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.polygon"></a>parseGeometry.<wbr>polygon</h3><div class=CBody><p>Given a GML node representing a polygon geometry, create an OpenLayers polygon geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHeading>Returns</h4><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.multipolygon"></a>parseGeometry.<span class=HB> </span>multipolygon</h3><div class=CBody><p>Given a GML node representing a multipolygon geometry, create an OpenLayers multipolygon geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.multipolygon"></a>parseGeometry.<wbr>multipolygon</h3><div class=CBody><p>Given a GML node representing a multipolygon geometry, create an OpenLayers multipolygon geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHe [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseGeometry.box"></a>parseGeometry.box</h3><div class=CBody><p>Given a GML node representing a box geometry, create an OpenLayers.Bounds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A GML node.</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bou [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseAttributes: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate a GML document string given a list of featur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gener [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.createFeatureXML"></a>createFeatureXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeatureXML: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept an OpenLayers. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.createFeatureXML"></a>createFeatureXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeatureXML: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildGeometryNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildGeometryNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry"></a>buildGeometry</h3><div class=CBody><p>Object containing methods to do the actual geometry node building based on geometry type.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.point"></a>buildGeometry.<span class=HB> </span>point</h3><div class=CBody><p>Given an OpenLayers point geometry, create a GML point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link20 onMo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.point"></a>buildGeometry.<wbr>point</h3><div class=CBody><p>Given an OpenLayers point geometry, create a GML point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link20 onMouseOver="ShowTip(e [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.multipoint"></a>buildGeometry.<span class=HB> </span>multipoint</h3><div class=CBody><p>Given an OpenLayers multipoint geometry, create a GML multipoint.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/MultiPoint-js.html#OpenLayers.Geometry.MultiPoin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.multipoint"></a>buildGeometry.<wbr>multipoint</h3><div class=CBody><p>Given an OpenLayers multipoint geometry, create a GML multipoint.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/MultiPoint-js.html#OpenLayers.Geometry.MultiPoint" class=LClass id [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.linestring"></a>buildGeometry.<span class=HB> </span>linestring</h3><div class=CBody><p>Given an OpenLayers linestring geometry, create a GML linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineStrin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.linestring"></a>buildGeometry.<wbr>linestring</h3><div class=CBody><p>Given an OpenLayers linestring geometry, create a GML linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.multilinestring"></a>buildGeometry.<span class=HB> </span>multilinestring</h3><div class=CBody><p>Given an OpenLayers multilinestring geometry, create a GML multilinestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/MultiLineString-js.html#Open [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.multilinestring"></a>buildGeometry.<wbr>multilinestring</h3><div class=CBody><p>Given an OpenLayers multilinestring geometry, create a GML multilinestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/MultiLineString-js.html#OpenLayers.Geometry.Mu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.linearring"></a>buildGeometry.<span class=HB> </span>linearring</h3><div class=CBody><p>Given an OpenLayers linearring geometry, create a GML linearring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LinearRing-js.html#OpenLayers.Geometry.LinearRin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.linearring"></a>buildGeometry.<wbr>linearring</h3><div class=CBody><p>Given an OpenLayers linearring geometry, create a GML linearring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LinearRing-js.html#OpenLayers.Geometry.LinearRing" class=LClass id [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.polygon"></a>buildGeometry.<span class=HB> </span>polygon</h3><div class=CBody><p>Given an OpenLayers polygon geometry, create a GML polygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.polygon"></a>buildGeometry.<wbr>polygon</h3><div class=CBody><p>Given an OpenLayers polygon geometry, create a GML polygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link25 onMouseOve [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.multipolygon"></a>buildGeometry.<span class=HB> </span>multipolygon</h3><div class=CBody><p>Given an OpenLayers multipolygon geometry, create a GML multipolygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/MultiPolygon-js.html#OpenLayers.Geometry [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.multipolygon"></a>buildGeometry.<wbr>multipolygon</h3><div class=CBody><p>Given an OpenLayers multipolygon geometry, create a GML multipolygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/MultiPolygon-js.html#OpenLayers.Geometry.MultiPolygon" cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.bounds"></a>buildGeometry.<span class=HB> </span>bounds</h3><div class=CBody><p>Given an OpenLayers bounds, create a GML box.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<OpenLayers.Geometry.Bounds>} A bounds object.</td></tr></table><h4 class=CHeading>Returns</h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildGeometry.bounds"></a>buildGeometry.<wbr>bounds</h3><div class=CBody><p>Given an OpenLayers bounds, create a GML box.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<OpenLayers.Geometry.Bounds>} A bounds object.</td></tr></table><h4 class=CHeading>Returns</h4><p>{DOMElement}  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildCoordinates"></a>buildCoordinates</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildCoordinatesNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>builds the coord [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.buildCoordinates"></a>buildCoordinates</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildCoordinatesNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -93,15 +93,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string, and return a list of features.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from a string, and return a list of features.</div></div><div class=CToolTip id= [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GML/Base-js.html b/doc/devdocs/files/OpenLayers/Format/GML/Base-js.html
index ba11f41..84d309d 100644
--- a/doc/devdocs/files/OpenLayers/Format/GML/Base-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GML/Base-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML.Base - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML.Base - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();p [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.Base"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.Base</h1><div class=CBody><p>Superclass for GML parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMM [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.Base"></a>OpenLayers.<wbr>Format.<wbr>GML.Base</h1><div class=CBody><p>Superclass for GML parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.Properties"></a>Properties</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.featureNS"></a>featureNS</h3><div class=CBody><p>{String} The feature namespace.   Must be set in the options at construction.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.geometry"></a>geometry</h3><div class=CBody><p>{String} Name of geometry element.   Defaults to “geometry”.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.geometry"></a>geometry</h3><div class=CBody><p>{String} Name of geometry element.   Defaults to “geometry”.  If null, it will be set on <a href="#OpenLayers.Format.GML.Base.read" class=LFunction id=link10 onMouseOver="ShowTip(event, 'tt3', 'link10')" onMouseOut="HideTip('tt3')">read</a> when the first geometry is parsed.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.extractAttributes"></a>extractAttributes</h3><div class=CBody><p>{Boolean} Extract attributes from GML.   Default is true.</p></div></div></div>
 
@@ -33,27 +33,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.xy"></a>xy</h3><div class=CBody><p>{Boolean} Order of the GML coordinate true:(x,y) or false:(y,x) Changing is not recommended, a new Format should be instantiated.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.geometryTypes"></a>geometryTypes</h3><div class=CBody><p>{Object} Maps OpenLayers geometry class names to GML element names.  Use <a href="#OpenLayers.Format.GML.Base.setGeometryTypes" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt3', 'link6')" onMouseOut="HideTip('tt3')">setGeometryTypes</a> before accessing this property.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.geometryTypes"></a>geometryTypes</h3><div class=CBody><p>{Object} Maps OpenLayers geometry class names to GML element names.  Use <a href="#OpenLayers.Format.GML.Base.setGeometryTypes" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt6', 'link11')" onMouseOut="HideTip('tt6')">setGeometryTypes</a> before accessing this property.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.singleFeatureType"></a>singleFeatureType</h3><div class=CBody><p>{Boolean} True if there is only 1 featureType, and not an array of featuretypes.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.autoConfig"></a>autoConfig</h3><div class=CBody><p>{Boolean} Indicates if the format was configured without a <a href="#OpenLayers.Format.GML.Base.featureNS" class=LProperty id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">featureNS</a>, but auto-configured <a href="#OpenLayers.Format.GML.Base.featureNS" class=LProperty id=link13 onMouseOver="ShowTip(event, 'tt [...]
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.OpenLayers.Format.GML.Base"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.Base</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">OpenLayers.Format.GML.v2</a> or <a href="v3-js.html#OpenLaye [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.OpenLayers.Format.GML.Base"></a>OpenLayers.<wbr>Format.<wbr>GML.Base</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v2-js.html#OpenLayers.Format.GML.v2" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt9', 'link17')" onMouseOut="HideTip('tt9')">OpenLayers.Format.GML.v2</a> or <a href="v3-js.html#OpenLayers.Format.GML.v3" class=LClass id= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspac [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class= [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.readNode"></a>readNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td cla [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.setGeometryTypes"></a>setGeometryTypes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setGeometryTypes: function()</td></tr></table></blockquote><p>Sets the <a href="#OpenLayers.Format.GML.Base.geometryTypes" class=LProperty id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">geometryTypes</a> mapping.</p></div [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.Base.setGeometryTypes"></a>setGeometryTypes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setGeometryTypes: function()</td></tr></table></blockquote><p>Sets the <a href="#OpenLayers.Format.GML.Base.geometryTypes" class=LProperty id=link21 onMouseOver="ShowTip(event, 'tt7', 'link21')" onMouseOut="HideTip('tt7')">geometryTypes [...]
 
 </div><!--Content-->
 
@@ -61,15 +65,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr> [...]
+<div class=CToolTip id="tt1"><div class=CProperty>{String} The feature namespace. </div></div><div class=CToolTip id="tt2"><div class=CProperty>{Array(String) or String} The local (without prefix) feature typeName(s).</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PP [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GML/v2-js.html b/doc/devdocs/files/OpenLayers/Format/GML/v2-js.html
index 4ed326b..bd2919d 100644
--- a/doc/devdocs/files/OpenLayers/Format/GML/v2-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GML/v2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML.v2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML.v2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v2</h1><div class=CBody><p>Parses GML version 2.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMAR [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v2"></a>OpenLayers.<wbr>Format.<wbr>GML.v2</h1><div class=CBody><p>Parses GML version 2.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=ST [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.OpenLayers.Format.GML.v2"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v2</h3><div class=CBody><p>Create a parser for GML v2.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.OpenLayers.Format.GML.v2"></a>OpenLayers.<wbr>Format.<wbr>GML.v2</h3><div class=CBody><p>Create a parser for GML v2.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table><h4 class=CHeading>Valid [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.Properties_and_Functions"></a>Properties and Functions</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v2.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Superclass for GML parsers.</div></div><div class=CToolTip id="tt3"><div c [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Superclass for GML parsers [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GML/v3-js.html b/doc/devdocs/files/OpenLayers/Format/GML/v3-js.html
index ffdf4b9..e630f72 100644
--- a/doc/devdocs/files/OpenLayers/Format/GML/v3-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GML/v3-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GML.v3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GML.v3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v3"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v3</h1><div class=CBody><p>Parses GML version 3.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMAR [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GML.v3"></a>OpenLayers.<wbr>Format.<wbr>GML.v3</h1><div class=CBody><p>Parses GML version 3.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Base-js.html#OpenLayers.Format.GML.Base" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.GML.Base</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=ST [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.Properties"></a>Properties</h3></div></div>
 
@@ -27,17 +27,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.OpenLayers.Format.GML.v3"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GML.v3</h3><div class=CBody><p>Create a parser for GML v3.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.OpenLayers.Format.GML.v3"></a>OpenLayers.<wbr>Format.<wbr>GML.v3</h3><div class=CBody><p>Create a parser for GML v3.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table><h4 class=CHeading>Valid [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.Properties_and_Functions"></a>Properties and Functions</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.setGeometryTypes"></a>setGeometryTypes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setGeometryTypes: function()</td></tr></table></blockquote><p>Sets the <geometryTypes> mapping.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GML.v3.setGeometryTypes"></a>setGeometryTypes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setGeometryTypes: function()</td></tr></table></blockquote><p>Sets the <geometryTypes> mapping.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([7, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([6, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bord [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GPX-js.html b/doc/devdocs/files/OpenLayers/Format/GPX-js.html
index 6cf8ed1..b77fe70 100644
--- a/doc/devdocs/files/OpenLayers/Format/GPX-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GPX-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GPX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GPX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GPX"></a>OpenLayers.<span class=HB> </span>Format.GPX</h1><div class=CBody><p>Read/write GPX parser.  Create a new instance with the <a href="#OpenLayers.Format.GPX.OpenLayers.Format.GPX" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.GPX</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GPX"></a>OpenLayers.<wbr>Format.GPX</h1><div class=CBody><p>Read/write GPX parser.  Create a new instance with the <a href="#OpenLayers.Format.GPX.OpenLayers.Format.GPX" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.GPX</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.ht [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.Properties"></a>Properties</h3></div></div>
 
@@ -25,15 +25,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.OpenLayers.Format.GPX"></a>OpenLayers.<span class=HB> </span>Format.GPX</h3><div class=CBody><p>Create a new parser for GPX.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.OpenLayers.Format.GPX"></a>OpenLayers.<wbr>Format.GPX</h3><div class=CBody><p>Create a new parser for GPX.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of features from a GPX doc</p><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.extractSegment"></a>extractSegment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>extractSegment: function(</td><td class=PParameter nowrap>segment,</td></tr><tr><td></td><td class=PParameter nowrap>segmentType</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.extractSegment"></a>extractSegment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extractSegment: function(</td><td class="PParameter  prettyprint " nowrap>segment,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>segmentType</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseAttributes: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GPX.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a GPX doc</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspaci [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a GPX doc</div></div><div class=CToolTip id="tt2"><div class [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GeoJSON-js.html b/doc/devdocs/files/OpenLayers/Format/GeoJSON-js.html
index 554312f..de78905 100644
--- a/doc/devdocs/files/OpenLayers/Format/GeoJSON-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GeoJSON-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GeoJSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GeoJSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoJSON"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoJSON</h1><div class=CBody><p>Read and write GeoJSON.  Create a new parser with the <a href="#OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON" class=LConstructor id=link16 onMouseOver="ShowTip(event, 'tt9', 'link16')" onMouseOut="HideTip('tt9')">OpenLayers.Format.GeoJSON</a> constructor.</p>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoJSON"></a>OpenLayers.<wbr>Format.<wbr>GeoJSON</h1><div class=CBody><p>Read and write GeoJSON.  Create a new parser with the <a href="#OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON" class=LConstructor id=link16 onMouseOver="ShowTip(event, 'tt9', 'link16')" onMouseOut="HideTip('tt9')">OpenLayers.Format.GeoJSON</a> constructor.</p><h4 class=CHeading>Inherits from</h4> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Properties"></a>Properties</h3></div></div>
 
@@ -19,17 +19,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoJSON</h3><div class=CBody><p>Create a new parser for GeoJSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instanc [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.OpenLayers.Format.GeoJSON"></a>OpenLayers.<wbr>Format.<wbr>GeoJSON</h3><div class=CBody><p>Create a new parser for GeoJSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.isValidType"></a>isValidType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isValidType: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.isValidType"></a>isValidType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isValidType: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><td class="PAfterP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeature: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convert a feature object from Geo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeature: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseGeometry"></a>parseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseGeometry: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convert a geometry object from [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseGeometry"></a>parseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseGeometry: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Properties"></a>Properties</h3></div></div>
 
@@ -37,23 +37,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.point"></a>parseCoords.<span class=HB> </span>point</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt6', 'link25')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDes [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.point"></a>parseCoords.<wbr>point</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt6', 'link25')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.multipoint"></a>parseCoords.<span class=HB> </span>multipoint</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt6', 'link27')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><p>array {Object} The coordinates array from [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.multipoint"></a>parseCoords.<wbr>multipoint</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt6', 'link27')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><p>array {Object} The coordinates array from the GeoJSON fragm [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.linestring"></a>parseCoords.<span class=HB> </span>linestring</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt6', 'link29')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.linestring"></a>parseCoords.<wbr>linestring</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt6', 'link29')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescription [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.multilinestring"></a>parseCoords.<span class=HB> </span>multilinestring</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt6', 'link31')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.multilinestring"></a>parseCoords.<wbr>multilinestring</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt6', 'link31')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CD [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.polygon"></a>parseCoords.<span class=HB> </span>polygon</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt6', 'link33')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry-js.html#OpenLayers.Geometry" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.polygon"></a>parseCoords.<wbr>polygon</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt6', 'link33')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.multipolygon"></a>parseCoords.<span class=HB> </span>multipolygon</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt6', 'link35')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpaddin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.multipolygon"></a>parseCoords.<wbr>multipolygon</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt6', 'link35')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescrip [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.parseCoords.box"></a>parseCoords.box</h3><div class=CBody><p>Convert a coordinate array from GeoJSON into an <a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt6', 'link37')" onMouseOut="HideTip('tt6')">OpenLayers.Geometry</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>pretty</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pretty</td><td class="PAfterParameters  prett [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.createCRSObject"></a>createCRSObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createCRSObject: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create the CRS object [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.createCRSObject"></a>createCRSObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createCRSObject: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Properties"></a>Properties</h3></div></div>
 
@@ -61,23 +61,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.feature"></a>extract.<span class=HB> </span>feature</h3><div class=CBody><p>Return a partial GeoJSON object representing a single feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link42 on [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.feature"></a>extract.<wbr>feature</h3><div class=CBody><p>Return a partial GeoJSON object representing a single feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link42 onMouseOver="ShowTip [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.geometry"></a>extract.<span class=HB> </span>geometry</h3><div class=CBody><p>Return a GeoJSON object representing a single geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link43 onMouseOver="ShowT [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.geometry"></a>extract.<wbr>geometry</h3><div class=CBody><p>Return a GeoJSON object representing a single geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt6', ' [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.point"></a>extract.<span class=HB> </span>point</h3><div class=CBody><p>Return an array of coordinates from a point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link44 onMouseOver="ShowTip(event [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.point"></a>extract.<wbr>point</h3><div class=CBody><p>Return an array of coordinates from a point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link44 onMouseOver="ShowTip(event, 'tt11', 'link44' [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.multipoint"></a>extract.<span class=HB> </span>multipoint</h3><div class=CBody><p>Return an array of point coordinates from a multipoint.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>multipoint</td><td class=CDLDescription>{<a href="../Geometry/MultiPoint-js.html#OpenLayers.Geometry.MultiPoint" class=LClass  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.multipoint"></a>extract.<wbr>multipoint</h3><div class=CBody><p>Return an array of point coordinates from a multipoint.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>multipoint</td><td class=CDLDescription>{<a href="../Geometry/MultiPoint-js.html#OpenLayers.Geometry.MultiPoint" class=LClass id=link45 onMouseO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.linestring"></a>extract.<span class=HB> </span>linestring</h3><div class=CBody><p>Return an array of coordinate arrays from a linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>linestring</td><td class=CDLDescription>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineString" class=LClass  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.linestring"></a>extract.<wbr>linestring</h3><div class=CBody><p>Return an array of coordinate arrays from a linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>linestring</td><td class=CDLDescription>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id=link46 onMouseO [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.multilinestring"></a>extract.<span class=HB> </span>multilinestring</h3><div class=CBody><p>Return an array of linestring arrays from a linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>linestring</td><td class=CDLDescription>{<a href="../Geometry/MultiLineString-js.html#OpenLayers.Geometry.MultiLineS [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.multilinestring"></a>extract.<wbr>multilinestring</h3><div class=CBody><p>Return an array of linestring arrays from a linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>linestring</td><td class=CDLDescription>{<a href="../Geometry/MultiLineString-js.html#OpenLayers.Geometry.MultiLineString" class=LClas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.polygon"></a>extract.<span class=HB> </span>polygon</h3><div class=CBody><p>Return an array of linear ring arrays from a polygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>polygon</td><td class=CDLDescription>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link48 onMouse [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.polygon"></a>extract.<wbr>polygon</h3><div class=CBody><p>Return an array of linear ring arrays from a polygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>polygon</td><td class=CDLDescription>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link48 onMouseOver="ShowTip(even [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.multipolygon"></a>extract.<span class=HB> </span>multipolygon</h3><div class=CBody><p>Return an array of polygon arrays from a multipolygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>multipolygon</td><td class=CDLDescription>{<a href="../Geometry/MultiPolygon-js.html#OpenLayers.Geometry.MultiPolygon" clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.multipolygon"></a>extract.<wbr>multipolygon</h3><div class=CBody><p>Return an array of polygon arrays from a multipolygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>multipolygon</td><td class=CDLDescription>{<a href="../Geometry/MultiPolygon-js.html#OpenLayers.Geometry.MultiPolygon" class=LClass id=link49 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.collection"></a>extract.<span class=HB> </span>collection</h3><div class=CBody><p>Return an array of geometries from a geometry collection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>collection</td><td class=CDLDescription>{<a href="../Geometry/Collection-js.html#OpenLayers.Geometry.Collection" class=LClas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoJSON.extract.collection"></a>extract.<wbr>collection</h3><div class=CBody><p>Return an array of geometries from a geometry collection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>collection</td><td class=CDLDescription>{<a href="../Geometry/Collection-js.html#OpenLayers.Geometry.Collection" class=LClass id=link50 onMous [...]
 
 </div><!--Content-->
 
@@ -85,15 +85,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a GeoJSON st [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "n [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/GeoRSS-js.html b/doc/devdocs/files/OpenLayers/Format/GeoRSS-js.html
index 8c6c76b..ffc3cb1 100644
--- a/doc/devdocs/files/OpenLayers/Format/GeoRSS-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/GeoRSS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoRSS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoRSS</h1><div class=CBody><p>Read/write GeoRSS parser.  Create a new instance with the <a href="#OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS" class=LConstructor id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">OpenLayers.Format.GeoRSS</a> constructor.</p><h4  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.GeoRSS"></a>OpenLayers.<wbr>Format.<wbr>GeoRSS</h1><div class=CBody><p>Read/write GeoRSS parser.  Create a new instance with the <a href="#OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Format.GeoRSS</a> constructor.</p><h4 class=CHeading>Inherits from</h4 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.Properties"></a>Properties</h3></div></div>
 
@@ -33,23 +33,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoRSS</h3><div class=CBody><p>Create a new parser for GeoRSS.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.OpenLayers.Format.GeoRSS"></a>OpenLayers.<wbr>Format.<wbr>GeoRSS</h3><div class=CBody><p>Create a new parser for GeoRSS.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.createGeometryFromItem"></a>createGeometryFromItem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createGeometryFromItem: function(</td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.createGeometryFromItem"></a>createGeometryFromItem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createGeometryFromItem: function(</td><td class="PParameter  prettyprint " nowrap>item</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.createFeatureFromItem"></a>createFeatureFromItem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeatureFromItem: function(</td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.createFeatureFromItem"></a>createFeatureFromItem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeatureFromItem: function(</td><td class="PParameter  prettyprint " nowrap>item</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.getChildValue"></a>getChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getChildValue: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>nsuri,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.getChildValue"></a>getChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getChildValue: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>nsuri,</td></tr><tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept Feature Collection, and return a string.</p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.createFeatureXML"></a>createFeatureXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeatureXML: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept an <a href= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ac [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildGeometryNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>builds a GeoRS [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.createFeatureXML"></a>createFeatureXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeatureXML: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.buildCoordinatesNode"></a>buildCoordinatesNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildCoordinatesNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildGeometryNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.GeoRSS.buildCoordinatesNode"></a>buildCoordinatesNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildCoordinatesNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
 </div><!--Content-->
 
@@ -57,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createGeometryFromItem: function(</td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Return a geometry from a GeoRSS Item.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createGeometryFromItem: function(</td><td class="PParameter  prettyprint " nowrap>item</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return a geometry from a GeoRSS Item.</div></div><div class=CToolTip id= [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/JSON-js.html b/doc/devdocs/files/OpenLayers/Format/JSON-js.html
index 6ccb785..0890338 100644
--- a/doc/devdocs/files/OpenLayers/Format/JSON-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/JSON-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.JSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.JSON - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.JSON"></a>OpenLayers.<span class=HB> </span>Format.JSON</h1><div class=CBody><p>A parser to read/write JSON safely.   Create a new instance with the <a href="#OpenLayers.Format.JSON.OpenLayers.Format.JSON" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Format.JSON</a> constructor.</p><h4 class=CHeading>Inherit [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.JSON"></a>OpenLayers.<wbr>Format.JSON</h1><div class=CBody><p>A parser to read/write JSON safely.   Create a new instance with the <a href="#OpenLayers.Format.JSON.OpenLayers.Format.JSON" class=LConstructor id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Format.JSON</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Properties"></a>Properties</h3></div></div>
 
@@ -25,21 +25,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.pretty"></a>pretty</h3><div class=CBody><p>{Boolean} Serialize with extra whitespace for structure.   This is set by the <a href="#OpenLayers.Format.JSON.write" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">write</a> method.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.nativeJSON"></a>nativeJSON</h3><div class=CBody><p>{Boolean} Does the browser support native json?</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.OpenLayers.Format.JSON"></a>OpenLayers.<span class=HB> </span>Format.JSON</h3><div class=CBody><p>Create a new parser for JSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.OpenLayers.Format.JSON"></a>OpenLayers.<wbr>Format.JSON</h3><div class=CBody><p>Create a new parser for JSON.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>D [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>value,</td></tr><tr><td></td><td class=PParameter nowrap>pretty</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>value,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pretty</td><td class="PAfterParameters  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.writeIndent"></a>writeIndent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>writeIndent: function()</td></tr></table></blockquote><p>Output an indentation string depending on the indentation level.</p><h4 class=CHeading>Returns</h4><p>{String} An appropriate indentation string.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.writeIndent"></a>writeIndent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">writeIndent: function()</td></tr></table></blockquote><p>Output an indentation string depending on the indentation level.</p><h4 class=CHeading>Returns</h4><p>{String} An appropriate indentation string.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.writeNewline"></a>writeNewline</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>writeNewline: function()</td></tr></table></blockquote><p>Output a string representing a newline if in pretty printing mode.</p><h4 class=CHeading>Returns</h4><p>{String} A string representing a new line.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.writeNewline"></a>writeNewline</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">writeNewline: function()</td></tr></table></blockquote><p>Output a string representing a newline if in pretty printing mode.</p><h4 class=CHeading>Returns</h4><p>{String} A string representing a new line.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.writeSpace"></a>writeSpace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>writeSpace: function()</td></tr></table></blockquote><p>Output a string representing a space if in pretty printing mode.</p><h4 class=CHeading>Returns</h4><p>{String} A space.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.writeSpace"></a>writeSpace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">writeSpace: function()</td></tr></table></blockquote><p>Output a string representing a space if in pretty printing mode.</p><h4 class=CHeading>Returns</h4><p>{String} A space.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Properties"></a>Properties</h3></div></div>
 
@@ -47,17 +49,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.object"></a>serialize.<span class=HB> </span>object</h3><div class=CBody><p>Transform an object into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} The object to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string r [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.object"></a>serialize.<wbr>object</h3><div class=CBody><p>Transform an object into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>object</td><td class=CDLDescription>{Object} The object to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representing the ob [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.array"></a>serialize.<span class=HB> </span>array</h3><div class=CBody><p>Transform an array into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>array</td><td class=CDLDescription>{Array} The array to be serialized</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string represen [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.array"></a>serialize.<wbr>array</h3><div class=CBody><p>Transform an array into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>array</td><td class=CDLDescription>{Array} The array to be serialized</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representing the array.</p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.string"></a>serialize.<span class=HB> </span>string</h3><div class=CBody><p>Transform a string into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>string</td><td class=CDLDescription>{String} The string to be serialized</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string rep [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.string"></a>serialize.<wbr>string</h3><div class=CBody><p>Transform a string into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>string</td><td class=CDLDescription>{String} The string to be serialized</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representing the stri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.number"></a>serialize.<span class=HB> </span>number</h3><div class=CBody><p>Transform a number into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>number</td><td class=CDLDescription>{Number} The number to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string re [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.number"></a>serialize.<wbr>number</h3><div class=CBody><p>Transform a number into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>number</td><td class=CDLDescription>{Number} The number to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representing the num [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.boolean"></a>serialize.<span class=HB> </span>boolean</h3><div class=CBody><p>Transform a boolean into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bool</td><td class=CDLDescription>{Boolean} The boolean to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.boolean"></a>serialize.<wbr>boolean</h3><div class=CBody><p>Transform a boolean into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bool</td><td class=CDLDescription>{Boolean} The boolean to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representing the  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.object"></a>serialize.<span class=HB> </span>object</h3><div class=CBody><p>Transform a date into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>date</td><td class=CDLDescription>{Date} The date to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.JSON.serialize.object"></a>serialize.<wbr>object</h3><div class=CBody><p>Transform a date into a JSON string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>date</td><td class=CDLDescription>{Date} The date to be serialized.</td></tr></table><h4 class=CHeading>Returns</h4><p>{String} A JSON string representing the date.</p></ [...]
 
 </div><!--Content-->
 
@@ -65,15 +67,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>json,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a json string.</div></div><div class=CToolTip id="tt2"><div class=CF [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>json,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a js [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/KML-js.html b/doc/devdocs/files/OpenLayers/Format/KML-js.html
index fb2cb37..0ecff2d 100644
--- a/doc/devdocs/files/OpenLayers/Format/KML-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/KML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.KML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.KML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.KML"></a>OpenLayers.<span class=HB> </span>Format.KML</h1><div class=CBody><p>Read/Write KML.  Create a new instance with the <a href="#OpenLayers.Format.KML.OpenLayers.Format.KML" class=LConstructor id=link24 onMouseOver="ShowTip(event, 'tt22', 'link24')" onMouseOut="HideTip('tt22')">OpenLayers.Format.KML</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.KML"></a>OpenLayers.<wbr>Format.KML</h1><div class=CBody><p>Read/Write KML.  Create a new instance with the <a href="#OpenLayers.Format.KML.OpenLayers.Format.KML" class=LConstructor id=link25 onMouseOver="ShowTip(event, 'tt23', 'link25')" onMouseOut="HideTip('tt23')">OpenLayers.Format.KML</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.Properties"></a>Properties</h3></div></div>
 
@@ -31,7 +31,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.extractTracks"></a>extractTracks</h3><div class=CBody><p>{Boolean} Extract gx:Track elements from Placemark elements.   Default is false.   If true, features will be generated for all points in all gx:Track elements.   Features will have a when (Date) attribute based on when elements in the track.   If tracks include angle elements, features will have heading, tilt, and roll attri [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.trackAttributes"></a>trackAttributes</h3><div class=CBody><p>{Array} If <a href="#OpenLayers.Format.KML.extractTracks" class=LProperty id=link26 onMouseOver="ShowTip(event, 'tt1', 'link26')" onMouseOut="HideTip('tt1')">extractTracks</a> is true, points within gx:Track elements will be parsed as features with when, heading, tilt, and roll attributes.  Any additional attribute names can be provide [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.trackAttributes"></a>trackAttributes</h3><div class=CBody><p>{Array} If <a href="#OpenLayers.Format.KML.extractTracks" class=LProperty id=link27 onMouseOver="ShowTip(event, 'tt1', 'link27')" onMouseOut="HideTip('tt1')">extractTracks</a> is true, points within gx:Track elements will be parsed as features with when, heading, tilt, and roll attributes.  Any additional attribute names can be provide [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.internalns"></a>internalns</h3><div class=CBody><p>{String} KML Namespace to use -- defaults to the namespace of the Placemark node being parsed, but falls back to kmlns.</p></div></div></div>
 
@@ -47,77 +47,79 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.OpenLayers.Format.KML"></a>OpenLayers.<span class=HB> </span>Format.KML</h3><div class=CBody><p>Create a new parser for KML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.OpenLayers.Format.KML"></a>OpenLayers.<wbr>Format.KML</h3><div class=CBody><p>Create a new parser for KML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data from a string, and return a list of features.</p>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read data fr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseData"></a>parseData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseData: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseData"></a>parseData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseData: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseLinks"></a>parseLinks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseLinks: function(</td><td class=PParameter nowrap>nodes,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseLinks"></a>parseLinks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseLinks: function(</td><td class="PParameter  prettyprint " nowrap>nodes,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.fetchLink"></a>fetchLink</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>fetchLink: function(</td><td class=PParameter nowrap>href</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fetches a URL and returns the result</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.fetchLink"></a>fetchLink</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>fetchLink: function(</td><td class="PParameter  prettyprint " nowrap>href</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseStyles"></a>parseStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseStyles: function(</td><td class=PParameter nowrap>nodes,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseStyles"></a>parseStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseStyles: function(</td><td class="PParameter  prettyprint " nowrap>nodes,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseKmlColor"></a>parseKmlColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseKmlColor: function(</td><td class=PParameter nowrap>kmlColor</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parses a kml color (in &lsquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseKmlColor"></a>parseKmlColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseKmlColor: function(</td><td class="PParameter  prettyprint " nowrap>kmlColor</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseStyle"></a>parseStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseStyle: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parses the children of a <a href="../Style [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseStyle"></a>parseStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseStyle: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseStyleMaps"></a>parseStyleMaps</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseStyleMaps: function(</td><td class=PParameter nowrap>nodes,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseStyleMaps"></a>parseStyleMaps</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseStyleMaps: function(</td><td class="PParameter  prettyprint " nowrap>nodes,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeatures: function(</td><td class=PParameter nowrap>nodes,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>nodes,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class=" [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeature: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function is the core of the KML [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseFeature"></a>parseFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeature: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getStyle: function(</td><td class=PParameter nowrap>styleUrl,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getStyle: function(</td><td class="PParameter  prettyprint " nowrap>styleUrl,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParame [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry"></a>parseGeometry</h3><div class=CBody><p>Properties of this object are the functions that parse geometries based on their type.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.point"></a>parseGeometry.<span class=HB> </span>point</h3><div class=CBody><p>Given a KML node representing a point geometry, create an OpenLayers point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML Point node.</td></tr></table><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.point"></a>parseGeometry.<wbr>point</h3><div class=CBody><p>Given a KML node representing a point geometry, create an OpenLayers point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML Point node.</td></tr></table><h4 class=CHeading>Returns</h4><p>{ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.linestring"></a>parseGeometry.<span class=HB> </span>linestring</h3><div class=CBody><p>Given a KML node representing a linestring geometry, create an OpenLayers linestring geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML LineString node.</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.linestring"></a>parseGeometry.<wbr>linestring</h3><div class=CBody><p>Given a KML node representing a linestring geometry, create an OpenLayers linestring geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML LineString node.</td></tr></table><h4 class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.polygon"></a>parseGeometry.<span class=HB> </span>polygon</h3><div class=CBody><p>Given a KML node representing a polygon geometry, create an OpenLayers polygon geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML Polygon node.</td></tr></table><h4 cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.polygon"></a>parseGeometry.<wbr>polygon</h3><div class=CBody><p>Given a KML node representing a polygon geometry, create an OpenLayers polygon geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML Polygon node.</td></tr></table><h4 class=CHeading>Return [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.multigeometry"></a>parseGeometry.<span class=HB> </span>multigeometry</h3><div class=CBody><p>Given a KML node representing a multigeometry, create an OpenLayers geometry collection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML MultiGeometry node.</td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseGeometry.multigeometry"></a>parseGeometry.<wbr>multigeometry</h3><div class=CBody><p>Given a KML node representing a multigeometry, create an OpenLayers geometry collection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement} A KML MultiGeometry node.</td></tr></table><h4 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseAttributes: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseExtendedData"></a>parseExtendedData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseExtendedData: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse ExtendedData fr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseExtendedData"></a>parseExtendedData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseExtendedData: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseProperty"></a>parseProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseProperty: function(</td><td class=PParameter nowrap>xmlNode,</td></tr><tr><td></td><td class=PParameter nowrap>namespace,</td></tr><tr><td></td><td class=PParameter nowrap>tagName</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.parseProperty"></a>parseProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseProperty: function(</td><td class="PParameter  prettyprint " nowrap>xmlNode,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>namespace,</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accept Feature Collection, and return a string.</p><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accep [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.createFolderXML"></a>createFolderXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createFolderXML: function()</td></tr></table></blockquote><p>Creates and returns a KML folder node</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.createFolderXML"></a>createFolderXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createFolderXML: function()</td></tr></table></blockquote><p>Creates and returns a KML folder node</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.createPlacemarkXML"></a>createPlacemarkXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createPlacemarkXML: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates and ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.createPlacemarkXML"></a>createPlacemarkXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createPlacemarkXML: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildGeometryNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Builds and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometryNode"></a>buildGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildGeometryNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry"></a>buildGeometry</h3><div class=CBody><p>Object containing methods to do the actual geometry node building based on geometry type.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.point"></a>buildGeometry.<span class=HB> </span>point</h3><div class=CBody><p>Given an OpenLayers point geometry, create a KML point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link42 onMo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.point"></a>buildGeometry.<wbr>point</h3><div class=CBody><p>Given an OpenLayers point geometry, create a KML point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link43 onMouseOver="ShowTip(e [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.multipoint"></a>buildGeometry.<span class=HB> </span>multipoint</h3><div class=CBody><p>Given an OpenLayers multipoint geometry, create a KML GeometryCollection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.multipoint"></a>buildGeometry.<wbr>multipoint</h3><div class=CBody><p>Given an OpenLayers multipoint geometry, create a KML GeometryCollection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.linestring"></a>buildGeometry.<span class=HB> </span>linestring</h3><div class=CBody><p>Given an OpenLayers linestring geometry, create a KML linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineStrin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.linestring"></a>buildGeometry.<wbr>linestring</h3><div class=CBody><p>Given an OpenLayers linestring geometry, create a KML linestring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.multilinestring"></a>buildGeometry.<span class=HB> </span>multilinestring</h3><div class=CBody><p>Given an OpenLayers multilinestring geometry, create a KML GeometryCollection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.multilinestring"></a>buildGeometry.<wbr>multilinestring</h3><div class=CBody><p>Given an OpenLayers multilinestring geometry, create a KML GeometryCollection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.linearring"></a>buildGeometry.<span class=HB> </span>linearring</h3><div class=CBody><p>Given an OpenLayers linearring geometry, create a KML linearring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LinearRing-js.html#OpenLayers.Geometry.LinearRin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.linearring"></a>buildGeometry.<wbr>linearring</h3><div class=CBody><p>Given an OpenLayers linearring geometry, create a KML linearring.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/LinearRing-js.html#OpenLayers.Geometry.LinearRing" class=LClass id [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.polygon"></a>buildGeometry.<span class=HB> </span>polygon</h3><div class=CBody><p>Given an OpenLayers polygon geometry, create a KML polygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.polygon"></a>buildGeometry.<wbr>polygon</h3><div class=CBody><p>Given an OpenLayers polygon geometry, create a KML polygon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link48 onMouseOve [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.multipolygon"></a>buildGeometry.<span class=HB> </span>multipolygon</h3><div class=CBody><p>Given an OpenLayers multipolygon geometry, create a KML GeometryCollection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.multipolygon"></a>buildGeometry.<wbr>multipolygon</h3><div class=CBody><p>Given an OpenLayers multipolygon geometry, create a KML GeometryCollection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.collection"></a>buildGeometry.<span class=HB> </span>collection</h3><div class=CBody><p>Given an OpenLayers geometry collection, create a KML MultiGeometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Collection-js.html#OpenLayers.Geometry.Collec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildGeometry.collection"></a>buildGeometry.<wbr>collection</h3><div class=CBody><p>Given an OpenLayers geometry collection, create a KML MultiGeometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry/Collection-js.html#OpenLayers.Geometry.Collection" class=LClass [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildCoordinatesNode"></a>buildCoordinatesNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>buildCoordinatesNode: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Builds a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildCoordinatesNode"></a>buildCoordinatesNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildCoordinatesNode: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.KML.buildCoordinates"></a>buildCoordinates</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>buildCoordinates: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
 </div><!--Content-->
 
@@ -125,15 +127,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Extract gx:Track elements from Placemark elements. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read data from  [...]
+<div class=CToolTip id="tt1"><div class=CProperty>{Boolean} Extract gx:Track elements from Placemark elements. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/OGCExceptionReport-js.html b/doc/devdocs/files/OpenLayers/Format/OGCExceptionReport-js.html
new file mode 100644
index 0000000..fdcc8f6
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/OGCExceptionReport-js.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OGCExceptionReport - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport"></a>OpenLayers.<wbr>Format.<wbr>OGCExceptionReport</h1><div class=CBody><p>Class to read exception reports for various OGC services and versions.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></l [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.defaultPrefix"></a>defaultPrefix</h3></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.OpenLayers.Format.OGCExceptionReport"></a>OpenLayers.<wbr>Format.<wbr>OGCExceptionReport</h3><div class=CBody><p>Create a new parser for OGC exception reports.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on t [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OGCExceptionReport.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read OGC exception report data from a string, and return an object with information about  [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/OSM-js.html b/doc/devdocs/files/OpenLayers/Format/OSM-js.html
index 8482b67..352a146 100644
--- a/doc/devdocs/files/OpenLayers/Format/OSM-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/OSM-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OSM - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OSM - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OSM"></a>OpenLayers.<span class=HB> </span>Format.OSM</h1><div class=CBody><p>OSM parser.  Create a new instance with the <a href="#OpenLayers.Format.OSM.OpenLayers.Format.OSM" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Format.OSM</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OSM"></a>OpenLayers.<wbr>Format.OSM</h1><div class=CBody><p>OSM parser.  Create a new instance with the <a href="#OpenLayers.Format.OSM.OpenLayers.Format.OSM" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Format.OSM</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.Properties"></a>Properties</h3></div></div>
 
@@ -23,27 +23,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.OpenLayers.Format.OSM"></a>OpenLayers.<span class=HB> </span>Format.OSM</h3><div class=CBody><p>Create a new parser for OSM.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.OpenLayers.Format.OSM"></a>OpenLayers.<wbr>Format.OSM</h3><div class=CBody><p>Create a new parser for OSM.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.getNodes"></a>getNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNodes: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return the node items from a doc.</p><h4 class=CH [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.getNodes"></a>getNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNodes: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>R [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.getWays"></a>getWays</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getWays: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return the way items from a doc.</p><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.getWays"></a>getWays</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getWays: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Retu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.getTags"></a>getTags</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getTags: function(</td><td class=PParameter nowrap>dom_node,</td></tr><tr><td></td><td class=PParameter nowrap>interesting_tags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.getTags"></a>getTags</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTags: function(</td><td class="PParameter  prettyprint " nowrap>dom_node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>interesting_tags</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.isWayArea"></a>isWayArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isWayArea: function(</td><td class=PParameter nowrap>way</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a way object from getWays, check whether [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.isWayArea"></a>isWayArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isWayArea: function(</td><td class="PParameter  prettyprint " nowrap>way</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a list of features, returns a serialized OSM fo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.createFeatureNodes"></a>createFeatureNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeatureNodes: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a feature [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.createFeatureNodes"></a>createFeatureNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeatureNodes: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.createXML"></a>createXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createXML:</td></tr></table></blockquote><p>Takes a feature, returns a list of nodes from size 0->n.  Will include all pieces of the serialization that are required which have not already been created.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.createXML"></a>createXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createXML:</td></tr></table></blockquote><p>Takes a feature, returns a list of nodes from size 0->n.  Will include all pieces of the serialization that are required which have not already been created.</p><h4 class=CHeading>Parameters</h4><table b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.serializeTags"></a>serializeTags</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>serializeTags: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.serializeTags"></a>serializeTags</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>serializeTags: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.setState"></a>setState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setState: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OSM.setState"></a>setState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setState: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters [...]
 
 </div><!--Content-->
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNodes: function(</td><td class=PParameter nowrap>doc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Return the node items from a doc.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNodes: function(</td><td class="PParameter  prettyprint " nowrap>doc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return the node items from a doc.</div></div><div class=CToolTip id="tt2"><div class=CF [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/OWSCommon-js.html b/doc/devdocs/files/OpenLayers/Format/OWSCommon-js.html
new file mode 100644
index 0000000..fcefb4b
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/OWSCommon-js.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon</h1><div class=CBody><p>Read OWSCommon.  Create a new instance with the <a href="#OpenLayers.Format.OWSCommon.OpenLayers.Format.OWSCommon" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.OWSCommon</a> constructor.</p><h4 class=CHeading>Inherits from</h [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.OpenLayers.Format.OWSCommon"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon</h3><div class=CBody><p>Create a new parser for OWSCommon.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></ [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.getVersion"></a>getVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAft [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.read"></a>read</h3><div class=CBody><p>Read an OWSCommon document and return an object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for the reader.</td></tr>< [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns t [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1-js.html b/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1-js.html
index 765ca41..e010ae4 100644
--- a/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSCommon.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,12 +11,14 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSCommon.v1</h1><div class=CBody><p>Common readers and writers for OWSCommon v1.X formats</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers. [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon.v1</h1><div class=CBody><p>Common readers and writers for OWSCommon v1.X formats</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.OWSCommon.v1" >OpenLayers.<wb [...]
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1.Properties"></a>Properties</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1.Properties_and_Functions"></a>Properties and Functions</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
 
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  p [...]
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
@@ -27,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([14, 15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([13, 14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><!- [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html
index 8a1b6ce..7f26275 100644
--- a/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSCommon.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSCommon.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Parser for OWS Common version 1.0.0 which can be used by other parsers.  It is not intended to be used on its own.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon.<wbr>v1_0_0</h1><div class=CBody><p>Parser for OWS Common version 1.0.0.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.OWSCommon.v1_0_0" >OpenLayers.<wb [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([14, 15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([13, 14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html
index 8097763..b1bcebf 100644
--- a/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/OWSCommon/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSCommon.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSCommon.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSCommon.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Parser for OWS Common version 1.1.0 which can be used by other parsers.  It is not intended to be used on its own.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>OWSCommon.<wbr>v1_1_0</h1><div class=CBody><p>Parser for OWS Common version 1.1.0.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Format.OWSCommon.v1_1_0" >OpenLayers.<wb [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -19,16 +19,18 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSCommon.v1_1_0.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
+
 </div><!--Content-->
 
 
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([14, 15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([13, 14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/OWSContext-js.html b/doc/devdocs/files/OpenLayers/Format/OWSContext-js.html
index c6301b8..052f5b4 100644
--- a/doc/devdocs/files/OpenLayers/Format/OWSContext-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/OWSContext-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSContext - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSContext - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext</h1><div class=CBody><p>Read and write OWS Context documents.  OWS Context documents are a preliminary OGC (Open Geospatial Consortium) standard for storing the state of a web mapping application.  In a way it is the successor to Web Map Context (WMC), since it is more generic an [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext"></a>OpenLayers.<wbr>Format.<wbr>OWSContext</h1><div class=CBody><p>Read and write OWS Context documents.  OWS Context documents are a preliminary OGC (Open Geospatial Consortium) standard for storing the state of a web mapping application.  In a way it is the successor to Web Map Context (WMC), since it is more generic and more types of layers can be stored [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “0.3.1”.</p></div></div></div>
 
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.OpenLayers.Format.OWSContext"></a>OpenLayers.<wbr>Format.<wbr>OWSContext</h3><div class=CBody><p>Create a new parser for OWS Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr>< [...]
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.getParser"></a>getParser</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getParser: function(</td><td class=PParameter nowrap>version</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the OWSContext parser given a v [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.getVersion"></a>getVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.toContext"></a>toContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toContext: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a context object free from layer [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.toContext"></a>toContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toContext: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
 </div><!--Content-->
 
@@ -29,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getParser: function(</td><td class=PParameter nowrap>version</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the OWSContext parser given a version. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns t [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html b/doc/devdocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html
index e7de6eb..afc799b 100644
--- a/doc/devdocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/OWSContext/v0_3_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.OWSContext.v0_3_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.OWSContext.v0_3_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDO [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1</h1><div class=CBody><p>Read and write OWSContext version 0.3.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6') [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1</h1><div class=CBody><p>Read and write OWSContext version 0.3.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Properties"></a>Properties</h3></div></div>
 
@@ -43,19 +43,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../OWSContext-js.html#OpenLayers.Format.OWSContext" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1"></a>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../OWSContext-js.html#OpenLayers.Format.OWSContext" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Format.OWSContext</a> constructor inst [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.setNestingPath"></a>setNestingPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setNestingPath : function(</td><td class=PParameter nowrap>l</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the nestingPat [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.setNestingPath"></a>setNestingPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setNestingPath : function(</td><td class="PParameter  prettyprint " nowrap>l</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.decomposeNestingPath"></a>decomposeNestingPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>decomposeNestingPath: function(</td><td class=PParameter nowrap>nPath</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.decomposeNestingPath"></a>decomposeNestingPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>decomposeNestingPath: function(</td><td class="PParameter  prettyprint " nowrap>nPath</td><td class="PAfterParameters  prettyprint "nowrap>)< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read OWS context data from a string or DOMElem [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.processLayer"></a>processLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>processLayer: function(</td><td class=PParameter nowrap>layerArray,</td></tr><tr><td></td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.processLayer"></a>processLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>processLayer: function(</td><td class="PParameter  prettyprint " nowrap>layerArray,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>layer</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.OWSContext.v0_3_1.Properties"></a>Properties</h3></div></div>
 
@@ -69,15 +69,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setNestingPath : function(</td><td class=PParameter nowrap>l</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set the nestingPath property of the layer depending on the position of the layer in hierarchy of layers.</div></div><div class=CTo [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setNestingPath : function(</td><td class="PParameter  prettyprint " nowrap>l</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Set the nestingPath property of the layer depending on the position of the layer i [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/QueryStringFilter-js.html b/doc/devdocs/files/OpenLayers/Format/QueryStringFilter-js.html
new file mode 100644
index 0000000..bda96a2
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/QueryStringFilter-js.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.QueryStringFilter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.QueryStringFilter"></a>OpenLayers.<wbr>Format.<wbr>QueryStringFilter</h1><div class=CBody><p>Parser for reading a query string and creating a simple filter.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Format-js.html#OpenLayers.Format" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format</a></li></ul><!-- [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.regex2value"></a>regex2value</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>function regex2value(</td><td class="PParameter  prettyprint " nowrap>value</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.wildcarded"></a>wildcarded.</h3><div class=CBody><p>{Boolean} If true percent signs are added around values read from LIKE filters, for example if the protocol read method is passed a LIKE filter whose property is “foo” and whose value is “bar” the string “foo__ilike=%bar%” will be sent in the query string; defaults to false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.srsInBBOX"></a>srsInBBOX</h3><div class=CBody><p>{Boolean} Include the SRS identifier in BBOX query string parameter.  Default is false.   If true and the layer has a projection object set, any BBOX filter will be serialized with a fifth item identifying the projection.   E.g. bbox=-1000,-1000,1000,1000,EPSG:900913</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.QueryStringFilter.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params</td><td class="PAfterPara [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>function regex2value(</td><td class="PParameter  prettyprint " nowrap>value</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Convert the value from a regular expression string to a LIKE/ILIKE string known to  [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/SLD-js.html b/doc/devdocs/files/OpenLayers/Format/SLD-js.html
index 63eade2..2eb381a 100644
--- a/doc/devdocs/files/OpenLayers/Format/SLD-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SLD-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SLD - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SLD - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD"></a>OpenLayers.<span class=HB> </span>Format.SLD</h1><div class=CBody><p>Read/Wite SLD.  Create a new instance with the <a href="#OpenLayers.Format.SLD.OpenLayers.Format.SLD" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.SLD</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD"></a>OpenLayers.<wbr>Format.SLD</h1><div class=CBody><p>Read/Wite SLD.  Create a new instance with the <a href="#OpenLayers.Format.SLD" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.SLD</a> constructor.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.stringifyOutput"></a>stringifyOutput</h3><div class=CBody><p>{Boolean} If true, write will return a string otherwise a DOMElement.  Default is true.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.namedLayersAsArray"></a>namedLayersAsArray</h3><div class=CBody><p>{Boolean} Generate a namedLayers array.   If false, the namedLayers property value will be an object keyed by layer name.  Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.parser"></a>parser</h3><div class=CBody><p>{Object} Instance of the versioned parser.   Cached for multiple read and write calls of the same version.</p></div></div></div>
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.Constructor"></a>Constructor</h3></div></div>
-
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.OpenLayers.Format.SLD"></a>OpenLayers.<span class=HB> </span>Format.SLD</h3><div class=CBody><p>Create a new parser for SLD.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>sld,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.write"></a>write</h3><div class=CBody><p>Write a SLD document given a list of styles.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sld</td><td class=CDLDescription>{Object} An object representing the SLD.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional configuration object.</td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>R [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.read"></a>read</h3><div class=CBody><p>Read and SLD doc and return an object representing the SLD.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for the reader.</td>< [...]
 
 </div><!--Content-->
 
@@ -39,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([8, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([7, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>sld,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Write a SLD document given a list of styles.</div></div><div class=CToolTip id= [...]
+<div class=CToolTip id="tt1"><div class=CClass>Read/Wite SLD. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/SLD/v1-js.html b/doc/devdocs/files/OpenLayers/Format/SLD/v1-js.html
index 4a3a36e..fc7e7df 100644
--- a/doc/devdocs/files/OpenLayers/Format/SLD/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SLD/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SLD.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SLD.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.v1</h1><div class=CBody><p>Superclass for SLD version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Filter/v1_0_0-js.html#OpenLayers.Format.Filter.v1_0_0" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">OpenLayers.Format.Filter.v [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1"></a>OpenLayers.<wbr>Format.<wbr>SLD.v1</h1><div class=CBody><p>Superclass for SLD version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Filter/v1_0_0-js.html#OpenLayers.Format.Filter.v1_0_0" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">OpenLayers.Format.Filter.v1_0_0</a></li></ul><!--START_ND_SUMM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.Properties"></a>Properties</h3></div></div>
 
@@ -29,25 +29,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.OpenLayers.Format.SLD.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">OpenLayers.Format.SLD</a> constructor instead.</p><h4 class=CHead [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.OpenLayers.Format.SLD.v1"></a>OpenLayers.<wbr>Format.<wbr>SLD.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">OpenLayers.Format.SLD</a> constructor instead.</p><h4 class=CHeading>Parameters</h4><table border=0 c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyp [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.cssMap"></a>cssMap</h3><div class=CBody><p>{Object} Object mapping supported css property names to OpenLayers symbolizer property names.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.getCssProperty"></a>getCssProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getCssProperty: function(</td><td class=PParameter nowrap>sym</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a symbolizer property, [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.getCssProperty"></a>getCssProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getCssProperty: function(</td><td class="PParameter  prettyprint " nowrap>sym</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.getGraphicFormat"></a>getGraphicFormat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGraphicFormat: function(</td><td class=PParameter nowrap>href</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a href for an e [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.getGraphicFormat"></a>getGraphicFormat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGraphicFormat: function(</td><td class="PParameter  prettyprint " nowrap>href</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.defaultGraphicFormat"></a>defaultGraphicFormat</h3><div class=CBody><p>{String} If none other can be determined from <a href="#OpenLayers.Format.SLD.v1.getGraphicFormat" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt4', 'link12')" onMouseOut="HideTip('tt4')">getGraphicFormat</a>, this default will be returned.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.graphicFormats"></a>graphicFormats</h3><div class=CBody><p>{Object} Mapping of image mime-types to regular extensions matching well-known file extensions.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>sld</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspac [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>sld</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class= [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
@@ -57,15 +57,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([8, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([7, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><tabl [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><di [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/SLD/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/SLD/v1_0_0-js.html
index ba3ea34..29aa117 100644
--- a/doc/devdocs/files/OpenLayers/Format/SLD/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SLD/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SLD.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SLD.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Write SLD version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.SLD.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.SLD.v1</a>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SLD.<wbr>v1_0_0</h1><div class=CBody><p>Write SLD version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.SLD.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.SLD.v1</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><di [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/sld" class=LURL target=_top>http://www.opengis.net/sld</a> <a href="http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" class=LURL target=_top>http://schemas.opengis.net<span class=HB>- </span>/sld<span class=HB>- </span>/1.0.0<span class=HB>- </span>/StyledLayerDescriptor.xsd</a></p [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/sld" class=LURL target=_top>http://www.opengis.net/sld</a> <a href="http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/sld<wbr>/1.0.0<wbr>/StyledLayerDescriptor.xsd</a></p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SLD.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.SLD</a> cons [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SLD.v1_0_0.OpenLayers.Format.SLD.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SLD.<wbr>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../SLD-js.html#OpenLayers.Format.SLD" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.SLD</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
 
 </div><!--Content-->
 
@@ -31,10 +31,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([8, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([7, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/SOSCapabilities-js.html b/doc/devdocs/files/OpenLayers/Format/SOSCapabilities-js.html
index f6e3d09..e80a587 100644
--- a/doc/devdocs/files/OpenLayers/Format/SOSCapabilities-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SOSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities</h1><div class=CBody><p>Read SOS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities</h1><div class=CBody><p>Read SOS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.parser"></a>parser</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A cached versioned format used for reading.</p></div></div></div>
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities</h3><div class=CBody><p>Create a new parser for SOS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose prope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.OpenLayers.Format.SOSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities</h3><div class=CBody><p>Create a new parser for SOS Capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return information about the service (offering and observedProperty mostly).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class= [...]
 
 </div><!--Content-->
 
@@ -35,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities d [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html
index b7d52de..382d346 100644
--- a/doc/devdocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SOSCapabilities/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read SOS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../SOSCapabilities-js.html#OpenLayers.Format.SOSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities.<wbr>v1_0_0</h1><div class=CBody><p>Read SOS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../SOSCapabilities-js.html#OpenLayers.Format.SOSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.SOSC [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSCapabilities.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Create a new parser for SOS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.OpenLayers.Format.SOSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>SOSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for SOS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSCapabilities.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the SOS.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read SOS Ca [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the SOS.</div></div><div class [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html b/doc/devdocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html
index 08727b4..cf1f5ec 100644
--- a/doc/devdocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SOSGetFeatureOfInterest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSGetFeatureOfInterest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSGetFeatureOfInterest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetFeatureOfInterest</h1><div class=CBody><p>Read and write SOS GetFeatureOfInterest.  This is used to get to the location of the features (stations).  The stations can have 1 or more sensors.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Fo [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<wbr>Format.<wbr>SOSGetFeatureOfInterest</h1><div class=CBody><p>Read and write SOS GetFeatureOfInterest.  This is used to get to the location of the features (stations).  The stations can have 1 or more sensors.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Constants"></a>Constants</h3></div></div>
 
@@ -29,11 +29,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetFeatureOfInterest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on thi [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.OpenLayers.Format.SOSGetFeatureOfInterest"></a>OpenLayers.<wbr>Format.<wbr>SOSGetFeatureOfInterest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse a GetFeatureOfInterest response an [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetFeatureOfInterest.Properties"></a>Properties</h3></div></div>
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parse a GetFeatureOfInterest response and return an array of features</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and w [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse a GetFeatureOfInterest response and return an array of features</div></div><div clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/SOSGetObservation-js.html b/doc/devdocs/files/OpenLayers/Format/SOSGetObservation-js.html
index d5388a6..971a36d 100644
--- a/doc/devdocs/files/OpenLayers/Format/SOSGetObservation-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/SOSGetObservation-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.SOSGetObservation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.SOSGetObservation - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetObservation</h1><div class=CBody><p>Read and write SOS GetObersation (to get the actual values from a sensor) version 1.0.0</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<wbr>Format.<wbr>SOSGetObservation</h1><div class=CBody><p>Read and write SOS GetObersation (to get the actual values from a sensor) version 1.0.0</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Fo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.Properties"></a>Properties</h3></div></div>
 
@@ -31,13 +31,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>SOSGetObservation</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.OpenLayers.Format.SOSGetObservation"></a>OpenLayers.<wbr>Format.<wbr>SOSGetObservation</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.SOSGetObservation.Properties"></a>Properties</h3></div></div>
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/Text-js.html b/doc/devdocs/files/OpenLayers/Format/Text-js.html
index 0d02bea..443cef8 100644
--- a/doc/devdocs/files/OpenLayers/Format/Text-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/Text-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Text"></a>OpenLayers.<span class=HB> </span>Format.Text</h1><div class=CBody><p>Read Text format.  Create a new instance with the <a href="#OpenLayers.Format.Text.OpenLayers.Format.Text" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Text</a> constructor.  This reads text which is formatted like CS [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.Text"></a>OpenLayers.<wbr>Format.Text</h1><div class=CBody><p>Read Text format.  Create a new instance with the <a href="#OpenLayers.Format.Text.OpenLayers.Format.Text" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.Text</a> constructor.  This reads text which is formatted like CSV text, using tabs [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.Properties"></a>Properties</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.OpenLayers.Format.Text"></a>OpenLayers.<span class=HB> </span>Format.Text</h3><div class=CBody><p>Create a new parser for TSV Text.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.OpenLayers.Format.Text"></a>OpenLayers.<wbr>Format.Text</h3><div class=CBody><p>Create a new parser for TSV Text.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of features from a Tab Seperated Values text  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.Text.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a li [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a Tab Seperated Values text string.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Return a list of features from a Tab Seperated Values text string.</div></div><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WCSGetCoverage-js.html b/doc/devdocs/files/OpenLayers/Format/WCSGetCoverage-js.html
new file mode 100644
index 0000000..833c2c6
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/WCSGetCoverage-js.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WCSGetCoverage version 1.1.0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0"></a>OpenLayers.<wbr>Format.<wbr>WCSGetCoverage version 1.1.0</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div cla [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.1.2</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} Schema location</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.OpenLayers.Format.WCSGetCoverage"></a>OpenLayers.<wbr>Format.<wbr>WCSGetCoverage</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WCSGetCoverage_version_1.1.0.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Read and write XML. </div>< [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/WFS-js.html b/doc/devdocs/files/OpenLayers/Format/WFS-js.html
index 41fdd7e..f6926aa 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFS-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFS"></a>OpenLayers.<span class=HB> </span>Format.WFS</h1><div class=CBody><p>Read/Write WFS.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="GML-js.html#OpenLayers.Format.GML" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Format.GML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFS"></a>OpenLayers.<wbr>Format.WFS</h1><div class=CBody><p>Read/Write WFS.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="GML-js.html#OpenLayers.Format.GML" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Format.GML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.Properties"></a>Properties</h3></div></div>
 
@@ -23,21 +23,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.OpenLayers.Format.WFS"></a>OpenLayers.<span class=HB> </span>Format.WFS</h3><div class=CBody><p>Create a WFS-T formatter.  This requires a layer: that layer should have two properties: geometry_column and typename.  The parser for this format is subclassed entirely from GML: There is a writer only, which uses most of the code from the GML layer, and wraps it in transactional elements.</p [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.OpenLayers.Format.WFS"></a>OpenLayers.<wbr>Format.WFS</h3><div class=CBody><p>Create a WFS-T formatter.  This requires a layer: that layer should have two properties: geometry_column and typename.  The parser for this format is subclassed entirely from GML: There is a writer only, which uses most of the code from the GML layer, and wraps it in transactional elements.</p><h4 class=CHeadin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a feature list, and generates a WFS-T Transacti [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.createFeatureXML"></a>createFeatureXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeatureXML: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Param [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.createFeatureXML"></a>createFeatureXML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeatureXML: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>insert: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a feature, and generates a WFS-T Transaction  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insert: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tak [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>update: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a feature, and generates a WFS-T Transaction  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tak [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>remove: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a feature, and generates a WFS-T Transaction  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>remove: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tak [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Remove ciruclar ref to layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Remove ciruclar ref to layer</p></div></div></div>
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes a feature list, and generates a WFS-T Transaction</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><tab [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Takes a feature list, and generates a WFS-T Transaction</div></div><div class=CToolTi [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities-js.html b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities-js.html
index 96c2079..47d9a25 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities</h1><div class=CBody><p>Read WFS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities</h1><div class=CBody><p>Read WFS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.errorProperty"></a>errorProperty</h3><div class=CBody><p>{String} Which property of the returned object to check for in order to determine whether or not parsing has failed.  In the case that the errorProperty is undefined on the returned object, the document will be run through an OGCExceptionReport parser.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities</h3><div class=CBody><p>Create a new parser for WFS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose prope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.OpenLayers.Format.WFSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities</h3><div class=CBody><p>Create a new parser for WFS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return a list of layers.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Array} List of named layers [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read and writ [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html
index c816662..3823ffb 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="ND [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.F [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Format.XML</a></li></ul><!--START_ND_ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.OpenLayers.Format.WFSCapabilities.v1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.v1_1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional ob [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.OpenLayers.Format.WFSCapabilities.v1_1"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.v1_1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.runChildNodes"></a>runChildNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>runChildNodes: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.runChildNodes"></a>runChildNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>runChildNodes: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_FeatureTypeList"></a>read_cap_FeatureTypeList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_FeatureTypeList: function(</td><td class=PParameter nowrap>request,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAf [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_FeatureTypeList"></a>read_cap_FeatureTypeList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_FeatureTypeList: function(</td><td class="PParameter  prettyprint " nowrap>request,</td></tr><tr><td></td><td class="PParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_FeatureType"></a>read_cap_FeatureType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_FeatureType: function(</td><td class=PParameter nowrap>featureTypeList,</td></tr><tr><td></td><td class=PParameter nowrap>node,</td></tr><tr><td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_FeatureType"></a>read_cap_FeatureType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_FeatureType: function(</td><td class="PParameter  prettyprint " nowrap>featureTypeList,</td></tr><tr><td></td><td class="PParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_Name"></a>read_cap_Name</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Name: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_Name"></a>read_cap_Name</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Name: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_Title"></a>read_cap_Title</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Title: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_Title"></a>read_cap_Title</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Title: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_Abstract"></a>read_cap_Abstract</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Abstract: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities.v1.read_cap_Abstract"></a>read_cap_Abstract</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Abstract: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowra [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquot [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html
index b7f21b3..597fb42 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities/v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities/v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,39 +11,41 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities/<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read WMS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'lin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities/<wbr>v1_0_0</h1><div class=CBody><p>Read WFS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">OpenLayers.Format. [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.OpenLayers.Format.WFSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.OpenLayers.Format.WFSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Service"></a>read_cap_Service</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Service: function(</td><td class=PParameter nowrap>capabilities,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Service"></a>read_cap_Service</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Service: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter  prettypri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Fees"></a>read_cap_Fees</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Fees: function(</td><td class=PParameter nowrap>service,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Fees"></a>read_cap_Fees</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Fees: function(</td><td class="PParameter  prettyprint " nowrap>service,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_AccessConstraints"></a>read_cap_AccessConstraints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_AccessConstraints: function(</td><td class=PParameter nowrap>service,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_AccessConstraints"></a>read_cap_AccessConstraints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_AccessConstraints: function(</td><td class="PParameter  prettyprint " nowrap>service,</td></tr><tr><td></td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_OnlineResource"></a>read_cap_OnlineResource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_OnlineResource: function(</td><td class=PParameter nowrap>service,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PA [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_OnlineResource"></a>read_cap_OnlineResource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_OnlineResource: function(</td><td class="PParameter  prettyprint " nowrap>service,</td></tr><tr><td></td><td class="PPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Keywords"></a>read_cap_Keywords</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Keywords: function(</td><td class=PParameter nowrap>service,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters now [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Keywords"></a>read_cap_Keywords</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Keywords: function(</td><td class="PParameter  prettyprint " nowrap>service,</td></tr><tr><td></td><td class="PParameter  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Capability"></a>read_cap_Capability</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Capability: function(</td><td class=PParameter nowrap>capabilities,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterPar [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Capability"></a>read_cap_Capability</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Capability: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Request"></a>read_cap_Request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Request: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Request"></a>read_cap_Request</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Request: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_GetFeature"></a>read_cap_GetFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_GetFeature: function(</td><td class=PParameter nowrap>request,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParamete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_GetFeature"></a>read_cap_GetFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_GetFeature: function(</td><td class="PParameter  prettyprint " nowrap>request,</td></tr><tr><td></td><td class="PParameter  prett [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_ResultFormat"></a>read_cap_ResultFormat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_ResultFormat: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_ResultFormat"></a>read_cap_ResultFormat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_ResultFormat: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  pre [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_DCPType"></a>read_cap_DCPType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_DCPType: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_DCPType"></a>read_cap_DCPType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_DCPType: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_HTTP"></a>read_cap_HTTP</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_HTTP: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_HTTP"></a>read_cap_HTTP</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_HTTP: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Get"></a>read_cap_Get</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Get: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Get"></a>read_cap_Get</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Get: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Post"></a>read_cap_Post</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Post: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_Post"></a>read_cap_Post</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Post: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_0_0.read_cap_SRS"></a>read_cap_SRS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_SRS: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td> [...]
 
 </div><!--Content-->
 
@@ -51,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_cap_Service: function(</td><td class=PParameter nowrap>capabilities,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_Service: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html
index 003f413..62c6165 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFSCapabilities/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities/<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Read WFS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities/<wbr>v1_1_0</h1><div class=CBody><p>Read WFS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WFSCapabilities-js.html#OpenLayers.Format.WFSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WFSC [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.OpenLayers.Format.WFSCapabilities.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSCapabilities.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.OpenLayers.Format.WFSCapabilities.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFSCapabilities.<wbr>v1_1_0</h3><div class=CBody><p>Create a new parser for WFS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSCapabilities/v1_1_0.read_cap_DefaultSRS"></a>read_cap_DefaultSRS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_DefaultSRS: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettypri [...]
 
 </div><!--Content-->
 
@@ -23,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([9, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([8, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Read WFS Capabilities.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_cap_DefaultSRS: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></di [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html b/doc/devdocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html
index 4c656ed..baa6040 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFSDescribeFeatureType-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSDescribeFeatureType.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSDescribeFeatureType.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="WFSDescribeFeatureType.js"></a>WFSDescribeFeatureType.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#WFSDescribeFeatureType.js" >WFSDescribeFeatureType.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEnt [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="WFSDescribeFeatureType.js"></a>WFSDescribeFeatureType.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#WFSDescribeFeatureType.js" >WFSDescribeFeatureType.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEnt [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSDescribeFeatureType"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFSDescribeFeatureType</h3><div class=CBody><p>Create a new parser for WFS DescribeFeatureType responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properti [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFSDescribeFeatureType"></a>OpenLayers.<wbr>Format.<wbr>WFSDescribeFeatureType</h3><div class=CBody><p>Create a new parser for WFS DescribeFeatureType responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
 
@@ -27,9 +27,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="readRestriction"></a>readRestriction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>readRestriction: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="readRestriction"></a>readRestriction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readRestriction: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  pre [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><ta [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>readRestriction: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads restriction defined in the child nodes of a restriction element</d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readRestriction: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Reads re [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFST-js.html b/doc/devdocs/files/OpenLayers/Format/WFST-js.html
index c33ba65..44beace 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFST-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFST-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body  [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="WFST.js"></a>WFST.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#WFST.js" >WFST.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td>< [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="WFST.js"></a>WFST.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#WFST.js" >WFST.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST"></a>OpenLayers.<span class=HB> </span>Format.WFST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Format.WFST = function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>U [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST"></a>OpenLayers.<wbr>Format.WFST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Format.WFST = function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the WFST format.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.DEFAULTS"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>DEFAULTS</h3><div class=CBody><p>{Object} Default properties for the WFST format.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Format.WFST = function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Used to create a versioned WFS protocol. </div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for f [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Format.WFST = function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Used to create a versioned WFS protocol. </div></div><div class=CToo [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFST/v1-js.html b/doc/devdocs/files/OpenLayers/Format/WFST/v1-js.html
index 69db2c1..800cf0f 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFST/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFST/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.v1</h1><div class=CBody><p>Superclass for WFST parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMA [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1"></a>OpenLayers.<wbr>Format.<wbr>WFST.v1</h1><div class=CBody><p>Superclass for WFST parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.Properties"></a>Properties</h3></div></div>
 
@@ -33,23 +33,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.OpenLayers.Format.WFST.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v1_0_0-js.html#OpenLayers.Format.WFST.v1_0_0" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Format.WFST.v1_0_0</a> or <a href="v1_1_0-j [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.OpenLayers.Format.WFST.v1"></a>OpenLayers.<wbr>Format.<wbr>WFST.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="v1_0_0-js.html#OpenLayers.Format.WFST.v1_0_0" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Format.WFST.v1_0_0</a> or <a href="v1_1_0-js.html#OpenLayers.Format.WFST.v1_1_0 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.getSrsName"></a>getSrsName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getSrsName: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.getSrsName"></a>getSrsName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getSrsName: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  pretty [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an array of features, write a WFS transacti [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.schemaLocationAttr"></a>schemaLocationAttr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>schemaLocationAttr: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Generate th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.schemaLocationAttr"></a>schemaLocationAttr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>schemaLocationAttr: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.setFilterProperty"></a>setFilterProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setFilterProperty: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the propert [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1.setFilterProperty"></a>setFilterProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFilterProperty: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
 </div><!--Content-->
 
@@ -57,15 +57,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getSrsName: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockqu [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getSrsName: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFST/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/WFST/v1_0_0-js.html
index c8b71c7..f34c656 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFST/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFST/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>A format for creating WFS v1.0.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut=" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_0_0</h1><div class=CBody><p>A format for creating WFS v1.0.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WFST.v1_0_0</a> cons [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -23,7 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.0.0 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} O [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.OpenLayers.Format.WFST.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_0_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.0.0 transactions.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the ins [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.readNode"></a>readNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -37,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>A class for parsing and generating WFS v1.0.0 transactions.</div></div><div class=CToolTip id="tt2"><div class=CClass>Write ogc:Filter version 1.0.0.</div></div><div class=CToolTip id="tt3"><div class=CClass>Superclass for WFST parsers.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>first</td><td class="PAfterParameters  prettyprint  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WFST/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/WFST/v1_1_0-js.html
index fe43bb5..5b52eea 100644
--- a/doc/devdocs/files/OpenLayers/Format/WFST/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WFST/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WFST.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WFST.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>A format for creating WFS v1.1.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut=" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_1_0</h1><div class=CBody><p>A format for creating WFS v1.1.0 transactions.   Create a new instance with the <a href="#OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WFST.v1_1_0</a> cons [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -21,7 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WFST.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.1.0 transactions.</p><p>To read additional information like hit count (numberOfFeatures) from the  FeatureCollection, call the <a href="v1-js.html#OpenLayers.Format.WFST.v1.read" class=LFuncti [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.OpenLayers.Format.WFST.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WFST.<wbr>v1_1_0</h3><div class=CBody><p>A class for parsing and generating WFS v1.1.0 transactions.</p><p>To read additional information like hit count (numberOfFeatures) from the  FeatureCollection, call the <a href="v1-js.html#OpenLayers.Format.WFST.v1.read" class=LFunction id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5' [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.readNode"></a>readNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WFST.v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -35,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([10, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([9, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>A class for parsing and generating WFS v1.1.0 transactions.</div></div><div class=CToolTip id="tt2"><div class=CClass>Write ogc:Filter version 1.1.0.</div></div><div class=CToolTip id="tt3"><div class=CClass>Superclass for WFST parsers.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBe [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>first</td><td class="PAfterParameters  prettyprint  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WKT-js.html b/doc/devdocs/files/OpenLayers/Format/WKT-js.html
index 00c8cf0..b5fdcca 100644
--- a/doc/devdocs/files/OpenLayers/Format/WKT-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WKT-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WKT - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WKT - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WKT"></a>OpenLayers.<span class=HB> </span>Format.WKT</h1><div class=CBody><p>Class for reading and writing Well-Known Text.   Create a new instance with the <a href="#OpenLayers.Format.WKT.OpenLayers.Format.WKT" class=LConstructor id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.WKT</a> constructor.</p><h4 class=CHeading>I [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WKT"></a>OpenLayers.<wbr>Format.WKT</h1><div class=CBody><p>Class for reading and writing Well-Known Text.   Create a new instance with the <a href="#OpenLayers.Format.WKT.OpenLayers.Format.WKT" class=LConstructor id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.WKT</a> constructor.</p><h4 class=CHeading>Inherits from</h4>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.OpenLayers.Format.WKT"></a>OpenLayers.<span class=HB> </span>Format.WKT</h3><div class=CBody><p>Create a new parser for WKT</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance</td></tr></table><h4 class=CHeading>Re [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.OpenLayers.Format.WKT"></a>OpenLayers.<wbr>Format.WKT</h3><div class=CBody><p>Create a new parser for WKT</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance</td></tr></table><h4 class=CHeading>Returns</h4><p>{<a h [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>wkt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Deserialize a WKT string and return a vector feature or an ar [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>wkt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Deserialize a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize a feature or array of features into a WKT s [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Seria [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WKT.extractGeometry"></a>extractGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extractGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
 </div><!--Content-->
 
@@ -29,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>wkt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a WKT string and return a vector feature or an array of vector features. </div></div><div class=CToolTip id="tt2"><div class=CF [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>wkt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Deserialize a WKT string and return a vector feature or an array of vector features. </div> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMC-js.html b/doc/devdocs/files/OpenLayers/Format/WMC-js.html
index 1b863a2..6a4b39e 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMC-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMC-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC"></a>OpenLayers.<span class=HB> </span>Format.WMC</h1><div class=CBody><p>Read and write Web Map Context documents.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC"></a>OpenLayers.<wbr>Format.WMC</h1><div class=CBody><p>Read and write Web Map Context documents.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STit [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.0”.</p></div></div></div>
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.Functions"></a>Functions</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.OpenLayers.Format.WMC"></a>OpenLayers.<wbr>Format.WMC</h3><div class=CBody><p>Create a new parser for Web Map Context documents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.getParser"></a>getParser</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getParser: function(</td><td class=PParameter nowrap>version</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the WMC parser given a version.   [...]
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.layerToContext"></a>layerToContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>layerToContext: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a layer context object [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.layerToContext"></a>layerToContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>layerToContext: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.toContext"></a>toContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>toContext: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a context object free from layer given  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.toContext"></a>toContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>toContext: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
 </div><!--Content-->
 
@@ -31,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getParser: function(</td><td class=PParameter nowrap>version</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the WMC parser given a version. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>layerToContext: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a layer context object given a wms layer object.</div></div><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMC/v1-js.html b/doc/devdocs/files/OpenLayers/Format/WMC/v1-js.html
index 4be8ce3..55c2530 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMC/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMC/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.v1</h1><div class=CBody><p>Superclass for WMC version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')">OpenLayers.Format.XML</a></li></ul><!--STA [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1"></a>OpenLayers.<wbr>Format.<wbr>WMC.v1</h1><div class=CBody><p>Superclass for WMC version 1 parsers.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.Properties_and_Functions"></a>Properties and Functions</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} Schema location for a particular minor version.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.getNamespacePrefix"></a>getNamespacePrefix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNamespacePrefix: function(</td><td class=PParameter nowrap>uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the namespac [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.getNamespacePrefix"></a>getNamespacePrefix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNamespacePrefix: function(</td><td class="PParameter  prettyprint " nowrap>uri</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.defaultPrefix"></a>defaultPrefix</h3></div></div>
 
@@ -31,95 +31,153 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.OpenLayers.Format.WMC.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link48 onMouseOver="ShowTip(event, 'tt47', 'link48')" onMouseOut="HideTip('tt47')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=C [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.OpenLayers.Format.WMC.v1"></a>OpenLayers.<wbr>Format.<wbr>WMC.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link77 onMouseOver="ShowTip(event, 'tt76', 'link77')" onMouseOut="HideTip('tt76')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHeading>Parameters</h4><table border [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return a list o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.runChildNodes"></a>runChildNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>runChildNodes: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.runChildNodes"></a>runChildNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>runChildNodes: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_General"></a>read_wmc_General</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_General: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_General"></a>read_wmc_General</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_General: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_BoundingBox"></a>read_wmc_BoundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_BoundingBox: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_BoundingBox"></a>read_wmc_BoundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_BoundingBox: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_LayerList"></a>read_wmc_LayerList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_LayerList: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_LayerList"></a>read_wmc_LayerList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_LayerList: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>nod [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Layer"></a>read_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Layer: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Layer"></a>read_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Layer: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Extension"></a>read_wmc_Extension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Extension: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Extension"></a>read_wmc_Extension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Extension: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_units"></a>read_ol_units</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_units: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_units"></a>read_ol_units</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_units: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_maxExtent"></a>read_ol_maxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_maxExtent: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_maxExtent"></a>read_ol_maxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_maxExtent: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_transparent"></a>read_ol_transparent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_transparent: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>) [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_transparent"></a>read_ol_transparent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_transparent: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_numZoomLevels"></a>read_ol_numZoomLevels</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_numZoomLevels: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_numZoomLevels"></a>read_ol_numZoomLevels</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_numZoomLevels: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_opacity"></a>read_ol_opacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_opacity: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_opacity"></a>read_ol_opacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_opacity: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_singleTile"></a>read_ol_singleTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_singleTile: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_singleTile"></a>read_ol_singleTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_singleTile: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowra [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_tileSize"></a>read_ol_tileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_tileSize: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_tileSize"></a>read_ol_tileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_tileSize: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_isBaseLayer"></a>read_ol_isBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_isBaseLayer: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>) [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_isBaseLayer"></a>read_ol_isBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_isBaseLayer: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_displayInLayerSwitcher"></a>read_ol_displayInLayerSwitcher</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_ol_displayInLayerSwitcher: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_ol_displayInLayerSwitcher"></a>read_ol_displayInLayerSwitcher</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_ol_displayInLayerSwitcher: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Server"></a>read_wmc_Server</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Server: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Server"></a>read_wmc_Server</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Server: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_FormatList"></a>read_wmc_FormatList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_FormatList: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>) [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_FormatList"></a>read_wmc_FormatList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_FormatList: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Format"></a>read_wmc_Format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Format: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Format"></a>read_wmc_Format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Format: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_StyleList"></a>read_wmc_StyleList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_StyleList: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_StyleList"></a>read_wmc_StyleList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_StyleList: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowra [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Style"></a>read_wmc_Style</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Style: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Style"></a>read_wmc_Style</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Style: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_SLD"></a>read_wmc_SLD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_SLD: function(</td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_SLD"></a>read_wmc_SLD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_SLD: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_sld_StyledLayerDescriptor"></a>read_sld_StyledLayerDescriptor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_sld_StyledLayerDescriptor: function(</td><td class=PParameter nowrap>sld,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_sld_StyledLayerDescriptor"></a>read_sld_StyledLayerDescriptor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_sld_StyledLayerDescriptor: function(</td><td class="PParameter  prettyprint " nowrap>sld,</td></tr><tr><td></td><td class="PPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_OnlineResource"></a>read_wmc_OnlineResource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_OnlineResource: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowra [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_sld_FeatureTypeStyle"></a>read_sld_FeatureTypeStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_sld_FeatureTypeStyle: function(</td><td class="PParameter  prettyprint " nowrap>sld,</td></tr><tr><td></td><td class="PParameter  prettyp [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Name"></a>read_wmc_Name</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Name: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_OnlineResource"></a>read_wmc_OnlineResource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_OnlineResource: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Title"></a>read_wmc_Title</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Title: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Name"></a>read_wmc_Name</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Name: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_MetadataURL"></a>read_wmc_MetadataURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_MetadataURL: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowra [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Title"></a>read_wmc_Title</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Title: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Abstract"></a>read_wmc_Abstract</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_Abstract: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_MetadataURL"></a>read_wmc_MetadataURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_MetadataURL: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_LegendURL"></a>read_wmc_LegendURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_wmc_LegendURL: function(</td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_KeywordList"></a>read_wmc_KeywordList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_KeywordList: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Keyword"></a>read_wmc_Keyword</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Keyword: function(</td><td class="PParameter  prettyprint " nowrap>keywords,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.createElementDefaultNS"></a>createElementDefaultNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createElementDefaultNS: function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>childValue,</td></tr><tr><td></td><td class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Abstract"></a>read_wmc_Abstract</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Abstract: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.setAttributes"></a>setAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setAttributes: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_LogoURL"></a>read_wmc_LogoURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_LogoURL: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_General"></a>write_wmc_General</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_General: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a Genera [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_DescriptionURL"></a>read_wmc_DescriptionURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_DescriptionURL: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettypri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_ol_MapExtension"></a>write_ol_MapExtension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_ol_MapExtension: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactInformation"></a>read_wmc_ContactInformation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactInformation: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_LayerList"></a>write_wmc_LayerList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_LayerList: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactPersonPrimary"></a>read_wmc_ContactPersonPrimary</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactPersonPrimary: function(</td><td class="PParameter  prettyprint " nowrap>contact,</td></tr><tr><td></td><td class="PPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_Layer"></a>write_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_Layer: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a Layer node g [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactPerson"></a>read_wmc_ContactPerson</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactPerson: function(</td><td class="PParameter  prettyprint " nowrap>primaryPerson,</td></tr><tr><td></td><td class="PParameter  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_LayerExtension"></a>write_wmc_LayerExtension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_LayerExtension: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactOrganization"></a>read_wmc_ContactOrganization</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactOrganization: function(</td><td class="PParameter  prettyprint " nowrap>primaryPerson,</td></tr><tr><td></td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.createOLPropertyNode"></a>createOLPropertyNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createOLPropertyNode: function(</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>prop</td><td class=PAfterParameters nowrap>)</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactPosition"></a>read_wmc_ContactPosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactPosition: function(</td><td class="PParameter  prettyprint " nowrap>contact,</td></tr><tr><td></td><td class="PParameter  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_Server"></a>write_wmc_Server</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_Server: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a Server no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactAddress"></a>read_wmc_ContactAddress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactAddress: function(</td><td class="PParameter  prettyprint " nowrap>contact,</td></tr><tr><td></td><td class="PParameter  prettypri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_MetadataURL"></a>write_wmc_MetadataURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_MetadataURL: function(</td><td class=PParameter nowrap>metadataURL</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_AddressType"></a>read_wmc_AddressType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_AddressType: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress,</td></tr><tr><td></td><td class="PParameter  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_FormatList"></a>write_wmc_FormatList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_FormatList: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Address"></a>read_wmc_Address</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Address: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_StyleList"></a>write_wmc_StyleList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_StyleList: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a St [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_City"></a>read_wmc_City</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_City: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_OnlineResource"></a>write_wmc_OnlineResource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_OnlineResource: function(</td><td class=PParameter nowrap>href</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_StateOrProvince"></a>read_wmc_StateOrProvince</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_StateOrProvince: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress,</td></tr><tr><td></td><td class="PParameter  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_PostCode"></a>read_wmc_PostCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_PostCode: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Country"></a>read_wmc_Country</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Country: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>no [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactVoiceTelephone"></a>read_wmc_ContactVoiceTelephone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactVoiceTelephone: function(</td><td class="PParameter  prettyprint " nowrap>contact,</td></tr><tr><td></td><td class=" [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactFacsimileTelephone"></a>read_wmc_ContactFacsimileTelephone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactFacsimileTelephone: function(</td><td class="PParameter  prettyprint " nowrap>contact,</td></tr><tr><td></td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_ContactElectronicMailAddress"></a>read_wmc_ContactElectronicMailAddress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_ContactElectronicMailAddress: function(</td><td class="PParameter  prettyprint " nowrap>contact,</td></tr><tr [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_DataURL"></a>read_wmc_DataURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_DataURL: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_LegendURL"></a>read_wmc_LegendURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_LegendURL: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_DimensionList"></a>read_wmc_DimensionList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_DimensionList: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyp [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.read_wmc_Dimension"></a>read_wmc_Dimension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_Dimension: function(</td><td class="PParameter  prettyprint " nowrap>dimensions,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  p [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.createElementDefaultNS"></a>createElementDefaultNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createElementDefaultNS: function(</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " n [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.setAttributes"></a>setAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PA [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_General"></a>write_wmc_General</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_General: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_KeywordList"></a>write_wmc_KeywordList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_KeywordList: function(</td><td class="PParameter  prettyprint " nowrap>keywords</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_ContactInformation"></a>write_wmc_ContactInformation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_ContactInformation: function(</td><td class="PParameter  prettyprint " nowrap>contact</td><td class="PAfterParameters  prettyp [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_ContactPersonPrimary"></a>write_wmc_ContactPersonPrimary</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_ContactPersonPrimary: function(</td><td class="PParameter  prettyprint " nowrap>personPrimary</td><td class="PAfterParamet [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_ContactAddress"></a>write_wmc_ContactAddress</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_ContactAddress: function(</td><td class="PParameter  prettyprint " nowrap>contactAddress</td><td class="PAfterParameters  prettyprint  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_ol_MapExtension"></a>write_ol_MapExtension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_ol_MapExtension: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_LayerList"></a>write_wmc_LayerList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_LayerList: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_Layer"></a>write_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_Layer: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_LayerExtension"></a>write_wmc_LayerExtension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_LayerExtension: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.createOLPropertyNode"></a>createOLPropertyNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createOLPropertyNode: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>p [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_Server"></a>write_wmc_Server</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_Server: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_URLType"></a>write_wmc_URLType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_URLType: function(</td><td class="PParameter  prettyprint " nowrap>elName,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>url,</t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_DimensionList"></a>write_wmc_DimensionList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_DimensionList: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_FormatList"></a>write_wmc_FormatList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_FormatList: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_StyleList"></a>write_wmc_StyleList</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_StyleList: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tab [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.write_wmc_OnlineResource"></a>write_wmc_OnlineResource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_OnlineResource: function(</td><td class="PParameter  prettyprint " nowrap>href</td><td class="PAfterParameters  prettyprint "nowrap>)< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1.getOnlineResource_href"></a>getOnlineResource_href</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOnlineResource_href: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
 
 </div><!--Content-->
 
@@ -127,15 +185,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNamespacePrefix: function(</td><td class=PParameter nowrap>uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get the namespace prefix for a given uri from the namespaces object.</div></div><div class=CToolTip id="tt2"><div class=CProp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNamespacePrefix: function(</td><td class="PParameter  prettyprint " nowrap>uri</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Get the namespace prefix for a given uri from the namespaces object.</div></d [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMC/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/WMC/v1_0_0-js.html
index 9e80d3b..e9a7457 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMC/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMC/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read and write WMC version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMC.v1" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.WM [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_0_0</h1><div class=CBody><p>Read and write WMC version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMC.v1" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.WMC.v1</a></li></ul><!--START_ND_SUMMARY--><div class=Su [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,15 +19,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/context" class=LURL target=_top>http://www.opengis.net/context</a> <a href="http://schemas.opengis.net/context/1.0.0/context.xsd" class=LURL target=_top>http://schemas.opengis.net<span class=HB>- </span>/context<span class=HB>- </span>/1.0.0<span class=HB>- </span>/context.xsd</a></p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/context" class=LURL target=_top>http://www.opengis.net/context</a> <a href="http://schemas.opengis.net/context/1.0.0/context.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/context<wbr>/1.0.0<wbr>/context.xsd</a></p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.WMC</a> cons [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.OpenLayers.Format.WMC.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_0_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.write_wmc_Layer"></a>write_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_Layer: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a Layer no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.read_wmc_SRS"></a>read_wmc_SRS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_SRS: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_0_0.write_wmc_Layer"></a>write_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_Layer: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
 </div><!--Content-->
 
@@ -35,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_Layer: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a Layer node given a layer context object. </div></div><div class=CToolTip id="tt2"><div class=CClass>Superclass for  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_SRS: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></ [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMC/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/WMC/v1_1_0-js.html
index 481c859..ef138ff 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMC/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMC/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMC.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMC.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Read and write WMC version 1.1.0.</p><h4 class=CHeading>Differences between 1.1.0 and 1.0.0</h4><ul><li>1.1.0 Layers have optional sld:MinScaleDenominator and sld:MaxScaleDenominator</li></ul><h4 class=CHeading>Inherits from</h4><ul><li><a hre [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_1_0</h1><div class=CBody><p>Read and write WMC version 1.1.0.</p><h4 class=CHeading>Differences between 1.1.0 and 1.0.0</h4><ul><li>1.1.0 Layers have optional sld:MinScaleDenominator and sld:MaxScaleDenominator</li></ul><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMC.v1" class=LClass i [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.Constants"></a>Constants</h3></div></div>
 
@@ -19,19 +19,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/context" class=LURL target=_top>http://www.opengis.net/context</a> <a href="http://schemas.opengis.net/context/1.1.0/context.xsd" class=LURL target=_top>http://schemas.opengis.net<span class=HB>- </span>/context<span class=HB>- </span>/1.1.0<span class=HB>- </span>/context.xsd</a></p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/context" class=LURL target=_top>http://www.opengis.net/context</a> <a href="http://schemas.opengis.net/context/1.1.0/context.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/context<wbr>/1.1.0<wbr>/context.xsd</a></p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMC.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Format.WMC</a> cons [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.OpenLayers.Format.WMC.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMC.<wbr>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../WMC-js.html#OpenLayers.Format.WMC" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Format.WMC</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.read_sld_MinScaleDenominator"></a>read_sld_MinScaleDenominator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_sld_MinScaleDenominator: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.read_sld_MinScaleDenominator"></a>read_sld_MinScaleDenominator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_sld_MinScaleDenominator: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.read_sld_MaxScaleDenominator"></a>read_sld_MaxScaleDenominator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_sld_MaxScaleDenominator: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.read_sld_MaxScaleDenominator"></a>read_sld_MaxScaleDenominator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_sld_MaxScaleDenominator: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.write_wmc_Layer"></a>write_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write_wmc_Layer: function(</td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a Layer no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.read_wmc_SRS"></a>read_wmc_SRS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_wmc_SRS: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMC.v1_1_0.write_wmc_Layer"></a>write_wmc_Layer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write_wmc_Layer: function(</td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
 </div><!--Content-->
 
@@ -39,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([11, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([10, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_sld_MinScaleDenominator: function(</td><td class=PParameter nowrap>layerContext,</td></tr><tr><td></td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read a sld:MinScaleDenominator node.</div></div><d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_sld_MinScaleDenominator: function(</td><td class="PParameter  prettyprint " nowrap>layerContext,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities-js.html
index 1daadc4..114b58e 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities</h1><div class=CBody><p>Read WMS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities</h1><div class=CBody><p>Read WMS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.1”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.parser"></a>parser</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A cached versioned format used for reading.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.profile"></a>profile</h3><div class=CBody><p>{String} If provided, use a custom profile.</p><h4 class=CHeading>Currently supported profiles</h4><ul><li>WMSC - parses vendor specific capabilities for WMS-C.</li></ul></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities</h3><div class=CBody><p>Create a new parser for WMS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose prope [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.OpenLayers.Format.WMSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities</h3><div class=CBody><p>Create a new parser for WMS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and return [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return a list of layers.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Array} List of named layers [...]
 
 </div><!--Content-->
 
@@ -35,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities d [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html
index c380bb3..0bbd6ae 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="ND [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.  Creates the common parts for both WMS 1.1.X and WMS 1.3.X.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link4 onMouseOver="ShowTip [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.v1</h1><div class=CBody><p>Abstract class not to be instantiated directly.  Creates the common parts for both WMS 1.1.X and WMS 1.3.X.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.Properties"></a>Properties</h3></div></div>
 
@@ -21,15 +21,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.v1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.OpenLayers.Format.WMSCapabilities.v1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.v1</h3><div class=CBody><p>Create an instance of one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on thi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.postProcessLayers"></a>postProcessLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>postProcessLayers: function(</td><td class=PParameter nowrap>capabilities</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.postProcessLayers"></a>postProcessLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>postProcessLayers: function(</td><td class="PParameter  prettyprint " nowrap>capabilities</td><td class="PAfterParameters  prettyprint "nowrap>)</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.processLayer"></a>processLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>processLayer: function(</td><td class=PParameter nowrap>capability,</td></tr><tr><td></td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowra [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.processLayer"></a>processLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>processLayer: function(</td><td class="PParameter  prettyprint " nowrap>capability,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>layer, [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1.Properties"></a>Properties</h3></div></div>
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquot [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return a list of layers.</div></div><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html
index ddc8710..991137b 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad=" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.v1_1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMSCapabilities.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.v1_1</h1><div class=CBody><p>Abstract class not to be instantiated directly.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.WMSCapabilities.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMSCapabilities [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities.v1_1.Properties"></a>Properties</h3></div></div>
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html
index c433105..0c71a61 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_1_0</h1><div class=CBody><p>Read WMS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_1_0</h1><div class=CBody><p>Read WMS Capabilities version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMSCapabiliti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.OpenLayers.Format.WMSCapabilities.v1_1_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.OpenLayers.Format.WMSCapabilities.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.<wbr>v1_1_0</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -31,10 +31,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html
index 8b03f89..c2b592c 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_1_1</h1><div class=CBody><p>Read WMS Capabilities version 1.1.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_1_1</h1><div class=CBody><p>Read WMS Capabilities version 1.1.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1_1-js.html#OpenLayers.Format.WMSCapabilities.v1_1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.WMSCapabiliti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.OpenLayers.Format.WMSCapabilities.v1_1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities.<span class=HB> </span>v1_1_1</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.1.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.OpenLayers.Format.WMSCapabilities.v1_1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.<wbr>v1_1_1</h3><div class=CBody><p>Create a new parser for WMS capabilities version 1.1.1.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1.Properties"></a>Properties</h3></div></div>
 
@@ -31,10 +31,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC-js.html
new file mode 100644
index 0000000..7f6f2d5
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC-js.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" o [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_1_1_WMSC</h1><div class=CBody><p>Read WMS-C Capabilities version 1.1.1.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="#OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.OpenLayers.Format.WMSCapabilities.v1_1_1" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMou [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.version"></a>version</h3><div class=CBody><p>{String} The specific parser version.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.profile"></a>profile</h3><div class=CBody><p>{String} The specific profile</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.OpenLayers.Format.WMSCapabilities.v1_1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities.<wbr>v1_1_1</h3><div class=CBody><p>Create a new parser for WMS-C capabilities version 1.1.1.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object  [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new parser for WMS-C capabilities version 1.1.1.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html
index 15bb780..d009298 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_3 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad=" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_3</h1><div class=CBody><p>Abstract base class for WMS Capabilities version 1.3.X.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL ta [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_3</h1><div class=CBody><p>Abstract base class for WMS Capabilities version 1.3.X.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/sld<wbr>/1.1 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3.Properties"></a>Properties</h3></div></div>
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html
index 5ef75b4..bdb4a5a 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSCapabilities/v1_3_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSCapabilities/v1_3_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSCapabilities/v1_3_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSCapabilities/<span class=HB> </span>v1_3_0</h1><div class=CBody><p>Read WMS Capabilities version 1.3.0.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL target=_top>http: [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3_0"></a>OpenLayers.<wbr>Format.<wbr>WMSCapabilities/<wbr>v1_3_0</h1><div class=CBody><p>Read WMS Capabilities version 1.3.0.  SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, see: <a href="http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/sld<wbr>/1.1.0<wbr>/sld_cap [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSCapabilities/v1_3_0.Properties"></a>Properties</h3></div></div>
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([12, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([11, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer-js.html b/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer-js.html
index 34e146f..da45f12 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSDescribeLayer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSDescribeLayer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer</h1><div class=CBody><p>Read SLD WMS DescribeLayer response DescribeLayer is meant to couple WMS to WFS and WCS</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer</h1><div class=CBody><p>Read SLD WMS DescribeLayer response DescribeLayer is meant to couple WMS to WFS and WCS</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.1”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.getVersion"></a>getVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional obje [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read DescribeLayer data from a string, and retu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.read"></a>read</h3><div class=CBody><p>Read DescribeLayer data from a string, and return the response.  The OGC currently defines 2 formats which are allowed for output, so we need to parse these 2 types</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElem [...]
 
 </div><!--Content-->
 
@@ -33,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([13, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([12, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read DescribeLayer data from a string, and return the response. </div></div><div class=CToolTip id="tt2"><div class=CClass>Read and write  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns t [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html b/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html
index f83cf4a..41a0564 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSDescribeLayer/v1_1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSDescribeLayer.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSDescribeLayer.v1_1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer.v1_1</h1><div class=CBody><p>Read SLD WMS DescribeLayer response for WMS 1.1.X WMS 1.1.X is tightly coupled to SLD 1.0.0</p><h4 class=CHeading>Example DescribeLayer request</h4><p><a href="http://demo.opengeo.org/geoserver/wms?request=DescribeLayer&version=1.1.1&la [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer.v1_1</h1><div class=CBody><p>Read SLD WMS DescribeLayer response for WMS 1.1.X WMS 1.1.X is tightly coupled to SLD 1.0.0</p><h4 class=CHeading>Example DescribeLayer request</h4><p><a href="http://demo.opengeo.org/geoserver/wms?request=DescribeLayer&version=1.1.1&layers=topp:states" class=LURL target= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.OpenLayers.Format.WMSDescribeLayer"></a>OpenLayers.<wbr>Format.<wbr>WMSDescribeLayer</h3><div class=CBody><p>Create a new parser for WMS DescribeLayer responses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read DescribeLayer data from a string, and [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSDescribeLayer.v1_1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([13, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([12, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read DescribeLayer data from a string, and return the response. </div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read DescribeLayer data from a string, and return the response. </div></div><div class=CTo [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html b/doc/devdocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html
index 9a1cdf7..f3250f9 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMSGetFeatureInfo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMSGetFeatureInfo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSGetFeatureInfo</h1><div class=CBody><p>Class to read GetFeatureInfo responses from Web Mapping Services</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')"> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<wbr>Format.<wbr>WMSGetFeatureInfo</h1><div class=CBody><p>Class to read GetFeatureInfo responses from Web Mapping Services</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Format.XML</a></li></ul>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.Properties"></a>Properties</h3></div></div>
 
@@ -25,21 +25,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMSGetFeatureInfo</h3><div class=CBody><p>Create a new parser for WMS GetFeatureInfo responses</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional o [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.OpenLayers.Format.WMSGetFeatureInfo"></a>OpenLayers.<wbr>Format.<wbr>WMSGetFeatureInfo</h3><div class=CBody><p>Create a new parser for WMS GetFeatureInfo responses</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set o [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read WMS GetFeatureInfo data from a string, an [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read_msGMLOutput"></a>read_msGMLOutput</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_msGMLOutput: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse msGM [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read_msGMLOutput"></a>read_msGMLOutput</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_msGMLOutput: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read_FeatureInfoResponse"></a>read_FeatureInfoResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read_FeatureInfoResponse: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.read_FeatureInfoResponse"></a>read_FeatureInfoResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read_FeatureInfoResponse: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.getSiblingNodesByTagCriteria"></a>getSiblingNodesByTagCriteria</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getSiblingNodesByTagCriteria: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>criteria</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.getSiblingNodesByTagCriteria"></a>getSiblingNodesByTagCriteria</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getSiblingNodesByTagCriteria: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseAttributes: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.parseAttributes"></a>parseAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.parseGeometry"></a>parseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseGeometry: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the geometry  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMSGetFeatureInfo.parseGeometry"></a>parseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseGeometry: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Read/Wite GML. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read WMS GetFeatureInfo data from a string, and return an array  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Read/Wite GML. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read WMS GetFeat [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities-js.html b/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities-js.html
index 877bb2a..8872b45 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMTSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMTSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities</h1><div class=CBody><p>Read WMTS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.XML</a></li></ul><!--STAR [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities</h1><div class=CBody><p>Read WMTS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.parser"></a>parser</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} A cached versioned format used for reading.</p></div></div></div>
-
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.yx"></a>yx</h3><div class=CBody><p>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order.   Member names are CRS URNs and values are boolean.   By default, the following CRS URN are assumed to correspond to a CRS with y,x axis order:</p><ul><li>urn:ogc:def:crs:EPSG::4326</li></ul></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities</h3><div class=CBody><p>Create a new parser for WMTS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.OpenLayers.Format.WMTSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities</h3><div class=CBody><p>Create a new parser for WMTS capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instan [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, and retur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return information about the service (offering and observedProperty mostly).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.createLayer"></a>createLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createLayer: function(</td><td class=PParameter nowrap>capabilities,</td></tr><tr><td></td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.createLayer"></a>createLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createLayer: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>config</t [...]
 
 </div><!--Content-->
 
@@ -39,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities d [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createLayer: function(</td><td class="PParameter  prettyprint " nowrap>capabilities,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html
index 03e2548..4c9220a 100644
--- a/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/WMTSCapabilities/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.WMTSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WMTSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoa [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>Read WMTS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMTSCapabilities-js.html#OpenLayers.Format.WMTSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', ' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities.<wbr>v1_0_0</h1><div class=CBody><p>Read WMTS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMTSCapabilities-js.html#OpenLayers.Format.WMTSCapabilities" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -25,11 +25,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>WMTSCapabilities.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>Create a new parser for WMTS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.OpenLayers.Format.WMTSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WMTSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for WMTS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object who [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read capabilities data from a string, an [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WMTSCapabilities.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the WMTS.</div></div><div class=CToolTip id="tt2"><div class=CClass>Read WMTS  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the WMTS.</div></div><div clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/WPSCapabilities-js.html b/doc/devdocs/files/OpenLayers/Format/WPSCapabilities-js.html
new file mode 100644
index 0000000..e020d5e
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/WPSCapabilities-js.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSCapabilities - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities</h1><div class=CBody><p>Read WPS Capabilities.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML/VersionedOGC-js.html#OpenLayers.Format.XML.VersionedOGC" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XML.VersionedOGC</a></li></ul><!--STAR [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.0.0”.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.OpenLayers.Format.WPSCapabilities"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities</h3><div class=CBody><p>Create a new parser for WPS Capabilities.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.read"></a>read</h3><div class=CBody><p>Read capabilities data from a string, and return information about the service.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String} or {DOMElement} data to read/parse.</td></tr></table><h4 class=CHeading>Returns</h4><p>{Object} Info a [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/WPSCapabilities/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Format/WPSCapabilities/v1_0_0-js.html
new file mode 100644
index 0000000..4ec4e84
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/WPSCapabilities/v1_0_0-js.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSCapabilities.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities.<wbr>v1_0_0</h1><div class=CBody><p>Read WPS Capabilities version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_N [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.OpenLayers.Format.WPSCapabilities.v1_0_0"></a>OpenLayers.<wbr>Format.<wbr>WPSCapabilities.<wbr>v1_0_0</h3><div class=CBody><p>Create a new parser for WPS capabilities version 1.0.0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose p [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSCapabilities.v1_0_0.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Read capabilities data from a string, and return info about the WPS.</div></div><div class [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/WPSDescribeProcess-js.html b/doc/devdocs/files/OpenLayers/Format/WPSDescribeProcess-js.html
new file mode 100644
index 0000000..66b4e97
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/WPSDescribeProcess-js.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSDescribeProcess - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess"></a>OpenLayers.<wbr>Format.<wbr>WPSDescribeProcess</h1><div class=CBody><p>Read WPS DescribeProcess responses.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div  [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.0.0</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} Schema location</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.defaultPrefix"></a>defaultPrefix</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.OpenLayers.Format.WPSDescribeProcess"></a>OpenLayers.<wbr>Format.<wbr>WPSDescribeProcess</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSDescribeProcess.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parse a WPS DescribeProcess and return an object with its information.</div></div><div cla [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/WPSExecute-js.html b/doc/devdocs/files/OpenLayers/Format/WPSExecute-js.html
new file mode 100644
index 0000000..90d88dd
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/WPSExecute-js.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.WPSExecute version 1.0.0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0"></a>OpenLayers.<wbr>Format.<wbr>WPSExecute version 1.0.0</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="XML-js.html#OpenLayers.Format.XML" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XML</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitl [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.0.0</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} Schema location</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.OpenLayers.Format.WPSExecute"></a>OpenLayers.<wbr>Format.<wbr>WPSExecute</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.WPSExecute_version_1.0.0.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Read and write XML. </div>< [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/XLS-js.html b/doc/devdocs/files/OpenLayers/Format/XLS-js.html
new file mode 100644
index 0000000..53ca5ab
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/XLS-js.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XLS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XLS"></a>OpenLayers.<wbr>Format.XLS</h1><div class=CBody><p>Read/Wite XLS (OpenLS).  Create a new instance with the <a href="#OpenLayers.Format.XLS.OpenLayers.Format.XLS" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XLS</a> constructor.  Currently only implemented for Location Utility Services, m [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.   Default is “1.1.0”.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.stringifyOutput"></a>stringifyOutput</h3><div class=CBody><p>{Boolean} If true, write will return a string otherwise a DOMElement.  Default is true.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.OpenLayers.Format.XLS"></a>OpenLayers.<wbr>Format.XLS</h3><div class=CBody><p>Create a new parser for XLS.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set on this instance.</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.write"></a>write</h3><div class=CBody><p>Write out an XLS request.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>request</td><td class=CDLDescription>{Object} An object representing the LUS request.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional configuration object.</td></tr></tab [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.read"></a>read</h3><div class=CBody><p>Read an XLS doc and return an object representing the result.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>{String | DOMElement} Data to read.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Options for the reader.</td [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new parser for XLS.</div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for versioned formats, i.e. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/XLS/v1-js.html b/doc/devdocs/files/OpenLayers/Format/XLS/v1-js.html
new file mode 100644
index 0000000..c8d9bda
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/XLS/v1-js.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XLS.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XLS.v1"></a>OpenLayers.<wbr>Format.<wbr>XLS.v1</h1><div class=CBody><p>Superclass for XLS version 1 parsers.  Only supports GeocodeRequest for now.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Format.XML</a></li></ul><!- [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.regExes"></a>regExes</h3><div class=CBody><p>Compiled regular expressions for manipulating strings.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.xy"></a>xy</h3><div class=CBody><p>{Boolean} Order of the GML coordinate true:(x,y) or false:(y,x) Changing is not recommended, a new Format should be instantiated.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.defaultPrefix"></a>defaultPrefix</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} Schema location for a particular minor version.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.OpenLayers.Format.XLS.v1"></a>OpenLayers.<wbr>Format.<wbr>XLS.v1</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../XLS-js.html#OpenLayers.Format.XLS" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Format.XLS</a> constructor instead.</p><h4 class=CHeading>Parameters</h4><table border=0 c [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyp [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1.writers"></a>writers</h3><div class=CBody><p>As a compliment to the readers property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><di [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/XLS/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Format/XLS/v1_1_0-js.html
new file mode 100644
index 0000000..e8e0e6e
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/XLS/v1_1_0-js.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XLS.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>XLS.<wbr>v1_1_0</h1><div class=CBody><p>Read / write XLS version 1.1.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="v1-js.html#OpenLayers.Format.XLS.v1" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Format.XLS.v1</a></li></ul><!--START_ND_SUMMARY--><div class=Summ [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.VERSION"></a>VERSION</h3><div class=CBody><p>{String} 1.1</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.schemaLocation"></a>schemaLocation</h3><div class=CBody><p>{String} <a href="http://www.opengis.net/xls" class=LURL target=_top>http://www.opengis.net/xls</a> <a href="http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd" class=LURL target=_top>http://schemas.opengis.net<wbr>/ols<wbr>/1.1.0<wbr>/LocationUtilityService.xsd</a></p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XLS.v1_1_0.OpenLayers.Format.XLS.v1_1_0"></a>OpenLayers.<wbr>Format.<wbr>XLS.<wbr>v1_1_0</h3><div class=CBody><p>Instances of this class are not created directly.   Use the <a href="../XLS-js.html#OpenLayers.Format.XLS" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Format.XLS</a> constructor instead.</p><h4 class=CHeading>Parameters</h4> [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Superclass for XLS version 1 parsers. </div></div><div class=CToolTip id="tt2"><div class=CClass>Read/Wite XLS (OpenLS). </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Format/XML-js.html b/doc/devdocs/files/OpenLayers/Format/XML-js.html
index 6b6c629..646d724 100644
--- a/doc/devdocs/files/OpenLayers/Format/XML-js.html
+++ b/doc/devdocs/files/OpenLayers/Format/XML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Format.XML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,75 +11,81 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XML"></a>OpenLayers.<span class=HB> </span>Format.XML</h1><div class=CBody><p>Read and write XML.   For cross-browser XML generation, use methods on an instance of the XML format class instead of on <code>document<end>.  The DOM creation and traversing methods exposed here all mimic the W3C XML DOM methods.   Create a new parser with the <a href="#Open [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XML"></a>OpenLayers.<wbr>Format.XML</h1><div class=CBody><p>Read and write XML.   For cross-browser XML generation, use methods on an instance of the XML format class instead of on <code>document<end>.  The DOM creation and traversing methods exposed here all mimic the W3C XML DOM methods.   Create a new parser with the <a href="#OpenLayers.Format.XML. [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.   Properties of this object should not be set individually.   Read-only.   All XML subclasses should have their own namespaces object.   Use <a href="#OpenLayers.Format.XML.setNamespace" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt3', 'link27')" onMouseOut="Hide [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.namespaces"></a>namespaces</h3><div class=CBody><p>{Object} Mapping of namespace aliases to namespace URIs.   Properties of this object should not be set individually.   Read-only.   All XML subclasses should have their own namespaces object.   Use <a href="#OpenLayers.Format.XML.setNamespace" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt3', 'link28')" onMouseOut="Hide [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.namespaceAlias"></a>namespaceAlias</h3><div class=CBody><p>{Object} Mapping of namespace URI to namespace alias.   This object is read-only.   Use <a href="#OpenLayers.Format.XML.setNamespace" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt3', 'link28')" onMouseOut="HideTip('tt3')">setNamespace</a> to add or set a namespace alias.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.namespaceAlias"></a>namespaceAlias</h3><div class=CBody><p>{Object} Mapping of namespace URI to namespace alias.   This object is read-only.   Use <a href="#OpenLayers.Format.XML.setNamespace" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt3', 'link29')" onMouseOut="HideTip('tt3')">setNamespace</a> to add or set a namespace alias.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.defaultPrefix"></a>defaultPrefix</h3><div class=CBody><p>{String} The default namespace alias for creating element nodes.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.readers"></a>readers</h3><div class=CBody><p>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name.   The function will be applied in the scope of this parser with two arguments: the node being read and a context object passed from the parent.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.writers"></a>writers</h3><div class=CBody><p>As a compliment to the <a href="#OpenLayers.Format.XML.readers" class=LProperty id=link29 onMouseOver="ShowTip(event, 'tt1', 'link29')" onMouseOut="HideTip('tt1')">readers</a> property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.writers"></a>writers</h3><div class=CBody><p>As a compliment to the <a href="#OpenLayers.Format.XML.readers" class=LProperty id=link30 onMouseOver="ShowTip(event, 'tt1', 'link30')" onMouseOut="HideTip('tt1')">readers</a> property, this structure contains public writing functions grouped by namespace alias and named like the node names they produce.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.xmldom"></a>xmldom</h3><div class=CBody><p>{XMLDom} If this browser uses ActiveX, this will be set to a XMLDOM object.   It is not intended to be a browser sniffing property.  Instead, the xmldom property is used instead of <code>document<end> where namespaced node creation methods are not supported.  In all other browsers, this remains null.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML"></a>OpenLayers.<span class=HB> </span>Format.XML</h3><div class=CBody><p>Construct an XML parser.   The parser is used to read and write XML.  Reading XML from a string returns a DOM element.   Writing XML from a DOM element returns a string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=C [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML"></a>OpenLayers.<wbr>Format.XML</h3><div class=CBody><p>Construct an XML parser.   The parser is used to read and write XML.  Reading XML from a string returns a DOM element.   Writing XML from a DOM element returns a string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setNamespace"></a>setNamespace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setNamespace: function(</td><td class=PParameter nowrap>alias,</td></tr><tr><td></td><td class=PParameter nowrap>uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setNamespace"></a>setNamespace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setNamespace: function(</td><td class="PParameter  prettyprint " nowrap>alias,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri</td><td class="PAfterP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>write: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize a DOM node into a XML string.</p><h4 class=CHea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Serialize [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createElementNS"></a>createElementNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createElementNS: function(</td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createElementNS"></a>createElementNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createElementNS: function(</td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createTextNode"></a>createTextNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createTextNode: function(</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a text node.   Thi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createTextNode"></a>createTextNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createTextNode: function(</td><td class="PParameter  prettyprint " nowrap>text</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getElementsByTagNameNS"></a>getElementsByTagNameNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getElementsByTagNameNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParamete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getElementsByTagNameNS"></a>getElementsByTagNameNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getElementsByTagNameNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNodeNS"></a>getAttributeNodeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getAttributeNodeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>nam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNodeNS"></a>getAttributeNodeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getAttributeNodeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNS"></a>getAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getAttributeNS"></a>getAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildValue"></a>getChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getChildValue: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>def</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildValue"></a>getChildValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getChildValue: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>def</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.concatChildValues"></a>concatChildValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>concatChildValues: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>def</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.concatChildValues"></a>concatChildValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>concatChildValues: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>def</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.isSimpleContent"></a>isSimpleContent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isSimpleContent: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test if the given node has  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.isSimpleContent"></a>isSimpleContent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isSimpleContent: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.contentType"></a>contentType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>contentType: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine the content type for a given  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.contentType"></a>contentType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>contentType: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.hasAttributeNS"></a>hasAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>hasAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name</td><td cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.hasAttributeNS"></a>hasAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>hasAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setAttributeNS"></a>setAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setAttributeNS: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>uri,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setAttributeNS"></a>setAttributeNS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setAttributeNS: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>uri,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createElementNSPlus"></a>createElementNSPlus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createElementNSPlus: function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.createElementNSPlus"></a>createElementNSPlus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createElementNSPlus: function(</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>option [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setAttributes"></a>setAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setAttributes: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.setAttributes"></a>setAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setAttributes: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.readNode"></a>readNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>readNode: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.readNode"></a>readNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.readChildNodes"></a>readChildNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>readChildNodes: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.readChildNodes"></a>readChildNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>readChildNodes: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.writeNode"></a>writeNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>writeNode: function(</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PParameter nowrap>parent</td><td class=PAfterPar [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.writeNode"></a>writeNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>writeNode: function(</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildEl"></a>getChildEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getChildEl: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>uri</td><td class=PAfterPa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getChildEl"></a>getChildEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getChildEl: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getNextEl"></a>getNextEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNextEl: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>uri</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getNextEl"></a>getNextEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNextEl: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getThisOrNextEl"></a>getThisOrNextEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getThisOrNextEl: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>uri</td><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getThisOrNextEl"></a>getThisOrNextEl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getThisOrNextEl: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.lookupNamespaceURI"></a>lookupNamespaceURI</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>lookupNamespaceURI: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>prefix</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.lookupNamespaceURI"></a>lookupNamespaceURI</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>lookupNamespaceURI: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>prefix</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML.lookupNamespaceURI"></a>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>XML.<span class=HB> </span>lookupNamespaceURI</h3><div class=CBody><p>Takes a prefix and returns the namespace URI associated with it on the given node if found (and null if not).  Supplying null for the prefix will return the default namespace.</p><p>For browsers that support it, this c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.getXMLDoc"></a>getXMLDoc</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getXMLDoc: function()</td></tr></table></blockquote><p>Get an XML document for nodes that are not supported in HTML (e.g. createCDATASection).  On IE, this will either return an existing or create a new <a href="#OpenLayers.Format.XML.xmldom" class=L [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML.lookupNamespaceURI"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>lookupNamespaceURI</h3><div class=CBody><p>Takes a prefix and returns the namespace URI associated with it on the given node if found (and null if not).  Supplying null for the prefix will return the default namespace.</p><p>For browsers that support it, this calls the native lookupNamesapceURI function.   In [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.OpenLayers.Format.XML.document"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>document</h3><div class=CBody><p>{XMLDocument} XML document to reuse for creating non-HTML compliant nodes, like document.createCDATASection.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -87,15 +93,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([15, 16, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CProperty>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0  [...]
+<div class=CToolTip id="tt1"><div class=CProperty>Contains public functions, grouped by namespace prefix, that will be applied when a namespaced node is found matching the function name. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table b [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Format/XML/VersionedOGC-js.html b/doc/devdocs/files/OpenLayers/Format/XML/VersionedOGC-js.html
new file mode 100644
index 0000000..7767a8a
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Format/XML/VersionedOGC-js.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Format.XML.VersionedOGC - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>VersionedOGC</h1><div class=CBody><p>Base class for versioned formats, i.e. a format which supports multiple versions.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../XML-js.html#OpenLayers.Format.XML" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Fo [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.defaultVersion"></a>defaultVersion</h3><div class=CBody><p>{String} Version number to assume if none found.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.version"></a>version</h3><div class=CBody><p>{String} Specify a version string if one is known.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.profile"></a>profile</h3><div class=CBody><p>{String} If provided, use a custom profile.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.errorProperty"></a>errorProperty</h3><div class=CBody><p>{String} Which property of the returned object to check for in order to determine whether or not parsing has failed.  In the case that the errorProperty is undefined on the returned object, the document will be run through an OGCExceptionReport parser.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.name"></a>name</h3><div class=CBody><p>{String} The name of this parser, this is the part of the CLASS_NAME except for “OpenLayers.Format.”</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.stringifyOutput"></a>stringifyOutput</h3><div class=CBody><p>{Boolean} If true, write will return a string otherwise a DOMElement.  Default is false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.parser"></a>parser</h3><div class=CBody><p>{Object} Instance of the versioned parser.   Cached for multiple read and write calls of the same version.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.OpenLayers.Format.XML.VersionedOGC"></a>OpenLayers.<wbr>Format.<wbr>XML.<wbr>VersionedOGC.</h3><div class=CBody><p>Constructor.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the object.</td></tr></table></div></d [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.getVersion"></a>getVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.getParser"></a>getParser</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getParser: function(</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>write: function(</td><td class="PParameter  prettyprint " nowrap>obj,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParamet [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Format.XML.VersionedOGC.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameter [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([14, 15, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVersion: function(</td><td class="PParameter  prettyprint " nowrap>root,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns t [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Geometry-js.html b/doc/devdocs/files/OpenLayers/Geometry-js.html
index f00dba7..5623705 100644
--- a/doc/devdocs/files/OpenLayers/Geometry-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry"></a>OpenLayers.<span class=HB> </span>Geometry</h1><div class=CBody><p>A Geometry is a description of a geographic object.   Create an instance of this class with the <a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry</a> constructor.   This is  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry"></a>OpenLayers.<wbr>Geometry</h1><div class=CBody><p>A Geometry is a description of a geographic object.   Create an instance of this class with the <a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry</a> constructor.   This is a base class, typi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Properties"></a>Properties</h3></div></div>
 
@@ -23,41 +23,41 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry"></a>OpenLayers.<span class=HB> </span>Geometry</h3><div class=CBody><p>Creates a geometry object.</p></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry"></a>OpenLayers.<wbr>Geometry</h3><div class=CBody><p>Creates a geometry object.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Create a clone of this geometry.   Does not set any non-standard properties of the cloned geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor id=link22 onMouseOver=" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Create a clone of this geometry.   Does not set any non-standard properties of the cloned geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.OpenLayers.Geometry" class=LConstructor i [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.clearBounds"></a>clearBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearBounds: function()</td></tr></table></blockquote><p>Nullify this components bounds and that of its parent as well.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.clearBounds"></a>clearBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearBounds: function()</td></tr></table></blockquote><p>Nullify this components bounds and that of its parent as well.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.extendBounds"></a>extendBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>extendBounds: function(</td><td class=PParameter nowrap>newBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend the existing bounds to inc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.extendBounds"></a>extendBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extendBounds: function(</td><td class="PParameter  prettyprint " nowrap>newBounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getBounds"></a>getBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getBounds: function()</td></tr></table></blockquote><p>Get the bounds for this Geometry.  If bounds is not set, it is calculated again, this makes queries faster.</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getBounds"></a>getBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getBounds: function()</td></tr></table></blockquote><p>Get the bounds for this Geometry.  If bounds is not set, it is calculated again, this makes queries faster.</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds for the geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds for the geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points in this geom [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.atPoint"></a>atPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>atPoint: function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>toleranceLon,</td></tr><tr><td></td><td class=PParameter nowrap>toleranceLat</td><td class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.atPoint"></a>atPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>atPoint: function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>toleranceLon,</td></tr><tr><td></td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><p>Calculate the length of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{Float} The length of the collection by summing its parts</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><p>Calculate the length of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{Float} The length of the collection by summing its parts</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><p>Calculate the area of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{Float} The area of the collection by summing its parts</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><p>Calculate the area of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{Float} The area of the collection by summing its parts</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCentroid: function()</td></tr></table></blockquote><p>Calculate the centroid of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link27 onMouseOver=" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCentroid: function()</td></tr></table></blockquote><p>Calculate the centroid of this geometry.  This method is defined in subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass i [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString: function()</td></tr></table></blockquote><p>Returns the Well-Known Text representation of a geometry</p><h4 class=CHeading>Returns</h4><p>{String} Well-Known Text</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString: function()</td></tr></table></blockquote><p>Returns the Well-Known Text representation of a geometry</p><h4 class=CHeading>Returns</h4><p>{String} Well-Known Text</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry.fromWKT"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>fromWKT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Geometry.fromWKT = function(</td><td class=PParameter nowrap>wkt</td><td class=PAfterParameters nowrap> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry.fromWKT"></a>OpenLayers.<wbr>Geometry.<wbr>fromWKT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Geometry.fromWKT = function(</td><td class="PParameter  prettyprint " nowrap>wkt</td><td class="PAfterParameters  prettypr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry.segmentsIntersect"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>segmentsIntersect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Geometry.segmentsIntersect = function(</td><td class=PParameter nowrap>seg1,</td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry.segmentsIntersect"></a>OpenLayers.<wbr>Geometry.<wbr>segmentsIntersect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Geometry.segmentsIntersect = function(</td><td class="PParameter  prettyprint " nowrap>seg1,</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry.distanceToSegment"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>distanceToSegment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Geometry.distanceToSegment = function(</td><td class=PParameter nowrap>point,</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.OpenLayers.Geometry.distanceToSegment"></a>OpenLayers.<wbr>Geometry.<wbr>distanceToSegment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Geometry.distanceToSegment = function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr [...]
 
 </div><!--Content-->
 
@@ -65,15 +65,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>Creates a geometry object.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy this geometry.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CConstructor>Creates a geometry object.</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy this geometry.</div></div><div class=CToolTip id="tt4"><div class=CFunction><block [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/Collection-js.html b/doc/devdocs/files/OpenLayers/Geometry/Collection-js.html
index fddc931..c832cc7 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/Collection-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/Collection-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Collection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Collection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Collection"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Collection</h1><div class=CBody><p>A Collection is exactly what it sounds like: A collection of different Geometries.  These are stored in the local parameter <a href="#OpenLayers.Geometry.Collection.components" class=LProperty id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Collection"></a>OpenLayers.<wbr>Geometry.<wbr>Collection</h1><div class=CBody><p>A Collection is exactly what it sounds like: A collection of different Geometries.  These are stored in the local parameter <a href="#OpenLayers.Geometry.Collection.components" class=LProperty id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">components</a> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.Properties"></a>Properties</h3></div></div>
 
@@ -21,51 +21,51 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Collection</h3><div class=CBody><p>Creates a Geometry Collection -- a list of geoms.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="../Geometry-js.html#O [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection"></a>OpenLayers.<wbr>Geometry.<wbr>Collection</h3><div class=CBody><p>Creates a Geometry Collection -- a list of geoms.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote><p>Destroy this geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote><p>Destroy this geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clone this geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection" class=LConstructor id=link30 onMouseOver="ShowTip(event, 'tt24', 'link30')" onMouseOut="HideT [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clone this geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Collection.OpenLayers.Geometry.Collection" class=LConstructor id=link30 onMouseOver="ShowTip(event, 'tt24', 'link3 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getComponentsString"></a>getComponentsString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getComponentsString: function()</td></tr></table></blockquote><p>Get a string representing the components for this collection</p><h4 class=CHeading>Returns</h4><p>{String} A string representation of the components of this geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getComponentsString"></a>getComponentsString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getComponentsString: function()</td></tr></table></blockquote><p>Get a string representing the components for this collection</p><h4 class=CHeading>Returns</h4><p>{String} A string representation of the components of this geom [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds by iterating through the components and calling calling extendBounds() on each item.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds by iterating through the components and calling calling extendBounds() on each item.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.addComponents"></a>addComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponents: function(</td><td class=PParameter nowrap>components</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add components to  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.addComponents"></a>addComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponents: function(</td><td class="PParameter  prettyprint " nowrap>components</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.addComponent"></a>addComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponent: function(</td><td class=PParameter nowrap>component,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.addComponent"></a>addComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponent: function(</td><td class="PParameter  prettyprint " nowrap>component,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.removeComponents"></a>removeComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponents: function(</td><td class=PParameter nowrap>components</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove co [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.removeComponents"></a>removeComponents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponents: function(</td><td class="PParameter  prettyprint " nowrap>components</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>component</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove a comp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>component</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><p>Calculate the length of this geometry</p><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><p>Calculate the length of this geometry</p><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><p>Calculate the area of this geometry.  Note how this function is overridden in <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt25', 'link35')" onMouseOut=" [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><p>Calculate the area of this geometry.  Note how this function is overridden in <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt25', ' [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicArea: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicArea: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getCentroid: function(</td><td class=PParameter nowrap>weighted</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Compute the centroid for t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getCentroid: function(</td><td class="PParameter  prettyprint " nowrap>weighted</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicLength: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calcul [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicLength: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>M [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rotate: function(</td><td class=PParameter nowrap>angle,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rotate: function(</td><td class="PParameter  prettyprint " nowrap>angle,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resize: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>ratio</td><td class=PAfter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resize: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether another geometry is equ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geomet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Collection.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -73,15 +73,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote>Destroy this geometry.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>A Geometry is a description of a geographic object. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote>Destroy this geometry.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prett [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/Curve-js.html b/doc/devdocs/files/OpenLayers/Geometry/Curve-js.html
index a9a0c1f..b356942 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/Curve-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/Curve-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Curve - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Curve - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Curve"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Curve</h1><div class=CBody><p>A Curve is a MultiPoint, whose points are assumed to be connected.  To this end, we provide a “getLength()” function, which iterates through the points, summing the distances between them.</p><h4 class=CHeading>Inherits</h4><ul><li><a href="MultiPoint-js. [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Curve"></a>OpenLayers.<wbr>Geometry.<wbr>Curve</h1><div class=CBody><p>A Curve is a MultiPoint, whose points are assumed to be connected.  To this end, we provide a “getLength()” function, which iterates through the points, summing the distances between them.</p><h4 class=CHeading>Inherits</h4><ul><li><a href="MultiPoint-js.html#OpenLayers.Geometry.MultiPoint" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.OpenLayers.Geometry.Curve"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Curve</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.OpenLayers.Geometry.Curve"></a>OpenLayers.<wbr>Geometry.<wbr>Curve</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the curve</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the curve</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicLength: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Curve.getGeodesicLength"></a>getGeodesicLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicLength: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote>{Float} The length of the curve</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicLength: function(</td><td class=PParameter  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote>{Float} The length of the curve</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicLeng [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/LineString-js.html b/doc/devdocs/files/OpenLayers/Geometry/LineString-js.html
index f3fdf8d..8b60a29 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/LineString-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/LineString-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.LineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.LineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,29 +11,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LineString</h1><div class=CBody><p>A LineString is a Curve which, once two points have been added to it, can never be less than two points long.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Curve-js.html#OpenLayers.Geometry.Curve" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9 [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LineString"></a>OpenLayers.<wbr>Geometry.<wbr>LineString</h1><div class=CBody><p>A LineString is a Curve which, once two points have been added to it, can never be less than two points long.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Curve-js.html#OpenLayers.Geometry.Curve" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip( [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.OpenLayers.Geometry.LineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LineString</h3><div class=CBody><p>Create a new LineString geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" c [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.OpenLayers.Geometry.LineString"></a>OpenLayers.<wbr>Geometry.<wbr>LineString</h3><div class=CBody><p>Create a new LineString geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link11 onMouseOver="S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Only allows remov [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test for instersection betwee [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.getSortedSegments"></a>getSortedSegments</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSortedSegments: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Array} An array of segment objects.   Segment objects have properties x1, y1, x2, and y2.   The start point is represented by x1 and y1.  The  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.getSortedSegments"></a>getSortedSegments</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSortedSegments: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Array} An array of segment objects.   Segment objects have properties x1, y1, x2, and y2.   The start point is represented by [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.splitWithSegment"></a>splitWithSegment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>splitWithSegment: function(</td><td class=PParameter nowrap>seg,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.splitWithSegment"></a>splitWithSegment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>splitWithSegment: function(</td><td class="PParameter  prettyprint " nowrap>seg,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.split"></a>split</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>split: function(</td><td class=PParameter nowrap>target,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.split"></a>split</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>split: function(</td><td class="PParameter  prettyprint " nowrap>target,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.splitWith"></a>splitWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>splitWith: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.splitWith"></a>splitWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>splitWith: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LineString.simplify"></a>simplify</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>simplify: function(</td><td class="PParameter  prettyprint " nowrap>tolerance</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -41,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Only allows removal of a point if there are three or more points in the linestring. </div></div><div class=CToolTip id="tt2">< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Only allows removal of a point if there are three or more points in the linest [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/LinearRing-js.html b/doc/devdocs/files/OpenLayers/Geometry/LinearRing-js.html
index c27ee29..f68a4cc 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/LinearRing-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/LinearRing-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.LinearRing - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.LinearRing - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LinearRing"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LinearRing</h1><div class=CBody><p>A Linear Ring is a special LineString which is closed.  It closes itself automatically on every addPoint/removePoint by adding a copy of the first point as the last point.</p><p>Also, as it is the first in the line family to close itself, a getArea() functi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.LinearRing"></a>OpenLayers.<wbr>Geometry.<wbr>LinearRing</h1><div class=CBody><p>A Linear Ring is a special LineString which is closed.  It closes itself automatically on every addPoint/removePoint by adding a copy of the first point as the last point.</p><p>Also, as it is the first in the line family to close itself, a getArea() function is defined to calculate the enclo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.Properties"></a>Properties</h3></div></div>
 
@@ -19,33 +19,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.OpenLayers.Geometry.LinearRing"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>LinearRing</h3><div class=CBody><p>Linear rings are constructed with an array of points.   This array can represent a closed or open ring.   If the ring is open (the last point does not equal the first point), the constructor will close the ring.   If the ring is already cl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.OpenLayers.Geometry.LinearRing"></a>OpenLayers.<wbr>Geometry.<wbr>LinearRing</h3><div class=CBody><p>Linear rings are constructed with an array of points.   This array can represent a closed or open ring.   If the ring is open (the last point does not equal the first point), the constructor will close the ring.   If the ring is already closed (the last point does equal the  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.addComponent"></a>addComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponent: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.addComponent"></a>addComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponent: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeComponent: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes a point f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.removeComponent"></a>removeComponent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeComponent: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>M [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rotate: function(</td><td class=PParameter nowrap>angle,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rotate: function(</td><td class="PParameter  prettyprint " nowrap>angle,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resize: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>ratio</td><td class=PAfter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resize: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt8', 'link23')" onMouseOut="HideTip('tt8')">OpenLayers.Geometry.Point</a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt8', 'link23')" onMouseOut="HideTip('tt8')">OpenLa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Note</td><td class=CDLDescription>The area is positive if the ring is oriented CW, otherwise it will be negative.</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Note</td><td class=CDLDescription>The area is positive if the ring is oriented CW, otherwise it will be negati [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicArea: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicArea: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.containsPoint"></a>containsPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsPoint: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test if a point is insi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.containsPoint"></a>containsPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsPoint: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geomet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.LinearRing.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -53,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addComponent: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a point to geometry components. </div></div><div class=CToolTip id= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addComponent: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a p [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/MultiLineString-js.html b/doc/devdocs/files/OpenLayers/Geometry/MultiLineString-js.html
index e8f17b8..aea8dab 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/MultiLineString-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/MultiLineString-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.MultiLineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.MultiLineString - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pret [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiLineString</h1><div class=CBody><p>A MultiLineString is a geometry with multiple <a href="LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.LineString</a> components.</p>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<wbr>Geometry.<wbr>MultiLineString</h1><div class=CBody><p>A MultiLineString is a geometry with multiple <a href="LineString-js.html#OpenLayers.Geometry.LineString" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.LineString</a> components.</p><h4 class=CHeading>Inherits from</h4> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiLineString</h3><div class=CBody><p>Constructor for a MultiLineString Geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="LineString-j [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.OpenLayers.Geometry.MultiLineString"></a>OpenLayers.<wbr>Geometry.<wbr>MultiLineString</h3><div class=CBody><p>Constructor for a MultiLineString Geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="LineString-js.html#OpenLayers.Geometry.LineStrin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.split"></a>split</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>split: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.split"></a>split</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>split: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.splitWith"></a>splitWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>splitWith: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiLineString.splitWith"></a>splitWith</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>splitWith: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td cl [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A LineString is a Curve which, once two points have been added to it, can never be less than two points long.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>split: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>op [...]
+<div class=CToolTip id="tt1"><div class=CClass>A LineString is a Curve which, once two points have been added to it, can never be less than two points long.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>split: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></ [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/MultiPoint-js.html b/doc/devdocs/files/OpenLayers/Geometry/MultiPoint-js.html
index 82e5b52..4bd953c 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/MultiPoint-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/MultiPoint-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.MultiPoint - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.MultiPoint - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPoint</h1><div class=CBody><p>MultiPoint is a collection of Points.   Create a new instance with the <a href="#OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.G [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPoint</h1><div class=CBody><p>MultiPoint is a collection of Points.   Create a new instance with the <a href="#OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Geometry.MultiPoint</a> constructor.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.Properties"></a>Properties</h3></div></div>
 
@@ -19,13 +19,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPoint</h3><div class=CBody><p>Create a new MultiPoint Geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Poin [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.OpenLayers.Geometry.MultiPoint"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPoint</h3><div class=CBody><p>Create a new MultiPoint Geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link8 onMouseOver [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPoint: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPoint: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.removePoint"></a>removePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removePoint: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Wrapper for <a href="Collecti [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPoint.removePoint"></a>removePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removePoint: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPoint: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Wrapper for OpenLayers.Geometry.Collection.addComponent</div></div><div clas [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPoint: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Wrapper for  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/MultiPolygon-js.html b/doc/devdocs/files/OpenLayers/Geometry/MultiPolygon-js.html
index 0b71508..69fb0b6 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/MultiPolygon-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/MultiPolygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.MultiPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.MultiPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPolygon</h1><div class=CBody><p>MultiPolygon is a geometry with multiple <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.Polygon</a> components.   Create a new inst [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPolygon</h1><div class=CBody><p>MultiPolygon is a geometry with multiple <a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">OpenLayers.Geometry.Polygon</a> components.   Create a new instance with the <a href="#OpenLayers.G [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>MultiPolygon</h3><div class=CBody><p>Create a new MultiPolygon geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Polygon-js.html#OpenLayers.Geo [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.MultiPolygon.OpenLayers.Geometry.MultiPolygon"></a>OpenLayers.<wbr>Geometry.<wbr>MultiPolygon</h3><div class=CBody><p>Create a new MultiPolygon geometry</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="Polygon-js.html#OpenLayers.Geometry.Polygon" class=LClass id=link5 [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/Point-js.html b/doc/devdocs/files/OpenLayers/Geometry/Point-js.html
index 322b921..81bbc1c 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/Point-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/Point-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Point"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</h1><div class=CBody><p>Point geometry class.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt14', 'link15')" onMouseOut="HideTip('tt14')">OpenLayers.Geometry</a></li></ul><!--START_ND_SUMMARY [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Point"></a>OpenLayers.<wbr>Geometry.<wbr>Point</h1><div class=CBody><p>Point geometry class.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt14', 'link15')" onMouseOut="HideTip('tt14')">OpenLayers.Geometry</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.Properties"></a>Properties</h3></div></div>
 
@@ -21,33 +21,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.OpenLayers.Geometry.Point"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</h3><div class=CBody><p>Construct a point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{float}</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{float}</td> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.OpenLayers.Geometry.Point"></a>OpenLayers.<wbr>Geometry.<wbr>Point</h3><div class=CBody><p>Construct a point geometry.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>{float}</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>{float}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.G [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function ()</td></tr></table></blockquote><p>Create a new Bounds based on the lon/lat</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function ()</td></tr></table></blockquote><p>Create a new Bounds based on the lon/lat</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals: function(</td><td class=PParameter nowrap>geom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether another geometry is equivalent t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals: function(</td><td class="PParameter  prettyprint " nowrap>geom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>De [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.toShortString"></a>toShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toShortString: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} Shortened String representation of Point object.  (ex.  <i>”5, 42”</i>)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.toShortString"></a>toShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toShortString: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} Shortened String representation of Point object.  (ex.  <i>”5, 42”</i>)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prettyprint "no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rotate: function(</td><td class=PParameter nowrap>angle,</td></tr><tr><td></td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.rotate"></a>rotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rotate: function(</td><td class="PParameter  prettyprint " nowrap>angle,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Point.OpenLayers.Geometry.Point" class=LConstructor id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip('tt2')">OpenLayers.Geo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getCentroid"></a>getCentroid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCentroid: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Geometry.Point.OpenLayers.Geometry.Point" class=LConstructor id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip( [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resize: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>ratio</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.resize"></a>resize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resize: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geometry in [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>transform: function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>dest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>transform: function(</td><td class="PParameter  prettyprint " nowrap>source,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dest</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getVertices: function(</td><td class=PParameter nowrap>nodes</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a list of all points in thi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Point.getVertices"></a>getVertices</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getVertices: function(</td><td class="PParameter  prettyprint " nowrap>nodes</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>{OpenLayers.Geometry.Point} An exact clone of this OpenLayers.Geometry.Point</div></div><div class=CToolTip id="tt2"><div class=CConstruct [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>{OpenLayers.Geometry.Point} An exact clone of this OpenLayers.Geometry.Point</div></div><d [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/Polygon-js.html b/doc/devdocs/files/OpenLayers/Geometry/Polygon-js.html
index 0f9d894..63a7035 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/Polygon-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/Polygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Polygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Polygon</h1><div class=CBody><p>Polygon is a collection of Geometry.LinearRings.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Collection-js.html#OpenLayers.Geometry.Collection" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Geome [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Polygon"></a>OpenLayers.<wbr>Geometry.<wbr>Polygon</h1><div class=CBody><p>Polygon is a collection of Geometry.LinearRings.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Collection-js.html#OpenLayers.Geometry.Collection" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Geometry.Collection</a></li><li><a href=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.Properties"></a>Properties</h3></div></div>
 
@@ -19,21 +19,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.OpenLayers.Geometry.Polygon"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Polygon</h3><div class=CBody><p>Constructor for a Polygon geometry.  The first ring (this.component[0])is the outer bounds of the polygon and all subsequent rings (this.component[1-n]) are internal holes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 clas [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.OpenLayers.Geometry.Polygon"></a>OpenLayers.<wbr>Geometry.<wbr>Polygon</h3><div class=CBody><p>Constructor for a Polygon geometry.  The first ring (this.component[0])is the outer bounds of the polygon and all subsequent rings (this.component[1-n]) are internal holes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDL [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><p>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</p><h4 class=CHeading>Returns</h4><p>{float} The area of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><p>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</p><h4 class=CHeading>Returns</h4><p>{float} The area of the geometry</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicArea: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate the a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.getGeodesicArea"></a>getGeodesicArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicArea: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.containsPoint"></a>containsPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>containsPoint: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test if a point is inside  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.containsPoint"></a>containsPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>containsPoint: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>intersects: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine if the input geometry  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.intersects"></a>intersects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>intersects: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>distanceTo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.distanceTo"></a>distanceTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>distanceTo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.createRegularPolygon"></a>createRegularPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Geometry.Polygon.createRegularPolygon = function(</td><td class=PParameter nowrap>origin,</td></tr><tr><td></td><td class=PParameter nowrap>radius,</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Polygon.createRegularPolygon"></a>createRegularPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Geometry.Polygon.createRegularPolygon = function(</td><td class="PParameter  prettyprint " nowrap>origin,</td></tr><tr><td></td><td class= [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowr [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote>Calculated by subtracting the areas of the internal holes from the area of the outer hole.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Geometry/Rectangle-js.html b/doc/devdocs/files/OpenLayers/Geometry/Rectangle-js.html
index 5fa149d..c98c7bb 100644
--- a/doc/devdocs/files/OpenLayers/Geometry/Rectangle-js.html
+++ b/doc/devdocs/files/OpenLayers/Geometry/Rectangle-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Geometry.Rectangle - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Geometry.Rectangle - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Rectangle"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Rectangle</h1><div class=CBody><p>This class is <b>not supported</b>, and probably isn’t what you’re looking for.  Instead, most users probably want something like:</p><blockquote><pre>var poly = new OpenLayers.Bounds(0,0,10,10).toGeometry();</pre></blockquote><p>This will create  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Geometry.Rectangle"></a>OpenLayers.<wbr>Geometry.<wbr>Rectangle</h1><div class=CBody><p>This class is <b>not supported</b>, and probably isn’t what you’re looking for.  Instead, most users probably want something like:</p><blockquote><pre class="prettyprint">var poly = new OpenLayers.Bounds(0,0,10,10).toGeometry();</pre></blockquote><p>This will create a rectangular Po [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.Properties"></a>Properties</h3></div></div>
 
@@ -25,15 +25,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.OpenLayers.Geometry.Rectangle"></a>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Rectangle</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link5 onMouseOver="ShowTip( [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.OpenLayers.Geometry.Rectangle"></a>OpenLayers.<wbr>Geometry.<wbr>Rectangle</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>points</td><td class=CDLDescription>{Array(<a href="Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds for the geometry.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote><p>Recalculate the bounds for the geometry.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getLength"></a>getLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The length of the geometry</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getArea: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The area of the geometry</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Geometry.Rectangle.getArea"></a>getArea</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getArea: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The area of the geometry</p></div></div></div>
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([17, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([16, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds for the geometry.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getLength: function()</td></tr></table></blockquote>{Float} The length of the geometry</div></div><div class=CToolTip id=" [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateBounds: function()</td></tr></table></blockquote>Recalculate the bounds for the geometry.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getLength: function()</td></tr></table></blockquote>{Float} The length of the  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler-js.html b/doc/devdocs/files/OpenLayers/Handler-js.html
index 4f5657f..aaae27d 100644
--- a/doc/devdocs/files/OpenLayers/Handler-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler"></a>OpenLayers.<span class=HB> </span>Handler</h1><div class=CBody><p>Base class to construct a higher-level handler for event sequences.   All handlers have activate and deactivate methods.   In addition, they have methods named like browser events.   When a handler is activated, any additional methods named like a browser event is registered as a listener for  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler"></a>OpenLayers.<wbr>Handler</h1><div class=CBody><p>Base class to construct a higher-level handler for event sequences.   All handlers have activate and deactivate methods.   In addition, they have methods named like browser events.   When a handler is activated, any additional methods named like a browser event is registered as a listener for the corresponding  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Properties"></a>Properties</h3></div></div>
 
@@ -21,7 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.map"></a>map</h3><div class=CBody><p>{<a href="Map-js.html#OpenLayers.Map" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">OpenLayers.Map</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.keyMask"></a>keyMask</h3><div class=CBody><p>{Integer} Use bitwise operators and one or more of the OpenLayers.Handler constants to construct a keyMask.   The keyMask is used by <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt4', 'link22')" onMouseOut="HideTip('tt4')">checkModifiers</a>.   If the keyMask matches the combination of keys down [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.keyMask"></a>keyMask</h3><div class=CBody><p>{Integer} Use bitwise operators and one or more of the OpenLayers.Handler constants to construct a keyMask.   The keyMask is used by <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt4', 'link22')" onMouseOut="HideTip('tt4')">checkModifiers</a>.   If the keyMask matches the combination of keys down [...]
 handler.keyMask = OpenLayers.Handler.MOD_SHIFT;
 
 // handler only responds if Ctrl-Shift is down
@@ -34,37 +34,37 @@ handler.keyMask = OpenLayers.Handler.MOD_SHIFT |
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler"></a>OpenLayers.<span class=HB> </span>Handler</h3><div class=CBody><p>Construct a handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="Control-js.html#OpenLayers.Control" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link23')" onMouseOut="H [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler"></a>OpenLayers.<wbr>Handler</h3><div class=CBody><p>Construct a handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="Control-js.html#OpenLayers.Control" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link23')" onMouseOut="HideTip('tt1')">Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function (</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function (</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.checkModifiers"></a>checkModifiers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>checkModifiers: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check the keyMask on the handler. [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.checkModifiers"></a>checkModifiers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>checkModifiers: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Turn on the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Turn on the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.   Returns false if the handler was already inactive.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.   Returns false if the handler was already inactive.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.callback"></a>callback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>callback: function (</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>args</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.callback"></a>callback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>callback: function (</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>args</td><td class="PAfterParameters  pre [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>register: function (</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>method</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockq [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>register: function (</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>method</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unregister: function (</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>method</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.unregister"></a>unregister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unregister: function (</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>method</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.setEvent"></a>setEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>With each registered browser event, the handler sets [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.setEvent"></a>setEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>With [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function ()</td></tr></table></blockquote><p>Deconstruct the handler.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function ()</td></tr></table></blockquote><p>Deconstruct the handler.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_NONE"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_NONE</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link26 onMouseOver="ShowTip(event, 'tt12', 'link26')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt4', 'l [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_NONE"></a>OpenLayers.<wbr>Handler.<wbr>MOD_NONE</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link26 onMouseOver="ShowTip(event, 'tt12', 'link26')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt4', 'link27')" onMouseOut="HideTip('tt4')" [...]
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_SHIFT"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_SHIFT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link28 onMouseOver="ShowTip(event, 'tt12', 'link28')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt4',  [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_SHIFT"></a>OpenLayers.<wbr>Handler.<wbr>MOD_SHIFT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link28 onMouseOver="ShowTip(event, 'tt12', 'link28')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt4', 'link29')" onMouseOut="HideTip('tt4' [...]
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_CTRL"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_CTRL</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link30 onMouseOver="ShowTip(event, 'tt12', 'link30')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link31 onMouseOver="ShowTip(event, 'tt4', 'l [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_CTRL"></a>OpenLayers.<wbr>Handler.<wbr>MOD_CTRL</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link30 onMouseOver="ShowTip(event, 'tt12', 'link30')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link31 onMouseOver="ShowTip(event, 'tt4', 'link31')" onMouseOut="HideTip('tt4')" [...]
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_ALT"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MOD_ALT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link32 onMouseOver="ShowTip(event, 'tt12', 'link32')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link33 onMouseOver="ShowTip(event, 'tt4', 'lin [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.OpenLayers.Handler.MOD_ALT"></a>OpenLayers.<wbr>Handler.<wbr>MOD_ALT</h3><div class=CBody><p>If set as the <a href="#OpenLayers.Handler.keyMask" class=LProperty id=link32 onMouseOver="ShowTip(event, 'tt12', 'link32')" onMouseOut="HideTip('tt12')">keyMask</a>, <a href="#OpenLayers.Handler.checkModifiers" class=LFunction id=link33 onMouseOver="ShowTip(event, 'tt4', 'link33')" onMouseOut="HideTip('tt4')">c [...]
 
 </div><!--Content-->
 
@@ -72,15 +72,15 @@ handler.keyMask = OpenLayers.Handler.MOD_SHIFT |
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function (</td><td class=PPa [...]
+<div class=CToolTip id="tt1"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function (< [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Box-js.html b/doc/devdocs/files/OpenLayers/Handler/Box-js.html
index 9ef8240..6949ca6 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Box-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Box-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,39 +11,39 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Box"></a>OpenLayers.<span class=HB> </span>Handler.Box</h1><div class=CBody><p>Handler for dragging a rectangle across the map.   Box is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Box"></a>OpenLayers.<wbr>Handler.Box</h1><div class=CBody><p>Handler for dragging a rectangle across the map.   Box is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="Hid [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.dragHandler"></a>dragHandler</h3><div class=CBody><p>{<a href="Drag-js.html#OpenLayers.Handler.Drag" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Drag</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.dragHandler"></a>dragHandler</h3><div class=CBody><p>{<a href="Drag-js.html#OpenLayers.Handler.Drag" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">OpenLayers.Handler.Drag</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.boxDivClassName"></a>boxDivClassName</h3><div class=CBody><p>{String} The CSS class to use for drawing the box.  Default is olHandlerBoxZoomBox</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.boxCharacteristics"></a>boxCharacteristics</h3><div class=CBody><p>{Object} Caches some box characteristics from css.  This is used by the getBoxCharacteristics method.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.boxOffsets"></a>boxOffsets</h3><div class=CBody><p>{Object} Caches box offsets from css.  This is used by the getBoxOffsets method.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.OpenLayers.Handler.Box"></a>OpenLayers.<span class=HB> </span>Handler.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt1 [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.OpenLayers.Handler.Box"></a>OpenLayers.<wbr>Handler.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">OpenLayers.Co [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function (</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function (</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.startBox"></a>startBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>startBox: function (</td><td class=PParameter nowrap>xy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.startBox"></a>startBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>startBox: function (</td><td class="PParameter  prettyprint " nowrap>xy</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.moveBox"></a>moveBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveBox: function (</td><td class=PParameter nowrap>xy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.moveBox"></a>moveBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveBox: function (</td><td class="PParameter  prettyprint " nowrap>xy</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.endBox"></a>endBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>endBox: function(</td><td class=PParameter nowrap>end</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.endBox"></a>endBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>endBox: function(</td><td class="PParameter  prettyprint " nowrap>end</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></d [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.removeBox"></a>removeBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>removeBox: function()</td></tr></table></blockquote><p>Remove the zoombox from the screen and nullify our reference to it.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.removeBox"></a>removeBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeBox: function()</td></tr></table></blockquote><p>Remove the zoombox from the screen and nullify our reference to it.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function ()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function ()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function ()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function ()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.getCharacteristics"></a>getCharacteristics</h3><div class=CBody><p>Determines offset and box model for a box.</p><h4 class=CHeading>Returns</h4><p>{Object} a hash with the following properties:</p><ul><li>xOffset - Corner offset in x-direction</li><li>yOffset - Corner offset in y-direction</li><li>newBoxModel - true for all browsers except IE in quirks mode</li></ul></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Box.getBoxOffsets"></a>getBoxOffsets</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getBoxOffsets: function()</td></tr></table></blockquote><p>Determines border offsets for a box, according to the box model.</p><h4 class=CHeading>Returns</h4><p>{Object} an object with the following offsets:</p><ul><li>left</li><li>right</li><li> [...]
 
 </div><!--Content-->
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The drag handler is used to deal with sequences of browser events related to dragging. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspac [...]
+<div class=CToolTip id="tt1"><div class=CClass>The drag handler is used to deal with sequences of browser events related to dragging. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Click-js.html b/doc/devdocs/files/OpenLayers/Handler/Click-js.html
index 9e2d6db..17fd08a 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Click-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Click-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Click - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Click - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Click"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Click</h1><div class=CBody><p>A handler for mouse clicks.   The intention of this handler is to give controls more flexibility with handling clicks.   Browsers trigger click events twice for a double-click.   In addition, the mousedown, mousemove, mouseup sequence fires a click event.&nbs [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Click"></a>OpenLayers.<wbr>Handler.<wbr>Click</h1><div class=CBody><p>A handler for mouse clicks.   The intention of this handler is to give controls more flexibility with handling clicks.   Browsers trigger click events twice for a double-click.   In addition, the mousedown, mousemove, mouseup sequence fires a click event.   With this handler, controls can  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.Properties"></a>Properties</h3></div></div>
 
@@ -23,41 +23,69 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.pixelTolerance"></a>pixelTolerance</h3><div class=CBody><p>{Number} Maximum number of pixels between mouseup and mousedown for an event to be considered a click.   Default is 0.   If set to an integer value, clicks with a drag greater than the value will be ignored.   This property can only be set when the handler is constructed.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.stopSingle"></a>stopSingle</h3><div class=CBody><p>{Boolean} Stop other listeners from being notified of clicks.   Default is false.   If true, any click listeners registered before this one will not be notified of <b>any</b> click event (associated with double or single clicks).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.dblclickTolerance"></a>dblclickTolerance</h3><div class=CBody><p>{Number} Maximum distance in pixels between clicks for a sequence of events to be considered a double click.   Default is 13.   If the distance between two clicks is greater than this value, a double- click will not be fired.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.stopSingle"></a>stopSingle</h3><div class=CBody><p>{Boolean} Stop other listeners from being notified of clicks.   Default is false.   If true, any listeners registered before this one for click or rightclick events will not be notified.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.stopDouble"></a>stopDouble</h3><div class=CBody><p>{Boolean} Stop other listeners from being notified of double-clicks.  Default is false.   If true, any click listeners registered before this one will not be notified of <b>any</b> double-click events.</p><p>The one caveat with stopDouble is that given a map with two click handlers, one with stopDouble true and the other with stopSingle  [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.timerId"></a>timerId</h3><div class=CBody><p>{Number} The id of the timeout waiting to clear the <a href="#OpenLayers.Handler.Click.delayedCall" class=LFunction id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">delayedCall</a>.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.timerId"></a>timerId</h3><div class=CBody><p>{Number} The id of the timeout waiting to clear the <a href="#OpenLayers.Handler.Click.delayedCall" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt1', 'link28')" onMouseOut="HideTip('tt1')">delayedCall</a>.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.touch"></a>touch</h3><div class=CBody><p>{Boolean} When a touchstart event is fired, touch will be true and all mouse related listeners will do nothing.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.down"></a>down</h3><div class=CBody><p>{Object} Object that store relevant information about the last mousedown or touchstart.  Its ‘xy’ OpenLayers.Pixel property gives the average location of the mouse/touch event.  Its ‘touches’ property records clientX/clientY of each touches.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.last"></a>last</h3><div class=CBody><p>{Object} Object that store relevant information about the last mousemove or touchmove.  Its ‘xy’ OpenLayers.Pixel property gives the average location of the mouse/touch event.  Its ‘touches’ property records clientX/clientY of each touches.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.down"></a>down</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>} The pixel location of the last mousedown.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.first"></a>first</h3><div class=CBody><p>{Object} When waiting for double clicks, this object will store information about the first click in a two click sequence.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.rightclickTimerId"></a>rightclickTimerId</h3><div class=CBody><p>{Number} The id of the right mouse timeout waiting to clear the <delayedEvent>.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.OpenLayers.Handler.Click"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Click</h3><div class=CBody><p>Create a new click handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link20 onMouseO [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.OpenLayers.Handler.Click"></a>OpenLayers.<wbr>Handler.<wbr>Click</h3><div class=CBody><p>Create a new click handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt26', 'link29' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.mousedown"></a>mousedown</h3><div class=CBody><p>Handle mousedown.   Only registered as a listener if pixelTolerance is a non-zero value at construction.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Continue propagating this event.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.touchstart"></a>touchstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.touchmove"></a>touchmove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchmove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.touchend"></a>touchend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchend: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.unregisterMouseListeners"></a>unregisterMouseListeners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">unregisterMouseListeners: function()</td></tr></table></blockquote><p>In a touch environment, we don’t want to handle mouse events.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousedown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseup: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.rightclick"></a>rightclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>rightclick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.delayedRightCall"></a>delayedRightCall</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>delayedRightCall: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>click: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dblclick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.handleDouble"></a>handleDouble</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleDouble: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseup: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouseup.   Installed to support coll [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.handleSingle"></a>handleSingle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleSingle: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.rightclick"></a>rightclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>rightclick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle rightclick.   For a dblright [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.queuePotentialClick"></a>queuePotentialClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>queuePotentialClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.delayedRightCall"></a>delayedRightCall</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>delayedRightCall: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets <a href="#OpenLay [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.passesTolerance"></a>passesTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>passesTolerance: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dblclick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle dblclick.   For a dblclick, we get [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.getTouchDistance"></a>getTouchDistance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTouchDistance: function(</td><td class="PParameter  prettyprint " nowrap>from,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>to</td><td c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>click: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle click.</p><h4 class=CHeading>Returns</h4><p>{Boo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.passesDblclickTolerance"></a>passesDblclickTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>passesDblclickTolerance: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.passesTolerance"></a>passesTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>passesTolerance: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether the eve [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.clearTimer"></a>clearTimer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearTimer: function()</td></tr></table></blockquote><p>Clear the timer and set <a href="#OpenLayers.Handler.Click.timerId" class=LProperty id=link32 onMouseOver="ShowTip(event, 'tt20', 'link32')" onMouseOut="HideTip('tt20')">timerId</a> to null.</p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.clearTimer"></a>clearTimer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearTimer: function()</td></tr></table></blockquote><p>Clear the timer and set <a href="#OpenLayers.Handler.Click.timerId" class=LProperty id=link23 onMouseOver="ShowTip(event, 'tt11', 'link23')" onMouseOut="HideTip('tt11')">timerId</a> to null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.delayedCall"></a>delayedCall</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>delayedCall: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.delayedCall"></a>delayedCall</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>delayedCall: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets <a href="#OpenLayers.Handler.Cli [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.getEventInfo"></a>getEventInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getEventInfo: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Click.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -65,15 +93,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>delayedCall: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets timerId to null. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>delayedCall: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Sets timerId to null. </div></div><div class=CToolTip id="tt2"><div class=CFunction> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Drag-js.html b/doc/devdocs/files/OpenLayers/Handler/Drag-js.html
index d2e52fb..a3cf783 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Drag-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Drag-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Drag - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Drag - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Drag"></a>OpenLayers.<span class=HB> </span>Handler.Drag</h1><div class=CBody><p>The drag handler is used to deal with sequences of browser events related to dragging.   The handler is used by controls that want to know when a drag sequence begins, when a drag is happening, and when it has finished.</p><p>Controls that use the drag handler typically construct it with callb [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Drag"></a>OpenLayers.<wbr>Handler.Drag</h1><div class=CBody><p>The drag handler is used to deal with sequences of browser events related to dragging.   The handler is used by controls that want to know when a drag sequence begins, when a drag is happening, and when it has finished.</p><p>Controls that use the drag handler typically construct it with callbacks for ‘do [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.started"></a>started</h3><div class=CBody><p>{Boolean} When a mousedown event is received, we want to record it, but not set ‘dragging’ until the mouse moves after starting.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.started"></a>started</h3><div class=CBody><p>{Boolean} When a mousedown or touchstart event is received, we want to record it, but not set ‘dragging’ until the mouse moves after starting.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.stopDown"></a>stopDown</h3><div class=CBody><p>{Boolean} Stop propagation of mousedown events from getting to listeners on the same element.   Default is true.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.dragging"></a>dragging</h3><div class=CBody><p>{Boolean}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.last"></a>last</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Pixel</a>} The last pixel location of the drag.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.touch"></a>touch</h3><div class=CBody><p>{Boolean} When a touchstart event is fired, touch will be true and all mouse related listeners will do nothing.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.start"></a>start</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt1', 'link20')" onMouseOut="HideTip('tt1')">OpenLayers.Pixel</a>} The first pixel location of the drag.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.last"></a>last</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt1', 'link26')" onMouseOut="HideTip('tt1')">OpenLayers.Pixel</a>} The last pixel location of the drag.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.start"></a>start</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt1', 'link27')" onMouseOut="HideTip('tt1')">OpenLayers.Pixel</a>} The first pixel location of the drag.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.lastMoveEvt"></a>lastMoveEvt</h3><div class=CBody><p>{Object} The last mousemove event that occurred.  Used to position the map correctly when our “delay drag” timeout expired.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.oldOnselectstart"></a>oldOnselectstart</h3><div class=CBody><p>{Function}</p></div></div></div>
 
@@ -33,41 +37,55 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.documentDrag"></a>documentDrag</h3><div class=CBody><p>{Boolean} If set to true, the handler will also handle mouse moves when the cursor has moved out of the map viewport.  Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.documentEvents"></a>documentEvents</h3><div class=CBody><p>{<a href="../Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} Event instance for observing document events.  Will be set on mouseout if documentDrag is set to true.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.documentEvents"></a>documentEvents</h3><div class=CBody><p>{Boolean} Are we currently observing document events?</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.OpenLayers.Handler.Drag"></a>OpenLayers.<span class=HB> </span>Handler.Drag</h3><div class=CBody><p>Returns OpenLayers.Handler.Drag</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link21 onMouseOver="ShowTip(event, 't [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.OpenLayers.Handler.Drag"></a>OpenLayers.<wbr>Handler.Drag</h3><div class=CBody><p>Returns OpenLayers.Handler.Drag</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt25', 'link28')" o [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.down"></a>down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>down: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is called during the handling of the mouse down [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.dragstart"></a>dragstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragstart: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.dragmove"></a>dragmove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragmove: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.dragend"></a>dragend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragend: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>T [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.down"></a>down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>down: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.up"></a>up</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>up: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is ca [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.out"></a>out</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>out: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousedown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is called during the handling of the mouse move [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.touchstart"></a>touchstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.up"></a>up</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>up: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is called during the handling of the mouse up event.& [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousemove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.out"></a>out</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>out: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This method is called during the handling of the mouse out eve [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.touchmove"></a>touchmove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchmove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousedown: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mousedown events</p><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.removeTimeout"></a>removeTimeout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeTimeout: function()</td></tr></table></blockquote><p>Private.  Called by mousemove() to remove the drag timeout.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mousemove events</p><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseup: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ha [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.removeTimeout"></a>removeTimeout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>removeTimeout: function()</td></tr></table></blockquote><p>Private.  Called by mousemove() to remove the drag timeout.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.touchend"></a>touchend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchend: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseup: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouseup events</p><h4 class=CHeading>Param [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mouseout"></a>mouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseout: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.mouseout"></a>mouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseout: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouseout events</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>click: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>The dra [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>click: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The drag handler captures the click event.   If so [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.adjustXY"></a>adjustXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>adjustXY: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.adjustXY"></a>adjustXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>adjustXY: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts event coordinates that are relative to [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.addDocumentEvents"></a>addDocumentEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">addDocumentEvents: function()</td></tr></table></blockquote><p>Start observing document events when documentDrag is true and the mouse cursor leaves the map viewport while dragging.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.destroyDocumentEvents"></a>destroyDocumentEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyDocumentEvents: function()</td></tr></table></blockquote><p>Destroys the events instance that gets added to the document body when documentDrag is true and the mouse cursor leaves the map viewport while dragging.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Drag.removeDocumentEvents"></a>removeDocumentEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeDocumentEvents: function()</td></tr></table></blockquote><p>Stops observing document events when documentDrag is true and the mouse cursor re-enters the map viewport while dragging.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -75,15 +93,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>down: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This method is  [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragstart: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Feature-js.html b/doc/devdocs/files/OpenLayers/Handler/Feature-js.html
index a64c683..a88256a 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Feature-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Feature-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Feature - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Feature"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Feature</h1><div class=CBody><p>Handler to respond to mouse events related to a drawn feature.   Callbacks with the following keys will be notified of the following events associated with features: click, clickout, over, out, and dblclick.</p><p>This handler stops event propagation for mousedown  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Feature"></a>OpenLayers.<wbr>Handler.<wbr>Feature</h1><div class=CBody><p>Handler to respond to mouse events related to a drawn feature.   Callbacks with the following keys will be notified of the following events associated with features: click, clickout, over, out, and dblclick.</p><p>This handler stops event propagation for mousedown and mouseup if those browser events  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.EVENTMAP"></a>EVENTMAP</h3><div class=CBody><p>{Object} A object mapping the browser events to objects with callback keys for in and out.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt1', 'link17')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The last feature that was hovered.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.feature"></a>feature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The last feature that was hovered.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.lastFeature"></a>lastFeature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The last feature that was handled.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.lastFeature"></a>lastFeature</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt1', 'link20')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The last feature that was handled.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.down"></a>down</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>} The location of the last mousedown.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.down"></a>down</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>} The location of the last mousedown.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.up"></a>up</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>} The location of the last mouseup.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.up"></a>up</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt2', 'link22')" onMouseOut="HideTip('tt2')">OpenLayers.Pixel</a>} The location of the last mouseup.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.touch"></a>touch</h3><div class=CBody><p>{Boolean} When a touchstart event is fired, touch will be true and all mouse related listeners will do nothing.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.clickTolerance"></a>clickTolerance</h3><div class=CBody><p>{Number} The number of pixels the mouse can move between mousedown and mouseup for the event to still be considered a click.  Dragging the map should not trigger the click and clickout callbacks unless the map is moved by less than this tolerance.  Defaults to 4.</p></div></div></div>
 
@@ -37,33 +39,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.OpenLayers.Handler.Feature"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Feature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt15',  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.OpenLayers.Handler.Feature"></a>OpenLayers.<wbr>Handler.<wbr>Feature</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt17', 'link23')" onMouseOut="HideTip('tt17 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousedown: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse down.   Stop propagatio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.touchstart"></a>touchstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.touchmove"></a>touchmove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchmove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousedown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseup: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse up.   Stop propagation if a f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseup: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>click: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle click.   Call the “click” cal [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>click: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse moves.   Call the &ldqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousemove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dblclick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle dblclick.   Call the “dblc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dblclick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.geometryTypeMatches"></a>geometryTypeMatches</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>geometryTypeMatches: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.geometryTypeMatches"></a>geometryTypeMatches</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>geometryTypeMatches: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.handle"></a>handle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handle: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.handle"></a>handle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handle: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.triggerCallback"></a>triggerCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>triggerCallback: function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>mode,</td></tr><tr><td></td><td class=PParameter nowrap>args</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.triggerCallback"></a>triggerCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>triggerCallback: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>mode,</td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Turn on the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Turn on the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.   Returns false if the handler was already active.</p><h4 class=CHeading>Returns</h4><p>{Boolean}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.moveLayerToTop"></a>moveLayerToTop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>moveLayerToTop: function()</td></tr></table></blockquote><p>Moves the layer for this handler to the top, so mouse events can reach it.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.moveLayerToTop"></a>moveLayerToTop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">moveLayerToTop: function()</td></tr></table></blockquote><p>Moves the layer for this handler to the top, so mouse events can reach it.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.moveLayerBack"></a>moveLayerBack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>moveLayerBack: function()</td></tr></table></blockquote><p>Moves the layer back to the position determined by the map’s layers array.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Feature.moveLayerBack"></a>moveLayerBack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">moveLayerBack: function()</td></tr></table></blockquote><p>Moves the layer back to the position determined by the map’s layers array.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -71,15 +77,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousedown: function [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>to [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Hover-js.html b/doc/devdocs/files/OpenLayers/Handler/Hover-js.html
index 53e47a8..6659970 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Hover-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Hover-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Hover - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Hover - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Hover"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Hover</h1><div class=CBody><p>The hover handler is to be used to emulate mouseovers on objects on the map that aren’t DOM elements.  For example one can use this handler to send WMS/GetFeatureInfo requests as the user moves the mouve over the map.</p><h4 class=CHeading>Inherits from</h4><ul>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Hover"></a>OpenLayers.<wbr>Handler.<wbr>Hover</h1><div class=CBody><p>The hover handler is to be used to emulate mouseovers on objects on the map that aren’t DOM elements.  For example one can use this handler to send WMS/GetFeatureInfo requests as the user moves the mouve over the map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenL [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.Properties"></a>Properties</h3></div></div>
 
@@ -27,21 +27,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.OpenLayers.Handler.Hover"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Hover</h3><div class=CBody><p>Construct a hover handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link8 onMouseOve [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.OpenLayers.Handler.Hover"></a>OpenLayers.<wbr>Handler.<wbr>Hover</h3><div class=CBody><p>Construct a hover handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" o [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the mouse moves on the map.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousemove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.mouseout"></a>mouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseout: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the mouse goes out of the map.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.mouseout"></a>mouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseout: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.passesTolerance"></a>passesTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>passesTolerance: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether the mous [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.passesTolerance"></a>passesTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>passesTolerance: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.clearTimer"></a>clearTimer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearTimer: function()</td></tr></table></blockquote><p>Clear the timer and set <a href="#OpenLayers.Handler.Hover.timerId" class=LProperty >timerId</a> to null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.clearTimer"></a>clearTimer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearTimer: function()</td></tr></table></blockquote><p>Clear the timer and set <a href="#OpenLayers.Handler.Hover.timerId" class=LProperty >timerId</a> to null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.delayedCall"></a>delayedCall</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>delayedCall: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Triggers pause callback.</p><h4 class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.delayedCall"></a>delayedCall</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>delayedCall: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Hover.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the mouse moves on the map.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cells [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousemove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the mouse moves on the map.</div></div><div class=CToolTip id="tt2"><div c [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Keyboard-js.html b/doc/devdocs/files/OpenLayers/Handler/Keyboard-js.html
index a81fd56..7af7902 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Keyboard-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Keyboard-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.handler.Keyboard - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.handler.Keyboard - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.handler.Keyboard"></a>OpenLayers.<span class=HB> </span>handler.<span class=HB> </span>Keyboard</h1><div class=CBody><p>A handler for keyboard events.   Create a new instance with the <a href="#OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Handler.Keyboard</a> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.handler.Keyboard"></a>OpenLayers.<wbr>handler.<wbr>Keyboard</h1><div class=CBody><p>A handler for keyboard events.   Create a new instance with the <a href="#OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard" class=LConstructor id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Handler.Keyboard</a> constructor.</p><h4 class=CHeading> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.Constants"></a>Constants</h3></div></div>
 
@@ -23,17 +23,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Keyboard</h3><div class=CBody><p>Returns a new keyboard handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=li [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.OpenLayers.Handler.Keyboard"></a>OpenLayers.<wbr>Handler.<wbr>Keyboard</h3><div class=CBody><p>Returns a new keyboard handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.handleKeyEvent"></a>handleKeyEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleKeyEvent: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.handler.Keyboard.handleKeyEvent"></a>handleKeyEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleKeyEvent: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 c [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote>< [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/MouseWheel-js.html b/doc/devdocs/files/OpenLayers/Handler/MouseWheel-js.html
index 4542711..4d9747d 100644
--- a/doc/devdocs/files/OpenLayers/Handler/MouseWheel-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/MouseWheel-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.MouseWheel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.MouseWheel - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.MouseWheel"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MouseWheel</h1><div class=CBody><p>Handler for wheel up/down events.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Handler</a></li></ul><!--STA [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.MouseWheel"></a>OpenLayers.<wbr>Handler.<wbr>MouseWheel</h1><div class=CBody><p>Handler for wheel up/down events.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Handler-js.html#OpenLayers.Handler" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Handler</a></li></ul><!--START_ND_SUMMARY--><div class=Summary>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.Properties"></a>Properties</h3></div></div>
 
@@ -27,21 +27,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.OpenLayers.Handler.MouseWheel"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>MouseWheel</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.OpenLayers.Handler.MouseWheel"></a>OpenLayers.<wbr>Handler.<wbr>MouseWheel</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.onWheelEvent"></a>onWheelEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onWheelEvent: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Catch the wheel event and handl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.onWheelEvent"></a>onWheelEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onWheelEvent: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.wheelZoom"></a>wheelZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>wheelZoom: function(</td><td class=PParameter nowrap>e</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given the wheel event, we carry out the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.wheelZoom"></a>wheelZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>wheelZoom: function(</td><td class="PParameter  prettyprint " nowrap>e</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Update the stored mousePosition on ev [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousemove: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>activate: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>activate: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>deactivate: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.MouseWheel.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>deactivate: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><t [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellsp [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Path-js.html b/doc/devdocs/files/OpenLayers/Handler/Path-js.html
index 677c2cb..d4bac70 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Path-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Path-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Path - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Path - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,47 +11,75 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Path"></a>OpenLayers.<span class=HB> </span>Handler.Path</h1><div class=CBody><p>Handler to draw a path on the map.   Path is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Point-js.html#OpenLayers.Handler.Point" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Path"></a>OpenLayers.<wbr>Handler.Path</h1><div class=CBody><p>Handler to draw a path on the map.   Path is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Point-js.html#OpenLayers.Handler.Point" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt25', 'link27')" onMouseOut="HideTip('tt25 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.line"></a>line</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.line"></a>line</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt1', 'link28')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.maxVertices"></a>maxVertices</h3><div class=CBody><p>{Number} The maximum number of vertices which can be drawn by this handler.  When the number of vertices reaches maxVertices, the geometry is automatically finalized.  This property doesn’t apply if freehand is set.  Default is null.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.doubleTouchTolerance"></a>doubleTouchTolerance</h3><div class=CBody><p>{Number} Maximum number of pixels between two touches for the gesture to be considered a “finalize feature” action.  Default is 20.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.freehand"></a>freehand</h3><div class=CBody><p>{Boolean} In freehand mode, the handler starts the path on mouse down, adds a point for every mouse move, and finishes the path on mouse up.  Outside of freehand mode, a point is added to the path on every mouse click and double-click finishes the path.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.freehandToggle"></a>freehandToggle</h3><div class=CBody><p>{String} If set, freehandToggle is checked on mouse events and will set the freehand mode to the opposite of this.freehand.   To disallow toggling between freehand and non-freehand mode, set freehandToggle to null.   Acceptable toggle values are ‘shiftKey’, ‘ctrlKey’, and ‘altKey’.</p></div></di [...]
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.timerId"></a>timerId</h3><div class=CBody><p>{Integer} The timer used to test the double touch.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.redoStack"></a>redoStack</h3><div class=CBody><p>{Array} Stack containing points removed with <a href="#OpenLayers.Handler.Path.undo" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt2', 'link29')" onMouseOut="HideTip('tt2')">undo</a>.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.OpenLayers.Handler.Path"></a>OpenLayers.<span class=HB> </span>Handler.Path</h3><div class=CBody><p>Create a new path hander</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt16', ' [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.OpenLayers.Handler.Path"></a>OpenLayers.<wbr>Handler.Path</h3><div class=CBody><p>Create a new path hander</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt26', 'link30')" onMouseO [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.createFeature"></a>createFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add temporary geometries</p><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.createFeature"></a>createFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.destroyFeature"></a>destroyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroyFeature: function(</td><td class="PParameter  prettyprint " nowrap>force</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.destroyPersistedFeature"></a>destroyPersistedFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyPersistedFeature: function()</td></tr></table></blockquote><p>Destroy the persisted feature.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.removePoint"></a>removePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removePoint: function()</td></tr></table></blockquote><p>Destroy the temporary point.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPoint: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.insertXY"></a>insertXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  prett [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.insertDeltaXY"></a>insertDeltaXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDeltaXY: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfter [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.insertDirectionLength"></a>insertDirectionLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDirectionLength: function(</td><td class="PParameter  prettyprint " nowrap>direction,</td></tr><tr><td></td><td class="PParameter  prettyprint "  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.insertDeflectionLength"></a>insertDeflectionLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insertDeflectionLength: function(</td><td class="PParameter  prettyprint " nowrap>deflection,</td></tr><tr><td></td><td class="PParameter  prettyprin [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.getCurrentPointIndex"></a>getCurrentPointIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCurrentPointIndex: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Number} The index of the most recently drawn point.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.undo"></a>undo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">undo: function()</td></tr></table></blockquote><p>Remove the most recently added point in the sketch geometry.</p><h4 class=CHeading>Returns</h4><p>{Boolean} A point was removed.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.destroyFeature"></a>destroyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyFeature: function()</td></tr></table></blockquote><p>Destroy temporary geometries</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.redo"></a>redo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redo: function()</td></tr></table></blockquote><p>Reinsert the most recently removed point resulting from an <a href="#OpenLayers.Handler.Path.undo" class=LFunction id=link33 onMouseOver="ShowTip(event, 'tt2', 'link33')" onMouseOut="HideTip('tt2')">undo</a> call. [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.removePoint"></a>removePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>removePoint: function()</td></tr></table></blockquote><p>Destroy the temporary point.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.freehandMode"></a>freehandMode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>freehandMode: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPoint: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add point to geometry.   Send the point  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.modifyFeature"></a>modifyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>modifyFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>drawing</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.freehandMode"></a>freehandMode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>freehandMode: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether to behave in free [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">drawFeature: function()</td></tr></table></blockquote><p>Render geometries on the temporary layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.modifyFeature"></a>modifyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>modifyFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Modify the existing geometry g [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.getSketch"></a>getSketch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSketch: function()</td></tr></table></blockquote><p>Return the sketch feature.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt1', 'link35')" on [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>drawFeature: function()</td></tr></table></blockquote><p>Render geometries on the temporary layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getGeometry: function()</td></tr></table></blockquote><p>Return the sketch geometry.   If <multi> is true, this will return a multi-part geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/LineString-js.html#OpenLayers.Ge [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.getSketch"></a>getSketch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSketch: function()</td></tr></table></blockquote><p>Return the sketch feature.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt1', 'link21')" onMouseOut="HideTip('tt1 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.touchstart"></a>touchstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getGeometry: function()</td></tr></table></blockquote><p>Return the sketch geometry.   If <multi> is true, this will return a multi-part geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/LineString-js.html#OpenLayers.Geometry.LineString" cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.down"></a>down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>down: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mous [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousedown: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse down.   Add a new point to [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mou [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse move.   Adjust the geomet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.up"></a>up</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>up: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouseup a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseup: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse up.   Send the latest point in  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.finishGeometry"></a>finishGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finishGeometry: function()</td></tr></table></blockquote><p>Finish the geometry and send it back to the control.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dblclick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle double-clicks.   Finish the geometr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Path.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dblclick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
 </div><!--Content-->
 
@@ -59,15 +87,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">undo: function()</td></tr></table></blockquote>Remove the most recently added point in the sketch geometry.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspa [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Pinch-js.html b/doc/devdocs/files/OpenLayers/Handler/Pinch-js.html
new file mode 100644
index 0000000..3110dcf
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Handler/Pinch-js.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Pinch - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Pinch"></a>OpenLayers.<wbr>Handler.<wbr>Pinch</h1><div class=CBody><p>The pinch handler is used to deal with sequences of browser events related to pinch gestures.  The handler is used by controls that want to know when a pinch sequence begins, when a pinch is happening, and when it has finished.</p><p>Controls that use the pinch handler typically construct it with callbac [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.started"></a>started</h3><div class=CBody><p>{Boolean} When a touchstart event is received, we want to record it, but not set ‘pinching’ until the touchmove get started after starting.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.stopDown"></a>stopDown</h3><div class=CBody><p>{Boolean} Stop propagation of touchstart events from getting to listeners on the same element.  Default is false.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.pinching"></a>pinching</h3><div class=CBody><p>{Boolean}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.last"></a>last</h3><div class=CBody><p>{Object} Object that store informations related to pinch last touch.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.start"></a>start</h3><div class=CBody><p>{Object} Object that store informations related to pinch touchstart.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.OpenLayers.Handler.Pinch"></a>OpenLayers.<wbr>Handler.<wbr>Pinch</h3><div class=CBody><p>Returns OpenLayers.Handler.Pinch</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'li [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.touchstart"></a>touchstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.touchmove"></a>touchmove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchmove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.touchend"></a>touchend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchend: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully activated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the handler.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The handler was successfully deactivated.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.getDistance"></a>getDistance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getDistance: function(</td><td class="PParameter  prettyprint " nowrap>touches</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Pinch.getPinchData"></a>getPinchData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getPinchData: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Handle touchstart events</div></div><div class=CToolTip id="tt2"><div class=CFunction [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Handler/Point-js.html b/doc/devdocs/files/OpenLayers/Handler/Point-js.html
index eb0d93b..93f11ad 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Point-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Point-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,63 +11,89 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Point"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Point</h1><div class=CBody><p>Handler to draw a point on the map.   Point is displayed on mouse down, moves on mouse move, and is finished on mouse up.   The handler triggers callbacks for ‘done’, ‘cancel’, and ‘modify’.   The modify callback is called  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Point"></a>OpenLayers.<wbr>Handler.<wbr>Point</h1><div class=CBody><p>Handler to draw a point on the map.  Point is displayed on activation, moves on mouse move, and is finished on mouse up.  The handler triggers callbacks for ‘done’, ‘cancel’, and ‘modify’.  The modify callback is called with each change in the sketch and will [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.point"></a>point</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt1', 'link22')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The currently drawn point</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.point"></a>point</h3><div class=CBody><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt1', 'link32')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>} The currently drawn point</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt2', 'link23')" onMouseOut="HideTip('tt2')">OpenLayers.Layer.Vector</a>} The temporary drawing layer</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.layer"></a>layer</h3><div class=CBody><p>{<a href="../Layer/Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt2', 'link33')" onMouseOut="HideTip('tt2')">OpenLayers.Layer.Vector</a>} The temporary drawing layer</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.multi"></a>multi</h3><div class=CBody><p>{Boolean} Cast features to multi-part geometries before passing to the layer.   Default is false.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.drawing"></a>drawing</h3><div class=CBody><p>{Boolean} A point is being drawn</p></div></div></div>
-
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mouseDown"></a>mouseDown</h3><div class=CBody><p>{Boolean} The mouse is down</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.lastDown"></a>lastDown</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt3', 'link24')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>} Location of the last mouse down</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.stoppedDown"></a>stoppedDown</h3><div class=CBody><p>{Boolean} Indicate whether the last mousedown stopped the event propagation.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.lastDown"></a>lastDown</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt3', 'link34')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>} Location of the last mouse down</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.lastUp"></a>lastUp</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt3', 'link25')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.lastUp"></a>lastUp</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt3', 'link35')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.persist"></a>persist</h3><div class=CBody><p>{Boolean} Leave the feature rendered until destroyFeature is called.  Default is false.   If set to true, the feature remains rendered until destroyFeature is called, typically by deactivating the handler or starting another drawing.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.stopDown"></a>stopDown</h3><div class=CBody><p>{Boolean} Stop event propagation on mousedown.  Must be false to allow “pan while drawing”.  Defaults to false.</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.layerOptions"></a>layerOptions</h3><div class=CBody><p>{Object} Any optional properties to be set on the sketch layer.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.pixelTolerance"></a>pixelTolerance</h3><div class=CBody><p>{Number} Maximum number of pixels between down and up (mousedown and mouseup, or touchstart and touchend) for the handler to add a new point.  If set to an integer value, if the displacement between down and up is great to this value no point will be added.  Default value is 5.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.touch"></a>touch</h3><div class=CBody><p>{Boolean} Indcates the support of touch events.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.lastTouchPx"></a>lastTouchPx</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt3', 'link36')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>} The last pixel used to know the distance between two touches (for double touch).</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.OpenLayers.Handler.Point"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Point</h3><div class=CBody><p>Create a new point handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link26 onMouseO [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.OpenLayers.Handler.Point"></a>OpenLayers.<wbr>Handler.<wbr>Point</h3><div class=CBody><p>Create a new point handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt30', 'link37' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>turn on the handler</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>turn on the handler</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.createFeature"></a>createFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>turn off the handler</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.destroyFeature"></a>destroyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroyFeature: function(</td><td class="PParameter  prettyprint " nowrap>force</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.destroyPersistedFeature"></a>destroyPersistedFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyPersistedFeature: function()</td></tr></table></blockquote><p>Destroy the persisted feature.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.finalize"></a>finalize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>finalize: function(</td><td class="PParameter  prettyprint " nowrap>cancel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>click: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dblclick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.modifyFeature"></a>modifyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>modifyFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.createFeature"></a>createFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add temporary features</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">drawFeature: function()</td></tr></table></blockquote><p>Render features on the temporary layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>turn off the handler</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getGeometry: function()</td></tr></table></blockquote><p>Return the sketch geometry.   If <a href="#OpenLayers.Handler.Point.multi" class=LProperty id=link40 onMouseOver="ShowTip(event, 'tt31', 'link40')" onMouseOut="HideTip('tt31')">multi</a> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.destroyFeature"></a>destroyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyFeature: function()</td></tr></table></blockquote><p>Destroy the temporary geometries</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.geometryClone"></a>geometryClone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">geometryClone: function()</td></tr></table></blockquote><p>Return a clone of the relevant geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link42 onMouseOver="ShowTip(event, 'tt33 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.finalize"></a>finalize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>finalize: function(</td><td class=PParameter nowrap>cancel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finish the geometry and call the “don [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousedown: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.touchstart"></a>touchstart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchstart: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.click"></a>click</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>click: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle clicks.   Clicks are stopped from propagati [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mousemove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dblclick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle double-clicks.   Double-clicks are [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.touchmove"></a>touchmove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchmove: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.modifyFeature"></a>modifyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>modifyFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Modify the existing geometry  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseup: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>H [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>drawFeature: function()</td></tr></table></blockquote><p>Render features on the temporary layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.touchend"></a>touchend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>touchend: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getGeometry: function()</td></tr></table></blockquote><p>Return the sketch geometry.   If <a href="#OpenLayers.Handler.Point.multi" class=LProperty id=link29 onMouseOver="ShowTip(event, 'tt22', 'link29')" onMouseOut="HideTip('tt22')">multi</a> is true, this will re [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.down"></a>down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>down: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mou [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.geometryClone"></a>geometryClone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>geometryClone: function()</td></tr></table></blockquote><p>Return a clone of the relevant geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt24', 'link31')" onMouseO [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mousedown"></a>mousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousedown: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse down.   Adjust the geomet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.up"></a>up</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>up: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouseup  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mousemove"></a>mousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mousemove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse move.   Adjust the geome [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mouseout"></a>mouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mouseout: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.mouseup"></a>mouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mouseup: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle mouse up.   Send the latest point in [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Point.passesTolerance"></a>passesTolerance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>passesTolerance: function(</td><td class="PParameter  prettyprint " nowrap>pixel1,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pixel2,</td>< [...]
 
 </div><!--Content-->
 
@@ -75,15 +101,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/Polygon-js.html b/doc/devdocs/files/OpenLayers/Handler/Polygon-js.html
index 79f4f5f..46a4534 100644
--- a/doc/devdocs/files/OpenLayers/Handler/Polygon-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/Polygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Polygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Polygon</h1><div class=CBody><p>Handler to draw a polygon on the map.   Polygon is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Path-js.html#OpenLayers.Handler.Path" class=LClass id=link7 onMouseOver="ShowTip(e [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.Polygon"></a>OpenLayers.<wbr>Handler.<wbr>Polygon</h1><div class=CBody><p>Handler to draw a polygon on the map.   Polygon is displayed on mouse down, moves on mouse move, and is finished on mouse up.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Path-js.html#OpenLayers.Handler.Path" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.holeModifier"></a>holeModifier</h3><div class=CBody><p>{String} Key modifier to trigger hole digitizing.   Acceptable values are “altKey”, “shiftKey”, or “ctrlKey”.   If not set, no hole digitizing will take place.   Default is null.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.drawingHole"></a>drawingHole</h3><div class=CBody><p>{Boolean} Currently drawing an interior ring.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.OpenLayers.Handler.Polygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Polygon</h3><div class=CBody><p>Create a Polygon Handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link9 onMou [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.OpenLayers.Handler.Polygon"></a>OpenLayers.<wbr>Handler.<wbr>Polygon</h3><div class=CBody><p>Create a Polygon Handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'lin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.createFeature"></a>createFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add temporary geometries</p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.createFeature"></a>createFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.addPoint"></a>addPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPoint: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.getCurrentPointIndex"></a>getCurrentPointIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCurrentPointIndex: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Number} The index of the most recently drawn point.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.enforceTopology"></a>enforceTopology</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>enforceTopology: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.finishGeometry"></a>finishGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finishGeometry: function()</td></tr></table></blockquote><p>Finish the geometry and send it back to the control.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.finalizeInteriorRing"></a>finalizeInteriorRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finalizeInteriorRing: function()</td></tr></table></blockquote><p>Enforces that new ring has some area and doesn’t contain vertices of any other rings.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.destroyFeature"></a>destroyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyFeature: function()</td></tr></table></blockquote><p>Destroy temporary geometries</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.restoreFeature"></a>restoreFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>restoreFeature: function(</td><td class="PParameter  prettyprint " nowrap>cancel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>drawFeature: function()</td></tr></table></blockquote><p>Render geometries on the temporary layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.destroyFeature"></a>destroyFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroyFeature: function(</td><td class="PParameter  prettyprint " nowrap>force</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.getSketch"></a>getSketch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSketch: function()</td></tr></table></blockquote><p>Return the sketch feature.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip( [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">drawFeature: function()</td></tr></table></blockquote><p>Render geometries on the temporary layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getGeometry: function()</td></tr></table></blockquote><p>Return the sketch geometry.   If <multi> is true, this will return a multi-part geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon" class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.getSketch"></a>getSketch</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSketch: function()</td></tr></table></blockquote><p>Return the sketch feature.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt17', 'link19') [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.dblclick"></a>dblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dblclick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handle double-clicks.   Finish the geom [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.Polygon.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getGeometry: function()</td></tr></table></blockquote><p>Return the sketch geometry.   If <multi> is true, this will return a multi-part geometry.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Geometry/Polygon-js.html#OpenLayers.Ge [...]
 
 </div><!--Content-->
 
@@ -37,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createFeature: function(</td><td class=PParameter nowrap>pixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Add temporary geometries</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createFeature: function(</td><td class="PParameter  prettyprint " nowrap>pixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Add temporary geometries</div></div><div class=CToolTip id="tt2"><div class=CFun [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Handler/RegularPolygon-js.html b/doc/devdocs/files/OpenLayers/Handler/RegularPolygon-js.html
index 6282818..aeee4a1 100644
--- a/doc/devdocs/files/OpenLayers/Handler/RegularPolygon-js.html
+++ b/doc/devdocs/files/OpenLayers/Handler/RegularPolygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Handler.RegularPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Handler.RegularPolygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</h1><div class=CBody><p>Handler to draw a regular polygon on the map.   Polygon is displayed on mouse down, moves or is modified on mouse move, and is finished on mouse up.  The handler triggers callbacks for ‘done’ and ‘cancel’.   Create a  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</h1><div class=CBody><p>Handler to draw a regular polygon on the map.   Polygon is displayed on mouse down, moves or is modified on mouse move, and is finished on mouse up.  The handler triggers callbacks for ‘done’ and ‘cancel’.   Create a new instance with the <a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.Properties"></a>Properties</h3></div></div>
 
@@ -41,37 +41,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</h3><div class=CBody><p>Create a new regular polygon handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Con [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.OpenLayers.Handler.RegularPolygon"></a>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</h3><div class=CBody><p>Create a new regular polygon handler.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>control</td><td class=CDLDescription>{<a href="../Control-js.html#OpenLayers.Control" class=LClass id=link23 onMouse [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOptions: function (</td><td class=PParameter nowrap>newOptions</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOptions: function (</td><td class="PParameter  prettyprint " nowrap>newOptions</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Turn on the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully activated</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Turn on the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully activated</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully deactivated</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Turn off the handler.</p><h4 class=CHeading>Return</h4><p>{Boolean} The handler was successfully deactivated</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.down"></a>down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>down: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Start drawing a new feature</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.down"></a>down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>down: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>S [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>move: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Respond to drag move events</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>R [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.up"></a>up</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>up: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finish drawing the feature</p><h4 class=CHeading>Parame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.up"></a>up</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>up: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finish  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.out"></a>out</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>out: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finish drawing the feature.</p><h4 class=CHeading>Pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.out"></a>out</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>out: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fini [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.createGeometry"></a>createGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createGeometry: function()</td></tr></table></blockquote><p>Create the new polygon geometry.   This is called at the start of the drag and at any point during the drag if the number of sides changes.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.createGeometry"></a>createGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createGeometry: function()</td></tr></table></blockquote><p>Create the new polygon geometry.   This is called at the start of the drag and at any point during the drag if the number of sides changes.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.modifyGeometry"></a>modifyGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>modifyGeometry: function()</td></tr></table></blockquote><p>Modify the polygon geometry in place.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.modifyGeometry"></a>modifyGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">modifyGeometry: function()</td></tr></table></blockquote><p>Modify the polygon geometry in place.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.calculateAngle"></a>calculateAngle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateAngle: function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.calculateAngle"></a>calculateAngle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateAngle: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>evt</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.cancel"></a>cancel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">cancel: function()</td></tr></table></blockquote><p>Finish the geometry and call the “cancel” callback.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.finalize"></a>finalize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>finalize: function()</td></tr></table></blockquote><p>Finish the geometry and call the “done” callback.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.finalize"></a>finalize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">finalize: function()</td></tr></table></blockquote><p>Finish the geometry and call the “done” callback.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear any rendered features on the temporary layer.   This is called when the handler is deactivated, canceled, or done (unless persist is true).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear any rendered features on the temporary layer.   This is called when the handler is deactivated, canceled, or done (unless persist is true).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.callback"></a>callback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>callback: function (</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>args</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Handler.RegularPolygon.callback"></a>callback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>callback: function (</td><td class="PParameter  prettyprint " nowrap>name,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>args</td><td class="PAfter [...]
 
 </div><!--Content-->
 
@@ -79,15 +79,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([18, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([17, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt3"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt3"><div class=CClass>Point geometry class.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Icon-js.html b/doc/devdocs/files/OpenLayers/Icon-js.html
index e0e7d53..417af7e 100644
--- a/doc/devdocs/files/OpenLayers/Icon-js.html
+++ b/doc/devdocs/files/OpenLayers/Icon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Icon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Icon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -33,25 +33,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Nullify references and remove event listeners to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Nullify references and remove event listeners to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Icon.OpenLayers.Icon" class=LConstructor id=link23 onMouseOver="ShowTip(event, 'tt5', 'link23')" onMouseOut="HideTip('tt5')">OpenLayers.Icon</a>} A fresh copy of the icon.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Icon.OpenLayers.Icon" class=LConstructor id=link23 onMouseOver="ShowTip(event, 'tt5', 'link23')" onMouseOut="HideTip('tt5')">OpenLayers.Icon</a>} A fresh copy of the [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CH [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl: function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl: function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Move the div to the given pixel.</p><h4 class=CHeading>Parameters</h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Move the div to the  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.erase"></a>erase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>erase: function()</td></tr></table></blockquote><p>Erase the underlying image element.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.erase"></a>erase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">erase: function()</td></tr></table></blockquote><p>Erase the underlying image element.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the icon’s opacity</p><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>move icon to passed in px.</p><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>move icon to  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the icon</p><h4 class=CHeading>Parameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide o [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the icon is drawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Icon.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the icon is drawn.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -59,15 +59,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Nullify references and remove event listeners to prevent circular references [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Nullify references and remove event listeners to preve [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Kinetic-js.html b/doc/devdocs/files/OpenLayers/Kinetic-js.html
new file mode 100644
index 0000000..0fea8a0
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Kinetic-js.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Kinetic.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPa [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Kinetic.js"></a>Kinetic.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Kinetic.js" >Kinetic.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Properties" >Properties</a></td><td class=SDesc [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="threshold"></a>threshold</h3><div class=CBody><p>In most cases changing the threshold isn’t needed.  In px/ms, default to 0.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="interval"></a>interval</h3><div class=CBody><p>{Integer} Interval in milliseconds between 2 steps in the “kinetic dragging”.  Defaults to 10 milliseconds.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="deceleration"></a>deceleration</h3><div class=CBody><p>{Float} the deseleration in px/ms², default to 0.0035.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="nbPoints"></a>nbPoints</h3><div class=CBody><p>{Integer} the number of points we use to calculate the kinetic initial values.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="delay"></a>delay</h3><div class=CBody><p>{Float} time to consider to calculate the kinetic initial values.  In ms, default to 200.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="points"></a>points</h3><div class=CBody><p>List of points use to calculate the kinetic initial values.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="timerId"></a>timerId</h3><div class=CBody><p>ID of the timer.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Kinetic"></a>OpenLayers.<wbr>Kinetic</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="begin"></a>begin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">begin: function()</td></tr></table></blockquote><p>Begins the dragging.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>xy</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates during the dragging.</ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="end"></a>end</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>end: function(</td><td class="PParameter  prettyprint " nowrap>xy</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ends the dragging, start the kinetic.</ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="move"></a>move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>move: function(</td><td class="PParameter  prettyprint " nowrap>info,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>callback</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">begin: function()</td></tr></table></blockquote>Begins the dragging.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td clas [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Lang-js.html b/doc/devdocs/files/OpenLayers/Lang-js.html
index 78395d0..df1b270 100644
--- a/doc/devdocs/files/OpenLayers/Lang-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote><p>Get the current language code.</p><h4 class=CHeading>Returns</h4><p>The current language code.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote><p>Get the current language code.</p><h4 class=CHeading>Returns</h4><p>The current language code.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.setCode"></a>setCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCode: function(</td><td class=PParameter nowrap>code</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the language code for string translation.   This [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.setCode"></a>setCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCode: function(</td><td class="PParameter  prettyprint " nowrap>code</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  pr [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Lang.OpenLayers.i18n"></a>OpenLayers.i18n</h3><div class=CBody><p>Alias for <a href="#OpenLayers.Lang.translate" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt3', 'link12')" onMouseOut="HideTip('tt3')">OpenLayers.Lang.translate</a>.   Looks up a key from a dictionary based on the current language string.  The value of <a href="#OpenLayers.Lang.getCode" class=LFunction id=link13 onMouseOver= [...]
 
@@ -35,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote>Get the current language code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCode: function(</td><td class=PParameter nowrap>code</ [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote>Get the current language code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCode: function( [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/ar-js.html b/doc/devdocs/files/OpenLayers/Lang/ar-js.html
index 20482d6..69db88b 100644
--- a/doc/devdocs/files/OpenLayers/Lang/ar-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/ar-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ar”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ar”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ar]"></a>OpenLayers.<span class=HB> </span>Lang[“ar”]</h1><div class=CBody><p>Dictionary for العربية.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ar]"></a>OpenLayers.<wbr>Lang[“ar”]</h1><div class=CBody><p>Dictionary for العربية.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/be-tarask-js.html b/doc/devdocs/files/OpenLayers/Lang/be-tarask-js.html
index f03e968..781d522 100644
--- a/doc/devdocs/files/OpenLayers/Lang/be-tarask-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/be-tarask-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“be-tarask”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“be-tarask”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[be-tarask]"></a>OpenLayers.<span class=HB> </span>Lang[“be-tarask”]</h1><div class=CBody><p>Dictionary for Беларуская (тарашкевіца).   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[be-tarask]"></a>OpenLayers.<wbr>Lang[“be-tarask”]</h1><div class=CBody><p>Dictionary for Беларуская (тарашкевіца).   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/bg-js.html b/doc/devdocs/files/OpenLayers/Lang/bg-js.html
index 670853b..523c343 100644
--- a/doc/devdocs/files/OpenLayers/Lang/bg-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/bg-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“bg”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“bg”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[bg]"></a>OpenLayers.<span class=HB> </span>Lang[“bg”]</h1><div class=CBody><p>Dictionary for Български.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[bg]"></a>OpenLayers.<wbr>Lang[“bg”]</h1><div class=CBody><p>Dictionary for Български.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/br-js.html b/doc/devdocs/files/OpenLayers/Lang/br-js.html
index 6416847..69f4ff0 100644
--- a/doc/devdocs/files/OpenLayers/Lang/br-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/br-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[br]"></a>OpenLayers.<span class=HB> </span>Lang[“br”]</h1><div class=CBody><p>Dictionary for Brezhoneg.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[br]"></a>OpenLayers.<wbr>Lang[“br”]</h1><div class=CBody><p>Dictionary for Brezhoneg.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/ca-js.html b/doc/devdocs/files/OpenLayers/Lang/ca-js.html
index cf7d89f..b27f398 100644
--- a/doc/devdocs/files/OpenLayers/Lang/ca-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/ca-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ca”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ca”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ca]"></a>OpenLayers.<span class=HB> </span>Lang[“ca”]</h1><div class=CBody><p>Dictionary for Catalan, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are norma [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ca]"></a>OpenLayers.<wbr>Lang[“ca”]</h1><div class=CBody><p>Dictionary for Catalan, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/cs-CZ-js.html b/doc/devdocs/files/OpenLayers/Lang/cs-CZ-js.html
index 9183322..064a956 100644
--- a/doc/devdocs/files/OpenLayers/Lang/cs-CZ-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/cs-CZ-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“cs-CZ”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“cs-CZ”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[cs-CZ]"></a>OpenLayers.<span class=HB> </span>Lang[“cs-CZ”]</h1><div class=CBody><p>Dictionary for Česky.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[cs-CZ]"></a>OpenLayers.<wbr>Lang[“cs-CZ”]</h1><div class=CBody><p>Dictionary for Česky.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatt [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/da-DK-js.html b/doc/devdocs/files/OpenLayers/Lang/da-DK-js.html
index bdaac89..c17162b 100644
--- a/doc/devdocs/files/OpenLayers/Lang/da-DK-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/da-DK-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“da-DK”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“da-DK”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[da-DK]"></a>OpenLayers.<span class=HB> </span>Lang[“da-DK”]</h1><div class=CBody><p>Dictionary for Danish.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[da-DK]"></a>OpenLayers.<wbr>Lang[“da-DK”]</h1><div class=CBody><p>Dictionary for Danish.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings format [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/de-js.html b/doc/devdocs/files/OpenLayers/Lang/de-js.html
index b30391e..7d093b8 100644
--- a/doc/devdocs/files/OpenLayers/Lang/de-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/de-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“de”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“de”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[de]"></a>OpenLayers.<span class=HB> </span>Lang[“de”]</h1><div class=CBody><p>Dictionary for Deutsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[de]"></a>OpenLayers.<wbr>Lang[“de”]</h1><div class=CBody><p>Dictionary for Deutsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/el-js.html b/doc/devdocs/files/OpenLayers/Lang/el-js.html
index 8bdf876..ae07348 100644
--- a/doc/devdocs/files/OpenLayers/Lang/el-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/el-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“el”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“el”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[el]"></a>OpenLayers.<span class=HB> </span>Lang[“el”]</h1><div class=CBody><p>Dictionary for Ελληνικά.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[el]"></a>OpenLayers.<wbr>Lang[“el”]</h1><div class=CBody><p>Dictionary for Ελληνικά.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/en-CA-js.html b/doc/devdocs/files/OpenLayers/Lang/en-CA-js.html
index b1b991b..1b44a81 100644
--- a/doc/devdocs/files/OpenLayers/Lang/en-CA-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/en-CA-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“en-CA”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“en-CA”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en-CA]"></a>OpenLayers.<span class=HB> </span>Lang[“en-CA”]</h1><div class=CBody><p>Dictionary for English-CA.   This dictionary inherits from the standard English dictionary.   Override only those entries with language specific to the CA region.</p><p>Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en-CA]"></a>OpenLayers.<wbr>Lang[“en-CA”]</h1><div class=CBody><p>Dictionary for English-CA.   This dictionary inherits from the standard English dictionary.   Override only those entries with language specific to the CA region.</p><p>Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/en-js.html b/doc/devdocs/files/OpenLayers/Lang/en-js.html
index eaf3be8..8de9d98 100644
--- a/doc/devdocs/files/OpenLayers/Lang/en-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/en-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“en”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“en”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en]"></a>OpenLayers.<span class=HB> </span>Lang[“en”]</h1><div class=CBody><p>Dictionary for English.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[en]"></a>OpenLayers.<wbr>Lang[“en”]</h1><div class=CBody><p>Dictionary for English.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/es-js.html b/doc/devdocs/files/OpenLayers/Lang/es-js.html
index bca7d31..9f0df6e 100644
--- a/doc/devdocs/files/OpenLayers/Lang/es-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/es-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“es”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“es”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[es]"></a>OpenLayers.<span class=HB> </span>Lang[“es”]</h1><div class=CBody><p>Dictionary for Spanish, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are norma [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[es]"></a>OpenLayers.<wbr>Lang[“es”]</h1><div class=CBody><p>Dictionary for Spanish, UTF8 encoding.  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/fi-js.html b/doc/devdocs/files/OpenLayers/Lang/fi-js.html
index eee9008..9560671 100644
--- a/doc/devdocs/files/OpenLayers/Lang/fi-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/fi-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“fi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“fi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fi]"></a>OpenLayers.<span class=HB> </span>Lang[“fi”]</h1><div class=CBody><p>Dictionary for Suomi.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or str [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fi]"></a>OpenLayers.<wbr>Lang[“fi”]</h1><div class=CBody><p>Dictionary for Suomi.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted for [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/fr-js.html b/doc/devdocs/files/OpenLayers/Lang/fr-js.html
index 313da70..05444a9 100644
--- a/doc/devdocs/files/OpenLayers/Lang/fr-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/fr-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“fr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“fr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fr]"></a>OpenLayers.<span class=HB> </span>Lang[“fr”]</h1><div class=CBody><p>Dictionary for Français.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fr]"></a>OpenLayers.<wbr>Lang[“fr”]</h1><div class=CBody><p>Dictionary for Français.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/fur-js.html b/doc/devdocs/files/OpenLayers/Lang/fur-js.html
index 8e4a3c9..3a47ab8 100644
--- a/doc/devdocs/files/OpenLayers/Lang/fur-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/fur-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“fur”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“fur”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fur]"></a>OpenLayers.<span class=HB> </span>Lang[“fur”]</h1><div class=CBody><p>Dictionary for Furlan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[fur]"></a>OpenLayers.<wbr>Lang[“fur”]</h1><div class=CBody><p>Dictionary for Furlan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/gl-js.html b/doc/devdocs/files/OpenLayers/Lang/gl-js.html
index 6f9ea2d..77eb8ab 100644
--- a/doc/devdocs/files/OpenLayers/Lang/gl-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/gl-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“gl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“gl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gl]"></a>OpenLayers.<span class=HB> </span>Lang[“gl”]</h1><div class=CBody><p>Dictionary for Galego.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gl]"></a>OpenLayers.<wbr>Lang[“gl”]</h1><div class=CBody><p>Dictionary for Galego.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/gsw-js.html b/doc/devdocs/files/OpenLayers/Lang/gsw-js.html
index 590d9e0..e1a2ad3 100644
--- a/doc/devdocs/files/OpenLayers/Lang/gsw-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/gsw-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“gsw”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“gsw”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gsw]"></a>OpenLayers.<span class=HB> </span>Lang[“gsw”]</h1><div class=CBody><p>Dictionary for Alemannisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal string [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[gsw]"></a>OpenLayers.<wbr>Lang[“gsw”]</h1><div class=CBody><p>Dictionary for Alemannisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings forma [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/hr-js.html b/doc/devdocs/files/OpenLayers/Lang/hr-js.html
index 42857f3..5094721 100644
--- a/doc/devdocs/files/OpenLayers/Lang/hr-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/hr-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“hr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“hr”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hr]"></a>OpenLayers.<span class=HB> </span>Lang[“hr”]</h1><div class=CBody><p>Dictionary for Hrvatski.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hr]"></a>OpenLayers.<wbr>Lang[“hr”]</h1><div class=CBody><p>Dictionary for Hrvatski.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/hsb-js.html b/doc/devdocs/files/OpenLayers/Lang/hsb-js.html
index 0712dce..f7033be 100644
--- a/doc/devdocs/files/OpenLayers/Lang/hsb-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/hsb-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“hsb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“hsb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hsb]"></a>OpenLayers.<span class=HB> </span>Lang[“hsb”]</h1><div class=CBody><p>Dictionary for Hornjoserbsce.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal stri [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hsb]"></a>OpenLayers.<wbr>Lang[“hsb”]</h1><div class=CBody><p>Dictionary for Hornjoserbsce.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings for [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/hu-js.html b/doc/devdocs/files/OpenLayers/Lang/hu-js.html
index e74868a..ffe5e62 100644
--- a/doc/devdocs/files/OpenLayers/Lang/hu-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/hu-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“hu”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“hu”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hu]"></a>OpenLayers.<span class=HB> </span>Lang[“hu”]</h1><div class=CBody><p>Dictionary for Magyar.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[hu]"></a>OpenLayers.<wbr>Lang[“hu”]</h1><div class=CBody><p>Dictionary for Magyar.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/ia-js.html b/doc/devdocs/files/OpenLayers/Lang/ia-js.html
index dac9d3b..dfe7b82 100644
--- a/doc/devdocs/files/OpenLayers/Lang/ia-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/ia-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ia”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ia”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ia]"></a>OpenLayers.<span class=HB> </span>Lang[“ia”]</h1><div class=CBody><p>Dictionary for Interlingua.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ia]"></a>OpenLayers.<wbr>Lang[“ia”]</h1><div class=CBody><p>Dictionary for Interlingua.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatt [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/id-js.html b/doc/devdocs/files/OpenLayers/Lang/id-js.html
index b292276..bdb75cf 100644
--- a/doc/devdocs/files/OpenLayers/Lang/id-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/id-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“id”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“id”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[id]"></a>OpenLayers.<span class=HB> </span>Lang[“id”]</h1><div class=CBody><p>Dictionary for Bahasa Indonesia.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal str [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[id]"></a>OpenLayers.<wbr>Lang[“id”]</h1><div class=CBody><p>Dictionary for Bahasa Indonesia.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/io-js.html b/doc/devdocs/files/OpenLayers/Lang/io-js.html
index c2e2bc5..081bf9b 100644
--- a/doc/devdocs/files/OpenLayers/Lang/io-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/io-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“io”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“io”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[io]"></a>OpenLayers.<span class=HB> </span>Lang[“io”]</h1><div class=CBody><p>Dictionary for Ido.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[io]"></a>OpenLayers.<wbr>Lang[“io”]</h1><div class=CBody><p>Dictionary for Ido.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted for u [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/is-js.html b/doc/devdocs/files/OpenLayers/Lang/is-js.html
index 43f394d..07e416d 100644
--- a/doc/devdocs/files/OpenLayers/Lang/is-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/is-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“is”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“is”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[is]"></a>OpenLayers.<span class=HB> </span>Lang[“is”]</h1><div class=CBody><p>Dictionary for Íslenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[is]"></a>OpenLayers.<wbr>Lang[“is”]</h1><div class=CBody><p>Dictionary for Íslenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/it-js.html b/doc/devdocs/files/OpenLayers/Lang/it-js.html
index aea2286..5cf5c14 100644
--- a/doc/devdocs/files/OpenLayers/Lang/it-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/it-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“it”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“it”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[it]"></a>OpenLayers.<span class=HB> </span>Lang[“it”]</h1><div class=CBody><p>Dictionary for Italian.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[it]"></a>OpenLayers.<wbr>Lang[“it”]</h1><div class=CBody><p>Dictionary for Italian.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/ja-js.html b/doc/devdocs/files/OpenLayers/Lang/ja-js.html
index 54f3822..7062e06 100644
--- a/doc/devdocs/files/OpenLayers/Lang/ja-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/ja-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ja”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ja”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ja]"></a>OpenLayers.<span class=HB> </span>Lang[“ja”]</h1><div class=CBody><p>Dictionary for 日本語.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ja]"></a>OpenLayers.<wbr>Lang[“ja”]</h1><div class=CBody><p>Dictionary for 日本語.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted for u [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/km-js.html b/doc/devdocs/files/OpenLayers/Lang/km-js.html
index 615c9c9..b909720 100644
--- a/doc/devdocs/files/OpenLayers/Lang/km-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/km-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“km”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“km”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[km]"></a>OpenLayers.<span class=HB> </span>Lang[“km”]</h1><div class=CBody><p>Dictionary for ភាសាខ្មែរ.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[km]"></a>OpenLayers.<wbr>Lang[“km”]</h1><div class=CBody><p>Dictionary for ភាសាខ្មែរ.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/ksh-js.html b/doc/devdocs/files/OpenLayers/Lang/ksh-js.html
index 6907696..178a45b 100644
--- a/doc/devdocs/files/OpenLayers/Lang/ksh-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/ksh-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ksh”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ksh”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ksh]"></a>OpenLayers.<span class=HB> </span>Lang[“ksh”]</h1><div class=CBody><p>Dictionary for Ripoarisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ksh]"></a>OpenLayers.<wbr>Lang[“ksh”]</h1><div class=CBody><p>Dictionary for Ripoarisch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings format [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/lt-js.html b/doc/devdocs/files/OpenLayers/Lang/lt-js.html
new file mode 100644
index 0000000..4b41f36
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Lang/lt-js.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“lt”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[lt]"></a>OpenLayers.<wbr>Lang[“lt”]</h1><div class=CBody><p>Dictionary for Lithuanian.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Lang/nb-js.html b/doc/devdocs/files/OpenLayers/Lang/nb-js.html
index 45762db..59f8983 100644
--- a/doc/devdocs/files/OpenLayers/Lang/nb-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/nb-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nb”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nb]"></a>OpenLayers.<span class=HB> </span>Lang[“nb”]</h1><div class=CBody><p>Dictionary for norwegian bokmål (Norway).  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are no [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nb]"></a>OpenLayers.<wbr>Lang[“nb”]</h1><div class=CBody><p>Dictionary for norwegian bokmål (Norway).  Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/nds-js.html b/doc/devdocs/files/OpenLayers/Lang/nds-js.html
index de57a6e..96c9607 100644
--- a/doc/devdocs/files/OpenLayers/Lang/nds-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/nds-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nds”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nds”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nds]"></a>OpenLayers.<span class=HB> </span>Lang[“nds”]</h1><div class=CBody><p>Dictionary for Plattdüütsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nds]"></a>OpenLayers.<wbr>Lang[“nds”]</h1><div class=CBody><p>Dictionary for Plattdüütsch.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings form [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/nl-js.html b/doc/devdocs/files/OpenLayers/Lang/nl-js.html
index ee3ace5..67bc79c 100644
--- a/doc/devdocs/files/OpenLayers/Lang/nl-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/nl-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nl”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nl]"></a>OpenLayers.<span class=HB> </span>Lang[“nl”]</h1><div class=CBody><p>Dictionary for Nederlands.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nl]"></a>OpenLayers.<wbr>Lang[“nl”]</h1><div class=CBody><p>Dictionary for Nederlands.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/nn-js.html b/doc/devdocs/files/OpenLayers/Lang/nn-js.html
index ca4fbf8..aeedd38 100644
--- a/doc/devdocs/files/OpenLayers/Lang/nn-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/nn-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“nn”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“nn”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nn]"></a>OpenLayers.<span class=HB> </span>Lang[“nn”]</h1><div class=CBody><p>Dictionary for ‪Norsk (nynorsk)‬.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[nn]"></a>OpenLayers.<wbr>Lang[“nn”]</h1><div class=CBody><p>Dictionary for ‪Norsk (nynorsk)‬.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/oc-js.html b/doc/devdocs/files/OpenLayers/Lang/oc-js.html
index f9bd051..fbc74de 100644
--- a/doc/devdocs/files/OpenLayers/Lang/oc-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/oc-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“oc”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“oc”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[oc]"></a>OpenLayers.<span class=HB> </span>Lang[“oc”]</h1><div class=CBody><p>Dictionary for Occitan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[oc]"></a>OpenLayers.<wbr>Lang[“oc”]</h1><div class=CBody><p>Dictionary for Occitan.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/pt-BR-js.html b/doc/devdocs/files/OpenLayers/Lang/pt-BR-js.html
index d6504cd..a5b176f 100644
--- a/doc/devdocs/files/OpenLayers/Lang/pt-BR-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/pt-BR-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“pt-br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“pt-br”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt-br]"></a>OpenLayers.<span class=HB> </span>Lang[“pt-br”]</h1><div class=CBody><p>Dictionary for Português do Brasil.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are n [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt-br]"></a>OpenLayers.<wbr>Lang[“pt-br”]</h1><div class=CBody><p>Dictionary for Português do Brasil.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/pt-js.html b/doc/devdocs/files/OpenLayers/Lang/pt-js.html
index 4d42294..c2bcb26 100644
--- a/doc/devdocs/files/OpenLayers/Lang/pt-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/pt-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“pt”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“pt”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt]"></a>OpenLayers.<span class=HB> </span>Lang[“pt”]</h1><div class=CBody><p>Dictionary for Português.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[pt]"></a>OpenLayers.<wbr>Lang[“pt”]</h1><div class=CBody><p>Dictionary for Português.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/ru-js.html b/doc/devdocs/files/OpenLayers/Lang/ru-js.html
index 9ae41a2..2a5a1c1 100644
--- a/doc/devdocs/files/OpenLayers/Lang/ru-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/ru-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“ru”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“ru”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ru]"></a>OpenLayers.<span class=HB> </span>Lang[“ru”]</h1><div class=CBody><p>Dictionary for Русский.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[ru]"></a>OpenLayers.<wbr>Lang[“ru”]</h1><div class=CBody><p>Dictionary for Русский.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/sk-js.html b/doc/devdocs/files/OpenLayers/Lang/sk-js.html
index 5d363a1..ab827fc 100644
--- a/doc/devdocs/files/OpenLayers/Lang/sk-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/sk-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“sk”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“sk”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sk]"></a>OpenLayers.<span class=HB> </span>Lang[“sk”]</h1><div class=CBody><p>Dictionary for Slovenčina.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sk]"></a>OpenLayers.<wbr>Lang[“sk”]</h1><div class=CBody><p>Dictionary for Slovenčina.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/sv-SE-js.html b/doc/devdocs/files/OpenLayers/Lang/sv-SE-js.html
index 3483bff..a1d303e 100644
--- a/doc/devdocs/files/OpenLayers/Lang/sv-SE-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/sv-SE-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“sv”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“sv”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sv]"></a>OpenLayers.<span class=HB> </span>Lang[“sv”]</h1><div class=CBody><p>Dictionary for Svenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[sv]"></a>OpenLayers.<wbr>Lang[“sv”]</h1><div class=CBody><p>Dictionary for Svenska.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted f [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/te-js.html b/doc/devdocs/files/OpenLayers/Lang/te-js.html
index a000da4..72812f5 100644
--- a/doc/devdocs/files/OpenLayers/Lang/te-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/te-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“te”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“te”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[te]"></a>OpenLayers.<span class=HB> </span>Lang[“te”]</h1><div class=CBody><p>Dictionary for తెలుగు.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[te]"></a>OpenLayers.<wbr>Lang[“te”]</h1><div class=CBody><p>Dictionary for తెలుగు.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatted fo [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/vi-js.html b/doc/devdocs/files/OpenLayers/Lang/vi-js.html
index b498326..a9a8f97 100644
--- a/doc/devdocs/files/OpenLayers/Lang/vi-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/vi-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“vi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“vi”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[vi]"></a>OpenLayers.<span class=HB> </span>Lang[“vi”]</h1><div class=CBody><p>Dictionary for Tiếng Việt.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings o [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[vi]"></a>OpenLayers.<wbr>Lang[“vi”]</h1><div class=CBody><p>Dictionary for Tiếng Việt.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or strings formatte [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/zh-CN-js.html b/doc/devdocs/files/OpenLayers/Lang/zh-CN-js.html
index 6bbd075..789be35 100644
--- a/doc/devdocs/files/OpenLayers/Lang/zh-CN-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/zh-CN-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“zh-CN”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“zh-CN”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-CN]"></a>OpenLayers.<span class=HB> </span>Lang[“zh-CN”]</h1><div class=CBody><p>Dictionary for Simplified Chinese.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are no [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-CN]"></a>OpenLayers.<wbr>Lang[“zh-CN”]</h1><div class=CBody><p>Dictionary for Simplified Chinese.   Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies are normal strings or st [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Lang/zh-TW-js.html b/doc/devdocs/files/OpenLayers/Lang/zh-TW-js.html
index faa756b..aac35b2 100644
--- a/doc/devdocs/files/OpenLayers/Lang/zh-TW-js.html
+++ b/doc/devdocs/files/OpenLayers/Lang/zh-TW-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Lang[“zh-TW”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Lang[“zh-TW”] - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pre [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-TW]"></a>OpenLayers.<span class=HB> </span>Lang[“zh-TW”]</h1><div class=CBody><p>Dictionary for Traditional Chinese.  (Used Mainly in Taiwan) Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.&nb [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Lang[zh-TW]"></a>OpenLayers.<wbr>Lang[“zh-TW”]</h1><div class=CBody><p>Dictionary for Traditional Chinese.  (Used Mainly in Taiwan) Keys for entries are used in calls to <a href="../Lang-js.html#OpenLayers.Lang.translate" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Lang.translate</a>.   Entry bodies  [...]
 
 </div><!--Content-->
 
@@ -19,15 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([19, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([18, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>key,</td></tr><tr><td></td><td class=PParameter nowrap>context</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a key from a dictionary based on the current language string. </di [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Looks up a  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer-js.html b/doc/devdocs/files/OpenLayers/Layer-js.html
index 9cff99f..66f90d9 100644
--- a/doc/devdocs/files/OpenLayers/Layer-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer"></a>OpenLayers.<span class=HB> </span>Layer</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer" >OpenLayers.<span class=HB> </span>Layer</a></td><td class=SDescription></td></tr><tr class="SGroup SInd [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer"></a>OpenLayers.<wbr>Layer</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer" >OpenLayers.<wbr>Layer</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Properties"></a>Properties</h3></div></div>
 
@@ -27,7 +27,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p><h4 cla [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what  [...]
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.RESOLUTION_PROPERTIES"></a>RESOLUTION_PROPERTIES</h3><div class=CBody><p>{Array} The properties that are used for calculating resolutions information.</p></div></div></div>
 
@@ -35,7 +35,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.map"></a>map</h3><div class=CBody><p>{<a href="Map-js.html#OpenLayers.Map" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt1', 'link43')" onMouseOut="HideTip('tt1')">OpenLayers.Map</a>} This variable is set when the layer is added to the map, via the accessor function setMap().</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.map"></a>map</h3><div class=CBody><p>{<a href="Map-js.html#OpenLayers.Map" class=LClass id=link44 onMouseOver="ShowTip(event, 'tt1', 'link44')" onMouseOut="HideTip('tt1')">OpenLayers.Map</a>} This variable is set when the layer is added to the map, via the accessor function setMap().</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} Whether or not the layer is a base layer.  This should be set individually by all subclasses.  Default is false</p></div></div></div>
 
@@ -45,29 +45,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.visibility"></a>visibility</h3><div class=CBody><p>{Boolean} The layer should be displayed in the map.   Default is true.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.attribution"></a>attribution</h3><div class=CBody><p>{String} Attribution string, displayed when an <a href="Control/Attribution-js.html#OpenLayers.Control.Attribution" class=LClass id=link44 onMouseOver="ShowTip(event, 'tt2', 'link44')" onMouseOut="HideTip('tt2')">OpenLayers.Control.Attribution</a> has been added to the map.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.attribution"></a>attribution</h3><div class=CBody><p>{String} Attribution string, displayed when an <a href="Control/Attribution-js.html#OpenLayers.Control.Attribution" class=LClass id=link45 onMouseOver="ShowTip(event, 'tt2', 'link45')" onMouseOut="HideTip('tt2')">OpenLayers.Control.Attribution</a> has been added to the map.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.inRange"></a>inRange</h3><div class=CBody><p>{Boolean} The current map resolution is within the layer’s min/max range.  This is set in <a href="Map-js.html#OpenLayers.Map.setCenter" class=LFunction id=link45 onMouseOver="ShowTip(event, 'tt41', 'link45')" onMouseOut="HideTip('tt41')">OpenLayers.Map.setCenter</a> whenever the zoom changes.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.inRange"></a>inRange</h3><div class=CBody><p>{Boolean} The current map resolution is within the layer’s min/max range.  This is set in <a href="Map-js.html#OpenLayers.Map.setCenter" class=LFunction id=link46 onMouseOver="ShowTip(event, 'tt42', 'link46')" onMouseOut="HideTip('tt42')">OpenLayers.Map.setCenter</a> whenever the zoom changes.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.imageOffset"></a>imageOffset</h3><div class=CBody><p>{<a href="BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt3', 'link46')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>} For layers with a gutter, the image offset represents displacement due to the gutter.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.imageOffset"></a>imageOffset</h3><div class=CBody><p>{<a href="BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link47 onMouseOver="ShowTip(event, 'tt3', 'link47')" onMouseOut="HideTip('tt3')">OpenLayers.Pixel</a>} For layers with a gutter, the image offset represents displacement due to the gutter.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.options"></a>options</h3><div class=CBody><p>{Object} An optional object whose properties will be set on the layer.  Any of the layer properties can be set as a property of the options object and sent to the constructor when the layer is created.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link47 onMouseOver="ShowTip(event, 'tt4', 'link47')" onMouseOut="HideTip('tt4')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for th [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link48 onMouseOver="ShowTip(event, 'tt4', 'link48')" onMouseOut="HideTip('tt4')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for th [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.gutter"></a>gutter</h3><div class=CBody><p>{Integer} Determines the width (in pixels) of the gutter around image tiles to ignore.   By setting this property to a non-zero value, images will be requested that are wider and taller than the tile size by a value of 2 x gutter.   This allows artifacts of rendering at tile edges to be ignored.   Set a gutter value that is equal to half the size o [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.projection"></a>projection</h3><div class=CBody><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link48 onMouseOver="ShowTip(event, 'tt5', 'link48')" onMouseOut="HideTip('tt5')">OpenLayers.Projection</a>} or {<a href="BaseTypes-js.html#OpenLayers.String" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt6', 'link49')" onMouseOut="HideTip('tt6')">String</a>} Set in the layer optio [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.projection"></a>projection</h3><div class=CBody><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt5', 'link49')" onMouseOut="HideTip('tt5')">OpenLayers.Projection</a>} or {<a href="BaseTypes-js.html#OpenLayers.String" class=LClass id=link50 onMouseOver="ShowTip(event, 'tt6', 'link50')" onMouseOut="HideTip('tt6')">String</a>} Set in the layer optio [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.units"></a>units</h3><div class=CBody><p>{String} The layer map units.   Defaults to ‘degrees’.   Possible values are ‘degrees’ (or ‘dd’), ‘m’, ‘ft’, ‘km’, ‘mi’, ‘inches’.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.scales"></a>scales</h3><div class=CBody><p>{Array}  An array of map scales in descending order.   The values in the array correspond to the map scale denominator.   Note that these values only make sense if the display (monitor) resolution of the client is correctly guessed by whomever is configuring the application.   In addition, the units property must also be set.  Use <a href="#Op [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.scales"></a>scales</h3><div class=CBody><p>{Array}  An array of map scales in descending order.   The values in the array correspond to the map scale denominator.   Note that these values only make sense if the display (monitor) resolution of the client is correctly guessed by whomever is configuring the application.   In addition, the units property must also be set.  Use <a href="#Op [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.resolutions"></a>resolutions</h3><div class=CBody><p>{Array} A list of map resolutions (map units per pixel) in descending order.   If this is not set in the layer constructor, it will be set based on other resolution related properties (maxExtent, maxResolution, maxScale, etc.).</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.maxExtent"></a>maxExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link52 onMouseOver="ShowTip(event, 'tt7', 'link52')" onMouseOut="HideTip('tt7')">OpenLayers.Bounds</a>}  The center of these bounds will not stray outside of the viewport extent during panning.   In addition, if <a href="#OpenLayers.Layer.displayOutsideMaxExtent" class=LProperty id=l [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.maxExtent"></a>maxExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link53 onMouseOver="ShowTip(event, 'tt7', 'link53')" onMouseOut="HideTip('tt7')">OpenLayers.Bounds</a>}  The center of these bounds will not stray outside of the viewport extent during panning.   In addition, if <a href="#OpenLayers.Layer.displayOutsideMaxExtent" class=LProperty id=l [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.minExtent"></a>minExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link54 onMouseOver="ShowTip(event, 'tt7', 'link54')" onMouseOut="HideTip('tt7')">OpenLayers.Bounds</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.minExtent"></a>minExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link55 onMouseOver="ShowTip(event, 'tt7', 'link55')" onMouseOut="HideTip('tt7')">OpenLayers.Bounds</a>}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.maxResolution"></a>maxResolution</h3><div class=CBody><p>{Float} Default max is 360 deg / 256 px, which corresponds to zoom level 0 on gmaps.   Specify a different value in the layer options if you are not using a geographic projection and displaying the whole world.</p></div></div></div>
 
@@ -91,75 +91,77 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.OpenLayers.Layer"></a>OpenLayers.<span class=HB> </span>Layer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} The layer name</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag onto the layer</td></tr></ta [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.OpenLayers.Layer"></a>OpenLayers.<wbr>Layer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} The layer name</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag onto the layer</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>destroy: function(</td><td class=PParameter nowrap>setNewBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Destroy is a destructor: this is to alleviate [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroy: function(</td><td class="PParameter  prettyprint " nowrap>setNewBaseLayer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getOptions"></a>getOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getOptions: function()</td></tr></table></blockquote><p>Extracts an object from the layer with the properties that were set as options, but updates them with the values currently set on the instance.</p><h4 class=CHeading>Returns</h4><p>{Object} the <a href="#OpenLayers.Layer.opt [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getOptions"></a>getOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getOptions: function()</td></tr></table></blockquote><p>Extracts an object from the layer with the properties that were set as options, but updates them with the values currently set on the instance.</p><h4 class=CHeading>Returns</h4><p>{Object} the <a href= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setName"></a>setName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setName: function(</td><td class=PParameter nowrap>newName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the new layer name for this layer.   Can tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setName"></a>setName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setName: function(</td><td class="PParameter  prettyprint " nowrap>newName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.addOptions"></a>addOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addOptions: function (</td><td class=PParameter nowrap>newOptions</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.addOptions"></a>addOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addOptions: function (</td><td class="PParameter  prettyprint " nowrap>newOptions,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>reinitialize</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote><p>This function can be implemented by subclasses</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote><p>This function can be implemented by subclasses</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>redraw: function()</td></tr></table></blockquote><p>Redraws the layer.   Returns true if the layer was redrawn, false if not.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer was redrawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>Redraws the layer.   Returns true if the layer was redrawn, false if not.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer was redrawn.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAfterParame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td class="PPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the layer.  This is done throu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.moveByPx"></a>moveByPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveByPx: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.afterAdd"></a>afterAdd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>afterAdd: function()</td></tr></table></blockquote><p>Called at the end of the map.addLayer sequence.   At this point, the map will have a base layer.   To be overridden by subclasses.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Just as setMap() allows each layer the possibility  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.afterAdd"></a>afterAdd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">afterAdd: function()</td></tr></table></blockquote><p>Called at the end of the map.addLayer sequence.   At this point, the map will have a base layer.   To be overridden by subclasses.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getImageSize"></a>getImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getImageSize: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Jus [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setTileSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the tile size based on the map size.&nbs [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getImageSize"></a>getImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getImageSize: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getVisibility"></a>getVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getVisibility: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer should be displayed (if in range).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setTileSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visibility</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the visibility flag for the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getVisibility"></a>getVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getVisibility: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer should be displayed (if in range).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the Layer</p><h4 class=CHeading>Paramete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visibility</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.calculateInRange"></a>calculateInRange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>calculateInRange: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer is displayable at the current map’s current resolution.  Note that if ‘alwaysInRange’ is true for the layer, this function will alwa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setIsBaseLayer"></a>setIsBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setIsBaseLayer: function(</td><td class=PParameter nowrap>isBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.calculateInRange"></a>calculateInRange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">calculateInRange: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} The layer is displayable at the current map’s current resolution.  Note that if ‘alwaysInRange’ is true for the layer, t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.initResolutions"></a>initResolutions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initResolutions: function()</td></tr></table></blockquote><p>This method’s responsibility is to set up the ‘resolutions’ array for the layer -- this array is what the layer will use to interface between the zoom levels of the map and the resolution dis [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setIsBaseLayer"></a>setIsBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setIsBaseLayer: function(</td><td class="PParameter  prettyprint " nowrap>isBaseLayer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.resolutionsFromScales"></a>resolutionsFromScales</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>resolutionsFromScales: function(</td><td class=PParameter nowrap>scales</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Derive resol [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.initResolutions"></a>initResolutions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initResolutions: function()</td></tr></table></blockquote><p>This method’s responsibility is to set up the ‘resolutions’ array for the layer -- this array is what the layer will use to interface between the zoom levels of the map  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.calculateResolutions"></a>calculateResolutions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateResolutions: function(</td><td class=PParameter nowrap>props</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate resolu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.resolutionsFromScales"></a>resolutionsFromScales</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>resolutionsFromScales: function(</td><td class="PParameter  prettyprint " nowrap>scales</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.calculateResolutions"></a>calculateResolutions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateResolutions: function(</td><td class="PParameter  prettyprint " nowrap>props</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link62 onMouseOver="ShowTip(event, 'tt7', 'link62')" onMouseOut="HideTip('tt7')">OpenLayers.Bounds</a>} A Bounds object which  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForExtent: function(</td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link63 onMouseOver="ShowTip(event, 'tt7', 'link63')" onMouseOut="HideTip('tt7')">OpenLayers.Bounds</a>}  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the data for the layer.  This function is to be implemented by subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bou [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForExtent: function(</td><td class="PParameter  prettyprint " nowrap>extent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getResolutionForZoom: function(</td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the data for the layer.  This function is to be implemented by subclasses.</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds- [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForResolution: function(</td><td class=PParameter nowrap>resolution,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getResolutionForZoom: function(</td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromViewPortPx: function (</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForResolution: function(</td><td class="PParameter  prettyprint " nowrap>resolution,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Retur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromViewPortPx: function (</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity for the entire layer (all i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZIndex"></a>getZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getZIndex: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} the z-index of this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setZIndex"></a>setZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setZIndex: function (</td><td class=PParameter nowrap>zIndex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.getZIndex"></a>getZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getZIndex: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} the z-index of this layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.adjustBounds"></a>adjustBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>adjustBounds: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function will take a bounds, and  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.setZIndex"></a>setZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setZIndex: function (</td><td class="PParameter  prettyprint " nowrap>zIndex</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.adjustBounds"></a>adjustBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>adjustBounds: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
 </div><!--Content-->
 
@@ -167,15 +169,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>The attribution control adds attribution from layers to the map display. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding= [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt2"><div class=CClass>The attribution control adds attribution from layers to the map display. </div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding= [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html b/doc/devdocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html
index 8d73bba..9008828 100644
--- a/doc/devdocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/ArcGIS93Rest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.ArcGIS93Rest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.ArcGIS93Rest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcGIS93Rest</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcGIS93Rest are used to display data from ESRI ArcGIS Server 9.3 (and up?)  Mapping Services using the REST API.  Create a new ArcGIS93Rest layer with the <a href="#OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Res [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<wbr>Layer.<wbr>ArcGIS93Rest</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcGIS93Rest are used to display data from ESRI ArcGIS Server 9.3 (and up?)  Mapping Services using the REST API.  Create a new ArcGIS93Rest layer with the <a href="#OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Rest" class=LConstructor id=link7 onMou [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.Constants"></a>Constants</h3></div></div>
 
@@ -23,7 +23,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcGIS93Rest</h3><div class=CBody><p>Create a new ArcGIS93Rest layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre>var arcims = new OpenLayers.Layer.ArcGIS93Rest("MyName",
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.OpenLayers.Layer.ArcGIS93Rest"></a>OpenLayers.<wbr>Layer.<wbr>ArcGIS93Rest</h3><div class=CBody><p>Create a new ArcGIS93Rest layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var arcims = new OpenLayers.Layer.ArcGIS93Rest("MyName",
                                    "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export",
                                    {
                                      layers: "0,1,2"
@@ -31,19 +31,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeadin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>C [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return an image url this layer.</p><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.setLayerFilter"></a>setLayerFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayerFilter: function (</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>queryDef</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.setLayerFilter"></a>setLayerFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayerFilter: function (</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>queryDef</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.clearLayerFilter"></a>clearLayerFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clearLayerFilter: function (</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Clears layer filt [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.clearLayerFilter"></a>clearLayerFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clearLayerFilter: function (</td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Catch changeParams [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGIS93Rest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
 </div><!--Content-->
 
@@ -51,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=P [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/ArcGISCache-js.html b/doc/devdocs/files/OpenLayers/Layer/ArcGISCache-js.html
new file mode 100644
index 0000000..fb59502
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Layer/ArcGISCache-js.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head> [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ArcGISCache.js"></a>ArcGISCache.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ArcGISCache.js" >ArcGISCache.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Properties" >Properties</a></td [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="url"></a>url</h3><div class=CBody><p>{String | Array} The base URL for the layer cache.   You can also provide a list of URL strings for the layer if your cache is available from multiple origins.   This must be set before the layer is drawn.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} The location of the tile origin for the cache.  An ArcGIS cache has it’s origin at the upper-left (lowest x value and highest y value of the coordinate system).   The units for the  [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt2', 'link14')" onMouseOut="HideTip('tt2')">OpenLayers.Size</a>} This size of each tile.  Defaults to 256 by 256 pixels.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="useAGS"></a>useAGS</h3><div class=CBody><p>{Boolean} Indicates if we are going to be accessing the ArcGIS Server (AGS) cache via an AGS MapServer or directly through HTTP.  When accessing via AGS the path structure uses a standard z/y/x structure.  But AGS actually stores the tile images on disk using a hex based folder structure that looks like “<a href="http://example.com/mylayer/L00/R00000000/C00000000. [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="type"></a>type</h3><div class=CBody><p>{String} Image type for the layer.   This becomes the filename extension in tile requests.   Default is “png” (generating a url like “<a href="http://example.com/mylayer/L00/R00000000/C00000000.png" class=LURL target=_top>http://example.com<wbr>/mylayer<wbr>/L00<wbr>/R00000000<wbr>/C00000000.png</a>”).</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="useScales"></a>useScales</h3><div class=CBody><p>{Boolean} Optional override to indicate that the layer should use ‘scale’ information returned from the server capabilities object instead of ‘resolution’ information.  This can be important if your tile server uses an unusual DPI for the tiles.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="overrideDPI"></a>overrideDPI</h3><div class=CBody><p>{Boolean} Optional override to change the OpenLayers.DOTS_PER_INCH setting based on the tile information in the server capabilities object.   This can be useful if your server has a non-standard DPI setting on its tiles, and you’re only using tiles with that DPI.   This value is used while OpenLayers is calculating resolution using scales, and is not nec [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcGISCache"></a>OpenLayers.<wbr>Layer.<wbr>ArcGISCache</h3><div class=CBody><p>Creates a new instance of this class</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td> [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getContainingTileCoords"></a>getContainingTileCoords</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getContainingTileCoords: function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>res</td><td cla [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="calculateMaxExtentWithExtent"></a>calculateMaxExtentWithExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateMaxExtentWithExtent: function(</td><td class="PParameter  prettyprint " nowrap>extent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getUpperLeftTileCoord"></a>getUpperLeftTileCoord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getUpperLeftTileCoord: function(</td><td class="PParameter  prettyprint " nowrap>res</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getLowerRightTileCoord"></a>getLowerRightTileCoord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLowerRightTileCoord: function(</td><td class="PParameter  prettyprint " nowrap>res</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMaxExtentForResolution"></a>getMaxExtentForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMaxExtentForResolution: function(</td><td class="PParameter  prettyprint " nowrap>res</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an exact clone of this  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMaxExtent: function()</td></tr></table></blockquote><p>Get this layer’s maximum extent.</p><h4 class=CHeading>Returns</h4><p>{OpenLayers.Bounds}</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getTileOrigin"></a>getTileOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTileOrigin: function()</td></tr></table></blockquote><p>Determine the origin for aligning the grid of tiles.  The origin will be derived from the layer’s <maxExtent> property.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/LonLat-js.htm [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine the URL for a t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="zeroPad"></a>zeroPad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zeroPad: function(</td><td class="PParameter  prettyprint " nowrap>num,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>len,</td></tr><tr><td></td><td class="PParameter  prettyprint " n [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getContainingTileCoords: function(</td>< [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Layer/ArcIMS-js.html b/doc/devdocs/files/OpenLayers/Layer/ArcIMS-js.html
index 14580e6..003d85d 100644
--- a/doc/devdocs/files/OpenLayers/Layer/ArcIMS-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/ArcIMS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.ArcIMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.ArcIMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcIMS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcIMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcIMS are used to display data from ESRI ArcIMS Mapping Services.  Create a new ArcIMS layer with the <a href="#OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onM [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.ArcIMS"></a>OpenLayers.<wbr>Layer.<wbr>ArcIMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.ArcIMS are used to display data from ESRI ArcIMS Mapping Services.  Create a new ArcIMS layer with the <a href="#OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS" class=LConstructor id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">OpenLayers.Lay [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Size for tiles.   Default is 512x512.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Size for tiles.   Default is 512x512.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.featureCoordSys"></a>featureCoordSys</h3><div class=CBody><p>{String} Code for feature coordinate system.   Default is “4326”.</p></div></div></div>
 
@@ -39,7 +39,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>ArcIMS</h3><div class=CBody><p>Create a new ArcIMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre>var arcims = new OpenLayers.Layer.ArcIMS(
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.OpenLayers.Layer.ArcIMS"></a>OpenLayers.<wbr>Layer.<wbr>ArcIMS</h3><div class=CBody><p>Create a new ArcIMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var arcims = new OpenLayers.Layer.ArcIMS(
     "Global Sample",
     "http://sample.avencia.com/servlet/com.esri.esrimap.Esrimap",
     {
@@ -53,17 +53,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return an image url this layer.</p><h4 class=CHead [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Re [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getURLasync"></a>getURLasync</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURLasync: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>scope,</td></tr><tr><td></td><td class=PParameter nowrap>prop,</td></tr><tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getURLasync"></a>getURLasync</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURLasync: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>scope,</td></tr><tr><td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getUrlOrImage"></a>getUrlOrImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getUrlOrImage: function(</td><td class=PParameter nowrap>output</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extract a url or image from t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getUrlOrImage"></a>getUrlOrImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getUrlOrImage: function(</td><td class="PParameter  prettyprint " nowrap>output</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.setLayerQuery"></a>setLayerQuery</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayerQuery: function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>querydef</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.setLayerQuery"></a>setLayerQuery</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayerQuery: function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>querydef</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getFeatureInfo"></a>getFeatureInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureInfo: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>options [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.getFeatureInfo"></a>getFeatureInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureInfo: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>layer,</td></tr [...]
     id: "ArcXML layer ID",  // the ArcXML layer ID
     query: {
         where: "STATE = 'PA'",  // the where clause of the query
@@ -71,9 +71,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
     }
 }</pre></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Object with non-default properties to set on the layer.  Supported properties are buffer, callback, scope, and any other properties applicable to the ArcXML format.   Set the ‘callback’ and ‘scope’ for an object and function to recieve the parsed features from ArcIMS.</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Retu [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.ArcIMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create  [...]
 
 </div><!--Content-->
 
@@ -81,15 +79,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpaddin [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Bing-js.html b/doc/devdocs/files/OpenLayers/Layer/Bing-js.html
new file mode 100644
index 0000000..e06f14a
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Layer/Bing-js.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Bing - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Bing"></a>OpenLayers.<wbr>Layer.Bing</h1><div class=CBody><p>Bing layer using direct tile access as provided by Bing Maps REST Services.  See <a href="http://msdn.microsoft.com/en-us/library/ff701713.aspx" class=LURL target=_top>http://msdn.microsoft.com<wbr>/en-us<wbr>/library<wbr>/ff701713.aspx</a> for more information.  Note: Terms of Service compliant use requires t [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.serverResolutions"></a>serverResolutions</h3><div class=CBody><p>{Array} the resolutions provided by the Bing servers.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.attributionTemplate"></a>attributionTemplate</h3><div class=CBody><p>{String}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.metadata"></a>metadata</h3><div class=CBody><p>{Object} Metadata for this layer, as returned by the callback script</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.type"></a>type</h3><div class=CBody><p>{String} The layer identifier.   Any non-birdseye imageryType from <a href="http://msdn.microsoft.com/en-us/library/ff701716.aspx" class=LURL target=_top>http://msdn.microsoft.com<wbr>/en-us<wbr>/library<wbr>/ff701716.aspx</a> can be used.   Default is “Road”.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.metadataParams"></a>metadataParams</h3><div class=CBody><p>{Object} Optional url parameters for the Get Imagery Metadata request as described here: <a href="http://msdn.microsoft.com/en-us/library/ff701716.aspx" class=LURL target=_top>http://msdn.microsoft.com<wbr>/en-us<wbr>/library<wbr>/ff701716.aspx</a></p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.OpenLayers.Layer.Bing"></a>OpenLayers.<wbr>Layer.Bing</h3><div class=CBody><p>Create a new Bing layer.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var road = new OpenLayers.Layer.Bing({
+    name: "My Bing Aerial Layer",
+    type: "Aerial",
+    key: "my-api-key-here",
+});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} Configuration properties for the layer.</td></tr></table><h4 class=CHeading>Required configuration properties</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>key</td><td class=CDLDescription>{String} Bing Maps API key for your application.  Get one a [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.loadMetadata"></a>loadMetadata</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMetadata: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.initLayer"></a>initLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initLayer: function()</td></tr></table></blockquote><p>Sets layer properties according to the metadata provided by the API</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cla [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.updateAttribution"></a>updateAttribution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateAttribution: function()</td></tr></table></blockquote><p>Updates the attribution according to the requirements outlined in <a href="http://gis.638310.n2.nabble.com/Bing-imagery-td5789168.html" class=LURL target=_top>http://gis.638310 [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setMap: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHe [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Bing.OpenLayers.Layer.Bing.processMetadata"></a>OpenLayers.<wbr>Layer.<wbr>Bing.<wbr>processMetadata</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Layer.Bing.processMetadata = function(</td><td class="PParameter  prettyprint " nowrap>metadata [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMetadata: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initLayer: function()</td></tr></table></blockquote>Sets layer properties according to the metadata provided by the API</ [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Layer/Boxes-js.html b/doc/devdocs/files/OpenLayers/Layer/Boxes-js.html
index 9b0419d..0a7509f 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Boxes-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Boxes-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Boxes - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Boxes - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Boxes"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Boxes</h1><div class=CBody><p>Draw divs as ‘boxes’ on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div cl [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Boxes"></a>OpenLayers.<wbr>Layer.<wbr>Boxes</h1><div class=CBody><p>Draw divs as ‘boxes’ on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspac [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.OpenLayers.Layer.Boxes"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Boxes</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag on [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.OpenLayers.Layer.Boxes"></a>OpenLayers.<wbr>Layer.<wbr>Boxes</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag onto the layer</td></tr></table></div> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.drawMarker"></a>drawMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate the pixel location for the ma [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.drawMarker"></a>drawMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Boxes.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
 </div><!--Content-->
 
@@ -29,15 +29,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calculate the pixel location for the marker, create it, and add it to the layer’s div</div></div><div class=CToolTip id="tt2 [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Calculate the pixel location for the marker, create it, and add it to the layer&rs [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/EventPane-js.html b/doc/devdocs/files/OpenLayers/Layer/EventPane-js.html
index 4697195..3b2e064 100644
--- a/doc/devdocs/files/OpenLayers/Layer/EventPane-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/EventPane-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.EventPane - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.EventPane - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.EventPane"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>EventPane</h1><div class=CBody><p>Base class for 3rd party layers.   Create a new event pane layer with the <a href="#OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane" class=LConstructor id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">OpenLayers.Layer.Even [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.EventPane"></a>OpenLayers.<wbr>Layer.<wbr>EventPane</h1><div class=CBody><p>Base class for 3rd party layers.   Create a new event pane layer with the <a href="#OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane" class=LConstructor id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">OpenLayers.Layer.EventPane</a> constructor.</p><h4 class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.Properties"></a>Properties</h3></div></div>
 
@@ -27,37 +27,39 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>EventPane</h3><div class=CBody><p>Create a new event pane layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescripti [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.OpenLayers.Layer.EventPane"></a>OpenLayers.<wbr>Layer.<wbr>EventPane</h3><div class=CBody><p>Create a new event pane layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra optio [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Deconstruct this layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the map property for the layer.  This is  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Se [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>On being removed from the map, we’l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.loadWarningMessage"></a>loadWarningMessage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadWarningMessage:function()</td></tr></table></blockquote><p>If we can’t load the map lib, then display an error message to the user and tell them where to go for help.</p><p>This function sets up the layout for the warning message.  Each 3r [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.loadWarningMessage"></a>loadWarningMessage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadWarningMessage:function()</td></tr></table></blockquote><p>If we can’t load the map lib, then display an error message to the user and tell them where to go for help.</p><p>This function sets up the layout for the warning  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><p>To be implemented by subclasses.</p><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><p>To be implemented by subclasses.</p><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the display on the pane</p><h4 class=CH [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.setZIndex"></a>setZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setZIndex: function (</td><td class=PParameter nowrap>zIndex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the z-index order for the pane.</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.setZIndex"></a>setZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setZIndex: function (</td><td class="PParameter  prettyprint " nowrap>zIndex</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PA [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.moveByPx"></a>moveByPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveByPx: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromViewPortPx: function (</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromViewPortPx: function (</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getOLLonLatFromMapObjectLonLat"></a>getOLLonLatFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLLonLatFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getMapObjectLonLatFromOLLonLat"></a>getMapObjectLonLatFromOLLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromOLLonLat: function(</td><td class=PParameter nowrap>olLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getOLLonLatFromMapObjectLonLat"></a>getOLLonLatFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLLonLatFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getOLPixelFromMapObjectPixel"></a>getOLPixelFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLPixelFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getMapObjectLonLatFromOLLonLat"></a>getMapObjectLonLatFromOLLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromOLLonLat: function(</td><td class="PParameter  prettyprint " nowrap>olLonLat</td><td class="PAfterParameters [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getMapObjectPixelFromOLPixel"></a>getMapObjectPixelFromOLPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromOLPixel: function(</td><td class=PParameter nowrap>olPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getOLPixelFromMapObjectPixel"></a>getOLPixelFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLPixelFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prett [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.EventPane.getMapObjectPixelFromOLPixel"></a>getMapObjectPixelFromOLPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromOLPixel: function(</td><td class="PParameter  prettyprint " nowrap>olPixel</td><td class="PAfterParameters  prett [...]
 
 </div><!--Content-->
 
@@ -65,15 +67,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Deconstruct this layer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td cl [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Deconstruct this layer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/FixedZoomLevels-js.html b/doc/devdocs/files/OpenLayers/Layer/FixedZoomLevels-js.html
index ebbbfe6..37c5126 100644
--- a/doc/devdocs/files/OpenLayers/Layer/FixedZoomLevels-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/FixedZoomLevels-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.FixedZoomLevels - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.FixedZoomLevels - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyP [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>FixedZoomLevels</h1><div class=CBody><p>Some Layers will already have established zoom levels (like google or ve).  Instead of trying to determine them and populate a resolutions[] Array with those values, we will hijack the resolution functionality here.</p><h4 class=CHeading>When you subcla [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<wbr>Layer.<wbr>FixedZoomLevels</h1><div class=CBody><p>Some Layers will already have established zoom levels (like google or ve).  Instead of trying to determine them and populate a resolutions[] Array with those values, we will hijack the resolution functionality here.</p><h4 class=CHeading>When you subclass FixedZoomLevels</h4><p>The initRe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>FixedZoomLevels</h3><div class=CBody><p>Create a new fixed zoom levels layer.</p></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.OpenLayers.Layer.FixedZoomLevels"></a>OpenLayers.<wbr>Layer.<wbr>FixedZoomLevels</h3><div class=CBody><p>Create a new fixed zoom levels layer.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.initResolutions"></a>initResolutions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initResolutions: function()</td></tr></table></blockquote><p>Populate the resolutions array</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.initResolutions"></a>initResolutions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initResolutions: function()</td></tr></table></blockquote><p>Populate the resolutions array</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote><p>Get the current map resolution</p><h4 class=CHeading>Returns</h4><p>{Float} Map units per Pixel</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote><p>Get the current map resolution</p><h4 class=CHeading>Returns</h4><p>{Float} Map units per Pixel</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function ()</td></tr></table></blockquote><p>Calculates using px-> lonlat translation functions on tl and br corners of viewport</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link7 onMouse [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function ()</td></tr></table></blockquote><p>Calculates using px-> lonlat translation functions on tl and br corners of viewport</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=L [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForResolution: function(</td><td class=PParameter nowrap>resolution</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForResolution: function(</td><td class="PParameter  prettyprint " nowrap>resolution</td><td class="PAfterParameters  prettyprint "nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getOLZoomFromMapObjectZoom"></a>getOLZoomFromMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLZoomFromMapObjectZoom: function(</td><td class=PParameter nowrap>moZoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getOLZoomFromMapObjectZoom"></a>getOLZoomFromMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLZoomFromMapObjectZoom: function(</td><td class="PParameter  prettyprint " nowrap>moZoom</td><td class="PAfterParameters  pretty [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getMapObjectZoomFromOLZoom"></a>getMapObjectZoomFromOLZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromOLZoom: function(</td><td class=PParameter nowrap>olZoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.FixedZoomLevels.getMapObjectZoomFromOLZoom"></a>getMapObjectZoomFromOLZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromOLZoom: function(</td><td class="PParameter  prettyprint " nowrap>olZoom</td><td class="PAfterParameters  pretty [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initResolutions: function()</td></tr></table></blockquote>Populate the resolutions array</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote>Get the current map resolution</div></div><div class=CToolTip id="tt3"><div  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initResolutions: function()</td></tr></table></blockquote>Populate the resolutions array</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote>Get the current map resolution</ [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/GML-js.html b/doc/devdocs/files/OpenLayers/Layer/GML-js.html
index 18d124d..1265b12 100644
--- a/doc/devdocs/files/OpenLayers/Layer/GML-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/GML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.GML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GML"></a>OpenLayers.<span class=HB> </span>Layer.GML</h1><div class=CBody><p>Create a vector layer by parsing a GML file.  The GML file is passed in as a parameter.  <b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with Protocol.HTTP and Strategy.Fixed.  Provide the protocol with a format parameter to get the parser you wan [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GML"></a>OpenLayers.<wbr>Layer.GML</h1><div class=CBody><p>Create a vector layer by parsing a GML file.  The GML file is passed in as a parameter.  <b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with Protocol.HTTP and Strategy.Fixed.  Provide the protocol with a format parameter to get the parser you want for your data.</ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.Properties"></a>Properties</h3></div></div>
 
@@ -23,21 +23,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.OpenLayers.Layer.GML"></a>OpenLayers.<span class=HB> </span>Layer.GML</h3><div class=CBody><p>Load and parse a single file on the web, according to the format provided via the ‘format’ option, defaulting to GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.OpenLayers.Layer.GML"></a>OpenLayers.<wbr>Layer.GML</h3><div class=CBody><p>Load and parse a single file on the web, according to the format provided via the ‘format’ option, defaulting to GML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CD [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visibility,</td></tr><tr><td></td><td class=PParameter nowrap>noEvent</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visibility,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>noEvent</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>minor</td><td class=PAfterParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.loadGML"></a>loadGML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadGML: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.loadGML"></a>loadGML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadGML: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl:function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the URL and reload the GML</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl:function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change th [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.requestSuccess"></a>requestSuccess</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>requestSuccess:function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Process GML after it has been [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.requestSuccess"></a>requestSuccess</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>requestSuccess:function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.requestFailure"></a>requestFailure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>requestFailure: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Process a failed loading of  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GML.requestFailure"></a>requestFailure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>requestFailure: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visibility,</td></tr><tr><td></td><td class=PParameter nowrap>noEvent</td><td class=PAfterParameters no [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visibility,</td></tr><tr><td></td><td class="PParameter  prettyprint " [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/GeoRSS-js.html b/doc/devdocs/files/OpenLayers/Layer/GeoRSS-js.html
index 3ccb0a4..0028992 100644
--- a/doc/devdocs/files/OpenLayers/Layer/GeoRSS-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/GeoRSS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.GeoRSS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GeoRSS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>GeoRSS</h1><div class=CBody><p>Add GeoRSS Point features to your map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.GeoRSS"></a>OpenLayers.<wbr>Layer.<wbr>GeoRSS</h1><div class=CBody><p>Add GeoRSS Point features to your map.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.Properties"></a>Properties</h3></div></div>
 
@@ -31,21 +31,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.OpenLayers.Layer.GeoRSS"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>GeoRSS</h3><div class=CBody><p>Create a GeoRSS Layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>location</td><td class=CDLDescription>{String}</td [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.OpenLayers.Layer.GeoRSS"></a>OpenLayers.<wbr>Layer.<wbr>GeoRSS</h3><div class=CBody><p>Create a GeoRSS Layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>location</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.loadRSS"></a>loadRSS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadRSS: function()</td></tr></table></blockquote><p>Start the load of the RSS data.  Don’t do this when we first add the layer, since we may not be visible at any point, and it would therefore be a waste.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.loadRSS"></a>loadRSS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadRSS: function()</td></tr></table></blockquote><p>Start the load of the RSS data.  Don’t do this when we first add the layer, since we may not be visible at any point, and it would therefore be a waste.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>minor</td><td class=PAfterPa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.parseData"></a>parseData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseData: function(</td><td class=PParameter nowrap>ajaxRequest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the data returned from the Eve [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.parseData"></a>parseData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseData: function(</td><td class="PParameter  prettyprint " nowrap>ajaxRequest</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.markerClick"></a>markerClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>markerClick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.markerClick"></a>markerClick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>markerClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.clearFeatures"></a>clearFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearFeatures: function()</td></tr></table></blockquote><p>Destroy all features in this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.GeoRSS.clearFeatures"></a>clearFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearFeatures: function()</td></tr></table></blockquote><p>Destroy all features in this layer.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -53,15 +53,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CClass>The icon represents a graphical icon on the screen. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CClass>The icon represents a graphical icon on the screen. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">des [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Google-js.html b/doc/devdocs/files/OpenLayers/Layer/Google-js.html
index 2588742..c96afe7 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Google-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Google-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Google - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Google - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Google"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="SphericalMercator-js.html#OpenLayers.Layer.SphericalMercator" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">OpenLayers.Layer.SphericalMercator</a></li><li><a href="EventPan [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Google"></a>OpenLayers.<wbr>Layer.<wbr>Google</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="SphericalMercator-js.html#OpenLayers.Layer.SphericalMercator" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">OpenLayers.Layer.SphericalMercator</a></li><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Constants"></a>Constants</h3></div></div>
 
@@ -33,49 +33,49 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google"></a>OpenLayers.<wbr>Layer.<wbr>Google</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} An optional object whose properties will be set [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Layer.Google.OpenLayers.Layer.Google" class=LConstructor >OpenLayers.Layer.Google</a>} An exact clone of this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Layer.Google.OpenLayers.Layer.Google" class=LConstructor >OpenLayers.Layer.Google</a>} An exact clone of this layer</p></d [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the visibility flag for  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setVisibility"></a>setVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the Layer</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAft [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity for the entire layer [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.removeGMapElements"></a>removeGMapElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>removeGMapElements: function()</td></tr></table></blockquote><p>Remove all elements added to the dom.   This should only be called if this is the last of the Google layers for the given map.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.removeGMapElements"></a>removeGMapElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeGMapElements: function()</td></tr></table></blockquote><p>Remove all elements added to the dom.   This should only be called if this is the last of the Google layers for the given map.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>On being removed from the map, also remove t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getOLBoundsFromMapObjectBounds"></a>getOLBoundsFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLBoundsFromMapObjectBounds: function(</td><td class=PParameter nowrap>moBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getOLBoundsFromMapObjectBounds"></a>getOLBoundsFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLBoundsFromMapObjectBounds: function(</td><td class="PParameter  prettyprint " nowrap>moBounds</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google.cache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.<span class=HB> </span>cache</h3><div class=CBody><p>{Object} Cache for elements that should only be created once per map.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google.cache"></a>OpenLayers.<wbr>Layer.<wbr>Google.<wbr>cache</h3><div class=CBody><p>{Object} Cache for elements that should only be created once per map.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.v2</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v2.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2"></a>OpenLayers.<wbr>Layer.<wbr>Google.v2</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v2.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Properties"></a>Properties</h3></div></div>
 
@@ -87,29 +87,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote><p>Load the GMap and register appropriate event listeners.  If we can’t load GMap2, then display a warning message.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote><p>Load the GMap and register appropriate event listeners.  If we can’t load GMap2, then display a warning message.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setGMapVisibility"></a>setGMapVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setGMapVisibility: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Display the GMap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setGMapVisibility"></a>setGMapVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setGMapVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapContainer"></a>getMapContainer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapContainer: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} the GMap container’s div</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapContainer"></a>getMapContainer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapContainer: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} the GMap container’s div</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class=PParameter nowrap>olBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class="PParameter  prettyprint " nowrap>olBounds</td><td class="PAfterParameters  p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragPanMapObject: function(</td><td class=PParameter nowrap>dX,</td></tr><tr><td></td><td class=PParameter nowrap>dY</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragPanMapObject: function(</td><td class="PParameter  prettyprint " nowrap>dX,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dY</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class=PParameter nowrap>moBounds</td><td class=PAfterParameters nowrap>)</td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class="PParameter  prettyprint " nowrap>moBounds</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterPar [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
 
 </div><!--Content-->
 
@@ -117,15 +117,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setVisibility: function(</td><td class=PParameter nowrap>visi [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setVisibility: functio [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Google/v3-js.html b/doc/devdocs/files/OpenLayers/Layer/Google/v3-js.html
index 00be93d..2d5649b 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Google/v3-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Google/v3-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google/v3.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></scri [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,52 +11,56 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="v3.js"></a>v3.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#v3.js" >v3.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr  [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="v3.js"></a>v3.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#v3.js" >v3.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.v3"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.v3</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v3.  Note that this layer configures the google.maps.map object with the “disableDefaultUI” option set to true.  Using UI controls that the Google Maps API provides is not supported by the OpenLayers API.</p></di [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Google.v3"></a>OpenLayers.<wbr>Layer.<wbr>Google.v3</h3><div class=CBody><p>Mixin providing functionality specific to the Google Maps API v3.  Note that this layer configures the google.maps.map object with the “disableDefaultUI” option set to true.  Using UI controls that the Google Maps API provides is not supported by the OpenLayers API.</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} It is not recommended to change the properties set here.  Note that Google.v3 layers only work when sphericalMercator is set to true.</p><blockquote><pre>{
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="DEFAULTS"></a>DEFAULTS</h3><div class=CBody><p>{Object} It is not recommended to change the properties set here.  Note that Google.v3 layers only work when sphericalMercator is set to true.</p><blockquote><pre class="prettyprint">{
     maxExtent: new OpenLayers.Bounds(
-        -128 * 156543.0339,
-        -128 * 156543.0339,
-        128 * 156543.0339,
-        128 * 156543.0339
+        -128 * 156543.03390625,
+        -128 * 156543.03390625,
+        128 * 156543.03390625,
+        128 * 156543.03390625
     ),
     sphericalMercator: true,
-    maxResolution: 156543.0339,
+    maxResolution: 156543.03390625,
     units: "m",
     projection: "EPSG:900913"
 }</pre></blockquote></div></div></div>
 
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="animationEnabled"></a>animationEnabled</h3><div class=CBody><p>{Boolean} If set to true, the transition between zoom levels will be animated (if supported by the GMaps API for the device used).  Set to false to match the zooming experience of other layer types.  Default is true.  Note that the GMaps API does not give us control over zoom animation, so if set to false, when zooming, this will make the layer  [...]
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote><p>Load the GMap and register appropriate event listeners.  If we can’t load GMap2, then display a warning message.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote><p>Load the GMap and register appropriate event listeners.  If we can’t load GMap2, then display a warning message.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="repositionMapElements"></a>repositionMapElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>repositionMapElements: function()</td></tr></table></blockquote><p>Waits until powered by and terms of use elements are available and then moves them so they are clickable.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="repositionMapElements"></a>repositionMapElements</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">repositionMapElements: function()</td></tr></table></blockquote><p>Waits until powered by and terms of use elements are available and then moves them so they are clickable.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setGMapVisibility"></a>setGMapVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setGMapVisibility: function(</td><td class=PParameter nowrap>visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Display the GMap container and associate [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setGMapVisibility"></a>setGMapVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setGMapVisibility: function(</td><td class="PParameter  prettyprint " nowrap>visible</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapContainer"></a>getMapContainer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapContainer: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} the GMap container’s div</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapContainer"></a>getMapContainer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapContainer: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} the GMap container’s div</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class=PParameter nowrap>olBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectBoundsFromOLBounds"></a>getMapObjectBoundsFromOLBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectBoundsFromOLBounds: function(</td><td class="PParameter  prettyprint " nowrap>olBounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettypr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  prettyp [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class=PParameter nowrap>moBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectZoomFromMapObjectBounds"></a>getMapObjectZoomFromMapObjectBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromMapObjectBounds: function(</td><td class="PParameter  prettyprint " nowrap>moBounds</td><td class="PAfterParameters  prettyprin [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>la [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up this layer.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -64,15 +68,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote>Load the GMap and register appropriate event listeners. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>repositionMapElements: function()</td></tr></table></blockquote>Waits until powered by and terms of use eleme [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote>Load the GMap and register appropriate event listeners. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">repositionMapElements: function()</td></tr></table></blockquote>W [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Grid-js.html b/doc/devdocs/files/OpenLayers/Layer/Grid-js.html
index 8cc0284..7bf6a12 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Grid-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Grid-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Grid - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Grid - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,69 +11,87 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Grid"></a>OpenLayers.<span class=HB> </span>Layer.Grid</h1><div class=CBody><p>Base class for layers that use a lattice of tiles.   Create a new grid layer with the <a href="#OpenLayers.Layer.Grid.OpenLayers.Layer.Grid" class=LConstructor id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">OpenLayers.Layer.Grid</a> constructor.</p><h4 class= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Grid"></a>OpenLayers.<wbr>Layer.Grid</h1><div class=CBody><p>Base class for layers that use a lattice of tiles.   Create a new grid layer with the <a href="#OpenLayers.Layer.Grid.OpenLayers.Layer.Grid" class=LConstructor id=link32 onMouseOver="ShowTip(event, 'tt31', 'link32')" onMouseOut="HideTip('tt31')">OpenLayers.Layer.Grid</a> constructor.</p><h4 class=CHeading>Inherits  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt1', 'link25')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt1', 'link33')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.grid"></a>grid</h3><div class=CBody><p>{Array(Array(<a href="../Tile-js.html#OpenLayers.Tile" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt2', 'link26')" onMouseOut="HideTip('tt2')">OpenLayers.Tile</a>))} This is an array of rows, each row is an array of tiles.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileOriginCorner"></a>tileOriginCorner</h3><div class=CBody><p>{String} If the <a href="#OpenLayers.Layer.Grid.tileOrigin" class=LProperty id=link34 onMouseOver="ShowTip(event, 'tt2', 'link34')" onMouseOut="HideTip('tt2')">tileOrigin</a> property is not provided, the tile origin will be derived from the layer’s <a href="../Layer-js.html#OpenLayers.Layer.maxExtent" class=LProperty id=link35 onMo [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt4', 'link37')" onMouseOut="HideTip('tt4')">OpenLayers.LonLat</a>} Optional origin for aligning the grid of tiles.  If provided, requests for tiles at all resolutions will be aligned with this location (no tiles shall overlap this locati [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileOptions"></a>tileOptions</h3><div class=CBody><p>{Object} optional configuration options for <a href="../Tile-js.html#OpenLayers.Tile" class=LClass id=link39 onMouseOver="ShowTip(event, 'tt5', 'link39')" onMouseOut="HideTip('tt5')">OpenLayers.Tile</a> instances created by this Layer, if supported by the tile class.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.grid"></a>grid</h3><div class=CBody><p>{Array(Array(<a href="../Tile-js.html#OpenLayers.Tile" class=LClass id=link40 onMouseOver="ShowTip(event, 'tt5', 'link40')" onMouseOut="HideTip('tt5')">OpenLayers.Tile</a>))} This is an array of rows, each row is an array of tiles.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.singleTile"></a>singleTile</h3><div class=CBody><p>{Boolean} Moves the layer into single-tile mode, meaning that one tile will be loaded.  The tile’s size will be determined by the ‘ratio’ property.  When the tile is dragged such that it does not cover the entire viewport, it is reloaded.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.ratio"></a>ratio</h3><div class=CBody><p>{Float} Used only when in single-tile mode, this specifies the ratio of the size of the single tile to the size of the map.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.buffer"></a>buffer</h3><div class=CBody><p>{Integer} Used only when in gridded mode, this specifies the number of extra rows and colums of tiles on each side which will surround the minimum grid tiles to cover the map.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.buffer"></a>buffer</h3><div class=CBody><p>{Integer} Used only when in gridded mode, this specifies the number of extra rows and colums of tiles on each side which will surround the minimum grid tiles to cover the map.  For very slow loading layers, a larger value may increase performance somewhat when dragging, but will increase bandwidth use significantly.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.numLoadingTiles"></a>numLoadingTiles</h3><div class=CBody><p>{Integer} How many tiles are still loading?</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.tileLoadingDelay"></a>tileLoadingDelay</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Integer}</td><td class=CDLDescription>Number of milliseconds before we shift and load tiles.  Default is 100.</td></tr></table></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.timerId"></a>timerId</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Number}</td><td class=CDLDescription>The id of the tileLoadingDelay timer.</td></tr></table></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.OpenLayers.Layer.Grid"></a>OpenLayers.<span class=HB> </span>Layer.Grid</h3><div class=CBody><p>Create a new grid layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>para [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.OpenLayers.Layer.Grid"></a>OpenLayers.<wbr>Layer.Grid</h3><div class=CBody><p>Create a new grid layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=C [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct the layer and clear the grid.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Deconstruct the layer and clear the grid.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.clearGrid"></a>clearGrid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearGrid:function()</td></tr></table></blockquote><p>Go through and remove all tiles from the grid, calling destroy() on each of them to kill circular references</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.clearGrid"></a>clearGrid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearGrid:function()</td></tr></table></blockquote><p>Go through and remove all tiles from the grid, calling destroy() on each of them to kill circular references</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.moveByPx"></a>moveByPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveByPx: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfterParameters  prett [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Parame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.scheduleMoveGriddedTiles"></a>scheduleMoveGriddedTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">scheduleMoveGriddedTiles: function()</td></tr></table></blockquote><p>Schedule the move of tiles.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAfterP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setTileSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.setTileSize"></a>setTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setTileSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check if we are in singleTile mode and  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getGridBounds"></a>getGridBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getGridBounds: function()</td></tr></table></blockquote><p>Deprecated.  This function will be removed in 3.0.  Please use getTilesBounds() instead.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bou [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getGridBounds"></a>getGridBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getGridBounds: function()</td></tr></table></blockquote><p>Deprecated.  This function will be removed in 3.0.  Please use getTilesBounds() instead.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTilesBounds"></a>getTilesBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTilesBounds: function()</td></tr></table></blockquote><p>Return the bounds of the tile grid.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt3 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTilesBounds"></a>getTilesBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getTilesBounds: function()</td></tr></table></blockquote><p>Return the bounds of the tile grid.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt25', 'link31')" onMouse [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.initSingleTile"></a>initSingleTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initSingleTile: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.initSingleTile"></a>initSingleTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initSingleTile: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateGridLayout: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>orig [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateGridLayout: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTileOrigin"></a>getTileOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTileOrigin: function()</td></tr></table></blockquote><p>Determine the origin for aligning the grid of tiles.   If a <a href="#OpenLayers.Layer.Grid.tileOrigin" class=LProperty id=link49 onMouseOver="ShowTip(event, 'tt2', 'link49')" onMouse [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.initGriddedTiles"></a>initGriddedTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initGriddedTiles:function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.initGriddedTiles"></a>initGriddedTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initGriddedTiles:function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMaxExtent: function()</td></tr></table></blockquote><p>Get this layer’s maximum extent.  (Implemented as a getter for potential specific implementations in sub-classes.)</p><h4 class=CHeading>Returns</h4><p>{OpenLayers.Bounds}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMaxExtent: function()</td></tr></table></blockquote><p>Get this layer’s maximum extent.  (Implemented as a getter for potential specific implementations in sub-classes.)</p><h4 class=CHeading>Returns</h4><p>{OpenLayers.Bounds}</p></div [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.spiralTileLoad"></a>spiralTileLoad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>spiralTileLoad: function()</td></tr></table></blockquote><p>Starts at the top right corner of the grid and proceeds in a spiral towards the center, adding tiles one at a time to the beginning of a queue.</p><p>Once all the grid’s tiles have been added to the qu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.spiralTileLoad"></a>spiralTileLoad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">spiralTileLoad: function()</td></tr></table></blockquote><p>Starts at the top right corner of the grid and proceeds in a spiral towards the center, adding tiles one at a time to the beginning of a queue.</p><p>Once all the grid’s tiles hav [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bloc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTile:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.addTileMonitoringHooks"></a>addTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTileMonitoringHooks: function(</td><td class=PParameter nowrap>tile</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.addTileMonitoringHooks"></a>addTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTileMonitoringHooks: function(</td><td class="PParameter  prettyprint " nowrap>tile</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.removeTileMonitoringHooks"></a>removeTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeTileMonitoringHooks: function(</td><td class=PParameter nowrap>tile</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.removeTileMonitoringHooks"></a>removeTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeTileMonitoringHooks: function(</td><td class="PParameter  prettyprint " nowrap>tile</td><td class="PAfterParameters  prettyprint "nowrap>)< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.moveGriddedTiles"></a>moveGriddedTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveGriddedTiles: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.moveGriddedTiles"></a>moveGriddedTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">moveGriddedTiles: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.shiftRow"></a>shiftRow</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>shiftRow:function(</td><td class=PParameter nowrap>prepend</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Shifty grid work</p><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.shiftRow"></a>shiftRow</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>shiftRow:function(</td><td class="PParameter  prettyprint " nowrap>prepend</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.shiftColumn"></a>shiftColumn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>shiftColumn: function(</td><td class=PParameter nowrap>prepend</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Shift grid work in the other dimensi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.shiftColumn"></a>shiftColumn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>shiftColumn: function(</td><td class="PParameter  prettyprint " nowrap>prepend</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.removeExcessTiles"></a>removeExcessTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeExcessTiles: function(</td><td class=PParameter nowrap>rows,</td></tr><tr><td></td><td class=PParameter nowrap>columns</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.removeExcessTiles"></a>removeExcessTiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeExcessTiles: function(</td><td class="PParameter  prettyprint " nowrap>rows,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>columns</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote><p>For singleTile layers, this will set a new tile size according to the dimensions of the map pane.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote><p>For singleTile layers, this will set a new tile size according to the dimensions of the map pane.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getTileBounds: function(</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns The tile bounds for [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Grid.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTileBounds: function(</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
 </div><!--Content-->
 
@@ -81,15 +99,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>This is a class designed to designate a single tile, however it is explicitly designed to do relatively little. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Deconstruct the layer and cle [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CProperty>{OpenLayers.LonLat} Optional origin for aligning the grid of tiles. </div></div><div class=CToolTip id="tt3"><div class=CProperty>{OpenLayers.Bounds}  The center of these bounds will not stray outside of the viewport extent during panning. </div></div><div class=CToolTip id="tt4"><div class=CClass>This class represents a longitu [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/HTTPRequest-js.html b/doc/devdocs/files/OpenLayers/Layer/HTTPRequest-js.html
index 8e95971..5ebf228 100644
--- a/doc/devdocs/files/OpenLayers/Layer/HTTPRequest-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/HTTPRequest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.HTTPRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.HTTPRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>HTTPRequest</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<wbr>Layer.<wbr>HTTPRequest</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td c [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Constants"></a>Constants</h3></div></div>
 
@@ -23,27 +23,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.params"></a>params</h3><div class=CBody><p>{Object} Hashtable of key/value parameters</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.reproject"></a>reproject</h3><div class=CBody><p><b>Deprecated</b>.  See <a href="http://trac.openlayers.org/wiki/SpatialMercator" class=LURL target=_top>http://trac.openlayers.org/wiki/SpatialMercator</a> for information on the replacement for this functionality.  {Boolean} Whether layer should reproject itself based on base layer locations.  This allows reprojection onto comme [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.reproject"></a>reproject</h3><div class=CBody><p><b>Deprecated</b>.  See <a href="http://docs.openlayers.org/library/spherical_mercator.html" class=LURL target=_top>http://docs.openlayers.org<wbr>/library<wbr>/spherical_mercator.html</a> for information on the replacement for this functionality.  {Boolean} Whether layer should reproject itself based on base layer locations.  Thi [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>HTTPRequest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{Array(String) or String}</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.OpenLayers.Layer.HTTPRequest"></a>OpenLayers.<wbr>Layer.<wbr>HTTPRequest</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{Array(String) or String}</td></tr><tr><td class=CDLEntry>params</t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl: function(</td><td class=PParameter nowrap>newUrl</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl: function(</td><td class="PParameter  prettyprint " nowrap>newUrl</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>redraw: function(</td><td class=PParameter nowrap>force</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Redraws the layer.   Returns true if the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>redraw: function(</td><td class="PParameter  prettyprint " nowrap>force</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.selectUrl"></a>selectUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>selectUrl: function(</td><td class=PParameter nowrap>paramString,</td></tr><tr><td></td><td class=PParameter nowrap>urls</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.selectUrl"></a>selectUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>selectUrl: function(</td><td class="PParameter  prettyprint " nowrap>paramString,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>urls</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters now [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.HTTPRequest.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " [...]
 
 </div><!--Content-->
 
@@ -51,15 +51,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters no [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  pre [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Image-js.html b/doc/devdocs/files/OpenLayers/Layer/Image-js.html
index 534f3f2..f62d937 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Image-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Image-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Image"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Image</h1><div class=CBody><p>Instances of OpenLayers.Layer.Image are used to display data from a web accessible image as a map layer.   Create a new image layer with the <a href="#OpenLayers.Layer.Image.OpenLayers.Layer.Image" class=LConstructor id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Image"></a>OpenLayers.<wbr>Layer.<wbr>Image</h1><div class=CBody><p>Instances of OpenLayers.Layer.Image are used to display data from a web accessible image as a map layer.   Create a new image layer with the <a href="#OpenLayers.Layer.Image.OpenLayers.Layer.Image" class=LConstructor id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">OpenLa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.Properties"></a>Properties</h3></div></div>
 
@@ -29,25 +29,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.OpenLayers.Layer.Image"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Image</h3><div class=CBody><p>Create a new image layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescript [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.OpenLayers.Layer.Image"></a>OpenLayers.<wbr>Layer.<wbr>Image</h3><div class=CBody><p>Create a new image layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Relative or absolute pa [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Paramt [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAfter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.addTileMonitoringHooks"></a>addTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTileMonitoringHooks: function(</td><td class=PParameter nowrap>tile</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.addTileMonitoringHooks"></a>addTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTileMonitoringHooks: function(</td><td class="PParameter  prettyprint " nowrap>tile</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.removeTileMonitoringHooks"></a>removeTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeTileMonitoringHooks: function(</td><td class=PParameter nowrap>tile</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.removeTileMonitoringHooks"></a>removeTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeTileMonitoringHooks: function(</td><td class="PParameter  prettyprint " nowrap>tile</td><td class="PAfterParameters  prettyprint "nowrap>) [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl: function(</td><td class=PParameter nowrap>newUrl</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cell [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl: function(</td><td class="PParameter  prettyprint " nowrap>newUrl</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The url we return is always the same (the image its [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Image.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>The [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Protot [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Proto [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/KaMap-js.html b/doc/devdocs/files/OpenLayers/Layer/KaMap-js.html
index 557a2dd..a255a0b 100644
--- a/doc/devdocs/files/OpenLayers/Layer/KaMap-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/KaMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.KaMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.KaMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMap"></a>OpenLayers.<wbr>Layer.<wbr>KaMap</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><tabl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.Properties"></a>Properties</h3></div></div>
 
@@ -27,19 +27,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap"></a>OpenLayers.<wbr>Layer.<wbr>KaMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescription>{Object} [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateGridLayout: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>ori [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateGridLayout: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspaci [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getTileBounds: function(</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns The tile bounds fo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMap.getTileBounds"></a>getTileBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTileBounds: function(</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 </div><!--Content-->
 
@@ -47,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table bord [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/KaMapCache-js.html b/doc/devdocs/files/OpenLayers/Layer/KaMapCache-js.html
index d0101c2..52b91b0 100644
--- a/doc/devdocs/files/OpenLayers/Layer/KaMapCache-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/KaMapCache-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.KaMapCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.KaMapCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMapCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMapCache</h1><div class=CBody><p>This class is designed to talk directly to a web-accessible ka-Map cache generated by the precache2.php script.</p><p>To create a a new KaMapCache layer, you must indicate also the “i” parameter (that will be used to calculate the file extension), and anot [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.KaMapCache"></a>OpenLayers.<wbr>Layer.<wbr>KaMapCache</h1><div class=CBody><p>This class is designed to talk directly to a web-accessible ka-Map cache generated by the precache2.php script.</p><p>To create a a new KaMapCache layer, you must indicate also the “i” parameter (that will be used to calculate the file extension), and another special parameter, object names  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.Constants"></a>Constants</h3></div></div>
 
@@ -21,11 +21,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.OpenLayers.Layer.KaMapCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMapCache</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CD [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.OpenLayers.Layer.KaMapCache"></a>OpenLayers.<wbr>Layer.<wbr>KaMapCache</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.KaMapCache.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
 </div><!--Content-->
 
@@ -33,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for layers that use a lattice of tiles. </div></div><div class= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CClass>Base class for layers that [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/MapGuide-js.html b/doc/devdocs/files/OpenLayers/Layer/MapGuide-js.html
index dcad78d..7207790 100644
--- a/doc/devdocs/files/OpenLayers/Layer/MapGuide-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/MapGuide-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MapGuide - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MapGuide - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapGuide"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapGuide are used to display data from a MapGuide OS instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapGuide"></a>OpenLayers.<wbr>Layer.<wbr>MapGuide</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapGuide are used to display data from a MapGuide OS instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Layer.Grid</a></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} Treat this layer as a base layer.   Default is true.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.useHttpTile"></a>useHttpTile</h3><div class=CBody><p>{Boolean} use a tile cache exposed directly via a webserver rather than the via mapguide server.  This does require extra configuration on the Mapguide Server, and will only work when singleTile is false.  The url for the layer must be set to the webserver path rather than the Mapguide mapagent.  See <a href="http://trac.osgeo.or [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.useHttpTile"></a>useHttpTile</h3><div class=CBody><p>{Boolean} use a tile cache exposed directly via a webserver rather than the via mapguide server.  This does require extra configuration on the Mapguide Server, and will only work when singleTile is false.  The url for the layer must be set to the webserver path rather than the Mapguide mapagent.  See <a href="http://trac.osgeo.or [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.singleTile"></a>singleTile</h3><div class=CBody><p>{Boolean} use tile server or request single tile image.</p></div></div></div>
 
@@ -37,27 +37,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.defaultSize"></a>defaultSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Tile size as produced by MapGuide server</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.defaultSize"></a>defaultSize</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Tile size as produced by MapGuide server</p></div></div></div>
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Constructor"></a>Constructor</h3></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.tileOriginCorner"></a>tileOriginCorner</h3><div class=CBody><p>{String} MapGuide tile server uses top-left as tile origin</p></div></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.OpenLayers.Layer.MapGuide"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</h3><div class=CBody><p>Create a new Mapguide layer, either tiled or untiled.</p><p>For tiled layers, the ‘groupName’ and ‘mapDefinition’ values must be specified as parameters in the constructor.</p><p>For untiled base layers, specify either combination of ‘mapN [...]
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.MapGuide_OS_uses_a_DPI_value_and_degrees_to_meters_conversion"></a>MapGuide OS uses a DPI value and degrees to meters conversion</h3><div class=CBody><p>factor that are different than the defaults used in OpenLayers, so these must be adjusted accordingly in your application.  See the MapGuide example for how to set these values for MGOS.</p><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.OpenLayers.Layer.MapGuide"></a>OpenLayers.<wbr>Layer.<wbr>MapGuide</h3><div class=CBody><p>Create a new Mapguide layer, either tiled or untiled.</p><p>For tiled layers, the ‘groupName’ and ‘mapDefinition’ values must be specified as parameters in the constructor.</p><p>For untiled base layers, specify either combination of ‘mapName’ and ‘session’ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Re [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creat [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a query string for this layer</p><h4 cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.getImageFilePath"></a>getImageFilePath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getImageFilePath:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowrap>)</td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.getImageFilePath"></a>getImageFilePath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getImageFilePath:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>altUrl< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateGridLayout: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParamete [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapGuide.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateGridLayout: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
 </div><!--Content-->
 
@@ -65,15 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this la [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/MapServer-js.html b/doc/devdocs/files/OpenLayers/Layer/MapServer-js.html
index 82bf0e7..1023988 100644
--- a/doc/devdocs/files/OpenLayers/Layer/MapServer-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/MapServer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MapServer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MapServer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapServer are used to display data from a MapServer CGI instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer"></a>OpenLayers.<wbr>Layer.<wbr>MapServer</h1><div class=CBody><p>Instances of OpenLayers.Layer.MapServer are used to display data from a MapServer CGI instance.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Layer.Grid< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Constants"></a>Constants</h3></div></div>
 
@@ -19,17 +19,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.OpenLayers.Layer.MapServer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer</h3><div class=CBody><p>Create a new MapServer layer object</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.OpenLayers.Layer.MapServer"></a>OpenLayers.<wbr>Layer.<wbr>MapServer</h3><div class=CBody><p>Create a new MapServer layer object</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} B [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>R [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Crea [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a query string for this layer</p><h4 cl [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowra [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " n [...]
 
 </div><!--Content-->
 
@@ -37,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/MapServer/Untiled-js.html b/doc/devdocs/files/OpenLayers/Layer/MapServer/Untiled-js.html
index 68ba438..78d677b 100644
--- a/doc/devdocs/files/OpenLayers/Layer/MapServer/Untiled-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/MapServer/Untiled-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MapServer.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MapServer.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOn [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer.<span class=HB> </span>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.MapServer and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../MapServer-js.html#OpenL [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>MapServer.<wbr>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.MapServer and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../MapServer-js.html#OpenLayers.Layer.MapServer" class=LClass id=link2 onMouseOv [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer.<span class=HB> </span>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDe [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>MapServer.<wbr>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>par [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CH [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MapServer.Untiled.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.MapServer are used t [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CClass>In [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Markers-js.html b/doc/devdocs/files/OpenLayers/Layer/Markers-js.html
index f59f29a..d495666 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Markers-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Markers-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Markers - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Markers - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Markers"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Markers</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=ST [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Markers"></a>OpenLayers.<wbr>Layer.<wbr>Markers</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEn [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.Properties"></a>Properties</h3></div></div>
 
@@ -23,25 +23,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.OpenLayers.Layer.Markers"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Markers</h3><div class=CBody><p>Create a Markers layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.OpenLayers.Layer.Markers"></a>OpenLayers.<wbr>Layer.<wbr>Markers</h3><div class=CBody><p>Create a Markers layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable of extra options to tag on [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity for all the markers [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAft [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.addMarker"></a>addMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.addMarker"></a>addMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.removeMarker"></a>removeMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.clearMarkers"></a>clearMarkers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearMarkers: function()</td></tr></table></blockquote><p>This method removes all markers from a layer.  The markers are not destroyed by this function, but are removed from the list of markers.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.clearMarkers"></a>clearMarkers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearMarkers: function()</td></tr></table></blockquote><p>This method removes all markers from a layer.  The markers are not destroyed by this function, but are removed from the list of markers.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.drawMarker"></a>drawMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawMarker: function(</td><td class=PParameter nowrap>marker</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calculate the pixel location for the  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.drawMarker"></a>drawMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawMarker: function(</td><td class="PParameter  prettyprint " nowrap>marker</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the markers.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link15 onMouseOver="ShowTip(event,  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Markers.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the markers.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link15 onMous [...]
 
 </div><!--Content-->
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Marker are a combination of a OpenLayers.LonLat and an OpenLayers.Icon.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/MultiMap-js.html b/doc/devdocs/files/OpenLayers/Layer/MultiMap-js.html
index df474da..95a03fb 100644
--- a/doc/devdocs/files/OpenLayers/Layer/MultiMap-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/MultiMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.MultiMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.MultiMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MultiMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MultiMap</h1><div class=CBody><p>Note that MultiMap does not fully support the sphericalMercator option.  See Ticket #953 for more details.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14' [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.MultiMap"></a>OpenLayers.<wbr>Layer.<wbr>MultiMap</h1><div class=CBody><p>Note that MultiMap does not fully support the sphericalMercator option.  See Ticket #953 for more details.  <b>Deprecated</b>.   Use OpenLayers.Layer.Bing instead.  See #3063</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LCla [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.Constants"></a>Constants</h3></div></div>
 
@@ -27,35 +27,35 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.OpenLayers.Layer.MultiMap"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MultiMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></di [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.OpenLayers.Layer.MultiMap"></a>OpenLayers.<wbr>Layer.<wbr>MultiMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.MultiMap.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint "  [...]
 
 </div><!--Content-->
 
@@ -63,15 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote>{String} String with information on why layer is broken, how to get it working.</div></div><div class=CToolTi [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote>{String} String with information on why layer is broken, how to g [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/PointGrid-js.html b/doc/devdocs/files/OpenLayers/Layer/PointGrid-js.html
new file mode 100644
index 0000000..decbfdb
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Layer/PointGrid-js.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.PointGrid - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.PointGrid"></a>OpenLayers.<wbr>Layer.<wbr>PointGrid</h1><div class=CBody><p>A point grid layer dynamically generates a regularly spaced grid of point features.   This is a specialty layer for cases where an application needs a regular grid of points.   It can be used, for example, in an editing environment to snap to a grid.</p><p>Create a new vector layer with the <a h [...]
+var points = new OpenLayers.Layer.PointGrid({dx: 10, dy: 10});
+
+// create a grid with different x/y spacing rotated 15 degrees clockwise.
+var points = new OpenLayers.Layer.PointGrid({dx: 5, dy: 10, rotation: 15});</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt21', 'link22')" onMouseOut="HideTip('tt21')">OpenLayers.Layer.Vector</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain">< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.dx"></a>dx</h3><div class=CBody><p>{Number} Point grid spacing in the x-axis direction (map units).  Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setSpacing" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt8', 'link23')" onMouseOut="HideTip('tt8')">setSpacing</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.dy"></a>dy</h3><div class=CBody><p>{Number} Point grid spacing in the y-axis direction (map units).  Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setSpacing" class=LFunction id=link24 onMouseOver="ShowTip(event, 'tt8', 'link24')" onMouseOut="HideTip('tt8')">setSpacing</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.ratio"></a>ratio</h3><div class=CBody><p>{Number} Ratio of the desired grid size to the map viewport size.  Default is 1.5.   Larger ratios mean the grid is recalculated less often while panning.   The <a href="#OpenLayers.Layer.PointGrid.maxFeatures" class=LProperty id=link25 onMouseOver="ShowTip(event, 'tt7', 'link25')" onMouseOut="HideTip('tt7')">maxFeatures</a> setting has pre [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.maxFeatures"></a>maxFeatures</h3><div class=CBody><p>{Number} The maximum number of points to generate in the grid.   Default is 250.   Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setMaxFeatures" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt6', 'link27')" onMouseOut="HideTip('tt6')">setMaxFeatures</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.rotation"></a>rotation</h3><div class=CBody><p>{Number} Grid rotation (in degrees clockwise from the positive x-axis).  Default is 0.   Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setRotation" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt14', 'link28')" onMouseOut="HideTip('tt14')">setRotation</a> method to modify this value.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.origin"></a>origin</h3><div class=CBody><p>{OpenLayers.LonLat} Grid origin.   The grid lattice will be aligned with the origin.   If not set at construction, the center of the map’s maximum extent is used.   Read-only.   Use the <a href="#OpenLayers.Layer.PointGrid.setOrigin" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt11', 'link29')" onMouseOut="HideTip('t [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.gridBounds"></a>gridBounds</h3><div class=CBody><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt1', 'link30')" onMouseOut="HideTip('tt1')">OpenLayers.Bounds</a>}  Internally cached grid bounds (with optional rotation applied).</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.OpenLayers.Layer.PointGrid"></a>OpenLayers.<wbr>Layer.<wbr>PointGrid</h3><div class=CBody><p>Creates a new point grid layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing all configuration properties for the layer.   The <a href="#OpenLayers.L [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Th [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setRatio"></a>setRatio</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setRatio: function(</td><td class="PParameter  prettyprint " nowrap>ratio</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setMaxFeatures"></a>setMaxFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMaxFeatures: function(</td><td class="PParameter  prettyprint " nowrap>maxFeatures</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setSpacing"></a>setSpacing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSpacing: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfterParame [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setOrigin"></a>setOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOrigin: function(</td><td class="PParameter  prettyprint " nowrap>origin</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.getOrigin"></a>getOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getOrigin: function()</td></tr></table></blockquote><p>Get the grid <a href="#OpenLayers.Layer.PointGrid.origin" class=LProperty id=link43 onMouseOver="ShowTip(event, 'tt12', 'link43')" onMouseOut="HideTip('tt12')">origin</a> property.</p><h4 class=C [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.setRotation"></a>setRotation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setRotation: function(</td><td class="PParameter  prettyprint " nowrap>rotation</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.onMoveEnd"></a>onMoveEnd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMoveEnd: function()</td></tr></table></blockquote><p>Listener for map “moveend” events.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.getViewBounds"></a>getViewBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getViewBounds: function()</td></tr></table></blockquote><p>Gets the (potentially rotated) view bounds for grid calculations.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link46  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.updateGrid"></a>updateGrid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>updateGrid: function(</td><td class="PParameter  prettyprint " nowrap>force</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointGrid.invalidBounds"></a>invalidBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">invalidBounds: function()</td></tr></table></blockquote><p>Determine whether the previously generated point grid is invalid.  This occurs when the map bounds extends beyond the previously generated grid bounds.</p><h4 class=CHeading>Retu [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Layer/PointTrack-js.html b/doc/devdocs/files/OpenLayers/Layer/PointTrack-js.html
index 3370108..0d50ee9 100644
--- a/doc/devdocs/files/OpenLayers/Layer/PointTrack-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/PointTrack-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.PointTrack - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.PointTrack - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,19 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.PointTrack"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>PointTrack</h1><div class=CBody><p>Vector layer to display ordered point features as a line, creating one LineString feature for each pair of two points.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link2 onMouseOver="ShowTip(event, 't [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.PointTrack"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack</h1><div class=CBody><p>Vector layer to display ordered point features as a line, creating one LineString feature for each pair of two points.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip(' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.PointTrack"></a>OpenLayers.<span class=HB> </span>PointTrack</h3><div class=CBody><p>Constructor for a new OpenLayers.PointTrack instance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} name of the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CD [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.PointTrack"></a>OpenLayers.<wbr>PointTrack</h3><div class=CBody><p>Constructor for a new OpenLayers.PointTrack instance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} name of the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Obje [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.addNodes"></a>addNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addNodes: function(</td><td class=PParameter nowrap>pointFeatures</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds point features that will be  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.addNodes"></a>addNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addNodes: function(</td><td class="PParameter  prettyprint " nowrap>pointFeatures,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>PointTrack.<span class=HB> </span>dataFrom</h3><div class=CBody><p>{Object} with the following keys</p><ul><li>SOURCE_NODE: take data/attributes from the source node of the line</li><li>TARGET_NODE: take data/attributes from the target node of the line</li></ul></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.SOURCE_NODE"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>SOURCE_NODE</h3><div class=CBody><p>{Number} value for <a href="#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" class=LConstant >OpenLayers.Layer.PointTrack.dataFrom</a> and <OpenLayers.Layer.PointTrack.styleFrom></p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.TARGET_NODE"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>TARGET_NODE</h3><div class=CBody><p>{Number} value for <a href="#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" class=LConstant >OpenLayers.Layer.PointTrack.dataFrom</a> and <OpenLayers.Layer.PointTrack.styleFrom></p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom"></a>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>dataFrom</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Object} with the following keys</td><td class=CDLDescription><b>deprecated</b></td></tr></table><ul><li>SOURCE_NODE: take data/attributes from the source node of the line</li><li>TARGET_NODE: [...]
 
 </div><!--Content-->
 
@@ -31,15 +35,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addNodes: function(</td><td class=PParameter nowrap>pointFeatures</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds point features that will be used to create lines from, using point pairs. </div></div><div class=CToolTip id="tt2"><div  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addNodes: function(</td><td class="PParameter  prettyprint " nowrap>pointFeatures,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Ad [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/SphericalMercator-js.html b/doc/devdocs/files/OpenLayers/Layer/SphericalMercator-js.html
index f136f2b..b3e3786 100644
--- a/doc/devdocs/files/OpenLayers/Layer/SphericalMercator-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/SphericalMercator-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.SphericalMercator - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.SphericalMercator - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prett [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.SphericalMercator"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>SphericalMercator</h1><div class=CBody><p>A mixin for layers that wraps up the pieces neccesary to have a coordinate conversion for working with commercial APIs which use a spherical mercator projection.   Using this layer as a base layer, additional layers can be used as overlays if they a [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.SphericalMercator"></a>OpenLayers.<wbr>Layer.<wbr>SphericalMercator</h1><div class=CBody><p>A mixin for layers that wraps up the pieces neccesary to have a coordinate conversion for working with commercial APIs which use a spherical mercator projection.   Using this layer as a base layer, additional layers can be used as overlays if they are in the same projection.</p><p>A l [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function()</td></tr></table></blockquote><p>Get the map’s extent.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip( [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function()</td></tr></table></blockquote><p>Get the map’s extent.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9') [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromViewPortPx: function (</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromViewPortPx: function (</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettypr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.initMercatorParameters"></a>initMercatorParameters</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initMercatorParameters: function()</td></tr></table></blockquote><p>Set up the mercator parameters on the layer: resolutions, projection, units.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.initMercatorParameters"></a>initMercatorParameters</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initMercatorParameters: function()</td></tr></table></blockquote><p>Set up the mercator parameters on the layer: resolutions, projection, units.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.forwardMercator"></a>forwardMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>forwardMercator: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.forwardMercator"></a>forwardMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>forwardMercator: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>lat</t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.inverseMercator"></a>inverseMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>inverseMercator: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.inverseMercator"></a>inverseMercator</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>inverseMercator: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.projectForward"></a>projectForward</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>projectForward: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an object  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.projectForward"></a>projectForward</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>projectForward: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.projectInverse"></a>projectInverse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>projectInverse: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an object  [...]
-
-<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.Two_transforms_declared"></a>Two transforms declared</h3><div class=CBody><p>Transforms from EPSG:4326 to EPSG:900913 and from EPSG:900913 to EPSG:4326 are set by this class.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.SphericalMercator.projectInverse"></a>projectInverse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>projectInverse: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
 </div><!--Content-->
 
@@ -39,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function()</td></tr></table></blockquote>Get the map’s extent.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromViewPortPx: function (</td><td class=PParamet [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function()</td></tr></table></blockquote>Get the map’s extent.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromViewPo [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/TMS-js.html b/doc/devdocs/files/OpenLayers/Layer/TMS-js.html
index 0a38a30..7f0638b 100644
--- a/doc/devdocs/files/OpenLayers/Layer/TMS-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/TMS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.TMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.TMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,33 +11,48 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TMS"></a>OpenLayers.<span class=HB> </span>Layer.TMS</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBor [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TMS"></a>OpenLayers.<wbr>Layer.TMS</h1><div class=CBody><p>Create a layer for accessing tiles from services that conform with the Tile Map Service Specification (<a href="http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification" class=LURL target=_top>http://wiki.osgeo.org<wbr>/wiki<wbr>/Tile_Map_Service_Specification</a>).</p><h4 class=CHeading>Example</h4><blockquote><pre clas [...]
+    "My Layer", // name for display in LayerSwitcher
+    "http://tilecache.osgeo.org/wms-c/Basic.py/", // service endpoint
+    {layername: "basic", type: "png"} // required properties
+);</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer.TMS" >OpenLayers.<wbr>Layer.TMS</a></td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.serviceVersion"></a>serviceVersion</h3><div class=CBody><p>{String}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.serviceVersion"></a>serviceVersion</h3><div class=CBody><p>{String} Service version for tile requests.   Default is “1.0.0”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.layername"></a>layername</h3><div class=CBody><p>{String} The identifier for the <TileMap> as advertised by the service.  For example, if the service advertises a <TileMap> with ‘href=”<a href="http://tms.osgeo.org/1.0.0/vmap0" class=LURL target=_top>http://tms.osgeo.org/1.0.0/vmap0</a>”’, the <a href="#OpenLayers.Layer.TMS.layername" class=LProperty id=link6 o [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">OpenLayers.Pixel</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.type"></a>type</h3><div class=CBody><p>{String} The format extension corresponding to the requested tile image type.   This is advertised in a <TileFormat> element as the “extension” attribute.   For example, if the service advertises a <TileMap> with <TileFormat width=”256” height=”256” mime-type=”image/jpeg” extension=”jp [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} Make this layer a base layer.   Default is true.   Set false to use the layer as an overlay.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} Optional origin for aligning the grid of tiles.  If provided, requests for tiles at all resolutions will be aligned with this location (no tiles shall overlap this location) [...]
+    "My Layer",
+    "http://tilecache.osgeo.org/wms-c/Basic.py/",
+    {
+        layername: "basic",
+        type: "png",
+        // set if different than the bottom left of map.maxExtent
+        tileOrigin: new OpenLayers.LonLat(-180, -90)
+    }
+);</pre></blockquote></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.serverResolutions"></a>serverResolutions</h3><div class=CBody><p>{Array} A list of all resolutions available on the server.   Only set this property if the map resolutions differs from the server.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.OpenLayers.Layer.TMS"></a>OpenLayers.<span class=HB> </span>Layer.TMS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.OpenLayers.Layer.TMS"></a>OpenLayers.<wbr>Layer.TMS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Title to be displayed in a <a href="../Control/LayerSwitcher-js.html#OpenLayers.Control.LayerSwitcher" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cells [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the layer is added to a map, then we can fetch our  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TMS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the [...]
 
 </div><!--Content-->
 
@@ -45,15 +60,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Text-js.html b/doc/devdocs/files/OpenLayers/Layer/Text-js.html
index adfaef1..b4fbfc6 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Text-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Text-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,8 +11,8 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Text"></a>OpenLayers.<span class=HB> </span>Layer.Text</h1><div class=CBody><p>This layer creates markers given data in a text file.   The <a href="#OpenLayers.Layer.Text.location" class=LProperty id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">location</a> property of the layer (specified as a property of the options argument in the <a href [...]
-10   20  title   description 21,25       -10,-25     http://www.openlayers.org/dev/img/marker.png</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer.Text" >OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Text"></a>OpenLayers.<wbr>Layer.Text</h1><div class=CBody><p>This layer creates markers given data in a text file.   The <a href="#OpenLayers.Layer.Text.location" class=LProperty id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">location</a> property of the layer (specified as a property of the options argument in the <a href="#OpenLayers.Laye [...]
+10   20  title   description 21,25       -10,-25     http://www.openlayers.org/dev/img/marker.png</pre></blockquote><h4 class=CHeading>Inherits from</h4><ul><li><a href="Markers-js.html#OpenLayers.Layer.Markers" class=LClass >OpenLayers.Layer.Markers</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Layer.Text" >OpenLayers [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.Properties"></a>Properties</h3></div></div>
 
@@ -26,21 +26,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.OpenLayers.Layer.Text"></a>OpenLayers.<span class=HB> </span>Layer.Text</h3><div class=CBody><p>Create a text layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Object with properties to be set on [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.OpenLayers.Layer.Text"></a>OpenLayers.<wbr>Layer.Text</h3><div class=CBody><p>Create a text layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Object with properties to be set on the layer.   [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.loadText"></a>loadText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadText: function()</td></tr></table></blockquote><p>Start the load of the Text data.  Don’t do this when we first add the layer, since we may not be visible at any point, and it would therefore be a waste.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.loadText"></a>loadText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadText: function()</td></tr></table></blockquote><p>Start the load of the Text data.  Don’t do this when we first add the layer, since we may not be visible at any point, and it would therefore be a waste.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>minor</td><td class=PAfterPara [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.parseData"></a>parseData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseData: function(</td><td class=PParameter nowrap>ajaxRequest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.parseData"></a>parseData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseData: function(</td><td class="PParameter  prettyprint " nowrap>ajaxRequest</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.markerClick"></a>markerClick</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>evt</td><td class=CDLDescription>{Event}</td></tr></table></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.clearFeatures"></a>clearFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearFeatures: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Text.clearFeatures"></a>clearFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearFeatures: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -48,15 +48,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadText: function()</td></tr></table></blockquote>Start [...]
+<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadText: fu [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/TileCache-js.html b/doc/devdocs/files/OpenLayers/Layer/TileCache-js.html
index 682b629..b33e971 100644
--- a/doc/devdocs/files/OpenLayers/Layer/TileCache-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/TileCache-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.TileCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.TileCache - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TileCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>TileCache</h1><div class=CBody><p>A read only TileCache layer.   Used to requests tiles cached by TileCache in a web accessible cache.   This means that you have to pre-populate your cache before this layer can be used.   It is meant only to read tiles created by TileCache, and not to mak [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.TileCache"></a>OpenLayers.<wbr>Layer.<wbr>TileCache</h1><div class=CBody><p>A read only TileCache layer.   Used to requests tiles cached by TileCache in a web accessible cache.   This means that you have to pre-populate your cache before this layer can be used.   It is meant only to read tiles created by TileCache, and not to make calls to TileCache for tile creati [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.Properties"></a>Properties</h3></div></div>
 
@@ -23,15 +23,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.OpenLayers.Layer.TileCache"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>TileCache</h3><div class=CBody><p>Create a new read only TileCache layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of the layer displayed in the interface</td></tr><t [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.OpenLayers.Layer.TileCache"></a>OpenLayers.<wbr>Layer.<wbr>TileCache</h3><div class=CBody><p>Create a new read only TileCache layer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of the layer displayed in the interface</td></tr><tr><td class=CDLEntry>url</td><td cla [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDesc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><table  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0  [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.TileCache.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h [...]
 
 </div><!--Content-->
 
@@ -39,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Vector-js.html b/doc/devdocs/files/OpenLayers/Layer/Vector-js.html
index 502493f..ddc31dc 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Vector-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Vector-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Vector - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector</h1><div class=CBody><p>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources.  Create a new vector layer with the <a href="#OpenLayers.Layer.Vector.OpenLayers.Layer.Vector" class=LConstructor id=link31 onMouseOver="ShowTip(event, 'tt7', 'link31')" onMous [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector"></a>OpenLayers.<wbr>Layer.<wbr>Vector</h1><div class=CBody><p>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources.  Create a new vector layer with the <a href="#OpenLayers.Layer.Vector.OpenLayers.Layer.Vector" class=LConstructor id=link33 onMouseOver="ShowTip(event, 'tt32', 'link33')" onMouseOut="HideTip('tt32')">OpenLayers.L [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p> [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">layer.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Properties"></a>Properties</h3></div></div>
 
@@ -23,13 +23,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.isFixed"></a>isFixed</h3><div class=CBody><p>{Boolean} Whether the layer remains in one place while dragging the map.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.isVector"></a>isVector</h3><div class=CBody><p>{Boolean} Whether the layer is a vector layer.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.features"></a>features</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt1', 'link34')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.features"></a>features</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt1', 'link32')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.filter"></a>filter</h3><div class=CBody><p>{<a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt2', 'link35')" onMouseOut="HideTip('tt2')">OpenLayers.Filter</a>} The filter set in this layer, a strategy launching read requests can combined this filter with its own filter.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.filter"></a>filter</h3><div class=CBody><p>{<a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt2', 'link33')" onMouseOut="HideTip('tt2')">OpenLayers.Filter</a>} The filter set in this layer, a strategy launching read requests can combined this filter with its own filter.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.selectedFeatures"></a>selectedFeatures</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt1', 'link34')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.selectedFeatures"></a>selectedFeatures</h3><div class=CBody><p>{Array(<a href="../Feature/Vector-js.html#OpenLayers.Feature.Vector" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt1', 'link36')" onMouseOut="HideTip('tt1')">OpenLayers.Feature.Vector</a>)}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.unrenderedFeatures"></a>unrenderedFeatures</h3><div class=CBody><p>{Object} hash of features, keyed by feature.id, that the renderer failed to draw</p></div></div></div>
 
@@ -39,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.styleMap"></a>styleMap</h3><div class=CBody><p>{<a href="../StyleMap-js.html#OpenLayers.StyleMap" class=LClass >OpenLayers.StyleMap</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.strategies"></a>strategies</h3><div class=CBody><p>{Array(<a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt3', 'link35')" onMouseOut="HideTip('tt3')">OpenLayers.Strategy</a>})} Optional list of strategies for the layer.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.strategies"></a>strategies</h3><div class=CBody><p>{Array(<a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt3', 'link37')" onMouseOut="HideTip('tt3')">OpenLayers.Strategy</a>})} Optional list of strategies for the layer.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.protocol"></a>protocol</h3><div class=CBody><p>{<a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt4', 'link36')" onMouseOut="HideTip('tt4')">OpenLayers.Protocol</a>} Optional protocol for the layer.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.protocol"></a>protocol</h3><div class=CBody><p>{<a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link38 onMouseOver="ShowTip(event, 'tt4', 'link38')" onMouseOut="HideTip('tt4')">OpenLayers.Protocol</a>} Optional protocol for the layer.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.renderers"></a>renderers</h3><div class=CBody><p>{Array(String)} List of supported Renderer classes.  Add to this list to add support for additional renderers.  This list is ordered: the first renderer which returns true for the  ‘supported()’ method will be used, if not defined in the ‘renderer’ option.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.renderer"></a>renderer</h3><div class=CBody><p>{<a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt5', 'link37')" onMouseOut="HideTip('tt5')">OpenLayers.Renderer</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.renderer"></a>renderer</h3><div class=CBody><p>{<a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link39 onMouseOver="ShowTip(event, 'tt5', 'link39')" onMouseOut="HideTip('tt5')">OpenLayers.Renderer</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.rendererOptions"></a>rendererOptions</h3><div class=CBody><p>{Object} Options for the renderer.  See {<a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link38 onMouseOver="ShowTip(event, 'tt5', 'link38')" onMouseOut="HideTip('tt5')">OpenLayers.Renderer</a>} for supported options.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.rendererOptions"></a>rendererOptions</h3><div class=CBody><p>{Object} Options for the renderer.  See {<a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link40 onMouseOver="ShowTip(event, 'tt5', 'link40')" onMouseOut="HideTip('tt5')">OpenLayers.Renderer</a>} for supported options.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.geometryType"></a>geometryType</h3><div class=CBody><p>{String} geometryType allows you to limit the types of geometries this layer supports.  This should be set to something like “OpenLayers.Geometry.Point” to limit types.</p></div></div></div>
 
@@ -55,59 +53,61 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.OpenLayers.Layer.Vector"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector</h3><div class=CBody><p>Create a new vector layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CDLD [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.OpenLayers.Layer.Vector"></a>OpenLayers.<wbr>Layer.<wbr>Vector</h3><div class=CBody><p>Create a new vector layer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.clone"></a>clone</h3><div class=CBody><p>Create a clone of this layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>refresh: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>As [...]
 
-<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.Features_of_the_layer_are_also_cloned"></a>Features of the layer are also cloned.</h3><div class=CBody><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Layer.Vector.OpenLayers.Layer.Vector" class=LConstructor id=link40 onMouseOver="ShowTip(event, 'tt7', 'link40')" onMouseOut="HideTip('tt7')">OpenLayers.Layer.Vector</a>} An exact clone of this layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.assignRenderer"></a>assignRenderer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">assignRenderer: function()</td></tr></table></blockquote><p>Iterates through the available renderer implementations and selects and assigns the first one whose “supported()” function returns true.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>refresh: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ask the layer to request features again and redraw [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.displayError"></a>displayError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">displayError: function()</td></tr></table></blockquote><p>Let the user know their browser isn’t supported.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.assignRenderer"></a>assignRenderer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>assignRenderer: function()</td></tr></table></blockquote><p>Iterates through the available renderer implementations and selects and assigns the first one whose “supported()” function returns true.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>The l [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.displayError"></a>displayError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>displayError: function()</td></tr></table></blockquote><p>Let the user know their browser isn’t supported.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.afterAdd"></a>afterAdd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">afterAdd: function()</td></tr></table></blockquote><p>Called at the end of the map.addLayer sequence.   At this point, the map will have a base layer.   Any autoActivate strategies will be activated here.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The layer has been added to the map.</p><p>If there i [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.afterAdd"></a>afterAdd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>afterAdd: function()</td></tr></table></blockquote><p>Called at the end of the map.addLayer sequence.   At this point, the map will have a base layer.   Any autoActivate strategies will be activated here.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote><p>Notify the renderer of the change in size.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The layer has been removed from the map.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote><p>Notify the renderer of the change in size.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>Redraws the layer.   Returns true if the layer was redrawn, false if not.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The layer was redrawn.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAft [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the Layer</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.addFeatures"></a>addFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.addFeatures"></a>addFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addFeatures: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeFeatures"></a>removeFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeFeatures"></a>removeFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeFeatures: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeAllFeatures"></a>removeAllFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeAllFeatures: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.removeAllFeatures"></a>removeAllFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeAllFeatures: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove all featu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroyFeatures"></a>destroyFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroyFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.destroyFeatures"></a>destroyFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>destroyFeatures: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawFeature: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.eraseFeatures"></a>eraseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.eraseFeatures"></a>eraseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseFeatures: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Erase features from the lay [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureFromEvent"></a>getFeatureFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureFromEvent"></a>getFeatureFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given an event [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureBy"></a>getFeatureBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>value</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureBy"></a>getFeatureBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureById"></a>getFeatureById</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureById: function(</td><td class="PParameter  prettyprint " nowrap>featureId</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureById"></a>getFeatureById</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureById: function(</td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a feature id, ret [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureByFid"></a>getFeatureByFid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureByFid: function(</td><td class="PParameter  prettyprint " nowrap>featureFid</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeatureByFid"></a>getFeatureByFid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureByFid: function(</td><td class=PParameter nowrap>featureFid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a feature fid [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getFeaturesByAttribute"></a>getFeaturesByAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeaturesByAttribute: function(</td><td class="PParameter  prettyprint " nowrap>attrName,</td></tr><tr><td></td><td class="PParameter  prettyprint  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.onFeatureInsert"></a>onFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onFeatureInsert: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>method called after a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.onFeatureInsert"></a>onFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onFeatureInsert: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.preFeatureInsert"></a>preFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>preFeatureInsert: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>method called befor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.preFeatureInsert"></a>preFeatureInsert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>preFeatureInsert: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the features.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link55 onMouseOver="ShowTip(event,  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the features.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link58 onMous [...]
 
 </div><!--Content-->
 
@@ -115,15 +115,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt3"><div class=CClass>Abstract vector layer strategy class. </div></div><div class=CToolTip id="tt4"><div class=CClass>Abstract vector layer protocol class. </div></div><div class=CToolTip id="tt5"><div class=CClass>This is the base cla [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt3"><div class=CClass>Abstract vector layer strategy class. </div></div><div class=CToolTip id="tt4"><div class=CClass>Abstract vector layer protocol class. </div></div><div class=CToolTip id="tt5"><div class=CClass>This is the base cla [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Vector/RootContainer-js.html b/doc/devdocs/files/OpenLayers/Layer/Vector/RootContainer-js.html
index 63e4c1e..aa88d81 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Vector/RootContainer-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Vector/RootContainer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Vector.RootContainer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Vector.RootContainer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="N [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector.<span class=HB> </span>RootContainer</h1><div class=CBody><p>A special layer type to combine multiple vector layers inside a single renderer root container.  This class is not supposed to be instantiated from user space, it is a helper class for controls that require event process [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<wbr>Layer.<wbr>Vector.<wbr>RootContainer</h1><div class=CBody><p>A special layer type to combine multiple vector layers inside a single renderer root container.  This class is not supposed to be instantiated from user space, it is a helper class for controls that require event processing for multiple vector layers.</p><h4 class=CHeading> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.Properties"></a>Properties</h3></div></div>
 
@@ -21,23 +21,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Vector.<span class=HB> </span>RootContainer</h3><div class=CBody><p>Create a new root container for multiple vector layer.  This constructor is not supposed to be used from user space, it is only to be used by controls that need feature selection across multiple vector lay [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.OpenLayers.Layer.Vector.RootContainer"></a>OpenLayers.<wbr>Layer.<wbr>Vector.<wbr>RootContainer</h3><div class=CBody><p>Create a new root container for multiple vector layer.  This constructor is not supposed to be used from user space, it is only to be used by controls that need feature selection across multiple vector layers.</p><h4 class=CHeading>Parameters</h4><table borde [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>display: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">display: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.getFeatureFromEvent"></a>getFeatureFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.getFeatureFromEvent"></a>getFeatureFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.removeMap"></a>removeMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.collectRoots"></a>collectRoots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>collectRoots: function()</td></tr></table></blockquote><p>Collects the root nodes of all layers this control is configured with and moveswien the nodes to this control’s layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.collectRoots"></a>collectRoots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">collectRoots: function()</td></tr></table></blockquote><p>Collects the root nodes of all layers this control is configured with and moveswien the nodes to this control’s layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.resetRoots"></a>resetRoots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>resetRoots: function()</td></tr></table></blockquote><p>Resets the root nodes back into the layers they belong to.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.resetRoots"></a>resetRoots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">resetRoots: function()</td></tr></table></blockquote><p>Resets the root nodes back into the layers they belong to.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.handleChangeLayer"></a>handleChangeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleChangeLayer: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Event  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Vector.RootContainer.handleChangeLayer"></a>handleChangeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleChangeLayer: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>display: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfter [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">display: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureFromEvent: function(</td><td class="PP [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/VirtualEarth-js.html b/doc/devdocs/files/OpenLayers/Layer/VirtualEarth-js.html
index 03ffe5a..7fb7910 100644
--- a/doc/devdocs/files/OpenLayers/Layer/VirtualEarth-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/VirtualEarth-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.VirtualEarth - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.VirtualEarth - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>VirtualEarth</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">OpenLayers.Layer.EventPane</a></li><li><a href="FixedZoomLevels-js.h [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<wbr>Layer.<wbr>VirtualEarth</h1><div class=CBody><p>Instances of OpenLayers.Layer.VirtualEarth are used to display the data from the Bing Maps AJAX Control <img mode="link" target="e.g.  
url target=”http://msdn.microsoft.com/library/bb429619.aspx” name=”http://msdn.microsoft.com/library/bb429619.aspx”>” original=&r [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.Constants"></a>Constants</h3></div></div>
 
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.type"></a>type</h3><div class=CBody><p>{VEMapType}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><p>{Boolean} Allow user to pan forever east/west.   Default is true.  Setting this to false only restricts panning if <a href="#OpenLayers.Layer.VirtualEarth.sphericalMercator" class=LProperty id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">sphericalMercator</a> is true.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.wrapDateLine"></a>wrapDateLine</h3><div class=CBody><p>{Boolean} Allow user to pan forever east/west.   Default is true.  Setting this to false only restricts panning if <a href="#OpenLayers.Layer.VirtualEarth.sphericalMercator" class=LProperty id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">sphericalMercator</a> is true.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.sphericalMercator"></a>sphericalMercator</h3><div class=CBody><p>{Boolean} Should the map act as a mercator-projected map?  This will cause all interactions with the map to be in the actual map projection, which allows support for vector drawing, overlaying other maps, etc.</p></div></div></div>
 
@@ -33,39 +33,48 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>VirtualEarth</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></tabl [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.OpenLayers.Layer.VirtualEarth"></a>OpenLayers.<wbr>Layer.<wbr>VirtualEarth</h3><div class=CBody><p>Creates a new instance of a OpenLayers.Layer.VirtualEarth.  If you use an instance of OpenLayers.Layer.VirtualEarth in you map, you should set the <a href="../Map-js.html#OpenLayers.Map" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">Op [...]
+    // other map options
+    restrictedExtent : OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
+} );
+
+var veLayer = new OpenLayers.Layer.VirtualEarth (
+    "Virtual Earth Layer"
+);
+
+map.addLayer( veLayer );</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragPanMapObject: function(</td><td class=PParameter nowrap>dX,</td></tr><tr><td></td><td class=PParameter nowrap>dY</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragPanMapObject: function(</td><td class="PParameter  prettyprint " nowrap>dX,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dY</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAf [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowra [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.VirtualEarth.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprin [...]
 
 </div><!--Content-->
 
@@ -73,15 +82,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpad [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><bloc [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/WFS-js.html b/doc/devdocs/files/OpenLayers/Layer/WFS-js.html
index 5ccdf03..ff496f5 100644
--- a/doc/devdocs/files/OpenLayers/Layer/WFS-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WFS"></a>OpenLayers.<span class=HB> </span>Layer.WFS</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with a Protocol.WFS and one or more Strategies.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt21', 'link22')" [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WFS"></a>OpenLayers.<wbr>Layer.WFS</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.Vector with a Protocol.WFS and one or more Strategies.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Vector-js.html#OpenLayers.Layer.Vector" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt21', 'link22')" onMouseOut="HideT [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.Properties"></a>Properties</h3></div></div>
 
@@ -39,43 +39,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.OpenLayers.Layer.WFS"></a>OpenLayers.<span class=HB> </span>Layer.WFS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescription>{ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.OpenLayers.Layer.WFS"></a>OpenLayers.<wbr>Layer.WFS</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class=CDLDescription>{Object}</td></tr>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspaci [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAfterPa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.addTileMonitoringHooks"></a>addTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTileMonitoringHooks: function(</td><td class=PParameter nowrap>tile</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This fu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.addTileMonitoringHooks"></a>addTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTileMonitoringHooks: function(</td><td class="PParameter  prettyprint " nowrap>tile</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.removeTileMonitoringHooks"></a>removeTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeTileMonitoringHooks: function(</td><td class=PParameter nowrap>tile</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.removeTileMonitoringHooks"></a>removeTileMonitoringHooks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeTileMonitoringHooks: function(</td><td class="PParameter  prettyprint " nowrap>tile</td><td class="PAfterParameters  prettyprint "nowrap>)</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote><p>Call the onMapResize method of the appropriate parent class.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote><p>Call the onMapResize method of the appropriate parent class.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>display: function()</td></tr></table></blockquote><p>Call the display method of the appropriate parent class.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">display: function()</td></tr></table></blockquote><p>Call the display method of the appropriate parent class.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Modify parameters for the l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>commit: function()</td></tr></table></blockquote><p>Write out the data to a WFS server.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">commit: function()</td></tr></table></blockquote><p>Write out the data to a WFS server.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitSuccess"></a>commitSuccess</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commitSuccess: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the Ajax request re [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitSuccess"></a>commitSuccess</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commitSuccess: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitFailure"></a>commitFailure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commitFailure: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the Ajax request fa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitFailure"></a>commitFailure</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commitFailure: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitReport"></a>commitReport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commitReport: function(</td><td class=PParameter nowrap>string,</td></tr><tr><td></td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.commitReport"></a>commitReport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commitReport: function(</td><td class="PParameter  prettyprint " nowrap>string,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>response</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>refresh: function()</td></tr></table></blockquote><p>Refreshes all the features of the layer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">refresh: function()</td></tr></table></blockquote><p>Refreshes all the features of the layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the layer data.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link31 onMouseOver="ShowTip(event, ' [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.getDataExtent"></a>getDataExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getDataExtent: function ()</td></tr></table></blockquote><p>Calculates the max extent which includes all of the layer data.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link31 onMouse [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function (</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Call the setOpacity method of the appro [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WFS.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function (</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
 </div><!--Content-->
 
@@ -83,15 +83,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt2"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 cl [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers. </div></div><div class=CToolTip id="tt2"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 cl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/WMS-js.html b/doc/devdocs/files/OpenLayers/Layer/WMS-js.html
index f8983a9..2f9dcc6 100644
--- a/doc/devdocs/files/OpenLayers/Layer/WMS-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/WMS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS"></a>OpenLayers.<span class=HB> </span>Layer.WMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services.  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.OpenLayers.Layer.WMS" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Layer.WMS</a [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS"></a>OpenLayers.<wbr>Layer.WMS</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS are used to display data from OGC Web Mapping Services.  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.OpenLayers.Layer.WMS" class=LConstructor id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Layer.WMS</a> constructor.</p> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Constants"></a>Constants</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.reproject"></a>reproject</h3><div class=CBody><p><b>Deprecated</b>.  See <a href="http://trac.openlayers.org/wiki/SphericalMercator" class=LURL target=_top>http://trac.openlayers.org/wiki/SphericalMercator</a> for information on the replacement for this functionality.  {Boolean} Try to reproject this layer if its coordinate reference system is different than that of the base layer.   De [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.reproject"></a>reproject</h3><div class=CBody><p><b>Deprecated</b>.  See <a href="http://trac.openlayers.org/wiki/SphericalMercator" class=LURL target=_top>http://trac.openlayers.org/wiki/SphericalMercator</a> for information on the replacement for this functionality.  {Boolean} Try to reproject this layer if its coordinate reference system is different than that of the base layer.   De [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} Default is true for WMS layer</p></div></div></div>
 
@@ -31,25 +31,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.OpenLayers.Layer.WMS"></a>OpenLayers.<span class=HB> </span>Layer.WMS</h3><div class=CBody><p>Create a new WMS layer object</p><h4 class=CHeading>Example</h4><blockquote><pre>var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.OpenLayers.Layer.WMS"></a>OpenLayers.<wbr>Layer.WMS</h3><div class=CBody><p>Create a new WMS layer object</p><h4 class=CHeading>Examples</h4><p>The code below creates a simple WMS layer using the image/jpeg format.</p><blockquote><pre class="prettyprint">var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
                                    "http://wms.jpl.nasa.gov/wms.cgi",
-                                   {layers: "modis,global_mosaic"});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base url for the WMS (e.g.  <a href="http://wms.jpl.nasa.gov/wms.cgi" class=LURL target=_top>http://wms.jpl.nasa.gov/wms.cgi</a> [...]
+                                   {layers: "modis,global_mosaic"});</pre></blockquote><p>Note the 3rd argument (params).  Properties added to this object will be added to the WMS GetMap requests used for this layer’s tiles.  The only mandatory parameter is “layers”.  Other common WMS params include “transparent”, “styles” and “format”.  Note that the “srs” param will always be ignored.   [...]
+                                   "http://wms.jpl.nasa.gov/wms.cgi",
+                                   {
+                                       layers: "modis,global_mosaic",
+                                       transparent: true
+                                   }, {
+                                       opacity: 0.5,
+                                       singleTile: true
+                                   });</pre></blockquote><p>Note that by default, a WMS layer is configured as baseLayer.  Setting the “transparent” param to true will apply some magic (see <a href="#OpenLayers.Layer.WMS.noMagic" class=LProperty id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">noMagic</a>).  The default image format changes from image/jpeg to image/png, and the layer is not configured as baseLayer.</p><h4 class=CHead [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Returns [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy this layer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.reverseAxisOrder"></a>reverseAxisOrder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>reverseAxisOrder: function()</td></tr></table></blockquote><p>Returns true if the axis order is reversed for the WMS version and projection of the layer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} true if the axis order is reversed, false otherwise.</p></div>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Return a GetMap query string for this layer</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.reverseAxisOrder"></a>reverseAxisOrder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">reverseAxisOrder: function()</td></tr></table></blockquote><p>Returns true if the axis order is reversed for the WMS version and projection of the layer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} true if the axis order is reversed, false [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Retu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams:function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Catch changeParams and uppe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams:function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFullRequestString:function(</td><td class=PParameter nowrap>newParams,</td></tr><tr><td></td><td class=PParameter nowrap>altUrl</td><td class=PAfterParameters nowrap>)</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.getFullRequestString"></a>getFullRequestString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFullRequestString:function(</td><td class="PParameter  prettyprint " nowrap>newParams,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
 </div><!--Content-->
 
@@ -57,15 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=P [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Destroy this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/WMS/Post-js.html b/doc/devdocs/files/OpenLayers/Layer/WMS/Post-js.html
index 25cfe11..bcfde8e 100644
--- a/doc/devdocs/files/OpenLayers/Layer/WMS/Post-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/WMS/Post-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMS.Post - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMS.Post - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,26 +11,26 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Post"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.Post</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS.Post are used to retrieve data from OGC Web Mapping Services via HTTP-POST (application/x-www-form-urlencoded).  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post" class=LConstructor id=lin [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Post"></a>OpenLayers.<wbr>Layer.<wbr>WMS.Post</h1><div class=CBody><p>Instances of OpenLayers.Layer.WMS.Post are used to retrieve data from OGC Web Mapping Services via HTTP-POST (application/x-www-form-urlencoded).  Create a new WMS layer with the <a href="#OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post" class=LConstructor id=link2 onMouseOver="ShowTip(event, 'tt2' [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.tileClass"></a>tileClass</h3><div class=CBody><p>{Object} Class, used to create tiles.</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.unsupportedBrowsers"></a>unsupportedBrowsers</h3><div class=CBody><p>{Array} Array with browsers, which should use the HTTP-GET protocol instead of HTTP-POST for fetching tiles from a WMS . Defaults to [“mozilla”, “firefox”, “opera”], because Opera is not able to show transparent images in IFrames and Firefox/Mozilla has some ugly effects of viewport-shaking wh [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.unsupportedBrowsers"></a>unsupportedBrowsers</h3><div class=CBody><p>{Array} Array with browsers, which should use the HTTP-GET protocol instead of HTTP-POST for fetching tiles from a WMS . Defaults to [“mozilla”, “firefox”, “opera”], because Opera is not able to show transparent images in IFrames and Firefox/Mozilla has some ugly effects of viewport-shaking wh [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.SUPPORTED_TRANSITIONS"></a>SUPPORTED_TRANSITIONS</h3><div class=CBody><p>{Array} no supported transitions for this type of layer, because it is not possible to modify the initialized tiles (iframes)</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.usePost"></a>usePost</h3><div class=CBody><p>{Boolean}</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.Post</h3><div class=CBody><p>Creates a new WMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre>var wms = new OpenLayers.Layer.WMS.Post(
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.OpenLayers.Layer.WMS.Post"></a>OpenLayers.<wbr>Layer.<wbr>WMS.Post</h3><div class=CBody><p>Creates a new WMS layer object.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var wms = new OpenLayers.Layer.WMS.Post(
  "NASA Global Mosaic",
  "http://wms.jpl.nasa.gov/wms.cgi",
  {layers: "modis, global_mosaic"});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base url for the WMS (e.g.  <a href="http://wms.jpl.nasa.gov/wms.cgi" class=LURL target=_top>http://wms.jpl.nasa.gov/wms.cgi</a>)</td></tr><tr><td class=CDLEntry [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Post.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTile: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParame [...]
 
 </div><!--Content-->
 
@@ -38,15 +38,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>addTile creates a tile, initializes it and adds it as iframe to the layer [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addTile: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>addTile c [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/WMS/Untiled-js.html b/doc/devdocs/files/OpenLayers/Layer/WMS/Untiled-js.html
index 73c0e82..ea973eb 100644
--- a/doc/devdocs/files/OpenLayers/Layer/WMS/Untiled-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/WMS/Untiled-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMS.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMS.Untiled - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.<span class=HB> </span>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.WMS and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMS-js.html#OpenLayers.Layer.WMS" class=L [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>WMS.<wbr>Untiled</h1><div class=CBody><p><b>Deprecated</b>.   To be removed in 3.0.   Instead use OpenLayers.Layer.WMS and pass the option ‘singleTile’ as true.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../WMS-js.html#OpenLayers.Layer.WMS" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'lin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WMS.<span class=HB> </span>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.OpenLayers.Layer.WMS.Untiled"></a>OpenLayers.<wbr>Layer.<wbr>WMS.<wbr>Untiled</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>params</td><td class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMS.Untiled.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cr [...]
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of OpenLayers.Layer.WMS are used to disp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CClass>In [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/WMTS-js.html b/doc/devdocs/files/OpenLayers/Layer/WMTS-js.html
index b531116..fe6e9ce 100644
--- a/doc/devdocs/files/OpenLayers/Layer/WMTS-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/WMTS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WMTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WMTS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMTS"></a>OpenLayers.<span class=HB> </span>Layer.WMTS</h1><div class=CBody><p>Instances of the WMTS class allow viewing of tiles from a service that implements the OGC WMTS specification version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="Hide [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WMTS"></a>OpenLayers.<wbr>Layer.WMTS</h1><div class=CBody><p>Instances of the WMTS class allow viewing of tiles from a service that implements the OGC WMTS specification version 1.0.0.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">OpenL [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.Properties"></a>Properties</h3></div></div>
 
@@ -31,53 +31,51 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.format"></a>format</h3><div class=CBody><p>{String} The image MIME type.   Default is “image/jpeg”.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} The top-left corner of the tile matrix in map units.   If the tile origin for each matrix in a set is different, the <a href="#OpenLayers.Layer.WMTS.matrixIds" class=LPro [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.tileOrigin"></a>tileOrigin</h3><div class=CBody><p>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} The top-left corner of the tile matrix in map units.   If the tile origin for each matrix in a set is different, the <a href="#OpenLayers.Layer.WMTS.matrixIds" class=LPro [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.tileFullExtent"></a>tileFullExtent</h3><div class=CBody><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">OpenLayers.Bounds</a>}  The full extent of the tile set.   If not supplied, the layer’s <a href="../Layer-js.html#OpenLayers.Layer.maxExtent" class=LProperty id=link18 onMouseOver [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.tileFullExtent"></a>tileFullExtent</h3><div class=CBody><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt2', 'link16')" onMouseOut="HideTip('tt2')">OpenLayers.Bounds</a>}  The full extent of the tile set.   If not supplied, the layer’s <a href="../Layer-js.html#OpenLayers.Layer.maxExtent" class=LProperty id=link17 onMouseOver [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.formatSuffix"></a>formatSuffix</h3><div class=CBody><p>{String} For REST request encoding, an image format suffix must be included in the request.   If not provided, the suffix will be derived from the <a href="#OpenLayers.Layer.WMTS.format" class=LProperty id=link19 onMouseOver="ShowTip(event, 'tt16', 'link19')" onMouseOut="HideTip('tt16')">format</a> property.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.formatSuffix"></a>formatSuffix</h3><div class=CBody><p>{String} For REST request encoding, an image format suffix must be included in the request.   If not provided, the suffix will be derived from the <a href="#OpenLayers.Layer.WMTS.format" class=LProperty id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMouseOut="HideTip('tt15')">format</a> property.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.matrixIds"></a>matrixIds</h3><div class=CBody><p>{Array} A list of tile matrix identifiers.   If not provided, the matrix identifiers will be assumed to be integers corresponding to the map zoom level.   If a list of strings is provided, each item should be the matrix identifier that corresponds to the map zoom level.  Additionally, a list of objects can be provided.   Each object [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.matrixIds"></a>matrixIds</h3><div class=CBody><p>{Array} A list of tile matrix identifiers.   If not provided, the matrix identifiers will be assumed to be integers corresponding to the map zoom level.   If a list of strings is provided, each item should be the matrix identifier that corresponds to the map zoom level.  Additionally, a list of objects can be provided.   Each object [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.dimensions"></a>dimensions</h3><div class=CBody><p>{Array} For RESTful request encoding, extra dimensions may be specified.  Items in this list should be property names in the <a href="#OpenLayers.Layer.WMTS.params" class=LProperty id=link22 onMouseOver="ShowTip(event, 'tt11', 'link22')" onMouseOut="HideTip('tt11')">params</a> object.  Values of extra dimensions will be determined from the  [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.dimensions"></a>dimensions</h3><div class=CBody><p>{Array} For RESTful request encoding, extra dimensions may be specified.  Items in this list should be property names in the <a href="#OpenLayers.Layer.WMTS.params" class=LProperty id=link23 onMouseOver="ShowTip(event, 'tt11', 'link23')" onMouseOut="HideTip('tt11')">params</a> object.  Values of extra dimensions will be determined from the  [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.params"></a>params</h3><div class=CBody><p>{Object} Extra parameters to include in tile requests.   For KVP <a href="#OpenLayers.Layer.WMTS.requestEncoding" class=LProperty id=link24 onMouseOver="ShowTip(event, 'tt18', 'link24')" onMouseOut="HideTip('tt18')">requestEncoding</a>, these properties will be encoded in the request query string.   For REST <a href="#OpenLayers.Layer.WMTS.requestE [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.params"></a>params</h3><div class=CBody><p>{Object} Extra parameters to include in tile requests.   For KVP <a href="#OpenLayers.Layer.WMTS.requestEncoding" class=LProperty id=link25 onMouseOver="ShowTip(event, 'tt18', 'link25')" onMouseOut="HideTip('tt18')">requestEncoding</a>, these properties will be encoded in the request query string.   For REST <a href="#OpenLayers.Layer.WMTS.requestE [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your cac [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your cac [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.formatSuffixMap"></a>formatSuffixMap</h3><div class=CBody><p>{Object} a map between WMTS ‘format’ request parameter and tile image file suffix</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.matrix"></a>matrix</h3><div class=CBody><p>{Object} Matrix definition for the current map resolution.   Updated by the <a href="#OpenLayers.Layer.WMTS.updateMatrixProperties" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt4', 'link28')" onMouseOut="HideTip('tt4')">updateMatrixProperties</a> method.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.matrix"></a>matrix</h3><div class=CBody><p>{Object} Matrix definition for the current map resolution.   Updated by the <a href="#OpenLayers.Layer.WMTS.updateMatrixProperties" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt4', 'link29')" onMouseOut="HideTip('tt4')">updateMatrixProperties</a> method.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.OpenLayers.Layer.WMTS"></a>OpenLayers.<span class=HB> </span>Layer.WMTS</h3><div class=CBody><p>Create a new WMTS layer.</p><h4 class=CHeading>Example</h4><blockquote><pre>var wmts = new OpenLayers.Layer.WMTS({
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.OpenLayers.Layer.WMTS"></a>OpenLayers.<wbr>Layer.WMTS</h3><div class=CBody><p>Create a new WMTS layer.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var wmts = new OpenLayers.Layer.WMTS({
     name: "My WMTS Layer",
     url: "http://example.com/wmts",
     layer: "layer_id",
     style: "default",
     matrixSet: "matrix_id"
-});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} Configuration properties for the layer.</td></tr></table><h4 class=CHeading>Required configuration properties</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} The base url for the service.   See the <a href="# [...]
+});</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} Configuration properties for the layer.</td></tr></table><h4 class=CHeading>Required configuration properties</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} The base url for the service.   See the <a href="# [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setMap: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setMap: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.updateMatrixProperties"></a>updateMatrixProperties</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateMatrixProperties: function()</td></tr></table></blockquote><p>Called when map resolution changes to update matrix related properties.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.updateMatrixProperties"></a>updateMatrixProperties</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateMatrixProperties: function()</td></tr></table></blockquote><p>Called when map resolution changes to update matrix related properties.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>zoomChanged,</td></tr><tr><td></td><td class=PParameter nowrap>dragging</td><td class=PAfterP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo:function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoomChanged,</td></tr><tr><td></td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function(</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function(</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.getMatrix"></a>getMatrix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMatrix: function()</td></tr></table></blockquote><p>Get the appropriate matrix definition for the current map resolution.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.getMatrix"></a>getMatrix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMatrix: function()</td></tr></table></blockquote><p>Get the appropriate matrix definition for the current map resolution.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.getTileInfo"></a>getTileInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getTileInfo: function(</td><td class=PParameter nowrap>loc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get tile information for a given locatio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.getTileInfo"></a>getTileInfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getTileInfo: function(</td><td class="PParameter  prettyprint " nowrap>loc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function(</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cells [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeNewParams: function(</td><td class=PParameter nowrap>newParams</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extend the existing layer [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WMTS.mergeNewParams"></a>mergeNewParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeNewParams: function(</td><td class="PParameter  prettyprint " nowrap>newParams</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
 </div><!--Content-->
 
@@ -85,15 +83,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setMap: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setMap: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquot [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/WorldWind-js.html b/doc/devdocs/files/OpenLayers/Layer/WorldWind-js.html
index 98d2e23..599598c 100644
--- a/doc/devdocs/files/OpenLayers/Layer/WorldWind-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/WorldWind-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.WorldWind - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.WorldWind - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WorldWind"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WorldWind</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.WorldWind"></a>OpenLayers.<wbr>Layer.<wbr>WorldWind</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBord [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>WorldWind layer is a base layer by default.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean} WorldWind layer is a base layer by default.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.lzd"></a>lzd</h3><div class=CBody><p>LevelZeroTileSizeDegrees</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.lzd"></a>lzd</h3><div class=CBody><p>{Float} LevelZeroTileSizeDegrees</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.zoomLevels"></a>zoomLevels</h3><div class=CBody><p>Number of zoom levels.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.zoomLevels"></a>zoomLevels</h3><div class=CBody><p>{Integer} Number of zoom levels.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.OpenLayers.Layer.WorldWind"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>WorldWind</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of Layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base URL</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.OpenLayers.Layer.WorldWind"></a>OpenLayers.<wbr>Layer.<wbr>WorldWind</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} Name of Layer</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} Base URL</td></tr><tr><td class=CDLEntry>lzd</td>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getZoom: function ()</td></tr></table></blockquote><p>Convert map zoom to WW zoom.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getZoom: function ()</td></tr></table></blockquote><p>Convert map zoom to WW zoom.</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.WorldWind.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
 </div><!--Content-->
 
@@ -39,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getZoom: function ()</td></tr></table></blockquote>Convert map zoom to WW zoom.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (< [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/XYZ-js.html b/doc/devdocs/files/OpenLayers/Layer/XYZ-js.html
index 1eb3bba..47d14dd 100644
--- a/doc/devdocs/files/OpenLayers/Layer/XYZ-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/XYZ-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.XYZ - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.XYZ - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.XYZ"></a>OpenLayers.<span class=HB> </span>Layer.XYZ</h1><div class=CBody><p>The XYZ class is designed to make it easier for people who have tiles arranged by a standard XYZ grid.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Lay [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.XYZ"></a>OpenLayers.<wbr>Layer.XYZ</h1><div class=CBody><p>The XYZ class is designed to make it easier for people who have tiles arranged by a standard XYZ grid.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Layer.Grid</a></li></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.Properties"></a>Properties</h3></div></div>
 
@@ -19,24 +19,26 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.sphericalMecator"></a>sphericalMecator</h3><div class=CBody><p>Whether the tile extents should be set to the defaults for spherical mercator.  Useful for things like OpenStreetMap.  Default is false, except for the OSM subclass.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.zoomOffset"></a>zoomOffset</h3><div class=CBody><p>{Number} If your cache has more zoom levels than you want to provide access to with this layer, supply a zoomOffset.   This zoom offset is added to the current map zoom level to determine the level for a requested tile.   For example, if you supply a zoomOffset of 3, when the map is at the zoom 0, tiles will be requested from level 3 of your [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.serverResolutions"></a>serverResolutions</h3><div class=CBody><p>{Array} A list of all resolutions available on the server.   Only set this property if the map resolutions differs from the server.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.OpenLayers.Layer.XYZ"></a>OpenLayers.<span class=HB> </span>Layer.XYZ</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription> [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.OpenLayers.Layer.XYZ"></a>OpenLayers.<wbr>Layer.XYZ</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Hashtable [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a clone of this layer</p><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.getUrl"></a>getUrl</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>}</td></tr></table><h4 class=CH [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.getXYZ"></a>getXYZ</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXYZ: function(</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calcu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the layer is added to a map, then we can fetch our  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.XYZ.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Layer.OSM"></a>OpenLayers.<span class=HB> </span>Layer.OSM</h2><div class=CBody><p>A class to access OpenStreetMap tiles.  By default, uses the OpenStreetMap hosted tile.openstreetmap.org ‘Mapnik’ tileset.  If you wish to use tiles at home / osmarender layer instead, you can pass a layer like:</p><blockquote><pre>new OpenLayers.Layer.OSM("t at h",
-  "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png");</pre></blockquote><p>This layer defaults to Spherical Mercator.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="#OpenLayers.Layer.XYZ" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">OpenLayers.Layer.XYZ</a></li></ul></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Layer.OSM"></a>OpenLayers.<wbr>Layer.OSM</h2><div class=CBody><p>A class to access OpenStreetMap tiles.  By default, uses the OpenStreetMap hosted tile.openstreetmap.org ‘Mapnik’ tileset.  If you wish to use tiles at home / osmarender layer instead, you can pass a layer like:</p><blockquote><pre class="prettyprint">new OpenLayers.Layer.OSM("t at h",
+  "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png");</pre></blockquote><p>This layer defaults to Spherical Mercator.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="#OpenLayers.Layer.XYZ" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">OpenLayers.Layer.XYZ</a></li></ul></div></div></div>
 
 </div><!--Content-->
 
@@ -44,15 +46,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellp [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a clone of this layer</div></div><div class=CToolTip id="tt2"><div class=CFunction [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Yahoo-js.html b/doc/devdocs/files/OpenLayers/Layer/Yahoo-js.html
index 7db8605..8e6081e 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Yahoo-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Yahoo-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Yahoo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Yahoo - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Yahoo"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Yahoo</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">OpenLayers.Layer.EventPane</a></li><li><a href="FixedZoomLevels-js.html#OpenLayers [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Yahoo"></a>OpenLayers.<wbr>Layer.<wbr>Yahoo</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="EventPane-js.html#OpenLayers.Layer.EventPane" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">OpenLayers.Layer.EventPane</a></li><li><a href="FixedZoomLevels-js.html#OpenLayers.Layer.FixedZoomLevels" class=LClass [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.Constants"></a>Constants</h3></div></div>
 
@@ -31,49 +31,49 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Yahoo</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo"></a>OpenLayers.<wbr>Layer.<wbr>Yahoo</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.loadMapObject"></a>loadMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.onMapResize"></a>onMapResize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Overridden from EventPane because we need to remove th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Overri [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.fixYahooEventPane"></a>fixYahooEventPane</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>fixYahooEventPane: function()</td></tr></table></blockquote><p>The map has been centered, so the mysterious yahoo eventpane has been added. we remove it so that it doesnt mess with <b>our</b> event pane.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.fixYahooEventPane"></a>fixYahooEventPane</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">fixYahooEventPane: function()</td></tr></table></blockquote><p>The map has been centered, so the mysterious yahoo eventpane has been added. we remove it so that it doesnt mess with <b>our</b> event pane.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getWarningHTML"></a>getWarningHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getWarningHTML:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} String with information on why layer is broken, how to get it working.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getOLZoomFromMapObjectZoom"></a>getOLZoomFromMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getOLZoomFromMapObjectZoom: function(</td><td class=PParameter nowrap>moZoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getOLZoomFromMapObjectZoom"></a>getOLZoomFromMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getOLZoomFromMapObjectZoom: function(</td><td class="PParameter  prettyprint " nowrap>moZoom</td><td class="PAfterParameters  prettyprint "now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoomFromOLZoom"></a>getMapObjectZoomFromOLZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectZoomFromOLZoom: function(</td><td class=PParameter nowrap>olZoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoomFromOLZoom"></a>getMapObjectZoomFromOLZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectZoomFromOLZoom: function(</td><td class="PParameter  prettyprint " nowrap>olZoom</td><td class="PAfterParameters  prettyprint "now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMapObjectCenter: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.setMapObjectCenter"></a>setMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMapObjectCenter: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom</ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectCenter"></a>getMapObjectCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Object} The mapObject’s current center in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dragPanMapObject: function(</td><td class=PParameter nowrap>dX,</td></tr><tr><td></td><td class=PParameter nowrap>dY</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.dragPanMapObject"></a>dragPanMapObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dragPanMapObject: function(</td><td class="PParameter  prettyprint " nowrap>dX,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dY</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectZoom"></a>getMapObjectZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapObjectZoom: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The mapObject’s current zoom, in Map Object format</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromMapObjectPixel"></a>getMapObjectLonLatFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromMapObjectLonLat"></a>getMapObjectPixelFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLongitudeFromMapObjectLonLat"></a>getLongitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLongitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class=PParameter nowrap>moLonLat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getLatitudeFromMapObjectLonLat"></a>getLatitudeFromMapObjectLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLatitudeFromMapObjectLonLat: function(</td><td class="PParameter  prettyprint " nowrap>moLonLat</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectLonLatFromLonLat: function(</td><td class=PParameter nowrap>lon,</td></tr><tr><td></td><td class=PParameter nowrap>lat</td><td class=PAfterPara [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectLonLatFromLonLat"></a>getMapObjectLonLatFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectLonLatFromLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lon,</td></tr><tr><td></td><td class="PParameter   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getXFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getXFromMapObjectPixel"></a>getXFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getXFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getYFromMapObjectPixel: function(</td><td class=PParameter nowrap>moPixel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getYFromMapObjectPixel"></a>getYFromMapObjectPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getYFromMapObjectPixel: function(</td><td class="PParameter  prettyprint " nowrap>moPixel</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectPixelFromXY: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectPixelFromXY"></a>getMapObjectPixelFromXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectPixelFromXY: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " now [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectSizeFromOLSize"></a>getMapObjectSizeFromOLSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMapObjectSizeFromOLSize: function(</td><td class=PParameter nowrap>olSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Yahoo.getMapObjectSizeFromOLSize"></a>getMapObjectSizeFromOLSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMapObjectSizeFromOLSize: function(</td><td class="PParameter  prettyprint " nowrap>olSize</td><td class="PAfterParameters  prettyprint "now [...]
 
 </div><!--Content-->
 
@@ -81,15 +81,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>loadMapObject:function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onMapResize: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpad [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">loadMapObject:function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onMapResize: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><bloc [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Layer/Zoomify-js.html b/doc/devdocs/files/OpenLayers/Layer/Zoomify-js.html
index 493bb17..09561c5 100644
--- a/doc/devdocs/files/OpenLayers/Layer/Zoomify-js.html
+++ b/doc/devdocs/files/OpenLayers/Layer/Zoomify-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Layer.Zoomify - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Layer.Zoomify - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,45 +11,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Zoomify"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Zoomify</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=ST [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Layer.Zoomify"></a>OpenLayers.<wbr>Layer.<wbr>Zoomify</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Grid-js.html#OpenLayers.Layer.Grid" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">OpenLayers.Layer.Grid</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.url"></a>url</h3><div class=CBody><p>{String} URL for root directory with TileGroupX subdirectories.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.size"></a>size</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} The Zoomify image size in pixels.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.size"></a>size</h3><div class=CBody><p>{<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} The Zoomify image size in pixels.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.isBaseLayer"></a>isBaseLayer</h3><div class=CBody><p>{Boolean}</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.standardTileSize"></a>standardTileSize</h3><div class=CBody><p>{Integer} The size of a standard (non-border) square tile in pixels.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.tileOriginCorner"></a>tileOriginCorner</h3><div class=CBody><p>{String} This layer uses top-left as tile origin</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.numberOfTiers"></a>numberOfTiers</h3><div class=CBody><p>{Integer} Depth of the Zoomify pyramid, number of tiers (zoom levels)</p><ul><li>filled during Zoomify pyramid initialization.</li></ul></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.tileCountUpToTier"></a>tileCountUpToTier</h3><div class=CBody><p>{Array(Integer)} Number of tiles up to the given tier of pyramid.</p><ul><li>filled during Zoomify pyramid initialization.</li></ul></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.tierSizeInTiles"></a>tierSizeInTiles</h3><div class=CBody><p>{Array(<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>)} Size (in tiles) for each tier of pyramid.</p><ul><li>filled during Zoomify pyramid initialization.</li></ul></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.tierSizeInTiles"></a>tierSizeInTiles</h3><div class=CBody><p>{Array(<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>)} Size (in tiles) for each tier of pyramid.</p><ul><li>filled during Zoomify pyramid initialization.</li></ul></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.tierImageSize"></a>tierImageSize</h3><div class=CBody><p>{Array(<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>)} Image size in pixels for each pyramid tier.</p><ul><li>filled during Zoomify pyramid initialization.</li></ul></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.tierImageSize"></a>tierImageSize</h3><div class=CBody><p>{Array(<a href="../BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>)} Image size in pixels for each pyramid tier.</p><ul><li>filled during Zoomify pyramid initialization.</li></ul></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify"></a>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Zoomify</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} - Relative o [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify"></a>OpenLayers.<wbr>Layer.<wbr>Zoomify</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>{String} A name for the layer.</td></tr><tr><td class=CDLEntry>url</td><td class=CDLDescription>{String} - Relative or absolute path to the image or more [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.initializeZoomify"></a>initializeZoomify</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initializeZoomify: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>It generates const [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.initializeZoomify"></a>initializeZoomify</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initializeZoomify: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getURL: function (</td><td class=PParameter nowrap>bounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.getImageSize"></a>getImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getImageSize: function()</td></tr></table></blockquote><p>getImageSize returns size for a particular tile.  If bounds are given as first argument, size is calculated (bottom-right tiles are non square).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.getURL"></a>getURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getURL: function (</td><td class="PParameter  prettyprint " nowrap>bounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.addTile"></a>addTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addTile:function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.getImageSize"></a>getImageSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getImageSize: function()</td></tr></table></blockquote><p>getImageSize returns size for a particular tile.  If bounds are given as first argument, size is calculated (bottom-right tiles are non square).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setMap: function(</td><td class=PParameter nowrap>map</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When the layer is added to a map, then we can fetch  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.setMap"></a>setMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setMap: function(</td><td class="PParameter  prettyprint " nowrap>map</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>When [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateGridLayout: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Layer.Zoomify.calculateGridLayout"></a>calculateGridLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateGridLayout: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>o [...]
 
 </div><!--Content-->
 
@@ -57,15 +57,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([20, 21, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([19, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initializeZoomify: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>It generates  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initializeZoomify: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ta [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Map-js.html b/doc/devdocs/files/OpenLayers/Map-js.html
index e078307..68428bf 100644
--- a/doc/devdocs/files/OpenLayers/Map-js.html
+++ b/doc/devdocs/files/OpenLayers/Map-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Map - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Map - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Java [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,45 +11,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Map"></a>OpenLayers.Map</h1><div class=CBody><p>Instances of OpenLayers.Map are interactive maps embedded in a web page.  Create a new map with the <a href="#OpenLayers.Map.OpenLayers.Map" class=LConstructor id=link87 onMouseOver="ShowTip(event, 'tt76', 'link87')" onMouseOut="HideTip('tt76')">OpenLayers.Map</a> constructor.</p><p>On their own maps do not provide much functionality [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Map"></a>OpenLayers.Map</h1><div class=CBody><p>Instances of OpenLayers.Map are interactive maps embedded in a web page.  Create a new map with the <a href="#OpenLayers.Map.OpenLayers.Map" class=LConstructor id=link92 onMouseOver="ShowTip(event, 'tt79', 'link92')" onMouseOut="HideTip('tt79')">OpenLayers.Map</a> constructor.</p><p>On their own maps do not provide much functionality [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Constants"></a>Constants</h3></div></div>
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Z_INDEX_BASE"></a>Z_INDEX_BASE</h3><div class=CBody><p>{Object} Base z-indexes for different classes of thing</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>map.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happened.</p><h4 class=C [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">map.events.register(type, obj, listener);</pre></blockquote><p>Listeners will be called with a reference to an event object.   The properties of this event depends on exactly what happ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.id"></a>id</h3><div class=CBody><p>{String} Unique identifier for the map</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.fractionalZoom"></a>fractionalZoom</h3><div class=CBody><p>{Boolean} For a base layer that supports it, allow the map resolution to be set to a value between one of the values in the resolutions array.   Default is false.</p><p>When fractionalZoom is set to true, it is possible to zoom to an arbitrary extent.   This requires a base layer from a source that supports requests for arbitrary extents ( [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.fractionalZoom"></a>fractionalZoom</h3><div class=CBody><p>{Boolean} For a base layer that supports it, allow the map resolution to be set to a value between one of the values in the resolutions array.   Default is false.</p><p>When fractionalZoom is set to true, it is possible to zoom to an arbitrary extent.   This requires a base layer from a source that supports requests for arbitrary extents ( [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} An events object that handles all events on the map</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.allOverlays"></a>allOverlays</h3><div class=CBody><p>{Boolean} Allow the map to function with “overlays” only.   Defaults to false.   If true, the lowest layer in the draw order will act as the base layer.   In addition, if set to true, all layers will have isBaseLayer set to false when they are added to the map.</p><h4 class=CHeading>Note</h4><p>If you set map.allOverlays to true [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.allOverlays"></a>allOverlays</h3><div class=CBody><p>{Boolean} Allow the map to function with “overlays” only.   Defaults to false.   If true, the lowest layer in the draw order will act as the base layer.   In addition, if set to true, all layers will have isBaseLayer set to false when they are added to the map.</p><h4 class=CHeading>Note</h4><p>If you set map.allOverlays to true [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.div"></a>div</h3><div class=CBody><p>{DOMElement|String} The element that contains the map (or an id for that element).   If the <a href="#OpenLayers.Map.OpenLayers.Map" class=LConstructor id=link93 onMouseOver="ShowTip(event, 'tt76', 'link93')" onMouseOut="HideTip('tt76')">OpenLayers.Map</a> constructor is called with two arguments, this should be provided as the first argument.  Alternatively, t [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.div"></a>div</h3><div class=CBody><p>{DOMElement|String} The element that contains the map (or an id for that element).   If the <a href="#OpenLayers.Map.OpenLayers.Map" class=LConstructor id=link98 onMouseOver="ShowTip(event, 'tt79', 'link98')" onMouseOut="HideTip('tt79')">OpenLayers.Map</a> constructor is called with two arguments, this should be provided as the first argument.  Alternatively, t [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.dragging"></a>dragging</h3><div class=CBody><p>{Boolean} The map is currently being dragged.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.size"></a>size</h3><div class=CBody><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link98 onMouseOver="ShowTip(event, 'tt1', 'link98')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Size of the main div (this.div)</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.size"></a>size</h3><div class=CBody><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link103 onMouseOver="ShowTip(event, 'tt1', 'link103')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Size of the main div (this.div)</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.viewPortDiv"></a>viewPortDiv</h3><div class=CBody><p>{HTMLDivElement} The element that represents the map viewport</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.layerContainerOrigin"></a>layerContainerOrigin</h3><div class=CBody><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link99 onMouseOver="ShowTip(event, 'tt2', 'link99')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>} The lonlat at which the later container was re-initialized (on-zoom)</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.layerContainerOrigin"></a>layerContainerOrigin</h3><div class=CBody><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link104 onMouseOver="ShowTip(event, 'tt2', 'link104')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>} The lonlat at which the later container was re-initialized (on-zoom)</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.layerContainerDiv"></a>layerContainerDiv</h3><div class=CBody><p>{HTMLDivElement} The element that contains the layers.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.layers"></a>layers</h3><div class=CBody><p>{Array(<a href="Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>)} Ordered list of layers in the map</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.controls"></a>controls</h3><div class=CBody><p>{Array(<a href="Control-js.html#OpenLayers.Control" class=LClass id=link100 onMouseOver="ShowTip(event, 'tt3', 'link100')" onMouseOut="HideTip('tt3')">OpenLayers.Control</a>)} List of controls associated with the map.</p><p>If not provided in the map options at construction, the map will be given the following controls by default:</p><ul><li><a href="Control/Na [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.controls"></a>controls</h3><div class=CBody><p>{Array(<a href="Control-js.html#OpenLayers.Control" class=LClass id=link105 onMouseOver="ShowTip(event, 'tt3', 'link105')" onMouseOut="HideTip('tt3')">OpenLayers.Control</a>)} List of controls associated with the map.</p><p>If not provided in the map options at construction, the map will be given the following controls by default:</p><ul><li><a href="Control/Na [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.popups"></a>popups</h3><div class=CBody><p>{Array(<a href="Popup-js.html#OpenLayers.Popup" class=LClass id=link105 onMouseOver="ShowTip(event, 'tt4', 'link105')" onMouseOut="HideTip('tt4')">OpenLayers.Popup</a>)} List of popups associated with the map</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.popups"></a>popups</h3><div class=CBody><p>{Array(<a href="Popup-js.html#OpenLayers.Popup" class=LClass id=link110 onMouseOver="ShowTip(event, 'tt4', 'link110')" onMouseOut="HideTip('tt4')">OpenLayers.Popup</a>)} List of popups associated with the map</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.baseLayer"></a>baseLayer</h3><div class=CBody><p>{<a href="Layer-js.html#OpenLayers.Layer" class=LClass >OpenLayers.Layer</a>} The currently selected base layer.   This determines min/max zoom level, projection, etc.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.center"></a>center</h3><div class=CBody><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link106 onMouseOver="ShowTip(event, 'tt2', 'link106')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>} The current center of the map</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.center"></a>center</h3><div class=CBody><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link111 onMouseOver="ShowTip(event, 'tt2', 'link111')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>} The current center of the map</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.resolution"></a>resolution</h3><div class=CBody><p>{Float} The resolution of the map.</p></div></div></div>
 
@@ -59,7 +59,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.viewRequestID"></a>viewRequestID</h3><div class=CBody><p>{String} Used to store a unique identifier that changes when the map view changes. viewRequestID should be used when adding data asynchronously to the map: viewRequestID is incremented when you initiate your request (right now during changing of baselayers and changing of zooms).  It is stored here in the map and also in the data that will be com [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link107 onMouseOver="ShowTip(event, 'tt1', 'link107')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Set in the map options to override the default tile size for this map.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.tileSize"></a>tileSize</h3><div class=CBody><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link112 onMouseOver="ShowTip(event, 'tt1', 'link112')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} Set in the map options to override the default tile size for this map.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.projection"></a>projection</h3><div class=CBody><p>{String} Set in the map options to override the default projection string this map - also set maxExtent, maxResolution, and units if appropriate.   Default is “EPSG:4326”.</p></div></div></div>
 
@@ -75,33 +75,37 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.minScale"></a>minScale</h3><div class=CBody><p>{Float}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.maxExtent"></a>maxExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link108 onMouseOver="ShowTip(event, 'tt5', 'link108')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} The maximum extent for the map.   Defaults to the whole world in decimal degrees (-180, -90, 180, 90).   Specify a different extent in the map options if you are not using a g [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.maxExtent"></a>maxExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link113 onMouseOver="ShowTip(event, 'tt5', 'link113')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} The maximum extent for the map.   Defaults to the whole world in decimal degrees (-180, -90, 180, 90).   Specify a different extent in the map options if you are not using a g [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.minExtent"></a>minExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link109 onMouseOver="ShowTip(event, 'tt5', 'link109')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>}</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.minExtent"></a>minExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link114 onMouseOver="ShowTip(event, 'tt5', 'link114')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.restrictedExtent"></a>restrictedExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link110 onMouseOver="ShowTip(event, 'tt5', 'link110')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} Limit map navigation to this extent where possible.  If a non-null restrictedExtent is set, panning will be restricted to the given bounds.   In addition, zoomin [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.restrictedExtent"></a>restrictedExtent</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link115 onMouseOver="ShowTip(event, 'tt5', 'link115')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} Limit map navigation to this extent where possible.  If a non-null restrictedExtent is set, panning will be restricted to the given bounds.   In addition, zoomin [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.numZoomLevels"></a>numZoomLevels</h3><div class=CBody><p>{Integer} Number of zoom levels for the map.   Defaults to 16.   Set a different value in the map options if needed.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.theme"></a>theme</h3><div class=CBody><p>{String} Relative path to a CSS file from which to load theme styles.  Specify null in the map options (e.g.  {theme: null}) if you want to get cascading style declarations - by putting links to stylesheets or style declarations directly in your page.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.displayProjection"></a>displayProjection</h3><div class=CBody><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link111 onMouseOver="ShowTip(event, 'tt6', 'link111')" onMouseOut="HideTip('tt6')">OpenLayers.Projection</a>} Requires proj4js support.Projection used by several controls to display data to user.  If this property is set, it will be set on any control which has a null dis [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.displayProjection"></a>displayProjection</h3><div class=CBody><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link116 onMouseOver="ShowTip(event, 'tt6', 'link116')" onMouseOut="HideTip('tt6')">OpenLayers.Projection</a>} Requires proj4js support.Projection used by several controls to display data to user.  If this property is set, it will be set on any control which has a null dis [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.fallThrough"></a>fallThrough</h3><div class=CBody><p>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  (#457) Default is to fall through.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panTween"></a>panTween</h3><div class=CBody><p>{OpenLayers.Tween} Animated panning tween object, see panTo()</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link112 onMouseOver="ShowTip(event, 'tt7', 'link112')" onMouseOut="HideTip('tt7')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for th [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.eventListeners"></a>eventListeners</h3><div class=CBody><p>{Object} If set as an option at construction, the eventListeners object will be registered with <a href="Events-js.html#OpenLayers.Events.on" class=LFunction id=link117 onMouseOver="ShowTip(event, 'tt7', 'link117')" onMouseOut="HideTip('tt7')">OpenLayers.Events.on</a>.   Object structure must be a listeners object as shown in the example for th [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panMethod"></a>panMethod</h3><div class=CBody><p>{Function} The Easing function to be used for tweening.   Default is OpenLayers.Easing.Expo.easeOut.  Setting this to ‘null’ turns off animated panning.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panDuration"></a>panDuration</h3><div class=CBody><p>{Integer} The number of steps to be passed to the OpenLayers.Tween.start() method when the map is panned.  Default is 50.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.paddingForPopups"></a>paddingForPopups</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link113 onMouseOver="ShowTip(event, 'tt5', 'link113')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} Outside margin of the popup.  Used to prevent the popup from getting too close to the map border.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.paddingForPopups"></a>paddingForPopups</h3><div class=CBody><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link118 onMouseOver="ShowTip(event, 'tt5', 'link118')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} Outside margin of the popup.  Used to prevent the popup from getting too close to the map border.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.minPx"></a>minPx</h3><div class=CBody><p>{<a href="BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link119 onMouseOver="ShowTip(event, 'tt8', 'link119')" onMouseOut="HideTip('tt8')">OpenLayers.Pixel</a>} Lower left of maxExtent in viewport pixel space.  Used to verify in moveByPx that the new location we’re moving to is valid.  It is also used in the getLonLatFromViewPortPx functio [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.maxPx"></a>maxPx</h3><div class=CBody><p>{<a href="BaseTypes/Pixel-js.html#OpenLayers.Pixel" class=LClass id=link120 onMouseOver="ShowTip(event, 'tt8', 'link120')" onMouseOut="HideTip('tt8')">OpenLayers.Pixel</a>} Top right of maxExtent in viewport pixel space.  Used to verify in moveByPx that the new location we’re moving to is valid.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.OpenLayers.Map"></a>OpenLayers.Map</h3><div class=CBody><p>Constructor for a new OpenLayers.Map instance.   There are two possible ways to call the map constructor.   See the examples below.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>div</td><td class=CDLDescription>{DOMElement|String}  The element or id of an e [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.OpenLayers.Map"></a>OpenLayers.Map</h3><div class=CBody><p>Constructor for a new OpenLayers.Map instance.   There are two possible ways to call the map constructor.   See the examples below.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>div</td><td class=CDLDescription>{DOMElement|String}  The element or id of an e [...]
 var map = new OpenLayers.Map("map1");
 
 // create a map with non-default options in an element with id "map2"
@@ -111,7 +115,9 @@ var options = {
     units: 'm',
     projection: "EPSG:41001"
 };
-var map = new OpenLayers.Map("map2", options);</pre></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Examples (method two</td><td class=CDLDescription>single argument):</td></tr></table><blockquote><pre>// create a map with non-default options
+var map = new OpenLayers.Map("map2", options);
+
+// map with non-default options - same as above but with a single argument
 var map = new OpenLayers.Map({
     div: "map_id",
     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),
@@ -130,145 +136,149 @@ var map = new OpenLayers.Map({
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.render"></a>render</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>render: function(</td><td class=PParameter nowrap>div</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render the map to a specified container.</p><h4 class=CHeading [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.render"></a>render</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>render: function(</td><td class="PParameter  prettyprint " nowrap>div</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render the map [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.unloadDestroy"></a>unloadDestroy</h3><div class=CBody><p>Function that is called to destroy the map on page unload. stored here so that if map is manually destroyed, we can unregister this.</p></div></div></div>
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.updateSizeDestroy"></a>updateSizeDestroy</h3><div class=CBody><p>When the map is destroyed, we need to stop listening to updateSize events: this method stores the function we need to unregister in non-IE browsers.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:function()</td></tr></table></blockquote><p>Destroy this map</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy:function()</td></tr></table></blockquote><p>Destroy this map.  Note that if you are using an application which removes a container of the map from the DOM, you need to ensure that you destroy the map <b>before</b> this happens; otherwise, the page unloa [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOptions: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getTileSize"></a>getTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getTileSize: function()</td></tr></table></blockquote><p>Get the tile size for the map</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link123 onMouseOver="ShowTip(event, 'tt1', 'link123')" onMouseOut="H [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setOptions"></a>setOptions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOptions: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the map options</p><h4 class=CHeading>P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getBy"></a>getBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBy: function(</td><td class="PParameter  prettyprint " nowrap>array,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getTileSize"></a>getTileSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getTileSize: function()</td></tr></table></blockquote><p>Get the tile size for the map</p><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link116 onMouseOver="ShowTip(event, 'tt1', 'link116')" onMouseOut="HideTip('tt1')">OpenLay [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersBy"></a>getLayersBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParame [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getBy"></a>getBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBy: function(</td><td class=PParameter nowrap>array,</td></tr><tr><td></td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByName"></a>getLayersByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersByName: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersBy"></a>getLayersBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByClass"></a>getLayersByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayersByClass: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByName"></a>getLayersByName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersByName: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of layers with names m [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsBy: function(</td><td class="PParameter  prettyprint " nowrap>property,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayersByClass"></a>getLayersByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayersByClass: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of layers of a give [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControlsByClass: function(</td><td class="PParameter  prettyprint " nowrap>match</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsBy"></a>getControlsBy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsBy: function(</td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayer"></a>getLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayer: function(</td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a lay [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControlsByClass"></a>getControlsByClass</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControlsByClass: function(</td><td class=PParameter nowrap>match</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a list of controls o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setLayerZIndex"></a>setLayerZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayerZIndex: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zIdx</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayer"></a>getLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayer: function(</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get a layer based on its id</p><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.resetLayersZIndex"></a>resetLayersZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">resetLayersZIndex: function()</td></tr></table></blockquote><p>Reset each layer’s z-index based on layer’s array index</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setLayerZIndex"></a>setLayerZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayerZIndex: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>zIdx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayer"></a>addLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addLayer: function (</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.resetLayersZIndex"></a>resetLayersZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>resetLayersZIndex: function()</td></tr></table></blockquote><p>Reset each layer’s z-index based on layer’s array index</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayers"></a>addLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addLayers: function (</td><td class="PParameter  prettyprint " nowrap>layers</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayer"></a>addLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addLayer: function (</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellsp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeLayer"></a>removeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>setNewBaseLayer</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addLayers"></a>addLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addLayers: function (</td><td class=PParameter nowrap>layers</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumLayers"></a>getNumLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getNumLayers: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Int} The number of layers attached to the map.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeLayer"></a>removeLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeLayer: function(</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>setNewBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerIndex"></a>getLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerIndex: function (</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumLayers"></a>getNumLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getNumLayers: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Int} The number of layers attached to the map.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setLayerIndex"></a>setLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayerIndex: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>idx</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerIndex"></a>getLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerIndex: function (</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.raiseLayer"></a>raiseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>raiseLayer: function (</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>delta</td><td class="PAfterParameters  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setLayerIndex"></a>setLayerIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayerIndex: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>idx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setBaseLayer"></a>setBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBaseLayer: function(</td><td class="PParameter  prettyprint " nowrap>newBaseLayer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.raiseLayer"></a>raiseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>raiseLayer: function (</td><td class=PParameter nowrap>layer,</td></tr><tr><td></td><td class=PParameter nowrap>delta</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bloc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControl"></a>addControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControl: function (</td><td class="PParameter  prettyprint " nowrap>control,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters   [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setBaseLayer"></a>setBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBaseLayer: function(</td><td class=PParameter nowrap>newBaseLayer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows user to specify one of the c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControls: function (</td><td class="PParameter  prettyprint " nowrap>controls,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>pixels</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControl"></a>addControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControl: function (</td><td class=PParameter nowrap>control,</td></tr><tr><td></td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></block [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControlToMap"></a>addControlToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addControlToMap: function (</td><td class="PParameter  prettyprint " nowrap>control,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControls"></a>addControls</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControls: function (</td><td class=PParameter nowrap>controls,</td></tr><tr><td></td><td class=PParameter nowrap>pixels</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControl"></a>getControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getControl: function (</td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addControlToMap"></a>addControlToMap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addControlToMap: function (</td><td class=PParameter nowrap>control,</td></tr><tr><td></td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeControl"></a>removeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeControl: function (</td><td class="PParameter  prettyprint " nowrap>control</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getControl"></a>getControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getControl: function (</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addPopup"></a>addPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPopup: function(</td><td class="PParameter  prettyprint " nowrap>popup,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>exclusive</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removeControl"></a>removeControl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeControl: function (</td><td class=PParameter nowrap>control</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Remove a control from the map.  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removePopup"></a>removePopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removePopup: function(</td><td class="PParameter  prettyprint " nowrap>popup</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.addPopup"></a>addPopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPopup: function(</td><td class=PParameter nowrap>popup,</td></tr><tr><td></td><td class=PParameter nowrap>exclusive</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getSize: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link136 onMouseOver="ShowTip(event, 'tt1', 'link136')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} An <a href= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.removePopup"></a>removePopup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removePopup: function(</td><td class=PParameter nowrap>popup</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateSize: function()</td></tr></table></blockquote><p>This function should be called by any external code which dynamically changes the size of the map div (because mozilla wont let us catch the “onresize” for an element)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getSize"></a>getSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getSize: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link129 onMouseOver="ShowTip(event, 'tt1', 'link129')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} An <a href="BaseTypes/Size-js.htm [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCurrentSize"></a>getCurrentSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCurrentSize: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link138 onMouseOver="ShowTip(event, 'tt1', 'link138')" onMouseOut="HideTip('tt1')">OpenLayers.S [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateSize: function()</td></tr></table></blockquote><p>This function should be called by any external code which dynamically changes the size of the map div (because mozilla wont let us catch the “onresize” for an element)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateBounds: function(</td><td class="PParameter  prettyprint " nowrap>center,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resolution</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCurrentSize"></a>getCurrentSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCurrentSize: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Size-js.html#OpenLayers.Size" class=LClass id=link131 onMouseOver="ShowTip(event, 'tt1', 'link131')" onMouseOut="HideTip('tt1')">OpenLayers.Size</a>} A new <a href [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCenter"></a>getCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCenter: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link142 onMouseOver="ShowTip(event, 'tt2', 'link142')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>} [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateBounds: function(</td><td class=PParameter nowrap>center,</td></tr><tr><td></td><td class=PParameter nowrap>resolution</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCachedCenter"></a>getCachedCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCachedCenter: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link143 onMouseOver="ShowTip(event, 'tt2', 'link143')" onMouseOut="HideTip('tt2')">OpenL [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getCenter"></a>getCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCenter: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link135 onMouseOver="ShowTip(event, 'tt2', 'link135')" onMouseOut="HideTip('tt2')">OpenLayers.LonLat</a>}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getZoom: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer}</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoom"></a>getZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getZoom: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.pan"></a>pan</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pan: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy,</td></tr><tr><td></td><td class="PParameter  prettyprint "  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.pan"></a>pan</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pan: function(</td><td class=PParameter nowrap>dx,</td></tr><tr><td></td><td class=PParameter nowrap>dy,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panTo"></a>panTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>panTo: function(</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows user to [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.panTo"></a>panTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>panTo: function(</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows user to pan to a new lonlat If the new lonlat is in the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setCenter"></a>setCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCenter: function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom,</td></tr><tr><td></td><td class="PP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.setCenter"></a>setCenter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCenter: function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>zoom,</td></tr><tr><td></td><td class=PParameter nowrap>dragging,</td></tr><tr><td></td><t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.moveByPx"></a>moveByPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveByPx: function(</td><td class="PParameter  prettyprint " nowrap>dx,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>dy</td><td class="PAfterParameters  prettyprint  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>zoom,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>zoom,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.centerLayerContainer"></a>centerLayerContainer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>centerLayerContainer: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.centerLayerContainer"></a>centerLayerContainer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>centerLayerContainer: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.isValidZoomLevel"></a>isValidZoomLevel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isValidZoomLevel: function(</td><td class=PParameter nowrap>zoomLevel</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.isValidZoomLevel"></a>isValidZoomLevel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isValidZoomLevel: function(</td><td class="PParameter  prettyprint " nowrap>zoomLevel</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.isValidLonLat"></a>isValidLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isValidLonLat: function(</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.isValidLonLat"></a>isValidLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isValidLonLat: function(</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjection"></a>getProjection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getProjection: function()</td></tr></table></blockquote><p>This method returns a string representing the projection.  In the case of projection support, this will be the srsCode which is loaded -- otherwise it will simply be the string value that was passed to the projec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjection"></a>getProjection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getProjection: function()</td></tr></table></blockquote><p>This method returns a string representing the projection.  In the case of projection support, this will be the srsCode which is loaded -- otherwise it will simply be the string value that wa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjectionObject"></a>getProjectionObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getProjectionObject: function()</td></tr></table></blockquote><p>Returns the projection obect from the baselayer.</p><h4 class=CHeading>Returns</h4><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link140 onMouseOver="ShowTip(event, 'tt6', 'l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getProjectionObject"></a>getProjectionObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getProjectionObject: function()</td></tr></table></blockquote><p>Returns the projection obect from the baselayer.</p><h4 class=CHeading>Returns</h4><p>{<a href="Projection-js.html#OpenLayers.Projection" class=LClass id=link149 onMouseOver="Sh [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxResolution"></a>getMaxResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMaxResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The Map’s Maximum Resolution</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxResolution"></a>getMaxResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMaxResolution: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The Map’s Maximum Resolution</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getMaxExtent: function (</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getMaxExtent"></a>getMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getMaxExtent: function (</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumZoomLevels"></a>getNumZoomLevels</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getNumZoomLevels: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The total number of zoom levels that can be displayed by the current baseLayer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getNumZoomLevels"></a>getNumZoomLevels</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getNumZoomLevels: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Integer} The total number of zoom levels that can be displayed by the current baseLayer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getExtent: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link142 onMouseOver="ShowTip(event, 'tt5', 'link142')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} A Bounds object which [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getExtent"></a>getExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getExtent: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link151 onMouseOver="ShowTip(event, 'tt5', 'link151')" onMouseOut="HideTip('tt5')">OpenLayers.Bounds</a>} [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current resolution of the map.  If no baselayer is set, returns null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current resolution of the map.  If no baselayer is set, returns null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getUnits: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current units of the map.  If no baselayer is set, returns null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getUnits: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current units of the map.  If no baselayer is set, returns null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getScale"></a>getScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getScale: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current scale denominator of the map.  If no baselayer is set, returns null.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getScale"></a>getScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getScale: function ()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Float} The current scale denominator of the map.  If no baselayer is set, returns null.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForExtent: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForExtent"></a>getZoomForExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForExtent: function (</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getResolutionForZoom: function(</td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getResolutionForZoom"></a>getResolutionForZoom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getResolutionForZoom: function(</td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZoomForResolution: function(</td><td class=PParameter nowrap>resolution,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getZoomForResolution"></a>getZoomForResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZoomForResolution: function(</td><td class="PParameter  prettyprint " nowrap>resolution,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>clos [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomTo"></a>zoomTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomTo: function(</td><td class=PParameter nowrap>zoom</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoom to a specific zoom level</p><h4 class=CHeading>Parameter [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomTo"></a>zoomTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomTo: function(</td><td class="PParameter  prettyprint " nowrap>zoom</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoom to a spe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomIn"></a>zoomIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>zoomIn: function()</td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>zoom</td><td class=CDLDescription>{int}</td></tr></table></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomIn"></a>zoomIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">zoomIn: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomOut"></a>zoomOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>zoomOut: function()</td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>zoom</td><td class=CDLDescription>{int}</td></tr></table></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomOut"></a>zoomOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">zoomOut: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToExtent"></a>zoomToExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomToExtent: function(</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToExtent"></a>zoomToExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomToExtent: function(</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToMaxExtent"></a>zoomToMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomToMaxExtent: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Zoom to the full extent and rec [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToMaxExtent"></a>zoomToMaxExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomToMaxExtent: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToScale"></a>zoomToScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>zoomToScale: function(</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>closest</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.zoomToScale"></a>zoomToScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>zoomToScale: function(</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>closest</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromViewPortPx: function (</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromViewPortPx"></a>getLonLatFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromViewPortPx: function (</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLonLat"></a>getViewPortPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromPixel"></a>getLonLatFromPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromPixel: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromPixel"></a>getLonLatFromPixel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromPixel: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getPixelFromLonLat"></a>getPixelFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getPixelFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a pixel locati [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getPixelFromLonLat"></a>getPixelFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getPixelFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getGeodesicPixelSize"></a>getGeodesicPixelSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getGeodesicPixelSize: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Param [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getGeodesicPixelSize"></a>getGeodesicPixelSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getGeodesicPixelSize: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLayerPx"></a>getViewPortPxFromLayerPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getViewPortPxFromLayerPx:function(</td><td class=PParameter nowrap>layerPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getViewPortPxFromLayerPx"></a>getViewPortPxFromLayerPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getViewPortPxFromLayerPx:function(</td><td class="PParameter  prettyprint " nowrap>layerPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromViewPortPx"></a>getLayerPxFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerPxFromViewPortPx:function(</td><td class=PParameter nowrap>viewPortPx</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromViewPortPx"></a>getLayerPxFromViewPortPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerPxFromViewPortPx:function(</td><td class="PParameter  prettyprint " nowrap>viewPortPx</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromLayerPx"></a>getLonLatFromLayerPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLonLatFromLayerPx: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLonLatFromLayerPx"></a>getLonLatFromLayerPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLonLatFromLayerPx: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromLonLat"></a>getLayerPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLayerPxFromLonLat: function (</td><td class=PParameter nowrap>lonlat</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.getLayerPxFromLonLat"></a>getLayerPxFromLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLayerPxFromLonLat: function (</td><td class="PParameter  prettyprint " nowrap>lonlat</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Map.Constants"></a>Constants</h3></div></div>
 
@@ -282,15 +292,15 @@ var map = new OpenLayers.Map({
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt4"><div class=CClass>A popup is a small div that can opened and closed on the map. </div></div><div class=CToolTip id="tt5"><div clas [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Controls affect the display or behavior of the map. </div></div><div class=CToolTip id="tt4"><div class=CClass>A popup is a small div that can opened and closed on the map. </div></div><div class=CToolTip id="tt5"><div clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Marker-js.html b/doc/devdocs/files/OpenLayers/Marker-js.html
index d9e902e..37429c1 100644
--- a/doc/devdocs/files/OpenLayers/Marker-js.html
+++ b/doc/devdocs/files/OpenLayers/Marker-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Marker - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Marker - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,14 +11,14 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker"></a>OpenLayers.<span class=HB> </span>Marker</h1><div class=CBody><p>Instances of OpenLayers.Marker are a combination of a <a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a> and an <a href="Icon-js.html#OpenLayers.Icon" class=LClass id=link19 onMouseOver="Sho [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker"></a>OpenLayers.<wbr>Marker</h1><div class=CBody><p>Instances of OpenLayers.Marker are a combination of a <a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a> and an <a href="Icon-js.html#OpenLayers.Icon" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt2', [...]
 map.addLayer(markers);
 
 var size = new OpenLayers.Size(21,25);
 var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
 var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png', size, offset);
 markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));
-markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone()));</pre></blockquote><p>Note that if you pass an icon into the Marker constructor, it will take that icon and use it.  This means that you should not share icons between markers -- you use them once, but you should clone() for any additional markers using that same icon.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpaddin [...]
+markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone()));</pre></blockquote><p>Note that if you pass an icon into the Marker constructor, it will take that icon and use it.  This means that you should not share icons between markers -- you use them once, but you should clone() for any additional markers using that same icon.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpaddin [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Properties"></a>Properties</h3></div></div>
 
@@ -32,31 +32,31 @@ markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone())
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.OpenLayers.Marker"></a>OpenLayers.<span class=HB> </span>Marker</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link23')" onMouseOut="HideTip('tt1')">OpenLaye [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.OpenLayers.Marker"></a>OpenLayers.<wbr>Marker</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link23')" onMouseOut="HideTip('tt1')">OpenLayers.LonLat</a>} the [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy the marker.  You must first remove the marker from any layer which it has been added to, or you will get buggy behavior.  (This can not be done within the marker since the marker does not know which layer it is att [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy the marker.  You must first remove the marker from any layer which it has been added to, or you will get buggy behavior.  (This can not be done within the marker since the marker does not know [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls draw on the icon, and returns that output.</p><h4 class=CHea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls draw on the  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.erase"></a>erase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>erase: function()</td></tr></table></blockquote><p>Erases any drawn elements for this marker.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.erase"></a>erase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">erase: function()</td></tr></table></blockquote><p>Erases any drawn elements for this marker.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function (</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Move the marker to the new location.</p><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function (</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Move the ma [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the marker is drawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.isDrawn"></a>isDrawn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">isDrawn: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the marker is drawn.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onScreen:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the marker is currently visible on screen.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onScreen:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the marker is currently visible on screen.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.inflate"></a>inflate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>inflate: function(</td><td class=PParameter nowrap>inflate</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Englarges the markers icon by the specified ratio.</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.inflate"></a>inflate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>inflate: function(</td><td class="PParameter  prettyprint " nowrap>inflate</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Engl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity: function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change the opacity of the marker by changin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity: function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setUrl: function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change URL of the Icon Image.</p><table border=0 cellspacin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.setUrl"></a>setUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setUrl: function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Change URL  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the icon</p><table border=0 cellspacing [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.defaultIcon"></a>defaultIcon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Marker.defaultIcon = function()</td></tr></table></blockquote><p>Creates a default <a href="Icon-js.html#OpenLayers.Icon" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt2', 'link27')" onMouseOut="HideTip('tt2')">OpenLayers.Icon</a>.</p><h4 class=CHeading>Retu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.defaultIcon"></a>defaultIcon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Marker.defaultIcon = function()</td></tr></table></blockquote><p>Creates a default <a href="Icon-js.html#OpenLayers.Icon" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt2', 'link27')" onMouseOut="HideTip('tt2')">OpenLayers.Icon</a>.</p>< [...]
 
 </div><!--Content-->
 
@@ -64,15 +64,15 @@ markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone())
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([22, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([20, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>The icon represents a graphical icon on the screen. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:  [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>The icon represents a graphical icon on the screen. </div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class=" [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Marker/Box-js.html b/doc/devdocs/files/OpenLayers/Marker/Box-js.html
index f2c793b..7a12078 100644
--- a/doc/devdocs/files/OpenLayers/Marker/Box-js.html
+++ b/doc/devdocs/files/OpenLayers/Marker/Box-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Marker.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Marker.Box - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker.Box"></a>OpenLayers.<span class=HB> </span>Marker.Box</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Marker-js.html#OpenLayers.Marker" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Marker</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBord [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Marker.Box"></a>OpenLayers.<wbr>Marker.Box</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Marker-js.html#OpenLayers.Marker" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">OpenLayers.Marker</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.Properties"></a>Properties</h3></div></div>
 
@@ -21,19 +21,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.OpenLayers.Marker.Box"></a>OpenLayers.<span class=HB> </span>Marker.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.OpenLayers.Marker.Box"></a>OpenLayers.<wbr>Marker.Box</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">OpenLayers.Bo [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBorder: function (</td><td class=PParameter nowrap>color,</td></tr><tr><td></td><td class=PParameter nowrap>width</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBorder: function (</td><td class="PParameter  prettyprint " nowrap>color,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>width</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px,</td></tr><tr><td></td><td class=PParameter nowrap>sz</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>sz</td><td class="PAfterParameters  prettyprint "nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>onScreen:function()</td></tr></table></blockquote><h4 class=CHeading>Rreturn</h4><p>{Boolean} Whether or not the marker is currently visible on screen.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.onScreen"></a>onScreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">onScreen:function()</td></tr></table></blockquote><h4 class=CHeading>Rreturn</h4><p>{Boolean} Whether or not the marker is currently visible on screen.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>display: function(</td><td class=PParameter nowrap>display</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hide or show the icon</p><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Marker.Box.display"></a>display</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>display: function(</td><td class="PParameter  prettyprint " nowrap>display</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
 </div><!--Content-->
 
@@ -41,15 +41,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([22, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([20, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBe [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpad [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Popup-js.html b/doc/devdocs/files/OpenLayers/Popup-js.html
index 0235b3e..889155e 100644
--- a/doc/devdocs/files/OpenLayers/Popup-js.html
+++ b/doc/devdocs/files/OpenLayers/Popup-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup"></a>OpenLayers.<span class=HB> </span>Popup</h1><div class=CBody><p>A popup is a small div that can opened and closed on the map.  Typically opened in response to clicking on a marker.  See <a href="Marker-js.html#OpenLayers.Marker" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt32', 'link36')" onMouseOut="HideTip('tt32')">OpenLayers.Marker</a>.   Popup&rsq [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup"></a>OpenLayers.<wbr>Popup</h1><div class=CBody><p>A popup is a small div that can opened and closed on the map.  Typically opened in response to clicking on a marker.  See <a href="Marker-js.html#OpenLayers.Marker" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt32', 'link36')" onMouseOut="HideTip('tt32')">OpenLayers.Marker</a>.   Popup’s don’t r [...]
                    new OpenLayers.LonLat(5,40),
                    new OpenLayers.Size(200,200),
                    "example popup",
                    true);
 
-map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Popup" >OpenLayers.<span class=HB> </span>Popup</a></td><td class=SDescription>A popup is a small div that can opened and closed on the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Popup.Properties" >Properties</ [...]
+map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Popup" >OpenLayers.<wbr>Popup</a></td><td class=SDescription>A popup is a small div that can opened and closed on the map. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Popup.Properties" >Properties</a></td><td class=S [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Properties"></a>Properties</h3></div></div>
 
@@ -63,7 +63,7 @@ map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.fixPadding"></a>fixPadding</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>fixPadding: function()</td></tr></table></blockquote><p>To be removed in 3.0, this function merely helps us to deal with the case where the user may have set an integer value for padding, instead of an <a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link44 on [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.fixPadding"></a>fixPadding</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">fixPadding: function()</td></tr></table></blockquote><p>To be removed in 3.0, this function merely helps us to deal with the case where the user may have set an integer value for padding, instead of an <a href="BaseTypes/Bounds-js.html#OpenLayers.Bounds" cla [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Properties"></a>Properties</h3></div></div>
 
@@ -77,61 +77,61 @@ map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.OpenLayers.Popup"></a>OpenLayers.<span class=HB> </span>Popup</h3><div class=CBody><p>Create a popup.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String} a unqiue identifier for this popup.   If null is passed an identifier will be automatically generated.</td></tr><tr><td class=CDLE [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.OpenLayers.Popup"></a>OpenLayers.<wbr>Popup</h3><div class=CBody><p>Create a popup.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String} a unqiue identifier for this popup.   If null is passed an identifier will be automatically generated.</td></tr><tr><td class=CDLEntry>lonlat</td><t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs the elements that make up the popup.</p><h4 class=CHeadi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs the elem [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.updatePosition"></a>updatePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updatePosition: function()</td></tr></table></blockquote><p>if the popup has a lonlat and its map members set, then have it move itself to its proper position</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.updatePosition"></a>updatePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updatePosition: function()</td></tr></table></blockquote><p>if the popup has a lonlat and its map members set, then have it move itself to its proper position</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeadi [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>visible: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Boolean indicating whether or not the popup is visible</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">visible: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Boolean indicating whether or not the popup is visible</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.toggle"></a>toggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toggle: function()</td></tr></table></blockquote><p>Toggles visibility of the popup.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.toggle"></a>toggle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toggle: function()</td></tr></table></blockquote><p>Toggles visibility of the popup.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Makes the popup visible.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p>Makes the popup visible.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>hide: function()</td></tr></table></blockquote><p>Makes the popup invisible.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">hide: function()</td></tr></table></blockquote><p>Makes the popup invisible.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Used to adjust the size of the popup.</p><h4 class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Us [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateSize: function()</td></tr></table></blockquote><p>Auto size the popup so that it precisely fits its contents (as determined by this.contentDiv.innerHTML).  Popup size will, of course, be limited by the available space on the current map</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.updateSize"></a>updateSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateSize: function()</td></tr></table></blockquote><p>Auto size the popup so that it precisely fits its contents (as determined by this.contentDiv.innerHTML).  Popup size will, of course, be limited by the available space on the current map</p></div>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBackgroundColor:function(</td><td class=PParameter nowrap>color</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the background col [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBackgroundColor:function(</td><td class="PParameter  prettyprint " nowrap>color</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity:function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity of the popup.</p><h4 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity:function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBorder:function(</td><td class=PParameter nowrap>border</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the border style of the popup.</p><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBorder:function(</td><td class="PParameter  prettyprint " nowrap>border</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>S [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setContentHTML"></a>setContentHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setContentHTML:function(</td><td class=PParameter nowrap>contentHTML</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allows the user to set the HT [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.setContentHTML"></a>setContentHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setContentHTML:function(</td><td class="PParameter  prettyprint " nowrap>contentHTML</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.registerImageListeners"></a>registerImageListeners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>registerImageListeners: function()</td></tr></table></blockquote><p>Called when an image contained by the popup loaded. this function updates the popup size, then unregisters the image load listener.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.registerImageListeners"></a>registerImageListeners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">registerImageListeners: function()</td></tr></table></blockquote><p>Called when an image contained by the popup loaded. this function updates the popup size, then unregisters the image load listener.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.getSafeContentSize"></a>getSafeContentSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getSafeContentSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.getSafeContentSize"></a>getSafeContentSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getSafeContentSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.getContentDivPadding"></a>getContentDivPadding</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getContentDivPadding: function()</td></tr></table></blockquote><p>Glorious, oh glorious hack in order to determine the css ‘padding’ of the contentDiv.  IE/Opera return null here unless we actually add the popup’s main ‘div’  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.getContentDivPadding"></a>getContentDivPadding</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getContentDivPadding: function()</td></tr></table></blockquote><p>Glorious, oh glorious hack in order to determine the css ‘padding’ of the contentDiv.  IE/Opera return null here unless we actually add the popup’s m [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.addCloseBox"></a>addCloseBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addCloseBox: function(</td><td class=PParameter nowrap>callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.addCloseBox"></a>addCloseBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addCloseBox: function(</td><td class="PParameter  prettyprint " nowrap>callback</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.panIntoView"></a>panIntoView</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>panIntoView: function()</td></tr></table></blockquote><p>Pans the map such that the popup is totaly viewable (if necessary)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.panIntoView"></a>panIntoView</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">panIntoView: function()</td></tr></table></blockquote><p>Pans the map such that the popup is totaly viewable (if necessary)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.registerEvents"></a>registerEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>registerEvents:function()</td></tr></table></blockquote><p>Registers events on the popup.</p><p>Do this in a separate function so that subclasses can choose to override it if they wish to deal differently with mouse events</p><p>Note in the following handler functions tha [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.registerEvents"></a>registerEvents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">registerEvents:function()</td></tr></table></blockquote><p>Registers events on the popup.</p><p>Do this in a separate function so that subclasses can choose to override it if they wish to deal differently with mouse events</p><p>Note in the following [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmousedown"></a>onmousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onmousedown: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When mouse goes down within the popup, make  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmousedown"></a>onmousedown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onmousedown: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmousemove"></a>onmousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onmousemove: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>If the drag was started within the popup, th [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmousemove"></a>onmousemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onmousemove: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmouseup"></a>onmouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onmouseup: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When mouse comes up within the popup, after going  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmouseup"></a>onmouseup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onmouseup: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Wh [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onclick"></a>onclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onclick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ignore clicks, but allowing default browser handling</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onclick"></a>onclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onclick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ignore c [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmouseout"></a>onmouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onmouseout: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>When mouse goes out of the popup set the flag t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.onmouseout"></a>onmouseout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onmouseout: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.ondblclick"></a>ondblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ondblclick: function (</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ignore double-clicks, but allowing default brow [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.ondblclick"></a>ondblclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>ondblclick: function (</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p [...]
 
 </div><!--Content-->
 
@@ -139,15 +139,15 @@ map.addPopup(popup);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>fixPadding: function()</td></tr [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">fixPaddin [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Popup/Anchored-js.html b/doc/devdocs/files/OpenLayers/Popup/Anchored-js.html
index 39d1741..f1b0f66 100644
--- a/doc/devdocs/files/OpenLayers/Popup/Anchored-js.html
+++ b/doc/devdocs/files/OpenLayers/Popup/Anchored-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.Anchored - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.Anchored - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Anchored"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Anchored</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Popup-js.html#OpenLayers.Popup" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Popup</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Anchored"></a>OpenLayers.<wbr>Popup.<wbr>Anchored</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Popup-js.html#OpenLayers.Popup" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">OpenLayers.Popup</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><tabl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.Properties"></a>Properties</h3></div></div>
 
@@ -19,23 +19,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Anchored</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#O [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored"></a>OpenLayers.<wbr>Popup.<wbr>Anchored</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=li [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Overridden from Popup since user might hide popup and then show() it in a new location (meaning we might want to update the relative position on the show)</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p>Overridden from Popup since user might hide popup and then show() it in a new location (meaning we might want to update the relative position on the show)</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Since the popup is moving to a new px, it might need [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sinc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bor [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.calculateRelativePosition"></a>calculateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateRelativePosition:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.calculateRelativePosition"></a>calculateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateRelativePosition:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>) [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.updateRelativePosition"></a>updateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateRelativePosition: function()</td></tr></table></blockquote><p>The popup has been moved to a new relative location, so we may want to make some cosmetic adjustments to it.</p><p>Note that in the classic Anchored popup, there is nothing to do  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.updateRelativePosition"></a>updateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateRelativePosition: function()</td></tr></table></blockquote><p>The popup has been moved to a new relative location, so we may want to make some cosmetic adjustments to it.</p><p>Note that in the classic Anchored popup, t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.calculateNewPx"></a>calculateNewPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateNewPx:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Anchored.calculateNewPx"></a>calculateNewPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateNewPx:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tab [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote>Overridden from Popup since user might hide popup and then show() it in a new location (meaning we might want to update the [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote>Overridden from Popup since user might hide popup and then show() it in a new l [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Popup/AnchoredBubble-js.html b/doc/devdocs/files/OpenLayers/Popup/AnchoredBubble-js.html
index cc0fef8..f64afbb 100644
--- a/doc/devdocs/files/OpenLayers/Popup/AnchoredBubble-js.html
+++ b/doc/devdocs/files/OpenLayers/Popup/AnchoredBubble-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.AnchoredBubble - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.AnchoredBubble - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>AnchoredBubble</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cell [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<wbr>Popup.<wbr>AnchoredBubble</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Properties"></a>Properties</h3></div></div>
 
@@ -19,25 +19,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>AnchoredBubble</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseType [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.OpenLayers.Popup.AnchoredBubble"></a>OpenLayers.<wbr>Popup.<wbr>AnchoredBubble</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat"  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cells [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.updateRelativePosition"></a>updateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateRelativePosition: function()</td></tr></table></blockquote><p>The popup has been moved to a new relative location, in which case we will want to re-do the rico corners.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.updateRelativePosition"></a>updateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateRelativePosition: function()</td></tr></table></blockquote><p>The popup has been moved to a new relative location, in which case we will want to re-do the rico corners.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBackgroundColor:function(</td><td class=PParameter nowrap>color</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBackgroundColor:function(</td><td class="PParameter  prettyprint " nowrap>color</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity:function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity:function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBorder:function(</td><td class=PParameter nowrap>border</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Always sets border to 0.  Bub [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBorder:function(</td><td class="PParameter  prettyprint " nowrap>border</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setRicoCorners"></a>setRicoCorners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setRicoCorners:function()</td></tr></table></blockquote><p>Update RICO corners according to the popup’s current relative postion.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.setRicoCorners"></a>setRicoCorners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setRicoCorners:function()</td></tr></table></blockquote><p>Update RICO corners according to the popup’s current relative postion.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.getCornersToRound"></a>getCornersToRound</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCornersToRound:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The proper corners string (“tr tl bl br”) for rico to round.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.getCornersToRound"></a>getCornersToRound</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCornersToRound:function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The proper corners string (“tr tl bl br”) for rico to round.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.AnchoredBubble.Constants"></a>Constants</h3></div></div>
 
@@ -49,15 +49,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>draw: function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><t [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>draw: function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 ce [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Popup/Framed-js.html b/doc/devdocs/files/OpenLayers/Popup/Framed-js.html
index b9de95f..82a4aff 100644
--- a/doc/devdocs/files/OpenLayers/Popup/Framed-js.html
+++ b/doc/devdocs/files/OpenLayers/Popup/Framed-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.Framed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.Framed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Framed"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Framed</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.Framed"></a>OpenLayers.<wbr>Popup.<wbr>Framed</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Anchored-js.html#OpenLayers.Popup.Anchored" class=LClass >OpenLayers.Popup.Anchored</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMai [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.Properties"></a>Properties</h3></div></div>
 
@@ -29,27 +29,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.OpenLayers.Popup.Framed"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Framed</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLay [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.OpenLayers.Popup.Framed"></a>OpenLayers.<wbr>Popup.<wbr>Framed</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LClass id=link12 o [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setBackgroundColor:function(</td><td class=PParameter nowrap>color</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBackgroundColor"></a>setBackgroundColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setBackgroundColor:function(</td><td class="PParameter  prettyprint " nowrap>color</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>setBorder:function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setBorder"></a>setBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">setBorder:function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setOpacity:function(</td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity of the popup.</p><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setOpacity:function(</td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize:function(</td><td class=PParameter nowrap>contentSize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Overridden here, because we need to update  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize:function(</td><td class="PParameter  prettyprint " nowrap>contentSize</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.updateRelativePosition"></a>updateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateRelativePosition: function()</td></tr></table></blockquote><p>When the relative position changes, we need to set the new padding BBOX on the popup, reposition the close div, and update the blocks.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.updateRelativePosition"></a>updateRelativePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateRelativePosition: function()</td></tr></table></blockquote><p>When the relative position changes, we need to set the new padding BBOX on the popup, reposition the close div, and update the blocks.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.calculateNewPx"></a>calculateNewPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateNewPx:function(</td><td class=PParameter nowrap>px</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Besides the standard offset as  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.calculateNewPx"></a>calculateNewPx</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateNewPx:function(</td><td class="PParameter  prettyprint " nowrap>px</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.createBlocks"></a>createBlocks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createBlocks: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.createBlocks"></a>createBlocks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createBlocks: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.updateBlocks"></a>updateBlocks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>updateBlocks: function()</td></tr></table></blockquote><p>Internal method, called on initialize and when the popup’s relative position has changed.  This function takes care of re-positioning the popup’s blocks in their appropropriate places.</p></div> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.Framed.updateBlocks"></a>updateBlocks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">updateBlocks: function()</td></tr></table></blockquote><p>Internal method, called on initialize and when the popup’s relative position has changed.  This function takes care of re-positioning the popup’s blocks in their appropropr [...]
 
 </div><!--Content-->
 
@@ -57,15 +57,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class= [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cell [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Popup/FramedCloud-js.html b/doc/devdocs/files/OpenLayers/Popup/FramedCloud-js.html
index 0337c9e..0afc86a 100644
--- a/doc/devdocs/files/OpenLayers/Popup/FramedCloud-js.html
+++ b/doc/devdocs/files/OpenLayers/Popup/FramedCloud-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Popup.FramedCloud - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Popup.FramedCloud - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.FramedCloud"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>FramedCloud</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Framed-js.html#OpenLayers.Popup.Framed" class=LClass >OpenLayers.Popup.Framed</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 ce [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Popup.FramedCloud"></a>OpenLayers.<wbr>Popup.<wbr>FramedCloud</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Framed-js.html#OpenLayers.Popup.Framed" class=LClass >OpenLayers.Popup.Framed</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.Properties"></a>Properties</h3></div></div>
 
@@ -35,11 +35,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.OpenLayers.Popup.FramedCloud"></a>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>FramedCloud</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat- [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.OpenLayers.Popup.FramedCloud"></a>OpenLayers.<wbr>Popup.<wbr>FramedCloud</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>lonlat</td><td class=CDLDescription>{<a href="../BaseTypes/LonLat-js.html#OpenLayers.LonLat" class=LCl [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Popup.FramedCloud.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([23, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([21, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt4"><div class=CClass>This class represents a screen  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a longitude and latitude pair</div></div><div class=CToolTip id="tt4"><div class=CClass>This clas [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Projection-js.html b/doc/devdocs/files/OpenLayers/Projection-js.html
index 4e7f25d..ee057fe 100644
--- a/doc/devdocs/files/OpenLayers/Projection-js.html
+++ b/doc/devdocs/files/OpenLayers/Projection-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Projection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Projection - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script langua [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Projection"></a>OpenLayers.<span class=HB> </span>Projection</h1><div class=CBody><p>Class for coordinate transforms between coordinate systems.  Depends on the proj4js library.  If proj4js is not available, then this is just an empty stub.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Projection"></a>OpenLayers.<wbr>Projection</h1><div class=CBody><p>Class for coordinate transforms between coordinate systems.  Depends on the proj4js library.  If proj4js is not available, then this is just an empty stub.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.Properties"></a>Properties</h3></div></div>
 
@@ -19,27 +19,38 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.projCode"></a>projCode</h3><div class=CBody><p>{String}</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.titleRegEx"></a>titleRegEx</h3><div class=CBody><p>{RegExp} regular expression to strip the title from a proj4js definition</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.OpenLayers.Projection"></a>OpenLayers.<span class=HB> </span>Projection</h3><div class=CBody><p>This class offers several methods for interacting with a wrapped pro4js projection object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>projCode</td><td class=CDLDescription>{String} A string identifying the Well Known Ide [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.OpenLayers.Projection"></a>OpenLayers.<wbr>Projection</h3><div class=CBody><p>This class offers several methods for interacting with a wrapped pro4js projection object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>projCode</td><td class=CDLDescription>{String} A string identifying the Well Known Identifier for the pr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote><p>Get the string SRS code.</p><h4 class=CHeading>Returns</h4><p>{String} The SRS code.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getCode"></a>getCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote><p>Get the string SRS code.</p><h4 class=CHeading>Returns</h4><p>{String} The SRS code.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getUnits: function()</td></tr></table></blockquote><p>Get the units string for the projection -- returns null if proj4js is not available.</p><h4 class=CHeading>Returns</h4><p>{String} The units abbreviation.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.getUnits"></a>getUnits</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getUnits: function()</td></tr></table></blockquote><p>Get the units string for the projection -- returns null if proj4js is not available.</p><h4 class=CHeading>Returns</h4><p>{String} The units abbreviation.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">toString: function()</td></tr></table></blockquote><p>Convert projection to string (getCode wrapper).</p><h4 class=CHeading>Returns</h4><p>{String} The projection code.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.toString"></a>toString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>toString: function()</td></tr></table></blockquote><p>Convert projection to string (getCode wrapper).</p><h4 class=CHeading>Returns</h4><p>{String} The projection code.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>equals: function(</td><td class="PParameter  prettyprint " nowrap>projection</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>equals: function(</td><td class=PParameter nowrap>projection</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Test equality of two projection instances.  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Destroy projection object.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Destroy projection object.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.transforms"></a>transforms</h3><div class=CBody><p>Transforms is an object, with from properties, each of which may have a to property.  This allows you to define projections without requiring support for proj4js to be included.</p><p>This object has keys which correspond to a ‘source’ projection object.   The keys should be strings, corresponding to the projection.getCode() val [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.transforms"></a>transforms</h3><div class=CBody><p>Transforms is an object, with from properties, each of which may have a to property.  This allows you to define projections without requiring support for proj4js to be included.</p><p>This object has keys which correspond to a ‘source’ projection object.   The keys should be strings, corresponding to the projection.getCode() val [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.addTransform"></a>addTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Projection.addTransform = function(</td><td class="PParameter  prettyprint " nowrap>from,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>to,< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.addTransform"></a>addTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Projection.addTransform = function(</td><td class=PParameter nowrap>from,</td></tr><tr><td></td><td class=PParameter nowrap>to,</td></tr><tr><td></td><td class=PParameter nowrap [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Projection.transform = function(</td><td class="PParameter  prettyprint " nowrap>point,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>source,</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.transform"></a>transform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Projection.transform = function(</td><td class=PParameter nowrap>point,</td></tr><tr><td></td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>des [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Projection.nullTransform"></a>nullTransform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Projection.nullTransform = function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></t [...]
+    OpenLayers.Layer.SphericalMercator.projectForward);
+OpenLayers.Projection.addTransform("EPSG:3857", "EPSG:3857",
+    OpenLayers.Layer.SphericalMercator.projectInverse);
+OpenLayers.Projection.addTransform("EPSG:3857", "EPSG:900913",
+    OpenLayers.Projection.nullTransform);
+OpenLayers.Projection.addTransform("EPSG:900913", "EPSG:3857",
+    OpenLayers.Projection.nullTransform);</pre></blockquote></div></div></div>
 
 </div><!--Content-->
 
@@ -47,15 +58,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getCode: function()</td></tr></table></blockquote>Get the string SRS code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getUnits: function()</td></tr></table></blockquote>Get the units string for the projection -- returns null if proj4js is not available.</div></div [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getCode: function()</td></tr></table></blockquote>Get the string SRS code.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getUnits: function()</td></tr></table></blockquote>Get the units string for the projection -- returns  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol-js.html b/doc/devdocs/files/OpenLayers/Protocol-js.html
index 5f36618..dd41425 100644
--- a/doc/devdocs/files/OpenLayers/Protocol-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol"></a>OpenLayers.<span class=HB> </span>Protocol</h1><div class=CBody><p>Abstract vector layer protocol class.   Not to be instantiated directly.   Use one of the protocol subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol"></a>OpenLayers.<wbr>Protocol</h1><div class=CBody><p>Abstract vector layer protocol class.   Not to be instantiated directly.   Use one of the protocol subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Properties"></a>Properties</h3></div></div>
 
@@ -25,29 +25,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.OpenLayers.Protocol"></a>OpenLayers.<span class=HB> </span>Protocol</h3><div class=CBody><p>Abstract class for vector protocols.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance. [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.OpenLayers.Protocol"></a>OpenLayers.<wbr>Protocol</h3><div class=CBody><p>Abstract class for vector protocols.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.mergeWithDefaultFilter"></a>mergeWithDefaultFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeWithDefaultFilter: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Merge  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.mergeWithDefaultFilter"></a>mergeWithDefaultFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeWithDefaultFilter: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new features.</p><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>create: function()</td></tr></table></blockquote><p>Construct a request for writing newly created features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDescription>{Array({<a h [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">create: function()</td></tr></table></blockquote><p>Construct a request for writing newly created features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDe [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>update: function()</td></tr></table></blockquote><p>Construct a request updating modified features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDescription>{Array({<a href="Fea [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">update: function()</td></tr></table></blockquote><p>Construct a request updating modified features.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>features</td><td class=CDLDescriptio [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>"delete": function()</td></tr></table></blockquote><p>Construct a request deleting a removed feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CDLDescription>{<a href= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">"delete": function()</td></tr></table></blockquote><p>Construct a request deleting a removed feature.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>feature</td><td class=CD [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>commit: function()</td></tr></table></blockquote><p>Go over the features and for each take action based on the feature state.  Possible actions are create, update and delete.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">commit: function()</td></tr></table></blockquote><p>Go over the features and for each take action based on the feature state.  Possible actions are create, update and delete.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Abort an ongoing request.</p><h4 class=CHeading>Paramet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Abort a [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.createCallback"></a>createCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createCallback: function(</td><td class=PParameter nowrap>method,</td></tr><tr><td></td><td class=PParameter nowrap>response,</td></tr><tr><td></td><td class=PParameter nowrap>options</t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.createCallback"></a>createCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createCallback: function(</td><td class="PParameter  prettyprint " nowrap>method,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>response,</td></tr><t [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Protocol.Response"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>Response</h2><div class=CBody><p>Protocols return Response objects to their users.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Protocol.Response.Properties" >Prope [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Protocol.Response"></a>OpenLayers.<wbr>Protocol.<wbr>Response</h2><div class=CBody><p>Protocols return Response objects to their users.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Protocol.Response.Properties" >Properties</a></td><td class=SDescription [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.Properties"></a>Properties</h3></div></div>
 
@@ -63,13 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.priv"></a>priv</h3></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.error"></a>error</h3><div class=CBody><p>{Object} The error object in case a service exception was encountered.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.OpenLayers.Protocol.Response"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.OpenLayers.Protocol.Response"></a>OpenLayers.<wbr>Protocol.<wbr>Response</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.success"></a>success</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>success: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Boolean}</td><td class=CDLDescription>true on success, false otherwise</td></tr></table></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Response.success"></a>success</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">success: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Boolean}</td><td class=CDLDescription>true on success, false otherwise</td></tr> [...]
 
 </div><!--Content-->
 
@@ -77,15 +79,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mergeWithDefaultFilter: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mergeWithDefaultFilter: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>) [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/HTTP-js.html b/doc/devdocs/files/OpenLayers/Protocol/HTTP-js.html
index e9fde8c..3988a36 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/HTTP-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/HTTP-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.HTTP - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.HTTP - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.HTTP"></a>OpenLayers.<span class=HB> </span>Protocol.HTTP</h1><div class=CBody><p>A basic HTTP protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP" class=LConstructor id=link26 onMouseOver="ShowTip(event, 'tt18', 'link26')" onMouseOut="HideTip('tt18')">OpenLayers.Protocol.HTTP</a> constructor.</p><h4 cla [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.HTTP"></a>OpenLayers.<wbr>Protocol.HTTP</h1><div class=CBody><p>A basic HTTP protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP" class=LConstructor id=link24 onMouseOver="ShowTip(event, 'tt16', 'link24')" onMouseOut="HideTip('tt16')">OpenLayers.Protocol.HTTP</a> constructor.</p><h4 class=CHeading>Inheri [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Properties"></a>Properties</h3></div></div>
 
@@ -21,7 +21,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.params"></a>params</h3><div class=CBody><p>{Object} Parameters of GET requests, read-only, set through the options passed to the constructor, Example: {‘bbox’: ‘5,5,5,5’}</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.callback"></a>callback</h3><div class=CBody><p>{Object} Function to be called when the <a href="#OpenLayers.Protocol.HTTP.read" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt1', 'link28')" onMouseOut="HideTip('tt1')">read</a>, <a href="#OpenLayers.Protocol.HTTP.create" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt2', 'link29')" onMouseOut="HideTip('tt2')">create</a>, <a href [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.callback"></a>callback</h3><div class=CBody><p>{Object} Function to be called when the <a href="#OpenLayers.Protocol.HTTP.read" class=LFunction id=link26 onMouseOver="ShowTip(event, 'tt1', 'link26')" onMouseOut="HideTip('tt1')">read</a>, <a href="#OpenLayers.Protocol.HTTP.create" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt2', 'link27')" onMouseOut="HideTip('tt2')">create</a>, <a href [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.scope"></a>scope</h3><div class=CBody><p>{Object} Callback execution scope, read-only, set through the options passed to the constructor.</p></div></div></div>
 
@@ -29,47 +29,43 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.wildcarded"></a>wildcarded.</h3><div class=CBody><p>{Boolean} If true percent signs are added around values read from LIKE filters, for example if the protocol read method is passed a LIKE filter whose property is “foo” and whose value is “bar” the string “foo__ilike=%bar%” will be sent in the query string; defaults to false.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.srsInBBOX"></a>srsInBBOX</h3><div class=CBody><p>{Boolean} Include the SRS identifier in BBOX query string parameter.  Default is false.   If true and the layer has a projection object set, any BBOX filter will be serialized with a fifth item identifying the projection.   E.g. bbox=-1000,-1000,1000,1000,EPSG:900913</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP"></a>OpenLayers.<span class=HB> </span>Protocol.HTTP</h3><div class=CBody><p>A class for giving layers generic HTTP protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP"></a>OpenLayers.<wbr>Protocol.HTTP</h3><div class=CBody><p>A class for giving layers generic HTTP protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 class=CH [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new features.</p><h4 c [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleRead: function(</td><td class=PParameter nowrap>resp,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.filterToParams"></a>filterToParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>filterToParams: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>params</td><td class=PAfterParameters nowrap>)</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.filterToParams"></a>filterToParams</h3><div class=CBody><p>Optional method to translate an <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt7', 'link32')" onMouseOut="HideTip('tt7')">OpenLayers.Filter</a> object into an object that can be serialized as request query string provided.   If a custom method is not provided, the filter will be ser [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.regex2value"></a>regex2value</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>regex2value: function(</td><td class=PParameter nowrap>value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Convert the value from a regular ex [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>create: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleRead: function(</td><td class="PParameter  prettyprint " nowrap>resp,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleCreate"></a>handleCreate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleCreate: function(</td><td class=PParameter nowrap>resp,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>create: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>update: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleCreate"></a>handleCreate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleCreate: function(</td><td class="PParameter  prettyprint " nowrap>resp,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleUpdate"></a>handleUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleUpdate: function(</td><td class=PParameter nowrap>resp,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>"delete": function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleUpdate"></a>handleUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleUpdate: function(</td><td class="PParameter  prettyprint " nowrap>resp,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleDelete"></a>handleDelete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleDelete: function(</td><td class=PParameter nowrap>resp,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>"delete": function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleResponse: function(</td><td class=PParameter nowrap>resp,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleDelete"></a>handleDelete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleDelete: function(</td><td class="PParameter  prettyprint " nowrap>resp,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeatures: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read HTTP response body and [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleResponse: function(</td><td class="PParameter  prettyprint " nowrap>resp,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commit: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Abort an ongoing request, the response object pass [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commit: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.callUserCallback"></a>callUserCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>callUserCallback: function(</td><td class=PParameter nowrap>resp,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
-
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.Properties"></a>Properties</h3></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Ab [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.OpenLayers.Protocol.HTTP.COMP_TYPE_TO_OP_STR"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>HTTP.<span class=HB> </span>COMP_TYPE_TO_OP_STR</h3><div class=CBody><p>{Object} A private class-level property mapping the OpenLayers.Filter.Comparison types to the operation strings of the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.HTTP.callUserCallback"></a>callUserCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>callUserCallback: function(</td><td class="PParameter  prettyprint " nowrap>resp,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td> [...]
 
 </div><!--Content-->
 
@@ -77,15 +73,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Construct a request for reading new features.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0  [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Construct a request for reading new features.</div></div><div class=CToolTip id="tt2">< [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/SOS-js.html b/doc/devdocs/files/OpenLayers/Protocol/SOS-js.html
index 3da2cd1..ce3500f 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/SOS-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/SOS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SOS.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,15 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="SOS.js"></a>SOS.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#SOS.js" >SOS.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr> [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="SOS.js"></a>SOS.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#SOS.js" >SOS.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS"></a>OpenLayers.<span class=HB> </span>Protocol.SOS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Protocol.SOS = function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS"></a>OpenLayers.<wbr>Protocol.SOS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Protocol.SOS = function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SOS.<span class=HB> </span>DEFAULTS</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.DEFAULTS"></a>OpenLayers.<wbr>Protocol.<wbr>SOS.<wbr>DEFAULTS</h3></div></div>
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Protocol.SOS = function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Used to create a versioned SOS protocol. </div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract vector [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Protocol.SOS = function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Used to create a versioned SOS protocol. </div></div><div class=CTo [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html
index 94f1d8c..2c7cf55 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/SOS/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SOS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SOS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SOS.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>An SOS v1.0.0 Protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.SOS.v1_0_0" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Protocol.SO [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0"></a>OpenLayers.<wbr>Protocol.<wbr>SOS.<wbr>v1_0_0</h1><div class=CBody><p>An SOS v1.0.0 Protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.SOS.v1_0_0" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Protocol.SOS.v1_0_0</a> constructor.</p><h4 class=CHeading>Inheri [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -21,17 +21,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.OpenLayers.Protocol.SOS"></a>OpenLayers.<span class=HB> </span>Protocol.SOS</h3><div class=CBody><p>A class for giving layers an SOS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.  Valid o [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.OpenLayers.Protocol.SOS"></a>OpenLayers.<wbr>Protocol.SOS</h3><div class=CBody><p>A class for giving layers an SOS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.  Valid options properties: [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new sensor posit [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleRead: function(</td><td class=PParameter nowrap>response,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleRead: function(</td><td class="PParameter  prettyprint " nowrap>response,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeatures: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read HTTP response bo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SOS.v1_0_0.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></ [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td c [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td cl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/SQL-js.html b/doc/devdocs/files/OpenLayers/Protocol/SQL-js.html
index e405589..4dfc7e3 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/SQL-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/SQL-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SQL - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SQL - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL"></a>OpenLayers.<span class=HB> </span>Protocol.SQL</h1><div class=CBody><p>Abstract SQL protocol class.   Not to be instantiated directly.   Use one of the SQL protocol subclasses instead.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL"></a>OpenLayers.<wbr>Protocol.SQL</h1><div class=CBody><p>Abstract SQL protocol class.   Not to be instantiated directly.   Use one of the SQL protocol subclasses instead.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')"> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Properties"></a>Properties</h3></div></div>
 
@@ -23,15 +23,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.OpenLayers.Protocol.SQL"></a>OpenLayers.<span class=HB> </span>Protocol.SQL</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.OpenLayers.Protocol.SQL"></a>OpenLayers.<wbr>Protocol.SQL</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SQL backend</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SQL backend</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.evaluateFilter"></a>evaluateFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluateFilter: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.evaluateFilter"></a>evaluateFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluateFilter: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>filter</td><td c [...]
 
 </div><!--Content-->
 
@@ -39,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([24, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([22, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>This should be overridden by specific subclasses</div></div><div class=CToolTip id="tt3"><div cl [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>This should be overridden by specific subclasses</di [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/SQL/Gears-js.html b/doc/devdocs/files/OpenLayers/Protocol/SQL/Gears-js.html
index 6488571..4d84ce7 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/SQL/Gears-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/SQL/Gears-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.SQL.Gears - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.SQL.Gears - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears</h1><div class=CBody><p>This Protocol stores feature in the browser via the Gears Database module <a href="http://code.google.com/apis/gears/api_database.html" class=LURL target=_top>http://code.google.com<span class=HB>- </span>/apis<span class=HB>- </span>/gears< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears</h1><div class=CBody><p>This Protocol stores feature in the browser via the Gears Database module <a href="http://code.google.com/apis/gears/api_database.html" class=LURL target=_top>http://code.google.com<wbr>/apis<wbr>/gears<wbr>/api_database.html</a>.</p><p>The main advantage is that all the read, create, update an [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.Properties"></a>Properties</h3></div></div>
 
@@ -35,41 +35,41 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears</h3></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears"></a>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears</h3></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.initializeDatabase"></a>initializeDatabase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initializeDatabase: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.initializeDatabase"></a>initializeDatabase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initializeDatabase: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports Gears</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports Gears</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports Gears</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports Gears</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read all features from the database and return a  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>R [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.unfreezeFeature"></a>unfreezeFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unfreezeFeature: function(</td><td class=PParameter nowrap>row</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.unfreezeFeature"></a>unfreezeFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unfreezeFeature: function(</td><td class="PParameter  prettyprint " nowrap>row</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.extractFidFromField"></a>extractFidFromField</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>extractFidFromField: function(</td><td class=PParameter nowrap>field</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.extractFidFromField"></a>extractFidFromField</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extractFidFromField: function(</td><td class="PParameter  prettyprint " nowrap>field</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>create: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>create: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>update: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.createOrUpdate"></a>createOrUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createOrUpdate: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a reques [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.createOrUpdate"></a>createOrUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createOrUpdate: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.freezeFeature"></a>freezeFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>freezeFeature: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.freezeFeature"></a>freezeFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>freezeFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.getFeatureStateForFreeze"></a>getFeatureStateForFreeze</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureStateForFreeze: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.getFeatureStateForFreeze"></a>getFeatureStateForFreeze</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureStateForFreeze: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "n [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>"delete": function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.delete"></a>delete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>"delete": function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.createdOffline"></a>createdOffline</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createdOffline: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.createdOffline"></a>createdOffline</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createdOffline: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commit: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commit: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Removes all rows of the table.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Removes all rows of the table.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.callUserCallback"></a>callUserCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>callUserCallback: function(</td><td class=PParameter nowrap>options,</td></tr><tr><td></td><td class=PParameter nowrap>resp</td><td class=PAfterParameters nowrap>)</td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.SQL.Gears.callUserCallback"></a>callUserCallback</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>callUserCallback: function(</td><td class="PParameter  prettyprint " nowrap>options,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resp [...]
 
 </div><!--Content-->
 
@@ -77,15 +77,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([24, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([22, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>A parser to read/write JSON safely. </div></div><div class=CToolTip id="tt2"><div class=CClass>Class for reading and writing Well-Known Text. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initializeDatabase: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacin [...]
+<div class=CToolTip id="tt1"><div class=CClass>A parser to read/write JSON safely. </div></div><div class=CToolTip id="tt2"><div class=CClass>Class for reading and writing Well-Known Text. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initializeDatabase: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><tab [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/Script-js.html b/doc/devdocs/files/OpenLayers/Protocol/Script-js.html
new file mode 100644
index 0000000..2c18ef1
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Protocol/Script-js.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.Script - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.Script"></a>OpenLayers.<wbr>Protocol.<wbr>Script</h1><div class=CBody><p>A basic Script protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.Script.OpenLayers.Protocol.Script" class=LConstructor id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">OpenLayers.Protocol.Script</a> constructor.   A sc [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.url"></a>url</h3><div class=CBody><p>{String} Service URL.   The service is expected to return serialized features wrapped in a named callback (where the callback name is generated by this protocol).  Read-only, set through the options passed to the constructor.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.params"></a>params</h3><div class=CBody><p>{Object} Query string parameters to be appended to the URL.  Read-only, set through the options passed to the constructor.  Example: {maxFeatures: 50}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.callback"></a>callback</h3><div class=CBody><p>{Object} Function to be called when the <a href="#OpenLayers.Protocol.Script.read" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">read</a> operation completes.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.scope"></a>scope</h3><div class=CBody><p>{Object} Optional ``this`` object for the callback.  Read-only, set through the options passed to the constructor.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.format"></a>format</h3><div class=CBody><p>{<a href="../Format-js.html#OpenLayers.Format" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">OpenLayers.Format</a>} Format for parsing features.   Default is an <a href="../Format/GeoJSON-js.html#OpenLayers.Format.GeoJSON" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMous [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.callbackKey"></a>callbackKey</h3><div class=CBody><p>{String} The name of the query string parameter that the service recognizes as the callback identifier.   Default is “callback”.  This key is used to generate the URL for the script.   For example setting <a href="#OpenLayers.Protocol.Script.callbackKey" class=LProperty id=link19 onMouseOver="ShowTip(event, 'tt16', ' [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.callbackPrefix"></a>callbackPrefix</h3><div class=CBody><p>{String} Where a service requires that the callback query string parameter value is prefixed by some string, this value may be set.  For example, setting <a href="#OpenLayers.Protocol.Script.callbackPrefix" class=LProperty id=link20 onMouseOver="ShowTip(event, 'tt17', 'link20')" onMouseOut="HideTip('tt17')">callbackPrefix</a> to &ld [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.pendingRequests"></a>pendingRequests</h3><div class=CBody><p>{Object} References all pending requests.   Property names are script identifiers and property values are script elements.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.srsInBBOX"></a>srsInBBOX</h3><div class=CBody><p>{Boolean} Include the SRS identifier in BBOX query string parameter.  Setting this property has no effect if a custom filterToParams method is provided.    Default is false.   If true and the layer has a projection object set, any BBOX filter will be serialized with a fifth item identifying the projection.  E.g. bbox=-1000,-100 [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.OpenLayers.Protocol.Script"></a>OpenLayers.<wbr>Protocol.<wbr>Script</h3><div class=CBody><p>A class for giving layers generic Script protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cons [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.filterToParams"></a>filterToParams</h3><div class=CBody><p>Optional method to translate an <a href="../Filter-js.html#OpenLayers.Filter" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt3', 'link23')" onMouseOut="HideTip('tt3')">OpenLayers.Filter</a> object into an object that can be serialized as request query string provided.   If a custom method is not provided, any filter will not  [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.createRequest"></a>createRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createRequest: function(</td><td class="PParameter  prettyprint " nowrap>url,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params,</td></tr><tr [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.destroyRequest"></a>destroyRequest</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>destroyRequest: function(</td><td class="PParameter  prettyprint " nowrap>script</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleRead: function(</td><td class="PParameter  prettyprint " nowrap>response,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.handleResponse"></a>handleResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleResponse: function(</td><td class="PParameter  prettyprint " nowrap>response,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>data</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.OpenLayers.Protocol.Script.register"></a>OpenLayers.<wbr>Protocol.<wbr>Script.<wbr>register</h3><div class=CBody><p>Register a callback for a newly created script.</p><h4 class=CHeading>Parameters</h4><p>callback: {Function} The callback to be executed when the newly added script loads.   This callback will be called with a single argument that is the JSON returned by the service.</p><h4 cl [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.Script.OpenLayers.Protocol.Script.unregister"></a>OpenLayers.<wbr>Protocol.<wbr>Script.<wbr>unregister</h3><div class=CBody><p>Unregister a callback previously registered with the register function.</p><h4 class=CHeading>Parameters</h4><p>id: {Number} The identifer returned by the register function.</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([24, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Construct a request for reading new features.</div></div><div class=CToolTip id="tt2">< [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Protocol/WFS-js.html b/doc/devdocs/files/OpenLayers/Protocol/WFS-js.html
index 20f55a1..3bea40b 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/WFS-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="WFS.js"></a>WFS.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#WFS.js" >WFS.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS"></a>OpenLayers.<wbr>Protocol.WFS</h1><div class=CBody><p>Used to create a versioned WFS protocol.   Default version is 1.0.0.</p><h4 class=CHeading>Returns</h4><p>{<a href="../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">OpenLayers.Protocol</a>} A WFS protocol of the given version [...]
+    version: "1.1.0",
+    url:  "http://demo.opengeo.org/geoserver/wfs",
+    featureType: "tasmania_roads",
+    featureNS: "http://www.openplans.org/topp",
+    geometryName: "the_geom"
+});</pre></blockquote><p>See the protocols for specific WFS versions for more detail.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Protocol.WFS" >OpenLayers.<wbr>Protocol.WFS</a></td><td class=SDescription>Used to create a versioned WFS protocol. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#OpenLayers.Protoc [...]
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS"></a>OpenLayers.<span class=HB> </span>Protocol.WFS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Protocol.WFS = function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.fromWMSLayer"></a>fromWMSLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Protocol.WFS.fromWMSLayer = function(</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.fromWMSLayer"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>fromWMSLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Protocol.WFS.fromWMSLayer = function(</td><td class=PParameter nowrap>layer,</td>< [...]
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.Constants"></a>Constants</h3></div></div>
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
-
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.DEFAULTS"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>DEFAULTS</h3></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.OpenLayers.Protocol.WFS.DEFAULTS"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>DEFAULTS</h3></div></div>
 
 </div><!--Content-->
 
@@ -29,15 +33,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Protocol.WFS = function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Used to create a versioned WFS protocol. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote> [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Protocol.WFS.fromWMSLayer = function(</td><td class="PParameter  prettyprint " nowrap>layer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/WFS/v1-js.html b/doc/devdocs/files/OpenLayers/Protocol/WFS/v1-js.html
index ae470b7..e02d986 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/WFS/v1-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/WFS/v1-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS.v1 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();p [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.v1</h1><div class=CBody><p>Abstract class for for v1.0.0 and v1.1.0 protocol.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Protocol [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.v1</h1><div class=CBody><p>Abstract class for for v1.0.0 and v1.1.0 protocol.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../../Protocol-js.html#OpenLayers.Protocol" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">OpenLayers.Protocol</a></li></ul><!--START_ND_SUMMARY-- [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.Properties"></a>Properties</h3></div></div>
 
@@ -23,7 +23,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.featureNS"></a>featureNS</h3><div class=CBody><p>{String} Feature namespace.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.geometryName"></a>geometryName</h3><div class=CBody><p>{String} Name of the geometry attribute for features.   Default is “the_geom”.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.geometryName"></a>geometryName</h3><div class=CBody><p>{String} Name of the geometry attribute for features.   Default is “the_geom” for WFS <a href="#OpenLayers.Protocol.WFS.v1.version" class=LProperty id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">version</a> 1.0, and null for higher versions.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.schema"></a>schema</h3><div class=CBody><p>{String} Optional schema location that will be included in the schemaLocation attribute value.   Note that the feature type schema is required for a strict XML validator (on transactions with an insert for example), but is <b>not</b> required by the WFS specification (since the server is supposed to know about feature type schemas).</p></div></div></div>
 
@@ -31,29 +31,47 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.formatOptions"></a>formatOptions</h3><div class=CBody><p>{Object} Optional options for the format.   If a format is not provided, this property can be used to extend the default format options.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.readFormat"></a>readFormat</h3><div class=CBody><p>{<a href="../../Format-js.html#OpenLayers.Format" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} For WFS requests it is possible to get a different output format than GML.  In that case, we cannot parse the response with the default format (WFST) and we need a differen [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.readFormat"></a>readFormat</h3><div class=CBody><p>{<a href="../../Format-js.html#OpenLayers.Format" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">OpenLayers.Format</a>} For WFS requests it is possible to get a different output format than GML.  In that case, we cannot parse the response with the default format (WFST) and we need a differen [...]
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.readOptions"></a>readOptions</h3><div class=CBody><p>{Object} Optional object to pass to format’s read.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.OpenLayers.Protocol.WFS"></a>OpenLayers.<span class=HB> </span>Protocol.WFS</h3><div class=CBody><p>A class for giving layers WFS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.OpenLayers.Protocol.WFS"></a>OpenLayers.<wbr>Protocol.WFS</h3><div class=CBody><p>A class for giving layers WFS protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table><h4 class=CHeading>Va [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the protocol.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>read: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cons [...]
+    readOptions: {output: "object"},
+    resultType: "hits",
+    maxFeatures: null,
+    callback: function(resp) {
+        // process resp.numberOfFeatures here
+    }
+});</pre></blockquote><p>To use a configured protocol to use WFS paging (if supported by the server), applications could do the following:</p><blockquote><pre class="prettyprint">protocol.read({
+    startIndex: 0,
+    count: 50
+});</pre></blockquote><p>To limit the attributes returned by the GetFeature request, applications can use the propertyNames option to specify the properties to include in the response:</p><blockquote><pre class="prettyprint">protocol.read({
+    propertyNames: ["DURATION", "INTENSITY"]
+});</pre></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.setFeatureType"></a>setFeatureType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFeatureType: function(</td><td class="PParameter  prettyprint " nowrap>featureType</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>read: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct a request for reading new features.   [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.setGeometryName"></a>setGeometryName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setGeometryName: function(</td><td class="PParameter  prettyprint " nowrap>geometryName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleRead: function(</td><td class=PParameter nowrap>response,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.handleRead"></a>handleRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleRead: function(</td><td class="PParameter  prettyprint " nowrap>response,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.parseFeatures"></a>parseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>parseFeatures: function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Read HTTP response body a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.parseResponse"></a>parseResponse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>parseResponse: function(</td><td class="PParameter  prettyprint " nowrap>request,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>commit: function(</td><td class=PParameter nowrap>features,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.commit"></a>commit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>commit: function(</td><td class="PParameter  prettyprint " nowrap>features,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.handleCommit"></a>handleCommit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleCommit: function(</td><td class=PParameter nowrap>response,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.handleCommit"></a>handleCommit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleCommit: function(</td><td class="PParameter  prettyprint " nowrap>response,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.filterDelete"></a>filterDelete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>filterDelete: function(</td><td class=PParameter nowrap>filter,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.filterDelete"></a>filterDelete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>filterDelete: function(</td><td class="PParameter  prettyprint " nowrap>filter,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Abort an ongoing request, the response object pa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1.abort"></a>abort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
 </div><!--Content-->
 
@@ -61,15 +79,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 [...]
+<div class=CToolTip id="tt1"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the protocol.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><tabl [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html b/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html
index 5561f1b..f63f422 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_0_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS.v1_0_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_0_0</h1><div class=CBody><p>A WFS v1.0.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_0_0</h1><div class=CBody><p>A WFS v1.0.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Protocol.WFS.v1_0_0</a> const [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_0_0</h3><div class=CBody><p>A class for giving layers WFS v1.0.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional ob [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_0_0.OpenLayers.Protocol.WFS.v1_0_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_0_0</h3><div class=CBody><p>A class for giving layers WFS v1.0.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td [...]
 
 </div><!--Content-->
 
@@ -27,10 +27,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html b/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html
index a90e65d..4e4bbe0 100644
--- a/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html
+++ b/doc/devdocs/files/OpenLayers/Protocol/WFS/v1_1_0-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Protocol.WFS.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Protocol.WFS.v1_1_0 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_1_0</h1><div class=CBody><p>A WFS v1.1.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="Hi [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_1_0</h1><div class=CBody><p>A WFS v1.1.0 protocol for vector layers.   Create a new instance with the <a href="#OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0" class=LConstructor id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenLayers.Protocol.WFS.v1_1_0</a> const [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.Properties"></a>Properties</h3></div></div>
 
@@ -19,7 +19,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>WFS.<span class=HB> </span>v1_1_0</h3><div class=CBody><p>A class for giving layers WFS v1.1.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional ob [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Protocol.WFS.v1_1_0.OpenLayers.Protocol.WFS.v1_1_0"></a>OpenLayers.<wbr>Protocol.<wbr>WFS.<wbr>v1_1_0</h3><div class=CBody><p>A class for giving layers WFS v1.1.0 protocol.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td [...]
 
 </div><!--Content-->
 
@@ -27,15 +27,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([25, 26, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([23, 24, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>A class for giving layers WFS v1.1.0 protocol.</div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract class for for v1.0.0 and v1.1.0 protocol.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>A class for giving layers WFS v1.1.0 protocol.</div></div><div class=CToolTip id="tt2"><div class=CClass>Abstract class for for v1.0.0 and v1.1.0 protocol.</div></div><div class=CToolTip id="tt3"><div class=CClass>Base class for format reading/writing a variety of formats. </div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Renderer-js.html b/doc/devdocs/files/OpenLayers/Renderer-js.html
index fcf4b58..e957beb 100644
--- a/doc/devdocs/files/OpenLayers/Renderer-js.html
+++ b/doc/devdocs/files/OpenLayers/Renderer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer"></a>OpenLayers.<span class=HB> </span>Renderer</h1><div class=CBody><p>This is the base class for all renderers.</p><p>This is based on a merger code written by Paul Spencer and Bertil Chapuis.  It is largely composed of virtual functions that are to be implemented in technology-specific subclasses, but there is some generic code too.</p><p>The functions that <b>are</b>  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer"></a>OpenLayers.<wbr>Renderer</h1><div class=CBody><p>This is the base class for all renderers.</p><p>This is based on a merger code written by Paul Spencer and Bertil Chapuis.  It is largely composed of virtual functions that are to be implemented in technology-specific subclasses, but there is some generic code too.</p><p>The functions that <b>are</b> implemented here m [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Properties"></a>Properties</h3></div></div>
 
@@ -31,45 +31,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer"></a>OpenLayers.<span class=HB> </span>Renderer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="BaseTypes-js.html#OpenLayers.String" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt20', 'link23')" onMouseOut="HideTip('tt20')">St [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer"></a>OpenLayers.<wbr>Renderer</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="BaseTypes-js.html#OpenLayers.String" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt20', 'link23')" onMouseOut="HideTip('tt20')">String</a>}</td></tr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>This should be overridden by specific subclasses</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setExtent: function(</td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter nowrap>resolutionChanged</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setExtent: function(</td><td class="PParameter  prettyprint " nowrap>extent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resolutionChanged</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the size of the drawing surface.</p><p>Resolutio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getResolution: function()</td></tr></table></blockquote><p>Uses cached copy of resolution if available to minimize computing</p><h4 class=CHeading>Returns</h4><p>The current map’s resolution</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.getResolution"></a>getResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getResolution: function()</td></tr></table></blockquote><p>Uses cached copy of resolution if available to minimize computing</p><h4 class=CHeading>Returns</h4><p>The current map’s resolution</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawFeature: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.drawGeometry"></a>drawGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>featureId</td><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.drawGeometry"></a>drawGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawText: function(</td><td class=PParameter nowrap>featureId,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>location</td><td class=PAfte [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawText: function(</td><td class="PParameter  prettyprint " nowrap>featureId,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.removeText"></a>removeText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeText: function(</td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Function for removing text labels.&nbsp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.removeText"></a>removeText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeText: function(</td><td class="PParameter  prettyprint " nowrap>featureId</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear all vectors from the renderer. virtual function.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear all vectors from the renderer. virtual function.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureIdFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a fe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureIdFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.eraseFeatures"></a>eraseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseFeatures: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This is called by the layer to  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.eraseFeatures"></a>eraseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.eraseGeometry"></a>eraseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.eraseGeometry"></a>eraseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>featureId</td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.moveRoot"></a>moveRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveRoot: function(</td><td class=PParameter nowrap>renderer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>moves this renderer’s root to a (differe [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.moveRoot"></a>moveRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveRoot: function(</td><td class="PParameter  prettyprint " nowrap>renderer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.getRenderLayerId"></a>getRenderLayerId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getRenderLayerId: function()</td></tr></table></blockquote><p>Gets the layer that this renderer’s output appears on.  If moveRoot was used, this will be different from the id of the layer containing the features rendered by this renderer.</p><h4 class=CH [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.getRenderLayerId"></a>getRenderLayerId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getRenderLayerId: function()</td></tr></table></blockquote><p>Gets the layer that this renderer’s output appears on.  If moveRoot was used, this will be different from the id of the layer containing the features rendered by this ren [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.applyDefaultSymbolizer"></a>applyDefaultSymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>applyDefaultSymbolizer: function(</td><td class=PParameter nowrap>symbolizer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.applyDefaultSymbolizer"></a>applyDefaultSymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>applyDefaultSymbolizer: function(</td><td class="PParameter  prettyprint " nowrap>symbolizer</td><td class="PAfterParameters  prettyprint "nowrap>)</td>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer.defaultSymbolizer"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>defaultSymbolizer</h3><div class=CBody><p>{Object} Properties from this symbolizer will be applied to symbolizers with missing properties.  This can also be used to set a global symbolizer default in OpenLayers.  To be SLD 1.x compliant, add the following code before rendering any vect [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.OpenLayers.Renderer.defaultSymbolizer"></a>OpenLayers.<wbr>Renderer.<wbr>defaultSymbolizer</h3><div class=CBody><p>{Object} Properties from this symbolizer will be applied to symbolizers with missing properties.  This can also be used to set a global symbolizer default in OpenLayers.  To be SLD 1.x compliant, add the following code before rendering any vector features:</p><blockquote><pre cla [...]
     fillColor: "#808080",
     fillOpacity: 1,
     strokeColor: "#000000",
@@ -85,15 +85,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:  [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>Instances of OpenLayers.Map are interactive maps embedded in a web page. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class=" [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Renderer/Canvas-js.html b/doc/devdocs/files/OpenLayers/Renderer/Canvas-js.html
index 30b93fd..097980b 100644
--- a/doc/devdocs/files/OpenLayers/Renderer/Canvas-js.html
+++ b/doc/devdocs/files/OpenLayers/Renderer/Canvas-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer.Canvas - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.Canvas - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,59 +11,73 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.Canvas"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas</h1><div class=CBody><p>A renderer based on the 2D ‘canvas’ drawing element.element</p><h4 class=CHeading>Inherits</h4><ul><li><a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">OpenLa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.Canvas"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas</h1><div class=CBody><p>A renderer based on the 2D ‘canvas’ drawing element.</p><h4 class=CHeading>Inherits</h4><ul><li><a href="../Renderer-js.html#OpenLayers.Renderer" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">OpenLayers.Renderer</a></li></ul><!--START_ND_SUM [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Properties"></a>Properties</h3></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.hitDetection"></a>hitDetection</h3><div class=CBody><p>{Boolean} Allow for hit detection of features.   Default is true.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.hitOverflow"></a>hitOverflow</h3><div class=CBody><p>{Number} The method for converting feature identifiers to color values supports 16777215 sequential values.   Two features cannot be predictably detected if their identifiers differ by more than this value.   The hitOverflow allows for bigger numbers (but the difference in values is still limited).</p></div></div></div>
+
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.canvas"></a>canvas</h3><div class=CBody><p>{Canvas} The canvas context object.</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.features"></a>features</h3><div class=CBody><p>{Object} Internal object of feature/style pairs for use in redrawing the layer.</p></div></div></div>
 
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.pendingRedraw"></a>pendingRedraw</h3><div class=CBody><p>{Boolean} The renderer needs a redraw call to render features added while the renderer was locked.</p></div></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="../BaseTypes-js.html#OpenLayers.String" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{<a href="../BaseTypes-js.html#OpenLayers.String" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip( [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.eraseGeometry"></a>eraseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.eraseGeometry"></a>eraseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>featureId</td>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the renderer class</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setExtent: function(</td><td class=PParameter nowrap>extent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the visible part of the layer.</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the size of the drawing surface.</p><p>On [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawGeometry"></a>drawGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawFeature: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawExternalGraphic"></a>drawExternalGraphic</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawExternalGraphic: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawGeometry"></a>drawGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.setCanvasStyle"></a>setCanvasStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setCanvasStyle: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawExternalGraphic"></a>drawExternalGraphic</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawExternalGraphic: function(</td><td class=PParameter nowrap>pt,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.featureIdToHex"></a>featureIdToHex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>featureIdToHex: function(</td><td class="PParameter  prettyprint " nowrap>featureId</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.setCanvasStyle"></a>setCanvasStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setCanvasStyle: function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.setHitContextStyle"></a>setHitContextStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setHitContextStyle: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>feat [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPoint: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPoint: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLineString: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLineString: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLinearRing: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLinearRing: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPolygon: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.renderPath"></a>renderPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>renderPath: function(</td><td class="PParameter  prettyprint " nowrap>context,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawText: function(</td><td class=PParameter nowrap>location,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPolygon: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.getLocalXY"></a>getLocalXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getLocalXY: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>transform geographic xy into pixel x [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawText: function(</td><td class="PParameter  prettyprint " nowrap>location,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterPar [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear all vectors from the renderer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.getLocalXY"></a>getLocalXY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getLocalXY: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureIdFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Retur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear all vectors from the renderer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.eraseFeatures"></a>eraseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseFeatures: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This is called by the la [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureIdFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>redraw: function()</td></tr></table></blockquote><p>The real ‘meat’ of the function: any time things have changed, redraw() can be called to loop over all the data and (you guessed it) redraw it.   Unlike Elements-based Renderers, we can’t interact with t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.eraseFeatures"></a>eraseFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseFeatures: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.redraw"></a>redraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">redraw: function()</td></tr></table></blockquote><p>The real ‘meat’ of the function: any time things have changed, redraw() can be called to loop over all the data and (you guessed it) redraw it.   Unlike Elements-based Renderers, we can&r [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas.<span class=HB> </span>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_FACTOR"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>LABEL_FACTOR</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.drawImageScaleFactor"></a>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>drawImageScaleFactor</h3><div class=CBody><p>{Number} Scale factor to apply to the canvas drawImage arguments.  This is always 1 except for Android 2.1 devices, to work around <a href="http://code.google.com/p/android/issues/detail?id=5141" class=LURL target=_top>http://code.google.com<wbr>/p<wbr> [...]
 
 </div><!--Content-->
 
@@ -71,15 +85,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Erase a geometry from the renderer. </div></div><div class=CTool [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>featureId</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Renderer/Elements-js.html b/doc/devdocs/files/OpenLayers/Renderer/Elements-js.html
index 592b696..f6d2b9b 100644
--- a/doc/devdocs/files/OpenLayers/Renderer/Elements-js.html
+++ b/doc/devdocs/files/OpenLayers/Renderer/Elements-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.ElementsIndexer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.ElementsIndexer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.ElementsIndexer"></a>OpenLayers.<span class=HB> </span>ElementsIndexer</h1><div class=CBody><p>This class takes care of figuring out which order elements should be placed in the DOM based on given indexing methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.ElementsIndexer"></a>OpenLayers.<wbr>ElementsIndexer</h1><div class=CBody><p>This class takes care of figuring out which order elements should be placed in the DOM based on given indexing methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a h [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.Properties"></a>Properties</h3></div></div>
 
@@ -25,33 +25,33 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.initialize"></a>initialize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initialize: function(</td><td class=PParameter nowrap>yOrdering</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a new indexer with</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.initialize"></a>initialize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initialize: function(</td><td class="PParameter  prettyprint " nowrap>yOrdering</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>insert: function(</td><td class=PParameter nowrap>newNode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Insert a new node into the indexer.  In o [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>insert: function(</td><td class="PParameter  prettyprint " nowrap>newNode</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>remove: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 ce [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>remove: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.exists"></a>exists</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>exists: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><p>node- {DOMEleme [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.exists"></a>exists</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>exists: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getZIndex"></a>getZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getZIndex: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the z-index value for the current no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getZIndex"></a>getZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getZIndex: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockq [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.determineZIndex"></a>determineZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>determineZIndex: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine the z-index  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.determineZIndex"></a>determineZIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>determineZIndex: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getNextElement"></a>getNextElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNextElement: function(</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Get the next element in  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.getNextElement"></a>getNextElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNextElement: function(</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods"></a>OpenLayers.<span class=HB> </span>ElementsIndexer.<span class=HB> </span>IndexingMethods</h2><div class=CBody><p>These are the compare methods for figuring out where a new node should be placed within the indexer.  These methods are very similar to general sorting methods in that they return -1, 0, and 1 to specify the direction in which new nodes fall in the ordering.</p> [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods"></a>OpenLayers.<wbr>ElementsIndexer.<wbr>IndexingMethods</h2><div class=CBody><p>These are the compare methods for figuring out where a new node should be placed within the indexer.  These methods are very similar to general sorting methods in that they return -1, 0, and 1 to specify the direction in which new nodes fall in the ordering.</p><!--START_ND_SUMMARY--><div class=Su [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER"></a>Z_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><td class=PParameter nowrap>nextNode [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER"></a>Z_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>newNode,</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER"></a>Z_ORDER_DRAWING_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER"></a>Z_ORDER_DRAWING_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER_DRAWING_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER"></a>Z_ORDER_Y_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER_Y_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><td class=PP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER"></a>Z_ORDER_Y_ORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER_Y_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prettyprint " n [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Renderer.Elements"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</h2><div class=CBody><p>This is another virtual class in that it should never be instantiated by itself as a Renderer.  It exists because there is <b>tons</b> of shared functionality between different vector libraries which use nodes/elements as a base for rendering vectors.</p><p>The highlevel bits of code that  [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Renderer.Elements"></a>OpenLayers.<wbr>Renderer.<wbr>Elements</h2><div class=CBody><p>This is another virtual class in that it should never be instantiated by itself as a Renderer.  It exists because there is <b>tons</b> of shared functionality between different vector libraries which use nodes/elements as a base for rendering vectors.</p><p>The highlevel bits of code that are implemented here are the adding  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Properties"></a>Properties</h3></div></div>
 
@@ -71,65 +71,65 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX"></a>BACKGROUND_ID_SUFFIX</h3><div class=CBody><p>{String}</p></div></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX"></a>BACKGROUND_ID_SUFFIX</h3><div class=CBody><p>{String}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.LABEL_ID_SUFFIX"></a>LABEL_ID_SUFFIX</h3><div class=CBody><p>{String}</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.Elements"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} options for [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.Elements"></a>OpenLayers.<wbr>Renderer.<wbr>Elements</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} options for this renderer.  Supported opti [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Remove all the elements from the root</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Remove all the elements from the root</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNodeType: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNodeType: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawGeometry"></a>drawGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>featureI [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawGeometry"></a>drawGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.redrawNode"></a>redrawNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>redrawNode: function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.redrawNode"></a>redrawNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>redrawNode: function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.redrawBackgroundNode"></a>redrawBackgroundNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>redrawBackgroundNode: function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PPara [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.redrawBackgroundNode"></a>redrawBackgroundNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>redrawBackgroundNode: function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowra [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawGeometryNode"></a>drawGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawGeometryNode: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawGeometryNode"></a>drawGeometryNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawGeometryNode: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.postDraw"></a>postDraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>postDraw: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Things that have do be done after the geo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.postDraw"></a>postDraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>postDraw: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPoint: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPoint: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLineString: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLineString: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLinearRing: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLinearRing: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPolygon: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPolygon: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawRectangle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawRectangle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawCircle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawCircle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawSurface: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawSurface: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.removeText"></a>removeText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>removeText: function(</td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes a label</p><h4 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.removeText"></a>removeText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>removeText: function(</td><td class="PParameter  prettyprint " nowrap>featureId</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureIdFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureIdFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.eraseGeometry"></a>eraseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>eraseGeometry: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>featureId</td><td class=PAfterParameters nowrap>)</td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.eraseGeometry"></a>eraseGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>eraseGeometry: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>featureId</td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.nodeFactory"></a>nodeFactory</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>nodeFactory: function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.nodeFactory"></a>nodeFactory</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>nodeFactory: function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>nodeTypeCompare: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></tabl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>nodeTypeCompare: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createNode: function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></tab [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createNode: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterPa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.moveRoot"></a>moveRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveRoot: function(</td><td class=PParameter nowrap>renderer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>moves this renderer’s root to a [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.moveRoot"></a>moveRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveRoot: function(</td><td class="PParameter  prettyprint " nowrap>renderer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.getRenderLayerId"></a>getRenderLayerId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getRenderLayerId: function()</td></tr></table></blockquote><p>Gets the layer that this renderer’s output appears on.  If moveRoot was used, this will be different from the id of the layer containing the features rendered by this renderer.</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.getRenderLayerId"></a>getRenderLayerId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getRenderLayerId: function()</td></tr></table></blockquote><p>Gets the layer that this renderer’s output appears on.  If moveRoot was used, this will be different from the id of the layer containing the features rendered by [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.isComplexSymbol"></a>isComplexSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>isComplexSymbol: function(</td><td class=PParameter nowrap>graphicName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determines if [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.isComplexSymbol"></a>isComplexSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>isComplexSymbol: function(</td><td class="PParameter  prettyprint " nowrap>graphicName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.symbol"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>symbol</h3><div class=CBody><p>Coordinate arrays for well known (named) symbols.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.Elements.OpenLayers.Renderer.symbol"></a>OpenLayers.<wbr>Renderer.<wbr>symbol</h3><div class=CBody><p>Coordinate arrays for well known (named) symbols.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -137,15 +137,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>initialize: function(</td><td class=PParameter nowrap>yOrdering</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new indexer with</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing= [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>initialize: function(</td><td class="PParameter  prettyprint " nowrap>yOrdering</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new indexer with</div></div><div class=CToolTip id="tt2"><div class=CF [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Renderer/NG-js.html b/doc/devdocs/files/OpenLayers/Renderer/NG-js.html
new file mode 100644
index 0000000..c8ca624
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Renderer/NG-js.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.NG - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();">< [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.NG"></a>OpenLayers.<wbr>Renderer.NG</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="Elements-js.html#OpenLayers.Renderer.Elements" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">OpenLayers.Renderer.Elements</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class= [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.labelNodeType"></a>labelNodeType</h3><div class=CBody><p>{String} The node type for text label containers.  To be defined by subclasses.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.OpenLayers.Renderer.NG"></a>OpenLayers.<wbr>Renderer.NG</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} options for this renderer.  Supported options are:</td></tr></tab [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.updateDimensions"></a>updateDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>updateDimensions: function(</td><td class="PParameter  prettyprint " nowrap>zoomChanged</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.resize"></a>resize</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.drawFeature"></a>drawFeature</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawFeature: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfte [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.NG.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawText: function(</td><td class="PParameter  prettyprint " nowrap>featureId,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td  [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>updateDimensions: function(</td><td class="PParameter  prettyprint " nowrap>zoomChanged</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquo [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Renderer/SVG-js.html b/doc/devdocs/files/OpenLayers/Renderer/SVG-js.html
index c0cc856..e230027 100644
--- a/doc/devdocs/files/OpenLayers/Renderer/SVG-js.html
+++ b/doc/devdocs/files/OpenLayers/Renderer/SVG-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer.SVG - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.SVG - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.SVG"></a>OpenLayers.<span class=HB> </span>Renderer.SVG</h1><div class=CBody><h4 class=CHeading>Inherits</h4><ul><li><a href="Elements-js.html#OpenLayers.Renderer.Elements" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">OpenLayers.Renderer.Elements</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summa [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.SVG"></a>OpenLayers.<wbr>Renderer.SVG</h1><div class=CBody><h4 class=CHeading>Inherits</h4><ul><li><a href="Elements-js.html#OpenLayers.Renderer.Elements" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">OpenLayers.Renderer.Elements</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Properties"></a>Properties</h3></div></div>
 
@@ -29,77 +29,77 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.symbolMetrics"></a>symbolMetrics</h3><div class=CBody><p>{Object} Cache for symbol metrics according to their svg coordinate space.  This is an object keyed by the symbol’s id, and values are an array of [width, centerX, centerY].</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.isGecko"></a>isGecko</h3><div class=CBody><p>{Boolean}</p></div></div></div>
-
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.supportUse"></a>supportUse</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>{Boolean} true if defs/use is supported</td><td class=CDLDescription>known to not work as expected at least in some applewebkit/5* builds.  See <a href="https://bugs.webkit.org/show_bug.cgi?id=33322" class=LURL target=_top>https://bugs.webkit.org/show_bug.cg [...]
-
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG"></a>OpenLayers.<span class=HB> </span>Renderer.SVG</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG"></a>OpenLayers.<wbr>Renderer.SVG</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SVG renderer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SVG renderer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.inValidRange"></a>inValidRange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>inValidRange: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.inValidRange"></a>inValidRange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>inValidRange: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PParameter nowrap>xyOnly</td><td class=PAf [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setExtent: function(</td><td class="PParameter  prettyprint " nowrap>extent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resolutionChanged</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setExtent: function(</td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter nowrap>resolutionChanged</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>translate: function(</td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y</td><td class="PAfterParameters  pr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>translate: function(</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockqu [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>S [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the size of the drawing surface.</p><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNodeType: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNodeType: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setStyle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setStyle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterP [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.dashStyle"></a>dashStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dashStyle: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>widthFactor</td><td class="PAfter [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.dashStyle"></a>dashStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dashStyle: function(</td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>widthFactor</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createNode: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createNode: function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>nodeTypeCompare: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>nodeTypeCompare: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createRenderRoot"></a>createRenderRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createRenderRoot: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} The specific render engine’s root element</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createRenderRoot"></a>createRenderRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createRenderRoot: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} The specific render engine’s root element</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createRoot"></a>createRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createRoot: function(</td><td class="PParameter  prettyprint " nowrap>suffix</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createRoot"></a>createRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createRoot: function(</td><td class=PParameter nowrap>suffix</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameter</h4><table b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createDefs"></a>createDefs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createDefs: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} The element to which we’ll add the symbol definitions</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.createDefs"></a>createDefs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createDefs: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} The element to which we’ll add the symbol definitions</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPoint: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPoint: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawCircle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawCircle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>radius</td><td class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLineString: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLineString: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLinearRing: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLinearRing: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPolygon: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPolygon: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawRectangle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawRectangle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawSurface: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawSurface: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawText: function(</td><td class=PParameter nowrap>featureId,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>location</td><td class=P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawText: function(</td><td class="PParameter  prettyprint " nowrap>featureId,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td [...]
 
 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getComponentString"></a>getComponentString</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link40 onMouseOver="ShowTip(event, 'tt32', 'link40')" onMouseOut="HideTip('tt32')">OpenL [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.clipLine"></a>clipLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clipLine: function(</td><td class=PParameter nowrap>badComponent,</td></tr><tr><td></td><td class=PParameter nowrap>goodComponent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.clipLine"></a>clipLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clipLine: function(</td><td class="PParameter  prettyprint " nowrap>badComponent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>goodComponent</td><td class=" [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getShortString"></a>getShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getShortString: function(</td><td class=PParameter nowrap>point</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getShortString"></a>getShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getShortString: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getPosition"></a>getPosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getPosition: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finds the position of an svg node.</p [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getPosition"></a>getPosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getPosition: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.importSymbol"></a>importSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>importSymbol: function (</td><td class=PParameter nowrap>graphicName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>add a new symbol definitio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.importSymbol"></a>importSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>importSymbol: function (</td><td class="PParameter  prettyprint " nowrap>graphicName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getFeatureIdFromEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=C [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureIdFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_ALIGN"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>SVG.<span class=HB> </span>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_ALIGN"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_VSHIFT"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>LABEL_VSHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_VFACTOR"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>LABEL_VFACTOR</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.Functions"></a>Functions</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.LABEL_VSHIFT"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>SVG.<span class=HB> </span>LABEL_VSHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG.OpenLayers.Renderer.SVG.preventDefault"></a>OpenLayers.<wbr>Renderer.<wbr>SVG.<wbr>preventDefault</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Renderer.SVG.preventDefault = function(</td><td class="PParameter  prettyprint " nowrap>e</ [...]
 
 </div><!--Content-->
 
@@ -107,15 +107,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the SVG renderer</div></div><div class=CToolTip id="tt3"><div class=CFun [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the SVG renderer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  pret [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Renderer/SVG2-js.html b/doc/devdocs/files/OpenLayers/Renderer/SVG2-js.html
new file mode 100644
index 0000000..2ec52e0
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/Renderer/SVG2-js.html
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.SVG2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.SVG2"></a>OpenLayers.<wbr>Renderer.SVG2</h1><div class=CBody><h4 class=CHeading>Inherits from</h4><ul><li><a href="NG-js.html#OpenLayers.Renderer.NG" class=LClass >OpenLayers.Renderer.NG</a></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SE [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Properties"></a>Properties</h3></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.xmlns"></a>xmlns</h3><div class=CBody><p>{String}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.xlinkns"></a>xlinkns</h3><div class=CBody><p>{String}</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.symbolMetrics"></a>symbolMetrics</h3><div class=CBody><p>{Object} Cache for symbol metrics according to their svg coordinate space.  This is an object keyed by the symbol’s id, and values are an object with size, x and y properties.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.labelNodeType"></a>labelNodeType</h3><div class=CBody><p>{String} The node type for text label containers.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Constructor"></a>Constructor</h3></div></div>
+
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2"></a>OpenLayers.<wbr>Renderer.SVG2</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String}</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the browser supports the SVG renderer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.updateDimensions"></a>updateDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>updateDimensions: function(</td><td class="PParameter  prettyprint " nowrap>zoomChanged</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table> [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNodeType: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PA [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setStyle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td cla [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.dashStyle"></a>dashStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dashStyle: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>widthFactor</td><td class="PAfte [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createNode: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParame [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>nodeTypeCompare: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><td cl [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.createRenderRoot"></a>createRenderRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createRenderRoot: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} The specific render engine’s root element</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.createRoot"></a>createRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createRoot: function(</td><td class="PParameter  prettyprint " nowrap>suffix</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blo [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.createDefs"></a>createDefs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createDefs: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{DOMElement} The element to which we’ll add the symbol definitions</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPoint: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterPar [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawCircle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLineString: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td c [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLinearRing: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td c [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPolygon: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAf [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawRectangle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td clas [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawSurface: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAf [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawText: function(</td><td class="PParameter  prettyprint " nowrap>featureId,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><t [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.getComponentString"></a>getComponentString</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>components</td><td class=CDLDescription>{Array(<a href="../Geometry/Point-js.html#OpenLayers.Geometry.Point" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt24', 'link32')" onMouseOut="HideTip('tt24')">Open [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.getShortString"></a>getShortString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getShortString: function(</td><td class="PParameter  prettyprint " nowrap>point</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.importSymbol"></a>importSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>importSymbol: function (</td><td class="PParameter  prettyprint " nowrap>graphicName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.getFeatureIdFromEvent"></a>getFeatureIdFromEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getFeatureIdFromEvent: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr>< [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.LABEL_ALIGN"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>LABEL_ALIGN</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.LABEL_VSHIFT"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>LABEL_VSHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.LABEL_VFACTOR"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>LABEL_VFACTOR</h3><div class=CBody><p>{Object}</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.SVG2.OpenLayers.Renderer.SVG2.preventDefault"></a>OpenLayers.<wbr>Renderer.<wbr>SVG2.<wbr>preventDefault</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Renderer.SVG2.preventDefault = function(</td><td class="PParameter  prettyprint " nowrap [...]
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>{Boolean} Whether or not the browser supports the SVG renderer</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  pret [...]
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Renderer/VML-js.html b/doc/devdocs/files/OpenLayers/Renderer/VML-js.html
index 6e5518d..b8c4817 100644
--- a/doc/devdocs/files/OpenLayers/Renderer/VML-js.html
+++ b/doc/devdocs/files/OpenLayers/Renderer/VML-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Renderer.VML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Renderer.VML - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"> [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.VML"></a>OpenLayers.<span class=HB> </span>Renderer.VML</h1><div class=CBody><p>Render vector features in browsers with VML capability.   Construct a new VML renderer with the <a href="#OpenLayers.Renderer.VML.OpenLayers.Renderer.VML" class=LConstructor id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">OpenLayers.Renderer.VML</a> constr [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Renderer.VML"></a>OpenLayers.<wbr>Renderer.VML</h1><div class=CBody><p>Render vector features in browsers with VML capability.   Construct a new VML renderer with the <a href="#OpenLayers.Renderer.VML.OpenLayers.Renderer.VML" class=LConstructor id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">OpenLayers.Renderer.VML</a> constructor.</p><p>Note  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Properties"></a>Properties</h3></div></div>
 
@@ -23,63 +23,61 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML"></a>OpenLayers.<span class=HB> </span>Renderer.VML</h3><div class=CBody><p>Create a new VML renderer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String} The id for the element that contains the renderer</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML"></a>OpenLayers.<wbr>Renderer.VML</h3><div class=CBody><p>Create a new VML renderer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>containerID</td><td class=CDLDescription>{String} The id for the element that contains the renderer</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Deconstruct the renderer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports this renderer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports the VML renderer</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.supported"></a>supported</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote><p>Determine whether a browser supports this renderer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The browser supports the VML renderer</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setExtent: function(</td><td class="PParameter  prettyprint " nowrap>extent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resolutionChanged</td><td class= [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setExtent"></a>setExtent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setExtent: function(</td><td class=PParameter nowrap>extent,</td></tr><tr><td></td><td class=PParameter nowrap>resolutionChanged</td><td class=PAfterParameters nowrap>)</td></tr></table></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setSize: function(</td><td class="PParameter  prettyprint " nowrap>size</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>S [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setSize"></a>setSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setSize: function(</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the size of the drawing surface</p><h4 class= [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getNodeType: function(</td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAf [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.getNodeType"></a>getNodeType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getNodeType: function(</td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setStyle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td clas [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setStyle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>options,</td></tr><tr><td></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.graphicRotate"></a>graphicRotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>graphicRotate: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>xOffset,</td></tr><tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.graphicRotate"></a>graphicRotate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>graphicRotate: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>xOffset,</td></tr><tr><td></td><td class=PParameter nowrap>yOffset,</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.postDraw"></a>postDraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>postDraw: function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.postDraw"></a>postDraw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>postDraw: function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Does some node postprocessing  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setNodeDimension"></a>setNodeDimension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setNodeDimension: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.setNodeDimension"></a>setNodeDimension</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setNodeDimension: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.dashStyle"></a>dashStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dashStyle: function(</td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.dashStyle"></a>dashStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dashStyle: function(</td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table bord [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createNode: function(</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>id</td><td class="PAfterParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.createNode"></a>createNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createNode: function(</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>nodeTypeCompare: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>type</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.nodeTypeCompare"></a>nodeTypeCompare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>nodeTypeCompare: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>type</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.createRenderRoot"></a>createRenderRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createRenderRoot: function()</td></tr></table></blockquote><p>Create the renderer root</p><h4 class=CHeading>Returns</h4><p>{DOMElement} The specific render engine’s root element</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.createRenderRoot"></a>createRenderRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createRenderRoot: function()</td></tr></table></blockquote><p>Create the renderer root</p><h4 class=CHeading>Returns</h4><p>{DOMElement} The specific render engine’s root element</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.createRoot"></a>createRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createRoot: function(</td><td class="PParameter  prettyprint " nowrap>suffix</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.createRoot"></a>createRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createRoot: function(</td><td class=PParameter nowrap>suffix</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create the main root element</p><h4 cl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPoint: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawPoint"></a>drawPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPoint: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawCircle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry,</td></tr><tr><td></td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawCircle"></a>drawCircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawCircle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry,</td></tr><tr><td></td><td class=PParameter nowrap>radius</td><td class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLineString: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawLineString"></a>drawLineString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLineString: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawLinearRing: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawLinearRing"></a>drawLinearRing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawLinearRing: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.DrawLine"></a>DrawLine</h3><div class=CBody><p>Render a line.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link35 onMouseOver="ShowTip( [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.DrawLine"></a>DrawLine</h3><div class=CBody><p>Render a line.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>{DOMElement}</td></tr><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>{<a href="../Geometry-js.html#OpenLayers.Geometry" class=LClass id=link36 onMouseOver="ShowTip( [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawPolygon: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawPolygon: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawRectangle: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawRectangle"></a>drawRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawRectangle: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawText: function(</td><td class="PParameter  prettyprint " nowrap>featureId,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawText: function(</td><td class=PParameter nowrap>featureId,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>location</td><td class=P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>drawSurface: function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAft [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.drawSurface"></a>drawSurface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>drawSurface: function(</td><td class=PParameter nowrap>node,</td></tr><tr><td></td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.moveRoot"></a>moveRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveRoot: function(</td><td class="PParameter  prettyprint " nowrap>renderer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.moveRoot"></a>moveRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveRoot: function(</td><td class=PParameter nowrap>renderer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>moves this renderer’s root to a diff [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.importSymbol"></a>importSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>importSymbol: function (</td><td class=PParameter nowrap>graphicName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>add a new symbol definitio [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.importSymbol"></a>importSymbol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>importSymbol: function (</td><td class="PParameter  prettyprint " nowrap>graphicName</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML.LABEL_SHIFT"></a>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>VML.<span class=HB> </span>LABEL_SHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Renderer.VML.OpenLayers.Renderer.VML.LABEL_SHIFT"></a>OpenLayers.<wbr>Renderer.<wbr>VML.<wbr>LABEL_SHIFT</h3><div class=CBody><p>{Object}</p></div></div></div>
 
 </div><!--Content-->
 
@@ -87,15 +85,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([27, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([25, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Deconstruct the renderer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>supported: function()</td></tr></table></blockquote>Determine whether a browser supports this renderer.</div></div><div class=CToolTip id="tt3">< [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">supported: function()</td></tr></table></blockquote>Determine whether a browser supports this renderer.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "no [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Request-js.html b/doc/devdocs/files/OpenLayers/Request-js.html
index 8efbdf6..b1c4e83 100644
--- a/doc/devdocs/files/OpenLayers/Request-js.html
+++ b/doc/devdocs/files/OpenLayers/Request-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Request - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Request - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language= [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,33 +11,35 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request"></a>OpenLayers.<span class=HB> </span>Request</h1><div class=CBody><p>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests.   These methods work with a cross-browser W3C compliant <a href="Request/XMLHttpRequest-js.html#OpenLayers.Request.XMLHttpRequest" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouse [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request"></a>OpenLayers.<wbr>Request</h1><div class=CBody><p>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests.   These methods work with a cross-browser W3C compliant <a href="Request/XMLHttpRequest-js.html#OpenLayers.Request.XMLHttpRequest" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10 [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.Constants"></a>Constants</h3></div></div>
 
 <div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.DEFAULT_CONFIG"></a>DEFAULT_CONFIG</h3><div class=CBody><p>{Object} Default configuration for all requests.</p></div></div></div>
 
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.URL_SPLIT_REGEX"></a>URL_SPLIT_REGEX</h3></div></div>
+
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.Properties"></a>Properties</h3></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.events"></a>events</h3><div class=CBody><p>{<a href="Events-js.html#OpenLayers.Events" class=LClass >OpenLayers.Events</a>} An events object that handles all events on the {<a href="#OpenLayers.Request" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenLayers.Request</a>} object.</p><h4 class=CHeading>All event listeners will receive an event object wit [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.issue"></a>issue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>issue: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a new XMLHttpRequest object, open it, set any heade [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.issue"></a>issue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>issue: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a n [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.runCallbacks"></a>runCallbacks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>runCallbacks: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls the complete, success and fail [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.runCallbacks"></a>runCallbacks</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>runCallbacks: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.GET"></a>GET</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>GET: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP GET request.   Additional configuration proper [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.GET"></a>GET</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>GET: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP GET [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.POST"></a>POST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>POST: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send a POST request.   Additional configuration properti [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.POST"></a>POST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>POST: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send a POST r [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.PUT"></a>PUT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>PUT: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP PUT request.   Additional configuration proper [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.PUT"></a>PUT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>PUT: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP PUT [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.DELETE"></a>DELETE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>DELETE: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP DELETE request.   Additional configur [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.DELETE"></a>DELETE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>DELETE: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.HEAD"></a>HEAD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>HEAD: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP HEAD request.   Additional configuration pr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.HEAD"></a>HEAD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>HEAD: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.OPTIONS"></a>OPTIONS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OPTIONS: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send an HTTP OPTIONS request.   Additional conf [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Request.OPTIONS"></a>OPTIONS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OPTIONS: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Send [...]
 
 </div><!--Content-->
 
@@ -45,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([28, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([26, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>issue: function(</td><td class=PParameter nowrap>config</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers.Request namespace contains convenience methods for working with XMLHttpRequests. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>issue: function(</td><td class="PParameter  prettyprint " nowrap>config</td><td class="PAfterParameters  pr [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Request/XMLHttpRequest-js.html b/doc/devdocs/files/OpenLayers/Request/XMLHttpRequest-js.html
index a97cee7..3892ec1 100644
--- a/doc/devdocs/files/OpenLayers/Request/XMLHttpRequest-js.html
+++ b/doc/devdocs/files/OpenLayers/Request/XMLHttpRequest-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Request.XMLHttpRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Request.XMLHttpRequest - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();pretty [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request.XMLHttpRequest"></a>OpenLayers.<span class=HB> </span>Request.<span class=HB> </span>XMLHttpRequest</h1><div class=CBody><p>Standard-compliant (W3C) cross-browser implementation of the XMLHttpRequest object.   From <a href="http://code.google.com/p/xmlhttprequest/" class=LURL target=_top>http://code.google.com/p/xmlhttprequest/</a>.</p></div></div></div>
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Request.XMLHttpRequest"></a>OpenLayers.<wbr>Request.<wbr>XMLHttpRequest</h1><div class=CBody><p>Standard-compliant (W3C) cross-browser implementation of the XMLHttpRequest object.   From <a href="http://code.google.com/p/xmlhttprequest/" class=LURL target=_top>http://code.google.com/p/xmlhttprequest/</a>.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -19,10 +19,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([28, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([26, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Rule-js.html b/doc/devdocs/files/OpenLayers/Rule-js.html
index 5b51263..4d8ffbd 100644
--- a/doc/devdocs/files/OpenLayers/Rule-js.html
+++ b/doc/devdocs/files/OpenLayers/Rule-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Rule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Rule - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -43,13 +43,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>evaluate: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>evaluates this rule for a specific feature</p><h4 c [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>evaluate: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>eva [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.getContext"></a>getContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getContext: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the context for evaluating this rule</p> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.getContext"></a>getContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getContext: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this rule.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Rule.OpenLayers.Rule" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt6', 'link10')" onMouseOut="HideTip('tt6')">OpenLayers.Rule</a>} Clone of this rul [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Rule.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this rule.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Rule.OpenLayers.Rule" class=LConstructor id=link10 onMouseOver="ShowTip(event, 'tt6', 'link10')" onMouseOut="HideTip('tt6')">OpenLayers.Rule< [...]
 
 </div><!--Content-->
 
@@ -57,15 +57,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table bo [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prot [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/SingleFile-js.html b/doc/devdocs/files/OpenLayers/SingleFile-js.html
new file mode 100644
index 0000000..c8e77b4
--- /dev/null
+++ b/doc/devdocs/files/OpenLayers/SingleFile-js.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/SingleFile.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="Conten [...]
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="SingleFile.js"></a>SingleFile.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#SingleFile.js" >SingleFile.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td c [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="VERSION_NUMBER"></a>VERSION_NUMBER</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="singleFile"></a>singleFile</h3><div class=CBody><p>TODO: remove this in 3.0 when we stop supporting build profiles that include OpenLayers.js</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="_getScriptLocation"></a>_getScriptLocation</h3><div class=CBody><p>Return the path to this script.  This is also implemented in OpenLayers.js</p><h4 class=CHeading>Returns</h4><p>{String} Path to this script</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([30], 32);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/files/OpenLayers/Strategy-js.html b/doc/devdocs/files/OpenLayers/Strategy-js.html
index bd16bd3..4d9d72c 100644
--- a/doc/devdocs/files/OpenLayers/Strategy-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy"></a>OpenLayers.<span class=HB> </span>Strategy</h1><div class=CBody><p>Abstract vector layer strategy class.   Not to be instantiated directly.   Use one of the strategy subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td clas [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy"></a>OpenLayers.<wbr>Strategy</h1><div class=CBody><p>Abstract vector layer strategy class.   Not to be instantiated directly.   Use one of the strategy subclasses instead.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href=" [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Properties"></a>Properties</h3></div></div>
 
@@ -27,17 +27,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.OpenLayers.Strategy"></a>OpenLayers.<span class=HB> </span>Strategy</h3><div class=CBody><p>Abstract class for vector strategies.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.OpenLayers.Strategy"></a>OpenLayers.<wbr>Strategy</h3><div class=CBody><p>Abstract class for vector strategies.   Create instances of a subclass.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the strategy.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>Clean up the strategy.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setLayer: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called to set the <a href="#OpenLayers.Strategy.l [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.setLayer"></a>setLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setLayer: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>C [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated or false if the strategy was already active.</p></div></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated or false if the strategy was alrea [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated or false if the strategy was already ina [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated or false if the st [...]
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the strategy.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><t [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>Clean up the strategy.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpaddin [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/BBOX-js.html b/doc/devdocs/files/OpenLayers/Strategy/BBOX-js.html
index c76fed5..47cffab 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/BBOX-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/BBOX-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.BBOX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.BBOX - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.BBOX"></a>OpenLayers.<span class=HB> </span>Strategy.BBOX</h1><div class=CBody><p>A simple strategy that reads new features when the viewport invalidates some bounds.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">OpenLayers.Stra [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.BBOX"></a>OpenLayers.<wbr>Strategy.BBOX</h1><div class=CBody><p>A simple strategy that reads new features when the viewport invalidates some bounds.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">OpenLayers.Strategy</a></li></ul> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.bounds"></a>bounds</h3><div class=CBody><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">OpenLayers.Bounds</a>} The current data bounds (in the same projection as the layer - not always the same projection as the map).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.bounds"></a>bounds</h3><div class=CBody><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">OpenLayers.Bounds</a>} The current data bounds (in the same projection as the layer - not always the same projection as the map).</p></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.resolution"></a>resolution</h3><div class=CBody><p>{Float} The current data resolution.</p></div></div></div>
 
@@ -23,31 +23,31 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.resFactor"></a>resFactor</h3><div class=CBody><p>{Float} Optional factor used to determine when previously requested features are invalid.   If set, the resFactor will be compared to the resolution of the previous request to the current map resolution.  If resFactor > (old / new) and 1/resFactor < (old / new).   If you set a resFactor of 1, data will be requested every time th [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.response"></a>response</h3><div class=CBody><p>{<a href="../Protocol-js.html#OpenLayers.Protocol.Response" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt2', 'link15')" onMouseOut="HideTip('tt2')">OpenLayers.Protocol.Response</a>} The protocol response object returned by the layer protocol.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.response"></a>response</h3><div class=CBody><p>{<a href="../Protocol-js.html#OpenLayers.Protocol.Response" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt2', 'link14')" onMouseOut="HideTip('tt2')">OpenLayers.Protocol.Response</a>} The protocol response object returned by the layer protocol.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.OpenLayers.Strategy.BBOX"></a>OpenLayers.<span class=HB> </span>Strategy.BBOX</h3><div class=CBody><p>Create a new BBOX strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.OpenLayers.Strategy.BBOX"></a>OpenLayers.<wbr>Strategy.BBOX</h3><div class=CBody><p>Create a new BBOX strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Set up strategy with regard to reading new batches of remote data.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Set up strategy with regard to reading new batches of remote data.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Tear down strategy with regard to reading new batches of remote data.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Tear down strategy with regard to reading new batches of remote data.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>update: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Callback function called on “moveend&rdquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.update"></a>update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>update: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.getMapBounds"></a>getMapBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>getMapBounds: function()</td></tr></table></blockquote><p>Get the map bounds expressed in the same projection as this layer.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link16 onMouseOver="ShowTip(event [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.getMapBounds"></a>getMapBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">getMapBounds: function()</td></tr></table></blockquote><p>Get the map bounds expressed in the same projection as this layer.</p><h4 class=CHeading>Returns</h4><p>{<a href="../BaseTypes/Bounds-js.html#OpenLayers.Bounds" class=LClass id=link15 onMo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.invalidBounds"></a>invalidBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>invalidBounds: function(</td><td class=PParameter nowrap>mapBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Determine whether the pre [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.invalidBounds"></a>invalidBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>invalidBounds: function(</td><td class="PParameter  prettyprint " nowrap>mapBounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>calculateBounds: function(</td><td class=PParameter nowrap>mapBounds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Par [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.calculateBounds"></a>calculateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>calculateBounds: function(</td><td class="PParameter  prettyprint " nowrap>mapBounds</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.triggerRead"></a>triggerRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>triggerRead: function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{<a href="../Protocol-js.html#OpenLayers.Protocol.Response" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip('tt2')">OpenLayers.Protocol.Respo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.triggerRead"></a>triggerRead</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>triggerRead: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.createFilter"></a>createFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createFilter: function()</td></tr></table></blockquote><p>Creates a spatial BBOX filter.  If the layer that this strategy belongs to has a filter property, this filter will be combined with the BBOX filter.</p><p>Returns {<a href="../Filter-js.html#OpenLayers.Fil [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.createFilter"></a>createFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createFilter: function()</td></tr></table></blockquote><p>Creates a spatial BBOX filter.  If the layer that this strategy belongs to has a filter property, this filter will be combined with the BBOX filter.</p><p>Returns {<a href="../Filter- [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.merge"></a>merge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>merge: function(</td><td class=PParameter nowrap>resp</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a list of features, determine which ones to add  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.BBOX.merge"></a>merge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>merge: function(</td><td class="PParameter  prettyprint " nowrap>resp</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given  [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Protocols return Response objects to their users.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Set up strategy with regard to reading new batches of remote data.</div></div><div class=CTool [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Protocols return Response objects to their users.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Set up strategy with regard to reading new batches of remote data.</div> [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/Cluster-js.html b/doc/devdocs/files/OpenLayers/Strategy/Cluster-js.html
index 38e2c9d..3ffb07c 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/Cluster-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/Cluster-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Cluster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Cluster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Cluster"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Cluster</h1><div class=CBody><p>Strategy for vector feature clustering.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">OpenLayers.Strategy</a></li></u [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Cluster"></a>OpenLayers.<wbr>Strategy.<wbr>Cluster</h1><div class=CBody><p>Strategy for vector feature clustering.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">OpenLayers.Strategy</a></li></ul><!--START_ND_SUMMARY--><div class= [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.Properties"></a>Properties</h3></div></div>
 
@@ -29,27 +29,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.OpenLayers.Strategy.Cluster"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Cluster</h3><div class=CBody><p>Create a new clustering strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the inst [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.OpenLayers.Strategy.Cluster"></a>OpenLayers.<wbr>Strategy.<wbr>Cluster</h3><div class=CBody><p>Create a new clustering strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.cacheFeatures"></a>cacheFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>cacheFeatures: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cache features before they [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.cacheFeatures"></a>cacheFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>cacheFeatures: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.clearCache"></a>clearCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearCache: function()</td></tr></table></blockquote><p>Clear out the cached features.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.clearCache"></a>clearCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearCache: function()</td></tr></table></blockquote><p>Clear out the cached features.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.cluster"></a>cluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>cluster: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cluster features based on some threshold dis [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.cluster"></a>cluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>cluster: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.clustersExist"></a>clustersExist</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clustersExist: function()</td></tr></table></blockquote><p>Determine whether calculated clusters are already on the layer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The calculated clusters are already on the layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.clustersExist"></a>clustersExist</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clustersExist: function()</td></tr></table></blockquote><p>Determine whether calculated clusters are already on the layer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The calculated clusters are already on the layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.shouldCluster"></a>shouldCluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>shouldCluster: function(</td><td class=PParameter nowrap>cluster,</td></tr><tr><td></td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.shouldCluster"></a>shouldCluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>shouldCluster: function(</td><td class="PParameter  prettyprint " nowrap>cluster,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>feature</td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.addToCluster"></a>addToCluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addToCluster: function(</td><td class=PParameter nowrap>cluster,</td></tr><tr><td></td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.addToCluster"></a>addToCluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addToCluster: function(</td><td class="PParameter  prettyprint " nowrap>cluster,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>feature</td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.createCluster"></a>createCluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createCluster: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Given a feature, create  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Cluster.createCluster"></a>createCluster</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createCluster: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
 </div><!--Content-->
 
@@ -57,15 +57,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Proto [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/Filter-js.html b/doc/devdocs/files/OpenLayers/Strategy/Filter-js.html
index 2d2b087..e519ea9 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/Filter-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/Filter-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Filter - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Filter"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Filter</h1><div class=CBody><p>Strategy for limiting features that get added to a layer by evaluating a filter.   The strategy maintains a cache of all features until removeFeatures is called on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.St [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Filter"></a>OpenLayers.<wbr>Strategy.<wbr>Filter</h1><div class=CBody><p>Strategy for limiting features that get added to a layer by evaluating a filter.   The strategy maintains a cache of all features until removeFeatures is called on the layer.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link8 onMous [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.Properties"></a>Properties</h3></div></div>
 
@@ -23,19 +23,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.OpenLayers.Strategy.Filter"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Filter</h3><div class=CBody><p>Create a new filter strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.&n [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.OpenLayers.Strategy.Filter"></a>OpenLayers.<wbr>Strategy.<wbr>Filter</h3><div class=CBody><p>Create a new filter strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.  By default, this strategy automatically activates itself when a layer is added to a map.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.  By default, this strategy automatically activates itself when a layer is added to a map.</p><h4 class=CHeading>Retur [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Clear the feature cache.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated or false if the strategy was already inactive.</p></div></di [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Clear the feature cache.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated or false if the strategy was already i [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.handleAdd"></a>handleAdd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleAdd: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.handleAdd"></a>handleAdd</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleAdd: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></block [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.handleRemove"></a>handleRemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handleRemove: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.handleRemove"></a>handleRemove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handleRemove: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.setFilter"></a>setFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setFilter: function(</td><td class=PParameter nowrap>filter</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Update the filter for this strategy.&n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Filter.setFilter"></a>setFilter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setFilter: function(</td><td class="PParameter  prettyprint " nowrap>filter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></bloc [...]
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt4"><div class=CFunc [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents an OGC Filter.</div></div><div class=CToolTip id="tt2"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id= [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/Fixed-js.html b/doc/devdocs/files/OpenLayers/Strategy/Fixed-js.html
index 294df29..7fc8039 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/Fixed-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/Fixed-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Fixed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Fixed - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint(); [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Fixed"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Fixed</h1><div class=CBody><p>A simple strategy that requests features once and never requests new data.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">Open [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Fixed"></a>OpenLayers.<wbr>Strategy.<wbr>Fixed</h1><div class=CBody><p>A simple strategy that requests features once and never requests new data.</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">OpenLayers.Strategy</a></li></ul><!--STA [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.Properties"></a>Properties</h3></div></div>
 
@@ -19,19 +19,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.OpenLayers.Strategy.Fixed"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Fixed</h3><div class=CBody><p>Create a new Fixed strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td>< [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.OpenLayers.Strategy.Fixed"></a>OpenLayers.<wbr>Strategy.<wbr>Fixed</h3><div class=CBody><p>Create a new Fixed strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>Clean up the strategy.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy: load data or add listener to load when visible</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated or false if the strategy was alrea [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy: load data or add listener to load when visible</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated or false if the strategy was already active.</p></div></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Undo what is done in <a href="#OpenLayers.Strategy.Fixed.activate" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1 [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Undo what is done in <a href="#OpenLayers.Strategy.Fixed.activate" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt2', 'link7')" onMouseOut="HideTip('tt2')">activate</a>.</p>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.load"></a>load</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>load: function(</td><td class="PParameter  prettyprint " nowrap>options</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tells [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.load"></a>load</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>load: function(</td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tells protocol to load data and unhooks the visibilit [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.merge"></a>merge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>merge: function(</td><td class=PParameter nowrap>resp</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Add all features to the layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Fixed.merge"></a>merge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>merge: function(</td><td class="PParameter  prettyprint " nowrap>mapProjection,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>resp</td><td class="PAfterParameter [...]
 
 </div><!--Content-->
 
@@ -39,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>Clean up the strategy.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy: load data or add listener to load when visible</div></div><div class=CTool [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy: load data or add listener to load when visible</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Dea [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/Paging-js.html b/doc/devdocs/files/OpenLayers/Strategy/Paging-js.html
index 722c4a8..5792267 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/Paging-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/Paging-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Paging - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Paging - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Paging"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</h1><div class=CBody><p>Strategy for vector feature paging</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">OpenLayers.Strategy</a></li></ul><!--S [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Paging"></a>OpenLayers.<wbr>Strategy.<wbr>Paging</h1><div class=CBody><p>Strategy for vector feature paging</p><h4 class=CHeading>Inherits from</h4><ul><li><a href="../Strategy-js.html#OpenLayers.Strategy" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">OpenLayers.Strategy</a></li></ul><!--START_ND_SUMMARY--><div class=Summary [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.Properties"></a>Properties</h3></div></div>
 
@@ -25,29 +25,29 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</h3><div class=CBody><p>Create a new paging strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</ [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging"></a>OpenLayers.<wbr>Strategy.<wbr>Paging</h3><div class=CBody><p>Create a new paging strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.cacheFeatures"></a>cacheFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>cacheFeatures: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cache features before they  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.cacheFeatures"></a>cacheFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>cacheFeatures: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.clearCache"></a>clearCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clearCache: function()</td></tr></table></blockquote><p>Clear out the cached features.   This destroys features, assuming nothing else has a reference.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.clearCache"></a>clearCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clearCache: function()</td></tr></table></blockquote><p>Clear out the cached features.   This destroys features, assuming nothing else has a reference.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageCount"></a>pageCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pageCount: function()</td></tr></table></blockquote><p>Get the total count of pages given the current cache of features.</p><h4 class=CHeading>Returns</h4><p>{Integer} The page count.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageCount"></a>pageCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pageCount: function()</td></tr></table></blockquote><p>Get the total count of pages given the current cache of features.</p><h4 class=CHeading>Returns</h4><p>{Integer} The page count.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNum"></a>pageNum</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pageNum: function()</td></tr></table></blockquote><p>Get the zero based page number.</p><h4 class=CHeading>Returns</h4><p>{Integer} The current page number being displayed.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNum"></a>pageNum</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pageNum: function()</td></tr></table></blockquote><p>Get the zero based page number.</p><h4 class=CHeading>Returns</h4><p>{Integer} The current page number being displayed.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageLength"></a>pageLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pageLength: function(</td><td class=PParameter nowrap>newLength</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets or sets page length.</p><h4 [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageLength"></a>pageLength</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pageLength: function(</td><td class="PParameter  prettyprint " nowrap>newLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNext"></a>pageNext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>pageNext: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Display the next page of features.</p><h4  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pageNext"></a>pageNext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>pageNext: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquo [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pagePrevious"></a>pagePrevious</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pagePrevious: function()</td></tr></table></blockquote><p>Display the previous page of features.</p><h4 class=CHeading>Returns</h4><p>{Boolean} A new page was displayed.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.pagePrevious"></a>pagePrevious</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">pagePrevious: function()</td></tr></table></blockquote><p>Display the previous page of features.</p><h4 class=CHeading>Returns</h4><p>{Boolean} A new page was displayed.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.page"></a>page</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>page: function(</td><td class=PParameter nowrap>start,</td></tr><tr><td></td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Paging.page"></a>page</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>page: function(</td><td class="PParameter  prettyprint " nowrap>start,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  pretty [...]
 
 </div><!--Content-->
 
@@ -55,15 +55,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate [...]
+<div class=CToolTip id="tt1"><div class=CClass>Vector features use the OpenLayers.Geometry classes as geometry description. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Proto [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/Refresh-js.html b/doc/devdocs/files/OpenLayers/Strategy/Refresh-js.html
index a37279d..2c1f9c5 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/Refresh-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/Refresh-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Refresh - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Refresh - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Refresh"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Refresh</h1><div class=CBody><p>A strategy that refreshes the layer.  By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Refresh.refresh" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt5', 'link7')" onMouseOut="HideTip('tt5')">refresh</a> before refreshing.  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Refresh"></a>OpenLayers.<wbr>Strategy.<wbr>Refresh</h1><div class=CBody><p>A strategy that refreshes the layer.  By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Refresh.refresh" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt5', 'link7')" onMouseOut="HideTip('tt5')">refresh</a> before refreshing.   By configuring the strategy with t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.Properties"></a>Properties</h3></div></div>
 
@@ -23,21 +23,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.OpenLayers.Strategy.Refresh"></a>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Refresh</h3><div class=CBody><p>Create a new Refresh strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instanc [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.OpenLayers.Strategy.Refresh"></a>OpenLayers.<wbr>Strategy.<wbr>Refresh</h3><div class=CBody><p>Create a new Refresh strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.  Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.  Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.  Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.  Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} True if the strategy was successfully deactivated.</p></div>< [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.reset"></a>reset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>reset: function()</td></tr></table></blockquote><p>Start or cancel the refresh interval depending on the visibility of the layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.reset"></a>reset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">reset: function()</td></tr></table></blockquote><p>Start or cancel the refresh interval depending on the visibility of the layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.start"></a>start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>start: function()</td></tr></table></blockquote><p>Start the refresh interval.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.start"></a>start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">start: function()</td></tr></table></blockquote><p>Start the refresh interval.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>refresh: function()</td></tr></table></blockquote><p>Tell the strategy to refresh which will refresh the layer.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.refresh"></a>refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">refresh: function()</td></tr></table></blockquote><p>Tell the strategy to refresh which will refresh the layer.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>stop: function()</td></tr></table></blockquote><p>Cancels the refresh interval.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Refresh.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">stop: function()</td></tr></table></blockquote><p>Cancels the refresh interval.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><block [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Strategy/Save-js.html b/doc/devdocs/files/OpenLayers/Strategy/Save-js.html
index 8c41b5d..3fc33f5 100644
--- a/doc/devdocs/files/OpenLayers/Strategy/Save-js.html
+++ b/doc/devdocs/files/OpenLayers/Strategy/Save-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Strategy.Save - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Strategy.Save - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();" [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Save"></a>OpenLayers.<span class=HB> </span>Strategy.Save</h1><div class=CBody><p>A strategy that commits newly created or modified features.   By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Save.save" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">save</a> before persisting changes.   By c [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Strategy.Save"></a>OpenLayers.<wbr>Strategy.Save</h1><div class=CBody><p>A strategy that commits newly created or modified features.   By default the strategy waits for a call to <a href="#OpenLayers.Strategy.Save.save" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">save</a> before persisting changes.   By configuring the str [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre>strategy.events.register(type, obj, listener);</pre></blockquote><ul><li><b>start</b> Triggered before saving</li><li><b>success</b> Triggered after a successful transaction</li><li><b>fail</b> Trigg [...]
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.EVENT_TYPES"></a>EVENT_TYPES</h3><div class=CBody><p>{Array(String)} Supported application event types.   Register a listener for a particular event with the following syntax:</p><blockquote><pre class="prettyprint">strategy.events.register(type, obj, listener);</pre></blockquote><ul><li><b>start</b> Triggered before saving</li><li><b>success</b> Triggered after a successful transaction</li>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Properties"></a>Properties</h3></div></div>
 
@@ -27,19 +27,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.OpenLayers.Strategy.Save"></a>OpenLayers.<span class=HB> </span>Strategy.Save</h3><div class=CBody><p>Create a new Save strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.OpenLayers.Strategy.Save"></a>OpenLayers.<wbr>Strategy.Save</h3><div class=CBody><p>Create a new Save strategy.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>options</td><td class=CDLDescription>{Object} Optional object whose properties will be set on the instance.</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.activate"></a>activate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote><p>Activate the strategy.   Register any listeners, do appropriate setup.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully activated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.deactivate"></a>deactivate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote><p>Deactivate the strategy.   Unregister any listeners, do appropriate tear-down.</p><h4 class=CHeading>Returns</h4><p>{Boolean} The strategy was successfully deactivated.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.triggerSave"></a>triggerSave</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>triggerSave: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Registered as a listener.   Ca [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.triggerSave"></a>triggerSave</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>triggerSave: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></b [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.save"></a>save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>save: function(</td><td class=PParameter nowrap>features</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tell the layer protocol to commit unsaved features.&n [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.save"></a>save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>save: function(</td><td class="PParameter  prettyprint " nowrap>features</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tell  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.onCommit"></a>onCommit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>onCommit: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called after protocol commit.</p><h4 clas [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Strategy.Save.onCommit"></a>onCommit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>onCommit: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
 </div><!--Content-->
 
@@ -47,15 +47,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([29, 30, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([27, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=CToolTip id="tt3"><div class=CFunction><block [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">activate: function()</td></tr></table></blockquote>Activate the strategy. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">deactivate: function()</td></tr></table></blockquote>Deactivate the strategy. </div></div><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Style-js.html b/doc/devdocs/files/OpenLayers/Style-js.html
index 28af44f..40b8919 100644
--- a/doc/devdocs/files/OpenLayers/Style-js.html
+++ b/doc/devdocs/files/OpenLayers/Style-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Style - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Style - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style"></a>OpenLayers.<span class=HB> </span>Style</h1><div class=CBody><p>This class represents a UserStyle obtained from a SLD, containing styling rules.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style" >OpenLayers.<span [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style"></a>OpenLayers.<wbr>Style</h1><div class=CBody><p>This class represents a UserStyle obtained from a SLD, containing styling rules.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style" >OpenLayers.<wbr>Style</a></td><td  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Properties"></a>Properties</h3></div></div>
 
@@ -39,35 +39,35 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style"></a>OpenLayers.<span class=HB> </span>Style</h3><div class=CBody><p>Creates a UserStyle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional hash of style properties that will be used as default style for this style object.  This style applies if no rule [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style"></a>OpenLayers.<wbr>Style</h3><div class=CBody><p>Creates a UserStyle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional hash of style properties that will be used as default style for this style object.  This style applies if no rules are specified.&n [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.createSymbolizer"></a>createSymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createSymbolizer: function(</td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>creates a style by applyin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.createSymbolizer"></a>createSymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createSymbolizer: function(</td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.applySymbolizer"></a>applySymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>applySymbolizer: function(</td><td class=PParameter nowrap>rule,</td></tr><tr><td></td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>feature</td><td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.applySymbolizer"></a>applySymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>applySymbolizer: function(</td><td class="PParameter  prettyprint " nowrap>rule,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.createLiterals"></a>createLiterals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createLiterals: function(</td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>feature</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.createLiterals"></a>createLiterals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createLiterals: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>feature</td><td class="PA [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.findPropertyStyles"></a>findPropertyStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>findPropertyStyles: function()</td></tr></table></blockquote><p>Looks into all rules for this style and the defaultStyle to collect all the style hash property names containing ${...} strings that have to be replaced using the createLiteral method before returning [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.findPropertyStyles"></a>findPropertyStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">findPropertyStyles: function()</td></tr></table></blockquote><p>Looks into all rules for this style and the defaultStyle to collect all the style hash property names containing ${...} strings that have to be replaced using the createLiteral m [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.addPropertyStyles"></a>addPropertyStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addPropertyStyles: function(</td><td class=PParameter nowrap>propertyStyles,</td></tr><tr><td></td><td class=PParameter nowrap>symbolizer</td><td class=PAfterParameters nowrap>)</td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.addPropertyStyles"></a>addPropertyStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addPropertyStyles: function(</td><td class="PParameter  prettyprint " nowrap>propertyStyles,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>symboli [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.addRules"></a>addRules</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addRules: function(</td><td class=PParameter nowrap>rules</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds rules to this style.</p><h4 class=CHeading>Para [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.addRules"></a>addRules</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addRules: function(</td><td class="PParameter  prettyprint " nowrap>rules</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.setDefaultStyle"></a>setDefaultStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>setDefaultStyle: function(</td><td class=PParameter nowrap>style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the default style for this [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.setDefaultStyle"></a>setDefaultStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>setDefaultStyle: function(</td><td class="PParameter  prettyprint " nowrap>style</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.getSymbolizerPrefix"></a>getSymbolizerPrefix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getSymbolizerPrefix: function(</td><td class=PParameter nowrap>geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the corr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.getSymbolizerPrefix"></a>getSymbolizerPrefix</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getSymbolizerPrefix: function(</td><td class="PParameter  prettyprint " nowrap>geometry</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style.OpenLayers.Style" class=LConstructor id=link25 onMouseOver="ShowTip(event, 'tt16', 'link25')" onMouseOut="HideTip('tt16')">OpenLayers.Style</a>} Clone of t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style.OpenLayers.Style" class=LConstructor id=link25 onMouseOver="ShowTip(event, 'tt16', 'link25')" onMouseOut="HideTip('tt16')">OpenLayers [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.createLiteral"></a>createLiteral</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Style.createLiteral = function(</td><td class=PParameter nowrap>value,</td></tr><tr><td></td><td class=PParameter nowrap>context,</td></tr><tr><td></td><td class=PParameter nowrap> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.createLiteral"></a>createLiteral</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Style.createLiteral = function(</td><td class="PParameter  prettyprint " nowrap>value,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>context,</ [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.Constants"></a>Constants</h3></div></div>
 
-<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style.SYMBOLIZER_PREFIXES"></a>OpenLayers.<span class=HB> </span>Style.<span class=HB> </span>SYMBOLIZER_PREFIXES</h3><div class=CBody><p>{Array} prefixes of the sld symbolizers.  These are the same as the main geometry types</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style.OpenLayers.Style.SYMBOLIZER_PREFIXES"></a>OpenLayers.<wbr>Style.<wbr>SYMBOLIZER_PREFIXES</h3><div class=CBody><p>{Array} prefixes of the sld symbolizers.  These are the same as the main geometry types</p></div></div></div>
 
 </div><!--Content-->
 
@@ -75,15 +75,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an SLD Rule, as being used for rule-based SLD styling.</div></div><div class=CToolTip id="tt3"><div class=CProperty>{Object} hash of style properties to use as default for merging rule-based style symbolizers onto. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cell [...]
+<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an SLD Rule, as being used for rule-based SLD styling.</div></div><div class=CToolTip id="tt3"><div class=CProperty>{Object} hash of style properties to use as default for merging rule-based style symbolizers onto. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cell [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Style2-js.html b/doc/devdocs/files/OpenLayers/Style2-js.html
index 8075055..70e7288 100644
--- a/doc/devdocs/files/OpenLayers/Style2-js.html
+++ b/doc/devdocs/files/OpenLayers/Style2-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Style2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Style2 - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=J [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style2"></a>OpenLayers.<span class=HB> </span>Style2</h1><div class=CBody><p>This class represents a collection of rules for rendering features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style2" >OpenLayers.<span class=HB> [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Style2"></a>OpenLayers.<wbr>Style2</h1><div class=CBody><p>This class represents a collection of rules for rendering features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Style2" >OpenLayers.<wbr>Style2</a></td><td class=SDe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.Properties"></a>Properties</h3></div></div>
 
@@ -31,13 +31,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.OpenLayers.Style2"></a>OpenLayers.<span class=HB> </span>Style2</h3><div class=CBody><p>Creates a style representing a collection of rendering rules.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the style.   Any documented prop [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.OpenLayers.Style2"></a>OpenLayers.<wbr>Style2</h3><div class=CBody><p>Creates a style representing a collection of rendering rules.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the style.   Any documented properties may be set  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style2.OpenLayers.Style2" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLayers.Style2</a>} Clone of t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Style2.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Clones this style.</p><h4 class=CHeading>Returns</h4><p>{<a href="#OpenLayers.Style2.OpenLayers.Style2" class=LConstructor id=link8 onMouseOver="ShowTip(event, 'tt5', 'link8')" onMouseOut="HideTip('tt5')">OpenLayers. [...]
 
 </div><!--Content-->
 
@@ -45,15 +45,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an SLD Rule, as being used for rule-based SLD styling.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory le [...]
+<div class=CToolTip id="tt1"><div class=CClass>Contains convenience functions for string manipulation.</div></div><div class=CToolTip id="tt2"><div class=CClass>This class represents an SLD Rule, as being used for rule-based SLD styling.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular re [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/StyleMap-js.html b/doc/devdocs/files/OpenLayers/StyleMap-js.html
index b18e056..fa7096b 100644
--- a/doc/devdocs/files/OpenLayers/StyleMap-js.html
+++ b/doc/devdocs/files/OpenLayers/StyleMap-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.StyleMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.StyleMap - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.StyleMap"></a>OpenLayers.<span class=HB> </span>StyleMap</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.StyleMap" >OpenLayers.<span class=HB> </span>StyleMap</a></td><td class=SDescription></td></tr><tr class= [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.StyleMap"></a>OpenLayers.<wbr>StyleMap</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.StyleMap" >OpenLayers.<wbr>StyleMap</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.Properties"></a>Properties</h3></div></div>
 
@@ -21,15 +21,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.OpenLayers.StyleMap"></a>OpenLayers.<span class=HB> </span>StyleMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional.  Either a style hash, or a style object, or a hash of style objects (style hashes) keyed by rendering intent.  If just one st [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.OpenLayers.StyleMap"></a>OpenLayers.<wbr>StyleMap</h3><div class=CBody><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>{Object} Optional.  Either a style hash, or a style object, or a hash of style objects (style hashes) keyed by rendering intent.  If just one style hash or style  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.createSymbolizer"></a>createSymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>createSymbolizer: function(</td><td class=PParameter nowrap>feature,</td></tr><tr><td></td><td class=PParameter nowrap>intent</td><td class=PAfterParameters nowrap>)</td></tr></table [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.createSymbolizer"></a>createSymbolizer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>createSymbolizer: function(</td><td class="PParameter  prettyprint " nowrap>feature,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>intent</td><td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.addUniqueValueRules"></a>addUniqueValueRules</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addUniqueValueRules: function(</td><td class=PParameter nowrap>renderIntent,</td></tr><tr><td></td><td class=PParameter nowrap>property,</td></tr><tr><td></td><td class=PParame [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.StyleMap.addUniqueValueRules"></a>addUniqueValueRules</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addUniqueValueRules: function(</td><td class="PParameter  prettyprint " nowrap>renderIntent,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
 </div><!--Content-->
 
@@ -37,15 +37,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This class represents a UserStyle obtained from a SLD, containing styling rules.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 c [...]
+<div class=CToolTip id="tt1"><div class=CClass>This class represents a UserStyle obtained from a SLD, containing styling rules.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Symbolizer-js.html b/doc/devdocs/files/OpenLayers/Symbolizer-js.html
index 464403e..f9575bc 100644
--- a/doc/devdocs/files/OpenLayers/Symbolizer-js.html
+++ b/doc/devdocs/files/OpenLayers/Symbolizer-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script langua [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer"></a>OpenLayers.<span class=HB> </span>Symbolizer</h1><div class=CBody><p>Base class representing a symbolizer used for feature rendering.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer" >OpenLayers.<span  [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer"></a>OpenLayers.<wbr>Symbolizer</h1><div class=CBody><p>Base class representing a symbolizer used for feature rendering.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer" >OpenLayers.<wbr>Symbolizer</a></td> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Properties"></a>Properties</h3></div></div>
 
@@ -19,11 +19,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.OpenLayers.Symbolizer"></a>OpenLayers.<span class=HB> </span>Symbolizer</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolize [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.OpenLayers.Symbolizer"></a>OpenLayers.<wbr>Symbolizer</h3><div class=CBody><p>Instances of this class are not useful.   See one of the subclasses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any docu [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote><p>Create a copy of this symbolizer.</p><p>Returns a symbolizer of the same type with the same properties.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote><p>Create a copy of this symbolizer.</p><p>Returns a symbolizer of the same type with the same properties.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -31,15 +31,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clone: function()</td></tr></table></blockquote>Create a copy of this symbolizer.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clone: function()</td></tr></table></blockquote>Create a copy of this symbolizer.</div></div><!--END_ND_TOOLTIPS-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Symbolizer/Line-js.html b/doc/devdocs/files/OpenLayers/Symbolizer/Line-js.html
index c50b494..08a451f 100644
--- a/doc/devdocs/files/OpenLayers/Symbolizer/Line-js.html
+++ b/doc/devdocs/files/OpenLayers/Symbolizer/Line-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Line - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Line - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Line"></a>OpenLayers.<span class=HB> </span>Symbolizer.Line</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Line" >OpenLayers.<span class=H [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Line"></a>OpenLayers.<wbr>Symbolizer.Line</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Line" >OpenLayers.<wbr>Symbolizer.Line</a></td><t [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeDashstyle"></a>strokeDashstyle</h3><div class=CBody><p>{String} Stroke dash style according to the SLD spec.  Note that the OpenLayers values for strokeDashstyle (“dot”, “dash”, “dashdot”, “longdash”, “longdashdot”, or “solid”) will not work in SLD, but most SLD patterns will render correctly in OpenLayers.</p></d [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.strokeDashstyle"></a>strokeDashstyle</h3><div class=CBody><p>{String} Stroke dash style according to the SLD spec.  Note that the OpenLayers values for strokeDashstyle (“dot”, “dash”, “dashdot”, “longdash”, “longdashdot”, or “solid”) will not work in SLD, but most SLD patterns will render correctly in OpenLayers.</p><p> [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.OpenLayers.Symbolizer.Line"></a>OpenLayers.<span class=HB> </span>Symbolizer.Line</h3><div class=CBody><p>Create a symbolizer for rendering lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any docu [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Line.OpenLayers.Symbolizer.Line"></a>OpenLayers.<wbr>Symbolizer.Line</h3><div class=CBody><p>Create a symbolizer for rendering lines.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documented symbolizer  [...]
 
 </div><!--Content-->
 
@@ -35,10 +35,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Symbolizer/Point-js.html b/doc/devdocs/files/OpenLayers/Symbolizer/Point-js.html
index b6a2d44..f8e2a66 100644
--- a/doc/devdocs/files/OpenLayers/Symbolizer/Point-js.html
+++ b/doc/devdocs/files/OpenLayers/Symbolizer/Point-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Point - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint( [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,45 +11,45 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Point"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Point</h1><div class=CBody><p>A symbolizer used to render point features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Point [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Point"></a>OpenLayers.<wbr>Symbolizer.<wbr>Point</h1><div class=CBody><p>A symbolizer used to render point features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Point" >OpenLayers.<wbr>Symbolizer.<wbr>P [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeDashstyle"></a>strokeDashstyle</h3><div class=CBody><p>{String} Stroke dash style according to the SLD spec.  Note that the OpenLayers values for strokeDashstyle (“dot”, “dash”, “dashdot”, “longdash”, “longdashdot”, or “solid”) will not work in SLD, but most SLD patterns will render correctly in OpenLayers.</p></ [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.strokeDashstyle"></a>strokeDashstyle</h3><div class=CBody><p>{String} Stroke dash style according to the SLD spec.  Note that the OpenLayers values for strokeDashstyle (“dot”, “dash”, “dashdot”, “longdash”, “longdashdot”, or “solid”) will not work in SLD, but most SLD patterns will render correctly in OpenLayers.</p><p [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.pointRadius"></a>pointRadius</h3><div class=CBody><p>{Number} Pixel point radius.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.pointRadius"></a>pointRadius</h3><div class=CBody><p>{Number} Pixel point radius.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.externalGraphic"></a>externalGraphic</h3><div class=CBody><p>{String} Url to an external graphic that will be used for rendering points.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.externalGraphic"></a>externalGraphic</h3><div class=CBody><p>{String} Url to an external graphic that will be used for rendering points.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicWidth"></a>graphicWidth</h3><div class=CBody><p>{Number} Pixel width for sizing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicWidth"></a>graphicWidth</h3><div class=CBody><p>{Number} Pixel width for sizing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicHeight"></a>graphicHeight</h3><div class=CBody><p>{Number} Pixel height for sizing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicHeight"></a>graphicHeight</h3><div class=CBody><p>{Number} Pixel height for sizing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicOpacity"></a>graphicOpacity</h3><div class=CBody><p>{Number} Opacity (0-1) for an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicOpacity"></a>graphicOpacity</h3><div class=CBody><p>{Number} Opacity (0-1) for an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicXOffset"></a>graphicXOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive x axis for displacing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicXOffset"></a>graphicXOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive x axis for displacing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicYOffset"></a>graphicYOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive y axis for displacing an external graphic.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicYOffset"></a>graphicYOffset</h3><div class=CBody><p>{Number} Pixel offset along the positive y axis for displacing an external graphic.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.rotation"></a>rotation</h3><div class=CBody><p>{Number} The rotation of a graphic in the clockwise direction about its center point (or any point off center as specified by <a href="#OpenLayers.Symbolizer.Point.graphicXOffset" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">graphicXOffset</a> and <a href="#OpenLayers.Symbolizer.Point.graphicYOff [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.rotation"></a>rotation</h3><div class=CBody><p>{Number} The rotation of a graphic in the clockwise direction about its center point (or any point off center as specified by <a href="#OpenLayers.Symbolizer.Point.graphicXOffset" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">graphicXOffset</a> and <a href="#OpenLayers.Symbolizer.Point.graphicYOff [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicName"></a>graphicName</h3><div class=CBody><p>{String} Named graphic to use when rendering points.   Supported values include “circle”, “square”, “star”, “x”, “cross”, and “triangle”.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.graphicName"></a>graphicName</h3><div class=CBody><p>{String} Named graphic to use when rendering points.   Supported values include “circle”, “square”, “star”, “x”, “cross”, and “triangle”.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.OpenLayers.Symbolizer.Point"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Point</h3><div class=CBody><p>Create a symbolizer for rendering points.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Point.OpenLayers.Symbolizer.Point"></a>OpenLayers.<wbr>Symbolizer.<wbr>Point</h3><div class=CBody><p>Create a symbolizer for rendering points.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documented sy [...]
 
 </div><!--Content-->
 
@@ -57,10 +57,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Symbolizer/Polygon-js.html b/doc/devdocs/files/OpenLayers/Symbolizer/Polygon-js.html
index 243f59b..febcb5c 100644
--- a/doc/devdocs/files/OpenLayers/Symbolizer/Polygon-js.html
+++ b/doc/devdocs/files/OpenLayers/Symbolizer/Polygon-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Polygon - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrin [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,27 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Polygon</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Po [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<wbr>Symbolizer.<wbr>Polygon</h1><div class=CBody><p>A symbolizer used to render line features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Polygon" >OpenLayers.<wbr>Symbolizer.< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeColor"></a>strokeColor</h3><div class=CBody><p>{String} Color for line stroke.   This is a RGB hex value (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeOpacity"></a>strokeOpacity</h3><div class=CBody><p>{Number} Stroke opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeWidth"></a>strokeWidth</h3><div class=CBody><p>{Number} Pixel stroke width.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeLinecap"></a>strokeLinecap</h3><div class=CBody><p>{String} Stroke cap type (“butt”, “round”, or “square”).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeDashstyle"></a>strokeDashstyle</h3><div class=CBody><p>{String} Stroke dash style according to the SLD spec.  Note that the OpenLayers values for strokeDashstyle (“dot”, “dash”, “dashdot”, “longdash”, “longdashdot”, or “solid”) will not work in SLD, but most SLD patterns will render correctly in OpenLayers.</p> [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.strokeDashstyle"></a>strokeDashstyle</h3><div class=CBody><p>{String} Stroke dash style according to the SLD spec.  Note that the OpenLayers values for strokeDashstyle (“dot”, “dash”, “dashdot”, “longdash”, “longdashdot”, or “solid”) will not work in SLD, but most SLD patterns will render correctly in OpenLayers.</p> [...]
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillColor"></a>fillColor</h3><div class=CBody><p>{String} RGB hex fill color (e.g.  “#ff0000” for red).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.fillOpacity"></a>fillOpacity</h3><div class=CBody><p>{Number} Fill opacity (0-1).</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Polygon</h3><div class=CBody><p>Create a symbolizer for rendering polygons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Polygon.OpenLayers.Symbolizer.Polygon"></a>OpenLayers.<wbr>Symbolizer.<wbr>Polygon</h3><div class=CBody><p>Create a symbolizer for rendering polygons.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any docum [...]
 
 </div><!--Content-->
 
@@ -39,10 +39,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Symbolizer/Raster-js.html b/doc/devdocs/files/OpenLayers/Symbolizer/Raster-js.html
index bb910b1..142c303 100644
--- a/doc/devdocs/files/OpenLayers/Symbolizer/Raster-js.html
+++ b/doc/devdocs/files/OpenLayers/Symbolizer/Raster-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Raster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Raster - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,11 +11,11 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Raster"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Raster</h1><div class=CBody><p>A symbolizer used to render raster images.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Rast [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Raster"></a>OpenLayers.<wbr>Symbolizer.<wbr>Raster</h1><div class=CBody><p>A symbolizer used to render raster images.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Raster" >OpenLayers.<wbr>Symbolizer.<wbr [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Raster.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster"></a>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Raster</h3><div class=CBody><p>Create a symbolizer for rendering rasters.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on  [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster"></a>OpenLayers.<wbr>Symbolizer.<wbr>Raster</h3><div class=CBody><p>Create a symbolizer for rendering rasters.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documente [...]
 
 </div><!--Content-->
 
@@ -23,10 +23,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Symbolizer/Text-js.html b/doc/devdocs/files/OpenLayers/Symbolizer/Text-js.html
index 4020df9..a057445 100644
--- a/doc/devdocs/files/OpenLayers/Symbolizer/Text-js.html
+++ b/doc/devdocs/files/OpenLayers/Symbolizer/Text-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Symbolizer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Symbolizer.Text - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint() [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,23 +11,23 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Text"></a>OpenLayers.<span class=HB> </span>Symbolizer.Text</h1><div class=CBody><p>A symbolizer used to render text labels for features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Text" >OpenLayers.<s [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Symbolizer.Text"></a>OpenLayers.<wbr>Symbolizer.Text</h1><div class=CBody><p>A symbolizer used to render text labels for features.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Symbolizer.Text" >OpenLayers.<wbr>Symbolizer.Text [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.Properties"></a>Properties</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.label"></a>label</h3><div class=CBody><p>{String} The text for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.label"></a>label</h3><div class=CBody><p>{String} The text for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontFamily"></a>fontFamily</h3><div class=CBody><p>{String} The font family for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontFamily"></a>fontFamily</h3><div class=CBody><p>{String} The font family for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontSize"></a>fontSize</h3><div class=CBody><p>{String} The font size for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontSize"></a>fontSize</h3><div class=CBody><p>{String} The font size for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontWeight"></a>fontWeight</h3><div class=CBody><p>{String} The font weight for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontWeight"></a>fontWeight</h3><div class=CBody><p>{String} The font weight for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontStyle"></a>fontStyle</h3><div class=CBody><p>{String} The font style for the label.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.fontStyle"></a>fontStyle</h3><div class=CBody><p>{String} The font style for the label.</p><p>No default set here.   Use OpenLayers.Renderer.defaultRenderer for defaults.</p></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.OpenLayers.Symbolizer.Text"></a>OpenLayers.<span class=HB> </span>Symbolizer.Text</h3><div class=CBody><p>Create a symbolizer for rendering text labels.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   An [...]
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Symbolizer.Text.OpenLayers.Symbolizer.Text"></a>OpenLayers.<wbr>Symbolizer.Text</h3><div class=CBody><p>Create a symbolizer for rendering text labels.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>config</td><td class=CDLDescription>{Object} An object containing properties to be set on the symbolizer.   Any documented symbo [...]
 
 </div><!--Content-->
 
@@ -35,10 +35,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([32, 33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([28, 30], 32);// --></script></div><!--Menu-->
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Tile-js.html b/doc/devdocs/files/OpenLayers/Tile-js.html
index 59a0bb1..e76a556 100644
--- a/doc/devdocs/files/OpenLayers/Tile-js.html
+++ b/doc/devdocs/files/OpenLayers/Tile-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Jav [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -37,25 +37,25 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.unload"></a>unload</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>unload: function()</td></tr></table></blockquote><p>Call immediately before destroying if you are listening to tile events, so that counters are properly handled if tile is still loading at destroy-time.  Will only fire an event if the tile is still loading.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.unload"></a>unload</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">unload: function()</td></tr></table></blockquote><p>Call immediately before destroying if you are listening to tile events, so that counters are properly handled if tile is still loading at destroy-time.  Will only fire an event if the tile is still loading.</p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy:function()</td></tr></table></blockquote><p>Nullify references to prevent circular references and memory leaks.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy:function()</td></tr></table></blockquote><p>Nullify references to prevent circular references and memory leaks.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 ce [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Clear whatever is currently in the tile, then return whether or not it should actually be re-drawn.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the tile should actually be drawn.  Note that this is not really the best wa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Clear whatever is currently in the tile, then return whether or not it should actually be re-drawn.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Whether or not the tile should actually be drawn.  Note that this is  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>moveTo: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>position,</td></tr><tr><td></td><td class=PParameter nowrap>redraw</td><td class=PAfterParameters [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.moveTo"></a>moveTo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>moveTo: function (</td><td class="PParameter  prettyprint " nowrap>bounds,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>position,</td></tr><tr><td></td><td class="PPara [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear the tile of any bounds/position-related data so that it can be reused in a new location.  To be implemented by subclasses.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear the tile of any bounds/position-related data so that it can be reused in a new location.  To be implemented by subclasses.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.getBoundsFromBaseLayer"></a>getBoundsFromBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>getBoundsFromBaseLayer: function(</td><td class=PParameter nowrap>position</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Take the [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.getBoundsFromBaseLayer"></a>getBoundsFromBaseLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>getBoundsFromBaseLayer: function(</td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.showTile"></a>showTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>showTile: function()</td></tr></table></blockquote><p>Show the tile only if it should be drawn.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.showTile"></a>showTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">showTile: function()</td></tr></table></blockquote><p>Show the tile only if it should be drawn.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Show the tile.   To be implemented by subclasses.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p>Show the tile.   To be implemented by subclasses.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>hide: function()</td></tr></table></blockquote><p>Hide the tile.   To be implemented by subclasses.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">hide: function()</td></tr></table></blockquote><p>Hide the tile.   To be implemented by subclasses.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -63,15 +63,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>unload: function( [...]
+<div class=CToolTip id="tt1"><div class=CClass>Instances of this class represent bounding boxes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Instances of this class represent a width/height pair</div></div><div class=CToolTip id="tt3"><div class=CClass>This class represents a screen coordinate, in x and y coordinates</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettypr [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Tile/Image-js.html b/doc/devdocs/files/OpenLayers/Tile/Image-js.html
index 27d8738..7bb06ff 100644
--- a/doc/devdocs/files/OpenLayers/Tile/Image-js.html
+++ b/doc/devdocs/files/OpenLayers/Tile/Image-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile.Image - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><s [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image"></a>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image</h1><div class=CBody><p>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.Image" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">OpenLayers.Til [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image"></a>OpenLayers.<wbr>Tile.<wbr>Image</h1><div class=CBody><p>Instances of OpenLayers.Tile.Image are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.Image" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">OpenLayers.Tile.Image</a> constructor.</p><h4 clas [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.Properties"></a>Properties</h3></div></div>
 
@@ -25,37 +25,39 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.isBackBuffer"></a>isBackBuffer</h3><div class=CBody><p>{Boolean} Is this tile a back buffer tile?</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.lastRatio"></a>lastRatio</h3><div class=CBody><p>{Float} Used in transition code only.   This is the previous ratio of the back buffer tile resolution to the map resolution.   Compared with the current ratio to determine if zooming occurred.</p></div></div></div>
-
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.isFirstDraw"></a>isFirstDraw</h3><div class=CBody><p>{Boolean} Is this the first time the tile is being drawn?  This is used to force resetBackBuffer to synchronize the backBufferTile with the foreground tile the first time the foreground tile loads so that if the user zooms before the layer has fully loaded, the backBufferTile for tiles that have been loaded can be used.</p></div></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.backBufferTile"></a>backBufferTile</h3><div class=CBody><p>{<a href="../Tile-js.html#OpenLayers.Tile" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">OpenLayers.Tile</a>} A clone of the tile used to create transition effects when the tile is moved or changes resolution.</p></div></div></div>
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.backBufferTile"></a>backBufferTile</h3><div class=CBody><p>{<a href="../Tile-js.html#OpenLayers.Tile" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt1', 'link17')" onMouseOut="HideTip('tt1')">OpenLayers.Tile</a>} A clone of the tile used to create transition effects when the tile is moved or changes resolution.</p></div></div></div>
+
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.maxGetUrlLength"></a>maxGetUrlLength</h3><div class=CBody><p>{Number} If set, requests that would result in GET urls with more characters than the number provided will be made using form-encoded HTTP POST.  It is good practice to avoid urls that are longer than 2048 characters.</p><h4 class=CHeading>Caution</h4><p>Older versions of Gecko based browsers (e.g.  Firefox < 3.5) and Opera &lt [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>clone: function (</td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CH [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacin [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw: function()</td></tr></table></blockquote><p>Check that a tile should be drawn, and draw it.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Always returns true.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw: function()</td></tr></table></blockquote><p>Check that a tile should be drawn, and draw it.</p><h4 class=CHeading>Returns</h4><p>{Boolean} Always returns true.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.resetBackBuffer"></a>resetBackBuffer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">resetBackBuffer: function()</td></tr></table></blockquote><p>Triggered by two different events, layer loadend, and tile loadend.  In any of these cases, we check to see if we can hide the backBufferTile yet and update its parameters to ma [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.resetBackBuffer"></a>resetBackBuffer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>resetBackBuffer: function()</td></tr></table></blockquote><p>Triggered by two different events, layer loadend, and tile loadend.  In any of these cases, we check to see if we can hide the backBufferTile yet and update its parameters to match the foreground til [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.renderTile"></a>renderTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">renderTile: function()</td></tr></table></blockquote><p>Internal function to actually initialize the image tile, position it correctly, and set its url.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.renderTile"></a>renderTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>renderTile: function()</td></tr></table></blockquote><p>Internal function to actually initialize the image tile, position it correctly, and set its url.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.positionImage"></a>positionImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">positionImage: function()</td></tr></table></blockquote><p>Using the properties currenty set on the layer, position the tile correctly.  This method is used both by the async and non-async versions of the Tile.Image code.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.positionImage"></a>positionImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>positionImage: function()</td></tr></table></blockquote><p>Using the properties currenty set on the layer, position the tile correctly.  This method is used both by the async and non-async versions of the Tile.Image code.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear the tile of any bounds/position-related data so that it can be reused in a new location.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear the tile of any bounds/position-related data so that it can be reused in a new location.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.initImgDiv"></a>initImgDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initImgDiv: function()</td></tr></table></blockquote><p>Creates the imgDiv property on the tile.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.initImgDiv"></a>initImgDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initImgDiv: function()</td></tr></table></blockquote><p>Creates the imgDiv property on the tile.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.removeImgDiv"></a>removeImgDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">removeImgDiv: function()</td></tr></table></blockquote><p>Removes the imgDiv from the DOM and stops listening to events on it.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.checkImgURL"></a>checkImgURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>checkImgURL: function ()</td></tr></table></blockquote><p>Make sure that the image that just loaded is the one this tile is meant to display, since panning/zooming might have changed the tile’s URL in the meantime.  If the tile URL did change before the image lo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.checkImgURL"></a>checkImgURL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">checkImgURL: function ()</td></tr></table></blockquote><p>Make sure that the image that just loaded is the one this tile is meant to display, since panning/zooming might have changed the tile’s URL in the meantime.  If the tile URL did chan [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.startTransition"></a>startTransition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>startTransition: function()</td></tr></table></blockquote><p>This method is invoked on tiles that are backBuffers for tiles in the grid.   The grid tile is about to be cleared and a new tile source loaded.   This is where the transition effect needs to be [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.startTransition"></a>startTransition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">startTransition: function()</td></tr></table></blockquote><p>This method is invoked on tiles that are backBuffers for tiles in the grid.   The grid tile is about to be cleared and a new tile source loaded.   This is where the transit [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>show: function()</td></tr></table></blockquote><p>Show the tile by showing its frame.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.show"></a>show</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">show: function()</td></tr></table></blockquote><p>Show the tile by showing its frame.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>hide: function()</td></tr></table></blockquote><p>Hide the tile by hiding its frame.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.hide"></a>hide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">hide: function()</td></tr></table></blockquote><p>Hide the tile by hiding its frame.</p></div></div></div>
 
 </div><!--Content-->
 
@@ -63,15 +65,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>This is a class designed to designate a single tile, however it is explicitly designed to do relatively little. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote>< [...]
+<div class=CToolTip id="tt1"><div class=CClass>This is a class designed to designate a single tile, however it is explicitly designed to do relatively little. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=C [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Tile/Image/IFrame-js.html b/doc/devdocs/files/OpenLayers/Tile/Image/IFrame-js.html
index bf0a1c5..ba2e4c8 100644
--- a/doc/devdocs/files/OpenLayers/Tile/Image/IFrame-js.html
+++ b/doc/devdocs/files/OpenLayers/Tile/Image/IFrame-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile.Image.IFrame - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/Image/IFrame.js - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/prettify.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></sc [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,33 +11,27 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.Image.IFrame"></a>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image.<span class=HB> </span>IFrame</h1><div class=CBody><p>Instances of OpenLayers.Tile.Image.IFrame are used to manage the image tiles used by Layer.WMS.Post loaded via HTTP-POST-protocol.  Create a new image tile with the <a href="#OpenLayers.Tile.Image.IFrame.OpenLayers.Tile.Image.IFrame" clas [...]
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="IFrame.js"></a>IFrame.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#IFrame.js" >IFrame.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescriptio [...]
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.Properties"></a>Properties</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
 
-<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.layerAlphaHack"></a>layerAlphaHack</h3><div class=CBody><p>{Boolean} Always false for an instance.</p></div></div></div>
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame"></a>OpenLayers.<wbr>Tile.<wbr>Image.<wbr>IFrame</h3><div class=CBody><p>Mixin for tiles that use form-encoded POST requests to get images from remote services.  Images will be loaded using HTTP-POST into an IFrame.</p><p>This mixin will be applied to <a href="../Image-js.html#OpenLayers.Tile.Image" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt [...]
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.Constructor"></a>Constructor</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Properties"></a>Properties</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.OpenLayers.Tile.Image.IFrame"></a>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image.<span class=HB> </span>IFrame</h3><div class=CBody><p>Constructor for a new <a href="#OpenLayers.Tile.Image.IFrame.OpenLayers.Tile.Image.IFrame" class=LConstructor id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">OpenLayers.Tile.Image.IFrame</a> instance.< [...]
+<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="useIFrame"></a>useIFrame</h3><div class=CBody><p>{Boolean} true if we are currently using an IFrame to render POST responses, false if we are using an img element to render GET responses.</p></div></div></div>
 
-<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.Functions"></a>Functions</h3></div></div>
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Removes the iframe from DOM (avoids back-button problems).</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Removes the iframe from DOM (avoids back-button problems).</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="renderTile"></a>renderTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">renderTile: function()</td></tr></table></blockquote></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.clone"></a>clone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>clone: function (</td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cel [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="initImgDiv"></a>initImgDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">initImgDiv: function()</td></tr></table></blockquote><p>Creates the imgDiv property on the tile.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.renderTile"></a>renderTile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>renderTile: function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="createIFrame"></a>createIFrame</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createIFrame: function()</td></tr></table></blockquote><p>Create the IFrame which shows the image.</p><h4 class=CHeading>Returns</h4><p>{DOMElement} Iframe</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.initImgDiv"></a>initImgDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>initImgDiv: function()</td></tr></table></blockquote><p>Creates the imgDiv property on the tile.</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.createImgDiv"></a>createImgDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createImgDiv: function()</td></tr></table></blockquote><p>Creates a div with iframe.and eventPane</p><h4 class=CHeading>Returns</h4><p>{DOMElement}</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.createIFrame"></a>createIFrame</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createIFrame: function()</td></tr></table></blockquote><p>Create the IFrame which shows the image.</p><h4 class=CHeading>Returns</h4><p>{DOMElement} Iframe</p></div></div></div>
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.Image.IFrame.createRequestForm"></a>createRequestForm</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>createRequestForm: function()</td></tr></table></blockquote><p>Create the html <form> element with width, height, bbox and all parameters specified in the layer params.</p><h4 class=CHeading>Returns</h4><p>{DOMElement} The form element which sends  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="createRequestForm"></a>createRequestForm</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">createRequestForm: function()</td></tr></table></blockquote><p>Create the html <form> element with width, height, bbox and all parameters specified in the layer params.</p><h4 class=CHeading>Returns</h4><p>{DOMElement} The form element which sends the HTT [...]
 
 </div><!--Content-->
 
@@ -45,15 +39,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMe [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>Constructor for a new OpenLayers.Tile.Image.IFrame instance.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and memory leaks</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 cla [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote>Removes the iframe from DOM (avoids back-button problems).</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">renderTile: function()</td></tr></table></blockquote></div></div><div  [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Tile/WFS-js.html b/doc/devdocs/files/OpenLayers/Tile/WFS-js.html
index 1d6f161..23df79a 100644
--- a/doc/devdocs/files/OpenLayers/Tile/WFS-js.html
+++ b/doc/devdocs/files/OpenLayers/Tile/WFS-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tile.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tile.WFS - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><scr [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.WFS"></a>OpenLayers.<span class=HB> </span>Tile.WFS</h1><div class=CBody><p>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.WFS" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Tile.WFS</a> constructor.</p><h4 c [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tile.WFS"></a>OpenLayers.<wbr>Tile.WFS</h1><div class=CBody><p>Instances of OpenLayers.Tile.WFS are used to manage the image tiles used by various layers.   Create a new image tile with the <a href="#OpenLayers.Tile.WFS" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">OpenLayers.Tile.WFS</a> constructor.</p><h4 class=CHeading>Inhe [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.Properties"></a>Properties</h3></div></div>
 
@@ -23,19 +23,19 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote><p>nullify references to prevent circular references and memory leaks</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>clear: function()</td></tr></table></blockquote><p>Clear the tile of any bounds/position-related data so that it can be reused in a new location.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">clear: function()</td></tr></table></blockquote><p>Clear the tile of any bounds/position-related data so that it can be reused in a new location.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>draw:function()</td></tr></table></blockquote><p>Check that a tile should be drawn, and load features for it.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.draw"></a>draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">draw:function()</td></tr></table></blockquote><p>Check that a tile should be drawn, and load features for it.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.loadFeaturesForRegion"></a>loadFeaturesForRegion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>loadFeaturesForRegion:function(</td><td class=PParameter nowrap>success,</td></tr><tr><td></td><td class=PParameter nowrap>failure</td><td class=PAfterParameters nowrap>)</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.loadFeaturesForRegion"></a>loadFeaturesForRegion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>loadFeaturesForRegion:function(</td><td class="PParameter  prettyprint " nowrap>success,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.requestSuccess"></a>requestSuccess</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>requestSuccess:function(</td><td class=PParameter nowrap>request</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called on return from request  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.requestSuccess"></a>requestSuccess</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>requestSuccess:function(</td><td class="PParameter  prettyprint " nowrap>request</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.addResults"></a>addResults</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>addResults: function(</td><td class=PParameter nowrap>results</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Construct new feature via layer featureCl [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.addResults"></a>addResults</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>addResults: function(</td><td class="PParameter  prettyprint " nowrap>results</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.destroyAllFeatures"></a>destroyAllFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroyAllFeatures: function()</td></tr></table></blockquote><p>Iterate through and call destroy() on each feature, removing it from the local array</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tile.WFS.destroyAllFeatures"></a>destroyAllFeatures</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroyAllFeatures: function()</td></tr></table></blockquote><p>Iterate through and call destroy() on each feature, removing it from the local array</p></div></div></div>
 
 </div><!--Content-->
 
@@ -43,15 +43,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div clas [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MG [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([31, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([29, 30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Standard-compliant (W3C) cross-browser implementation of the XMLHttpRequest object. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>destroy: function()</td></tr></table></blockquote>nullify references to prevent circular references and m [...]
+<div class=CToolTip id="tt1"><div class=CClass>Features are combinations of geography and attributes. </div></div><div class=CToolTip id="tt2"><div class=CClass>Standard-compliant (W3C) cross-browser implementation of the XMLHttpRequest object. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">destroy: function()</td></tr></table></blockquote>nullify references to prevent cir [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Tween-js.html b/doc/devdocs/files/OpenLayers/Tween-js.html
index 6958528..d37c840 100644
--- a/doc/devdocs/files/OpenLayers/Tween-js.html
+++ b/doc/devdocs/files/OpenLayers/Tween-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>OpenLayers.Tween - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenLayers.Tween - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=Ja [...]
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tween"></a>OpenLayers.<span class=HB> </span>Tween</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Tween" >OpenLayers.<span class=HB> </span>Tween</a></td><td class=SDescription></td></tr><tr class="SGroup SInd [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OpenLayers.Tween"></a>OpenLayers.<wbr>Tween</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OpenLayers.Tween" >OpenLayers.<wbr>Tween</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Ope [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.Constants"></a>Constants</h3></div></div>
 
@@ -37,47 +37,47 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.Constructor"></a>Constructor</h3></div></div>
 
-<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.OpenLayers.Tween"></a>OpenLayers.<span class=HB> </span>Tween</h3><div class=CBody><p>Creates a Tween.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>easing</td><td class=CDLDescription>{<OpenLayers.Easing>(Function)} easing function method to use</td></tr></table></div></div></div>
+<div class="CConstructor"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.OpenLayers.Tween"></a>OpenLayers.<wbr>Tween</h3><div class=CBody><p>Creates a Tween.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>easing</td><td class=CDLDescription>{<OpenLayers.Easing>(Function)} easing function method to use</td></tr></table></div></div></div>
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.start"></a>start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>start: function(</td><td class=PParameter nowrap>begin,</td></tr><tr><td></td><td class=PParameter nowrap>finish,</td></tr><tr><td></td><td class=PParameter nowrap>duration,</td></tr><tr><td></td><td class=P [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.start"></a>start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>start: function(</td><td class="PParameter  prettyprint " nowrap>begin,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>finish,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>stop: function()</td></tr></table></blockquote><p>Stops the Tween, and calls the done callback Doesn’t do anything if animation is already finished</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.stop"></a>stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">stop: function()</td></tr></table></blockquote><p>Stops the Tween, and calls the done callback Doesn’t do anything if animation is already finished</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.play"></a>play</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>play: function()</td></tr></table></blockquote><p>Calls the appropriate easing method</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Tween.play"></a>play</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">play: function()</td></tr></table></blockquote><p>Calls the appropriate easing method</p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing"></a>OpenLayers.<span class=HB> </span>Easing</h2><div class=CBody><h4 class=CHeading>Credits</h4><p>Easing Equations by Robert Penner, <a href="http://www.robertpenner.com/easing/" class=LURL target=_top>http://www.robertpenner.com/easing/</a></p></div></div></div>
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing"></a>OpenLayers.<wbr>Easing</h2><div class=CBody><h4 class=CHeading>Credits</h4><p>Easing Equations by Robert Penner, <a href="http://www.robertpenner.com/easing/" class=LURL target=_top>http://www.robertpenner.com/easing/</a></p></div></div></div>
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Linear"></a>OpenLayers.<span class=HB> </span>Easing.<span class=HB> </span>Linear</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Easing.Linear.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SI [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Linear"></a>OpenLayers.<wbr>Easing.<wbr>Linear</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Easing.Linear.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a  [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.easeIn"></a>easeIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeIn: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PParam [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.easeIn"></a>easeIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeIn: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.easeOut"></a>easeOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeOut: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PPa [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.easeOut"></a>easeOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeOut: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.easeInOut"></a>easeInOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeInOut: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Linear.easeInOut"></a>easeInOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeInOut: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class=" [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Expo"></a>OpenLayers.<span class=HB> </span>Easing.Expo</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Easing.Expo.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEn [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Expo"></a>OpenLayers.<wbr>Easing.Expo</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Easing.Expo.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.easeIn"></a>easeIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeIn: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PParamet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.easeIn"></a>easeIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeIn: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.easeOut"></a>easeOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeOut: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PPara [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.easeOut"></a>easeOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeOut: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.easeInOut"></a>easeInOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeInOut: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Expo.easeInOut"></a>easeInOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeInOut: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PP [...]
 
-<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Quad"></a>OpenLayers.<span class=HB> </span>Easing.Quad</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Easing.Quad.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEn [...]
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="OpenLayers.Easing.Quad"></a>OpenLayers.<wbr>Easing.Quad</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#OpenLayers.Easing.Quad.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#Open [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.easeIn"></a>easeIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeIn: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PParamet [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.easeIn"></a>easeIn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeIn: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParameter  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.easeOut"></a>easeOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeOut: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PPara [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.easeOut"></a>easeOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeOut: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParamet [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.easeInOut"></a>easeInOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeInOut: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="OpenLayers.Easing.Quad.easeInOut"></a>easeInOut</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeInOut: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PP [...]
 
 </div><!--Content-->
 
@@ -85,15 +85,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>start: function(</td><td class=PParameter nowrap>begin,</td></tr><tr><td></td><td class=PParameter nowrap>finish,</td></tr><tr><td></td><td class=PParameter nowrap>duration,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></t [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>start: function(</td><td class="PParameter  prettyprint " nowrap>begin,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>finish,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>duration,</td></tr><tr><td></td><td class="PParame [...]
 
 
 
diff --git a/doc/devdocs/files/OpenLayers/Util-js.html b/doc/devdocs/files/OpenLayers/Util-js.html
index 3c9efd0..180d9d3 100644
--- a/doc/devdocs/files/OpenLayers/Util-js.html
+++ b/doc/devdocs/files/OpenLayers/Util-js.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Util - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Util - OpenLayers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,89 +11,83 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Util"></a>Util</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Util" >Util</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Util.Functions_and_Properties" >Functions and Properties</a>< [...]
+<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Util"></a>Util</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Util" >Util</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Util.Functions_and_Properties" >Functions and Properties</a>< [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Functions_and_Properties"></a>Functions and Properties</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getElement"></a>getElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.getElement = function()</td></tr></table></blockquote><p>This is the old $() from prototype</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getElement"></a>getElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getElement = function()</td></tr></table></blockquote><p>This is the old $() from prototype</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>e</td><td class=CDLDescription>{Str [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.isElement"></a>isElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.isElement = function(</td><td class=PParameter nowrap>o</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>A cross-browser implementation of “e insta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.isElement"></a>isElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.isElement = function(</td><td class="PParameter  prettyprint " nowrap>o</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.extend"></a>extend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.extend = function(</td><td class=PParameter nowrap>destination,</td></tr><tr><td></td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.isArray"></a>isArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.isArray = function(</td><td class="PParameter  prettyprint " nowrap>a</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tests  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.removeItem"></a>removeItem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.removeItem = function(</td><td class=PParameter nowrap>array,</td></tr><tr><td></td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.removeItem"></a>removeItem</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.removeItem = function(</td><td class="PParameter  prettyprint " nowrap>array,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>item</td><td class="PAfterParame [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.clearArray"></a>clearArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.clearArray = function(</td><td class=PParameter nowrap>array</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprecated</b>.  This function wi [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.clearArray"></a>clearArray</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.clearArray = function(</td><td class="PParameter  prettyprint " nowrap>array</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockqu [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.indexOf"></a>indexOf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.indexOf = function(</td><td class=PParameter nowrap>array,</td></tr><tr><td></td><td class=PParameter nowrap>obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquot [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.indexOf"></a>indexOf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.indexOf = function(</td><td class="PParameter  prettyprint " nowrap>array,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>obj</td><td class="PAfterParameters  pret [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.modifyDOMElement"></a>modifyDOMElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.modifyDOMElement = function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>px,</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.modifyDOMElement"></a>modifyDOMElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.modifyDOMElement = function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>id,</td></tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createDiv"></a>createDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.createDiv = function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>px,</td></tr><tr><td></td><td class=PParameter nowrap>sz,</td></tr><tr><td></td><td cla [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createDiv"></a>createDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.createDiv = function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>px,</td></tr><tr><td></td><td class="P [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createImage"></a>createImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.createImage = function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>px,</td></tr><tr><td></td><td class=PParameter nowrap>sz,</td></tr><tr><td></td>< [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createImage"></a>createImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.createImage = function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>px,</td></tr><tr><td></td><td cl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.setOpacity = function(</td><td class=PParameter nowrap>element,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ta [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.setOpacity"></a>setOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.setOpacity = function(</td><td class="PParameter  prettyprint " nowrap>element,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>opacity</td><td class="PAfterP [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.onImageLoad"></a>onImageLoad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.onImageLoad = function()</td></tr></table></blockquote><p>Bound to image load events.   For all images created with <a href="#Util.createImage" class=LFunction id=link52 onMouseOver="ShowTip(event, 'tt9', 'link52')" onMouseOut="HideTip('tt9')">createImage</a> or <a hre [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.onImageLoad"></a>onImageLoad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.onImageLoad = function()</td></tr></table></blockquote><p>Bound to image load events.   For all images created with <a href="#Util.createImage" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt9', 'link51')" onMouseOut="HideTip('tt9')">cre [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="Util.IMAGE_RELOAD_ATTEMPTS"></a>IMAGE_RELOAD_ATTEMPTS</h3><div class=CBody><p>{Integer} How many times should we try to reload an image before giving up?  Default is 0</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.onImageLoadError"></a>onImageLoadError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.onImageLoadError = function()</td></tr></table></blockquote></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.onImageLoadError"></a>onImageLoadError</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.onImageLoadError = function()</td></tr></table></blockquote></div></div></div>
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="Util.alphaHackNeeded"></a>alphaHackNeeded</h3><div class=CBody><p>{Boolean} true if the png alpha hack is necessary and possible, false otherwise.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.alphaHack"></a>alphaHack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.alphaHack = function()</td></tr></table></blockquote><p>Checks whether it’s necessary (and possible) to use the png alpha hack which allows alpha transparency for png images under Internet Explorer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} true if the png alpha hack [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.alphaHack"></a>alphaHack</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.alphaHack = function()</td></tr></table></blockquote><p>Checks whether it’s necessary (and possible) to use the png alpha hack which allows alpha transparency for png images under Internet Explorer.</p><h4 class=CHeading>Returns</h4><p>{Boolean} true [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.modifyAlphaImageDiv"></a>modifyAlphaImageDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.modifyAlphaImageDiv = function(</td><td class=PParameter nowrap>div,</td></tr><tr><td></td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>px [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.modifyAlphaImageDiv"></a>modifyAlphaImageDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.modifyAlphaImageDiv = function(</td><td class="PParameter  prettyprint " nowrap>div,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>id,</td [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createAlphaImageDiv"></a>createAlphaImageDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.createAlphaImageDiv = function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>px,</td></tr><tr><td></td><td class=PParameter nowrap>sz, [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createAlphaImageDiv"></a>createAlphaImageDiv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.createAlphaImageDiv = function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>px,</td> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.upperCaseObject"></a>upperCaseObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.upperCaseObject = function (</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new hashtable  [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.upperCaseObject"></a>upperCaseObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.upperCaseObject = function (</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr> [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.applyDefaults"></a>applyDefaults</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.applyDefaults = function (</td><td class=PParameter nowrap>to,</td></tr><tr><td></td><td class=PParameter nowrap>from</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.applyDefaults"></a>applyDefaults</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.applyDefaults = function (</td><td class="PParameter  prettyprint " nowrap>to,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>from</td><td class="PAfte [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getParameterString"></a>getParameterString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getParameterString = function(</td><td class=PParameter nowrap>params</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getParameterString"></a>getParameterString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getParameterString = function(</td><td class="PParameter  prettyprint " nowrap>params</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.urlAppend"></a>urlAppend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.urlAppend = function(</td><td class=PParameter nowrap>url,</td></tr><tr><td></td><td class=PParameter nowrap>paramStr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.urlAppend"></a>urlAppend</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.urlAppend = function(</td><td class="PParameter  prettyprint " nowrap>url,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>paramStr</td><td class="PAfterParamet [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="Util.ImgPath"></a>ImgPath</h3><div class=CBody><p>{String} Default is ‘’.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getImagesLocation"></a>getImagesLocation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.getImagesLocation = function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The fully formatted image location string</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getImagesLocation"></a>getImagesLocation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getImagesLocation = function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} The fully formatted image location string</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.Try"></a>Try</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.Try = function()</td></tr></table></blockquote><p>Execute functions until one of them doesn’t throw an error.  Capitalized because “try” is a reserved word in JavaScript.  Taken directly from OpenLayers.Util.Try()</p><h4 class=CHeading>Parameters</h4><table bord [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.Try"></a>Try</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.Try = function()</td></tr></table></blockquote><p>Execute functions until one of them doesn’t throw an error.  Capitalized because “try” is a reserved word in JavaScript.  Taken directly from OpenLayers.Util.Try()</p><h4 class=CHeading>Para [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getNodes"></a>getNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getNodes=function(</td><td class=PParameter nowrap>p,</td></tr><tr><td></td><td class=PParameter nowrap>tagName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getXmlNodeValue"></a>getXmlNodeValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getXmlNodeValue = function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></t [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util._getNodes"></a>_getNodes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util._getNodes=function(</td><td class=PParameter nowrap>nodes,</td></tr><tr><td></td><td class=PParameter nowrap>tagName</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></b [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getTagText"></a>getTagText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getTagText = function (</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>item,</td></tr><tr><td></td><td class=PParameter nowrap>index</td><td class=PAf [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getXmlNodeValue"></a>getXmlNodeValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getXmlNodeValue = function(</td><td class=PParameter nowrap>node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters< [...]
-
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.mouseLeft"></a>mouseLeft</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.mouseLeft = function (</td><td class=PParameter nowrap>evt,</td></tr><tr><td></td><td class=PParameter nowrap>div</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></bloc [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.mouseLeft"></a>mouseLeft</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.mouseLeft = function (</td><td class="PParameter  prettyprint " nowrap>evt,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>div</td><td class="PAfterParameters  [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="Util.precision"></a>precision</h3><div class=CBody><p>{Number} The number of significant digits to retain to avoid floating point precision errors.</p><p>We use 14 as a “safe” default because, although IEEE 754 double floats (standard on most modern operating systems) support up to about 16 significant digits, 14 significant digits are sufficient to represent sub-millimeter accuracy in any coordinate system th [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.toFloat"></a>toFloat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.toFloat = function (</td><td class=PParameter nowrap>number,</td></tr><tr><td></td><td class=PParameter nowrap>precision</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.toFloat"></a>toFloat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.toFloat = function (</td><td class="PParameter  prettyprint " nowrap>number,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>precision</td><td class="PAfterParamete [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.rad"></a>rad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.rad = function(</td><td class=PParameter nowrap>x</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.rad"></a>rad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.rad = function(</td><td class="PParameter  prettyprint " nowrap>x</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Pa [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.deg"></a>deg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.deg = function(</td><td class=PParameter nowrap>x</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellp [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.deg"></a>deg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.deg = function(</td><td class="PParameter  prettyprint " nowrap>x</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Pa [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="Util.VincentyConstants"></a>VincentyConstants</h3><div class=CBody><p>{Object} Constants for Vincenty functions.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.distVincenty"></a>distVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.distVincenty = function(</td><td class=PParameter nowrap>p1,</td></tr><tr><td></td><td class=PParameter nowrap>p2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.distVincenty"></a>distVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.distVincenty = function(</td><td class="PParameter  prettyprint " nowrap>p1,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>p2</td><td class="PAfterParam [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.destinationVincenty"></a>destinationVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.destinationVincenty = function(</td><td class=PParameter nowrap>lonlat,</td></tr><tr><td></td><td class=PParameter nowrap>brng,</td></tr><tr><td></td><td class=PParameter nowr [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.destinationVincenty"></a>destinationVincenty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.destinationVincenty = function(</td><td class="PParameter  prettyprint " nowrap>lonlat,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>brng [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getParameters"></a>getParameters</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getParameters = function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parse the parameters from a URL or [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getParameters"></a>getParameters</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getParameters = function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getArgs"></a>getArgs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getArgs = function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprecated</b>.   Will be removed in 3.0.&nb [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getArgs"></a>getArgs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getArgs = function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>D [...]
 
 <div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="Util.lastSeqID"></a>lastSeqID</h3><div class=CBody><p>{Integer} The ever-incrementing count variable.  Used for generating unique ids.</p></div></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createUniqueID"></a>createUniqueID</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.createUniqueID = function(</td><td class=PParameter nowrap>prefix</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Create a unique identifier f [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createUniqueID"></a>createUniqueID</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.createUniqueID = function(</td><td class="PParameter  prettyprint " nowrap>prefix</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Constants"></a>Constants</h3></div></div>
 
@@ -103,29 +97,39 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.normalizeScale"></a>normalizeScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.normalizeScale = function (</td><td class=PParameter nowrap>scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Parameters</ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.normalizeScale"></a>normalizeScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.normalizeScale = function (</td><td class="PParameter  prettyprint " nowrap>scale</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></ta [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getResolutionFromScale"></a>getResolutionFromScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getResolutionFromScale = function (</td><td class="PParameter  prettyprint " nowrap>scale,</td></tr><tr><td></td><td class="PParameter  prettyprint " no [...]
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getScaleFromResolution"></a>getScaleFromResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getScaleFromResolution = function (</td><td class="PParameter  prettyprint " nowrap>resolution,</td></tr><tr><td></td><td class="PParameter  prettyprint [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getResolutionFromScale"></a>getResolutionFromScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getResolutionFromScale = function (</td><td class=PParameter nowrap>scale,</td></tr><tr><td></td><td class=PParameter nowrap>units</td><td class=PAfterParameters nowrap> [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.safeStopPropagation"></a>safeStopPropagation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.safeStopPropagation = function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></ [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getScaleFromResolution"></a>getScaleFromResolution</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getScaleFromResolution = function (</td><td class=PParameter nowrap>resolution,</td></tr><tr><td></td><td class=PParameter nowrap>units</td><td class=PAfterParameters no [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.pagePosition"></a>pagePosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.pagePosition = function(</td><td class="PParameter  prettyprint " nowrap>forElement</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></tabl [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.safeStopPropagation"></a>safeStopPropagation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.safeStopPropagation = function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p><b>Deprecated</b [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getViewportElement"></a>getViewportElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getViewportElement = function()</td></tr></table></blockquote><p>Returns die viewport element of the document.  The viewport element is usually document.documentElement, except in IE,where it is either document.body or document.docum [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.pagePositon"></a>pagePositon</h3><div class=CBody><p>Calculates the position of an element on the page.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>forElement</td><td class=CDLDescription>{DOMElement}</td></tr></table><h4 class=CHeading>Returns</h4><p>{Array} two item array, L value then T value.</p></div></div></div>
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.isEquivalentUrl"></a>isEquivalentUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.isEquivalentUrl = function(</td><td class="PParameter  prettyprint " nowrap>url1,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>url2,</td></tr><tr [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.isEquivalentUrl"></a>isEquivalentUrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.isEquivalentUrl = function(</td><td class=PParameter nowrap>url1,</td></tr><tr><td></td><td class=PParameter nowrap>url2,</td></tr><tr><td></td><td class=PParameter nowrap>options</td [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createUrlObject"></a>createUrlObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.createUrlObject = function(</td><td class="PParameter  prettyprint " nowrap>url,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>options</td><td cla [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.createUrlObject"></a>createUrlObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.createUrlObject = function(</td><td class=PParameter nowrap>url,</td></tr><tr><td></td><td class=PParameter nowrap>options</td><td class=PAfterParameters nowrap>)</td></tr></table></t [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.removeTail"></a>removeTail</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.removeTail = function(</td><td class="PParameter  prettyprint " nowrap>url</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquot [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.removeTail"></a>removeTail</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.removeTail = function(</td><td class=PParameter nowrap>url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a url and removes everything after th [...]
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Util.IS_GECKO"></a>IS_GECKO</h3><div class=CBody><p>{Boolean} True if the userAgent reports the browser to use the Gecko engine</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Util.BROWSER_NAME"></a>BROWSER_NAME</h3><div class=CBody><p>{String} A substring of the navigator.userAgent property.   Depending on the userAgent property, this will be the empty string or one of the following:</p><ul><li>”opera” -- Opera</li><li>”msie”  -- Internet Explorer</li><li>”safari” -- Safari</li><li>”firefox” -- Firefox</li><li>”mozilla” -- Mozill [...]
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Util.Functions"></a>Functions</h3></div></div>
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getBrowserName"></a>getBrowserName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.getBrowserName = function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} A string which specifies which is the current browser in which we are running.</p><h4 class=CHeading>Currently-supported browser detection and codes</h4><ul><li>&rsquo [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getBrowserName"></a>getBrowserName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getBrowserName = function()</td></tr></table></blockquote><h4 class=CHeading>Returns</h4><p>{String} A string which specifies which is the current browser in which we are running.</p><h4 class=CHeading>Currently-supported browser detection and co [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getRenderedDimensions"></a>getRenderedDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getRenderedDimensions = function(</td><td class=PParameter nowrap>contentHTML,</td></tr><tr><td></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PPar [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getRenderedDimensions"></a>getRenderedDimensions</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getRenderedDimensions = function(</td><td class="PParameter  prettyprint " nowrap>contentHTML,</td></tr><tr><td></td><td class="PParameter  prettyprint "  [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getScrollbarWidth"></a>getScrollbarWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.getScrollbarWidth = function()</td></tr></table></blockquote><p>This function has been modified by the OpenLayers from the original version, written by Matthew Eernisse and released under the Apache 2 license here:</p><p><a href="http://www.fleegix.org/articles/ [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getScrollbarWidth"></a>getScrollbarWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getScrollbarWidth = function()</td></tr></table></blockquote><p>This function has been modified by the OpenLayers from the original version, written by Matthew Eernisse and released under the Apache 2 license here:</p><p><a href="http://www [...]
 
-<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getFormattedLonLat"></a>getFormattedLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.getFormattedLonLat = function(</td><td class=PParameter nowrap>coordinate,</td></tr><tr><td></td><td class=PParameter nowrap>axis,</td></tr><tr><td></td><td class=PParameter now [...]
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="Util.getFormattedLonLat"></a>getFormattedLonLat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.getFormattedLonLat = function(</td><td class="PParameter  prettyprint " nowrap>coordinate,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>axi [...]
 
 </div><!--Content-->
 
@@ -133,15 +137,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div class=M [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupCo [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([33, 34], 36);// --></script></div><!--Menu-->
+HideAllBut([30], 32);// --></script></div><!--Menu-->
 
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>OpenLayers.Util.getElement = function()</td></tr></table></blockquote>This is the old $() from prototype</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.isElement = funct [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">OpenLayers.Util.getElement = function()</td></tr></table></blockquote>This is the old $() from prototype</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "n [...]
 
 
 
diff --git a/doc/devdocs/index/Classes.html b/doc/devdocs/index/Classes.html
index 345ff2c..0979cf2 100644
--- a/doc/devdocs/index/Classes.html
+++ b/doc/devdocs/index/Classes.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Class Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · S · T · <a href="Classes2.html#U">U</a> · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class= [...]
+<div id=Index><div class=IPageTitle>Class Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · S · T · <a href="Classes2.html#U">U</a> · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class= [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers object provides a namespace for all things OpenLayers</div></div><div class=CToolTip id="tt2"><div class=CClass><b>Deprecated</b>. </div></div><div class=CToolTip id="tt3"><div class=CClass>{Object}</div></div><div class=CToolTip id="tt4"><div class=CClass>Contains convenience functions for array manipulation.</div></div><div class=CToolTip id="tt5"><div class=CClass>Instances of this class represent bounding boxes. </div></di [...]
+<div class=CToolTip id="tt1"><div class=CClass>The OpenLayers object provides a namespace for all things OpenLayers</div></div><div class=CToolTip id="tt2"><div class=CClass><b>Deprecated</b>. </div></div><div class=CToolTip id="tt3"><div class=CClass>{Object}</div></div><div class=CToolTip id="tt4"><div class=CClass>Contains convenience functions for array manipulation.</div></div><div class=CToolTip id="tt5"><div class=CClass>Instances of this class represent bounding boxes. </div></di [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Classes2.html b/doc/devdocs/index/Classes2.html
index 145ac51..39295a7 100644
--- a/doc/devdocs/index/Classes2.html
+++ b/doc/devdocs/index/Classes2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Class Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Constants.html b/doc/devdocs/index/Constants.html
index 0d9899e..0c7dfa8 100644
--- a/doc/devdocs/index/Constants.html
+++ b/doc/devdocs/index/Constants.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constant Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constant Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,77 +11,77 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constant Index</div><div class=INavigationBar>$#! · 0-9 · A · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · G · H · <a href="#I">I</a> · J · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · N · <a href="#O">O</a> · P · Q · <a href="#R">R</a> · [...]
+<div id=Index><div class=IPageTitle>Constant Index</div><div class=INavigationBar>$#! · 0-9 · A · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · G · H · <a href="#I">I</a> · J · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · N · <a href="#O">O</a> · P · Q · <a href="#R">R</a> · [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt2"><div class=CConstant>{Array(String)} supported events</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt2"><div class=CConstant>{Array(String)} supported events</div></div><div class=CToolTip id="tt3"><div class=CConstant>{String} A substring of the navigator.userAgent property. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3"><div class=CConstant>{Integer} 5. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt4"><div class=CConstant>{Integer} 5. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt4"><div class=CConstant>{Object} with the following keys</div></div><div class=CToolTip id="tt5"><div class=CConstant>{Object} Default configuration for all requests.</div></div><div class=CToolTip id="tt6"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt7"><div class=CConstant>{Object} Default layers properties.</div></div><div class=CToolTip id="tt8"><div class=CConstant>{Object} Hashtable of d [...]
+<div class=CToolTip id="tt5"><div class=CConstant>{Object} Default configuration for all requests.</div></div><div class=CToolTip id="tt6"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt7"><div class=CConstant>{Object} Default layers properties.</div></div><div class=CToolTip id="tt8"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs</div></div><div class=CToolTip id="tt9"><div class=CConstant> [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt21"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt22"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt23"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt24"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt25"><div c [...]
+<div class=CToolTip id="tt22"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt23"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt24"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt25"><div class=CConstant>{Array(String)} Supported application event types. </div></div><div class=CToolTip id="tt26"><div c [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt31"><div class=CConstant>{Object} Hashtable of parameter key/value pairs which describe the folder structure for tiles as configured in the mapguide serverconfig.ini section [TileServiceProperties]</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt32"><div class=CConstant>{Object} Hashtable of parameter key/value pairs which describe the folder structure for tiles as configured in the mapguide serverconfig.ini section [TileServiceProperties]</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt32"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt33"><div class=CConstant>{Object} Constant inches per unit -- borrowed from MapServer mapscale.c derivation of nautical miles from http://en.wikipedia.org/wiki/Nautical_mile Includes the full set of units supported by CS-MAP (http://trac.osgeo.org/csmap/) and PROJ.4 (http://trac.osgeo.org/proj/) The hardcoded table is maintain in a CS-MAP source [...]
+<div class=CToolTip id="tt33"><div class=CConstant>Mixin for tiles that use form-encoded POST requests to get images from remote services. </div></div><div class=CToolTip id="tt34"><div class=CConstant>{Object} Simple hash map to convert format to extension.</div></div><div class=CToolTip id="tt35"><div class=CConstant>{Object} Constant inches per unit -- borrowed from MapServer mapscale.c derivation of nautical miles from http://en.wikipedia.org/wiki/Nautical_mile Includes the full set  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt35"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt36"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt37"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt38"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt39"><div class=CConstant>keydown, keypress, keyup</div></div><div class=CToolTip id="tt40"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt41"><div class=CConstant>{int}</div></d [...]
+<div class=CToolTip id="tt38"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt39"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt40"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt41"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt42"><div class=CConstant>keydown, keypress, keyup</div></div><div class=CToolTip id="tt43"><div class=CConstant>{int}</div></div><div class=CToolTip id="tt44"><div class=CConstant>{int}</div></d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt45"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt46"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt47"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt48"><div class=CConstant>{Object}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt48"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt49"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt50"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt51"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt52"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt53"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt54"><div class=CConstant>{Object}</div>< [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt49"><div class=CConstant>{Integer} Firefox has a limitation where values larger or smaller than about 15000 in an SVG document lock the browser up. </div></div><div class=CToolTip id="tt50"><div class=CConstant>{Integer} 21</div></div><div class=CToolTip id="tt51"><div class=CConstant>{Integer} 17</div></div><div class=CToolTip id="tt52"><div class=CConstant>{Integer} 19</div></div><div class=CToolTip id="tt53"><div class=CConstant>{Integer} 17</div></div><div c [...]
+<div class=CToolTip id="tt60"><div class=CConstant>{Integer} Firefox has a limitation where values larger or smaller than about 15000 in an SVG document lock the browser up. </div></div><div class=CToolTip id="tt61"><div class=CConstant>{Integer} 21</div></div><div class=CToolTip id="tt62"><div class=CConstant>{Integer} 17</div></div><div class=CToolTip id="tt63"><div class=CConstant>{Integer} 19</div></div><div class=CToolTip id="tt64"><div class=CConstant>{Integer} 17</div></div><div c [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt62"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt73"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt63"><div class=CConstant>{Integer} Constant used to make the control work in reshape mode</div></div><div class=CToolTip id="tt64"><div class=CConstant>{Integer} Constant used to make the control work in resize mode</div></div><div class=CToolTip id="tt65"><div class=CConstant>{Array} The properties that are used for calculating resolutions information.</div></div><div class=CToolTip id="tt66"><div class=CConstant>{Array(Float)} Hardcode these resolutions so tha [...]
+<div class=CToolTip id="tt74"><div class=CConstant>{Integer} Constant used to make the control work in reshape mode</div></div><div class=CToolTip id="tt75"><div class=CConstant>{Integer} Constant used to make the control work in resize mode</div></div><div class=CToolTip id="tt76"><div class=CConstant>{Array} The properties that are used for calculating resolutions information.</div></div><div class=CToolTip id="tt77"><div class=CConstant>{Array(Float)} Hardcode these resolutions so tha [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt71"><div class=CConstant>Enumeration for service types</div></div><div class=CToolTip id="tt72"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><div class=CToolTip id="tt73"><div class=CConstant>OpenLayers features can have a number of style attributes. </div></div><div class=CToolTip id="tt74"><div class=CConstant>Coordinate arrays for well known (named) symbols.</div></div><div class=CToolTip id="tt75"> [...]
+<div class=CToolTip id="tt82"><div class=CConstant>Enumeration for service types</div></div><div class=CToolTip id="tt83"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for untiled layer</div></div><div class=CToolTip id="tt84"><div class=CConstant>TODO: remove this in 3.0 when we stop supporting build profiles that include OpenLayers.js</div></div><div class=CToolTip id="tt85"><div class=CConstant>{Number} value for OpenLayers.Layer.PointTrack.dataFrom and  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt76"><div class=CConstant>{Integer} 256 Default tile height (unless otherwise specified)</div></div><div class=CToolTip id="tt77"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for tiled layer</div></div><div class=CToolTip id="tt78"><div class=CConstant>{Integer} 256 Default tile width (unless otherwise specified)</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt89"><div class=CConstant>{Number} value for OpenLayers.Layer.PointTrack.dataFrom and OpenLayers.Layer.PointTrack.styleFrom</div></div><div class=CToolTip id="tt90"><div class=CConstant>{Integer} 256 Default tile height (unless otherwise specified)</div></div><div class=CToolTip id="tt91"><div class=CConstant>{Object} Hashtable of default parameter key/value pairs for tiled layer</div></div><div class=CToolTip id="tt92"><div class=CConstant>{Integer} 256 Default  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt79"><div class=CConstant>{Float} Used to hash URL param strings for multi-WMS server selection. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt93"><div class=CConstant>{Float} Used to hash URL param strings for multi-WMS server selection. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt80"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v2.</div></div><div class=CToolTip id="tt81"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v3. </div></div><div class=CToolTip id="tt82"><div class=CConstant>{String} 1.0.0</div></div><div class=CToolTip id="tt83"><div class=CConstant>{String} 1.1.0</div></div><div class=CToolTip id="tt84"><div class=CConstant>{String} 0.3.1</div></div><div [...]
+<div class=CToolTip id="tt94"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v2.</div></div><div class=CToolTip id="tt95"><div class=CConstant>Mixin providing functionality specific to the Google Maps API v3. </div></div><div class=CToolTip id="tt96"><div class=CConstant>{String} 1.0.0</div></div><div class=CToolTip id="tt97"><div class=CConstant>{String} 1.1.0</div></div><div class=CToolTip id="tt98"><div class=CConstant>{String} 0.3.1</div></div><div [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt90"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt108"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt91"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt109"><div class=CConstant>{Integer}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt92"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt110"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -89,10 +89,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Constructor.html b/doc/devdocs/index/Constructor.html
index 6b32ad4..2cf24dd 100644
--- a/doc/devdocs/index/Constructor.html
+++ b/doc/devdocs/index/Constructor.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,65 +11,65 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · <a href="#J">J</a> · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · <a href="#N">N</a [...]
+<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="#C">C</a> · <a href="#D">D</a> · <a href="#E">E</a> · <a href="#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="#I">I</a> · <a href="#J">J</a> · <a href="#K">K</a> · <a href="#L">L</a> · <a href="#M">M</a> · <a href="#N">N</a [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CConstructor>Create a new ArcGIS93Rest layer object.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Create a new ArcIMS layer object.</div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a new parser/writer for ArcXML. </div></div><div class=CToolTip id="tt4"><div class=CConstructor>Create a new parser for Atom.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstructor>Create a new ArcGIS93Rest layer object.</div></div><div class=CToolTip id="tt2"><div class=CConstructor>Creates a new instance of this class</div></div><div class=CToolTip id="tt3"><div class=CConstructor>Create a new ArcIMS layer object.</div></div><div class=CToolTip id="tt4"><div class=CConstructor>Create a new parser/writer for ArcXML. </div></div><div class=CToolTip id="tt5"><div class=CConstructor>Create a new parser for Atom.</d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt5"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt6"><div class=CConstructor>Create a new BBOX strategy.</div></div><div class=CToolTip id="tt7"><div class=CConstructor>Construct a new bounds object.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt6"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt7"><div class=CConstructor>Create a new BBOX strategy.</div></div><div class=CToolTip id="tt8"><div class=CConstructor>Create a new Bing layer.</div></div><div class=CToolTip id="tt9"><div class=CConstructor>Construct a new bounds object.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt8"><div class=CConstructor>Base class used to construct all other classes. </div></div><div class=CToolTip id="tt9"><div class=CConstructor>Create a new click handler.</div></div><div class=CToolTip id="tt10"><div class=CConstructor>Create a new clustering strategy.</div></div><div class=CToolTip id="tt11"><div class=CConstructor>Creates a Geometry Collection -- a list of geoms.</div></div><div class=CToolTip id="tt12"><div class=CConstructor>Creates a compariso [...]
+<div class=CToolTip id="tt10"><div class=CConstructor>Base class used to construct all other classes. </div></div><div class=CToolTip id="tt11"><div class=CConstructor>Create a new click handler.</div></div><div class=CToolTip id="tt12"><div class=CConstructor>Create a new clustering strategy.</div></div><div class=CToolTip id="tt13"><div class=CConstructor>Creates a Geometry Collection -- a list of geoms.</div></div><div class=CToolTip id="tt14"><div class=CConstructor>Creates a compari [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt15"><div class=CConstructor>Returns OpenLayers.Handler.Drag</div></div><div class=CToolTip id="tt16"><div class=CConstructor>Create a new control to drag features.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt17"><div class=CConstructor>Returns OpenLayers.Handler.Drag</div></div><div class=CToolTip id="tt18"><div class=CConstructor>Create a new control to drag features.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt17"><div class=CConstructor>Create an editing toolbar for a given layer.</div></div><div class=CToolTip id="tt18"><div class=CConstructor>Create a new event pane layer</div></div><div class=CToolTip id="tt19"><div class=CConstructor>Construct an OpenLayers.Events object.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt19"><div class=CConstructor>Create an editing toolbar for a given layer.</div></div><div class=CToolTip id="tt20"><div class=CConstructor>Create a new event pane layer</div></div><div class=CToolTip id="tt21"><div class=CConstructor>Construct an OpenLayers.Events object.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt20"><div class=CConstructor>Constructor for features.</div></div><div class=CToolTip id="tt21"><div class=CConstructor>Creates an ogc:FeatureId rule.</div></div><div class=CToolTip id="tt22"><div class=CConstructor>Create a new parser/writer for ArcXML Features. </div></div><div class=CToolTip id="tt23"><div class=CConstructor>This is an abstract class. </div></div><div class=CToolTip id="tt24"><div class=CConstructor>Create a new parser for Filter.</div></div>< [...]
+<div class=CToolTip id="tt22"><div class=CConstructor>Constructor for features.</div></div><div class=CToolTip id="tt23"><div class=CConstructor>Creates an ogc:FeatureId rule.</div></div><div class=CToolTip id="tt24"><div class=CConstructor>Create a new parser/writer for ArcXML Features. </div></div><div class=CToolTip id="tt25"><div class=CConstructor>This class represents a generic filter.</div></div><div class=CToolTip id="tt26"><div class=CConstructor>Create a new filter strategy.</d [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt29"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt30"><div class=CConstructor>Creates a geometry object.</div></div><div class=CToolTip id="tt31"><div class=CConstructor>Create a new parser for GeoRSS.</div></div><div class=CToolTip id="tt32"><div class=CConstructor>Create a GeoRSS Layer.</div></div><div class=CToolTip id="tt33"><div class=CConstructor>Create a new control for fetching remote features.</div></div>< [...]
+<div class=CToolTip id="tt31"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt32"><div class=CConstructor>Create a new control to deal with browser geolocation API</div></div><div class=CToolTip id="tt33"><div class=CConstructor>Creates a geometry object.</div></div><div class=CToolTip id="tt34"><div class=CConstructor>Create a new parser for GeoRSS.</div></div><div class=CToolTip id="tt35"><div class=CConstructor>Create a GeoRSS Layer.</div> [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt39"><div class=CConstructor>Construct a handler.</div></div><div class=CToolTip id="tt40"><div class=CConstructor>Construct a hover handler.</div></div><div class=CToolTip id="tt41"><div class=CConstructor>A class for giving layers generic HTTP protocol.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt42"><div class=CConstructor>Construct a handler.</div></div><div class=CToolTip id="tt43"><div class=CConstructor>Construct a hover handler.</div></div><div class=CToolTip id="tt44"><div class=CConstructor>A class for giving layers generic HTTP protocol.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt42"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt43"><div class=CConstructor>Constructor for a new OpenLayers.Tile.Image.IFrame instance.</div></div><div class=CToolTip id="tt44"><div class=CConstructor>Create a new image layer</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt45"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt46"><div class=CConstructor>Create a new image layer</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt45"><div class=CConstructor>Create a new parser for JSON.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt47"><div class=CConstructor>Create a new parser for JSON.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt46"><div class=CConstructor>Returns a new keyboard handler.</div></div><div class=CToolTip id="tt47"><div class=CConstructor>Create a new parser for KML.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt48"><div class=CConstructor>Returns a new keyboard handler.</div></div><div class=CToolTip id="tt49"><div class=CConstructor>Create a new parser for KML.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt48"><div class=CConstructor>Create a symbolizer for rendering lines.</div></div><div class=CToolTip id="tt49"><div class=CConstructor>Linear rings are constructed with an array of points. </div></div><div class=CToolTip id="tt50"><div class=CConstructor>Create a new LineString geometry</div></div><div class=CToolTip id="tt51"><div class=CConstructor>Creates a logical filter (And, Or, Not).</div></div><div class=CToolTip id="tt52"><div class=CConstructor>Create a [...]
+<div class=CToolTip id="tt50"><div class=CConstructor>Create a symbolizer for rendering lines.</div></div><div class=CToolTip id="tt51"><div class=CConstructor>Linear rings are constructed with an array of points. </div></div><div class=CToolTip id="tt52"><div class=CConstructor>Create a new LineString geometry</div></div><div class=CToolTip id="tt53"><div class=CConstructor>Creates a logical filter (And, Or, Not).</div></div><div class=CToolTip id="tt54"><div class=CConstructor>Create a [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt53"><div class=CConstructor>Constructor for a new OpenLayers.Map instance. </div></div><div class=CToolTip id="tt54"><div class=CConstructor>Create a new Mapguide layer, either tiled or untiled.</div></div><div class=CToolTip id="tt55"><div class=CConstructor>Create a new MapServer layer object</div></div><div class=CToolTip id="tt56"><div class=CConstructor>Create a Markers layer.</div></div><div class=CToolTip id="tt57"><div class=CConstructor>Create a new mod [...]
+<div class=CToolTip id="tt55"><div class=CConstructor>Constructor for a new OpenLayers.Map instance. </div></div><div class=CToolTip id="tt56"><div class=CConstructor>Create a new Mapguide layer, either tiled or untiled.</div></div><div class=CToolTip id="tt57"><div class=CConstructor>Create a new MapServer layer object</div></div><div class=CToolTip id="tt58"><div class=CConstructor>Create a Markers layer.</div></div><div class=CToolTip id="tt59"><div class=CConstructor>Create a new mod [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt61"><div class=CConstructor>Create a new navigation control</div></div><div class=CToolTip id="tt62"><div class=CConstructor>Add our two mousedefaults controls.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt63"><div class=CConstructor>Create a new navigation control</div></div><div class=CToolTip id="tt64"><div class=CConstructor>Add our two mousedefaults controls.</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt63"><div class=CConstructor>Create a new parser for OSM.</div></div><div class=CToolTip id="tt64"><div class=CConstructor>Create a new overview map</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt65"><div class=CConstructor>Create a new parser for OGC exception reports.</div></div><div class=CToolTip id="tt66"><div class=CConstructor>Create a new parser for OSM.</div></div><div class=CToolTip id="tt67"><div class=CConstructor>Create a new overview map</div></div><div class=CToolTip id="tt68"><div class=CConstructor>Create a new parser for OWSCommon.</div></div><div class=CToolTip id="tt69"><div class=CConstructor>Create a new parser for OWS Context docum [...]
 
 </div><!--Index-->
 
@@ -77,10 +77,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Constructor2.html b/doc/devdocs/index/Constructor2.html
index 95756a0..cafa4c3 100644
--- a/doc/devdocs/index/Constructor2.html
+++ b/doc/devdocs/index/Constructor2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,21 +11,21 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
+<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt65"><div class=CConstructor>Create a new paging strategy.</div></div><div class=CToolTip id="tt66"><div class=CConstructor>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</div></div><div class=CToolTip id="tt67"><div class=CConstructor>Create a new control panel.</div></div><div class=CToolTip id="tt68"><div class=CConstructor>Add the four directional pan buttons.</div></div><div class=CToolTip id="tt69"><di [...]
+<div class=CToolTip id="tt70"><div class=CConstructor>Create a new paging strategy.</div></div><div class=CToolTip id="tt71"><div class=CConstructor>Control which handles the panning (in any of the cardinal directions) of the map by a set px distance.</div></div><div class=CToolTip id="tt72"><div class=CConstructor>Create a new control panel.</div></div><div class=CToolTip id="tt73"><div class=CConstructor>Add the four directional pan buttons.</div></div><div class=CToolTip id="tt74"><di [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt82"><div class=CConstructor>Create a symbolizer for rendering rasters.</div></div><div class=CToolTip id="tt83"><div class=CConstructor>Create a new Refresh strategy.</div></div><div class=CToolTip id="tt84"><div class=CConstructor>Create a new regular polygon handler.</div></div><div class=CToolTip id="tt85"><div class=CConstructor>Create a new root container for multiple vector layer. </div></div><div class=CToolTip id="tt86"><div class=CConstructor>Creates a  [...]
+<div class=CToolTip id="tt90"><div class=CConstructor>Create a symbolizer for rendering rasters.</div></div><div class=CToolTip id="tt91"><div class=CConstructor>Create a new Refresh strategy.</div></div><div class=CToolTip id="tt92"><div class=CConstructor>Create a new regular polygon handler.</div></div><div class=CToolTip id="tt93"><div class=CConstructor>Create a new root container for multiple vector layer. </div></div><div class=CToolTip id="tt94"><div class=CConstructor>Creates a  [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt87"><div class=CConstructor>Create a new Save strategy.</div></div><div class=CToolTip id="tt88"><div class=CConstructor>Create a new scale line control.</div></div><div class=CToolTip id="tt89"><div class=CConstructor>Create a new control for selecting features.</div></div><div class=CToolTip id="tt90"><div class=CConstructor>Create an instance of OpenLayers.Size</div></div><div class=CToolTip id="tt91"><div class=CConstructor>Create a new parser for SLD.</div> [...]
+<div class=CToolTip id="tt95"><div class=CConstructor>Create a new Save strategy.</div></div><div class=CToolTip id="tt96"><div class=CConstructor>Create a new scale line control.</div></div><div class=CToolTip id="tt97"><div class=CConstructor>A class for giving layers generic Script protocol.</div></div><div class=CToolTip id="tt98"><div class=CConstructor>Create a new control for selecting features.</div></div><div class=CToolTip id="tt99"><div class=CConstructor>Create an instance of [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt102"><div class=CConstructor>Create a new parser for TSV Text.</div></div><div class=CToolTip id="tt103"><div class=CConstructor>Create a text layer.</div></div><div class=CToolTip id="tt104"><div class=CConstructor>Create a symbolizer for rendering text labels.</div></div><div class=CToolTip id="tt105"><div class=CConstructor>Create a new read only TileCache layer.</div></div><div class=CToolTip id="tt106"><div class=CConstructor>Create a new transform feature  [...]
+<div class=CToolTip id="tt110"><div class=CConstructor>Create a new parser for TSV Text.</div></div><div class=CToolTip id="tt111"><div class=CConstructor>Create a text layer.</div></div><div class=CToolTip id="tt112"><div class=CConstructor>Create a symbolizer for rendering text labels.</div></div><div class=CToolTip id="tt113"><div class=CConstructor>Create a new read only TileCache layer.</div></div><div class=CToolTip id="tt114"><div class=CConstructor>Create a new navigation control [...]
 
 
 <!--START_ND_TOOLTIPS-->
@@ -33,7 +33,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt108"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt109"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt110"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt111"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id=" [...]
+<div class=CToolTip id="tt117"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt118"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt119"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt120"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id=" [...]
 
 </div><!--Index-->
 
@@ -41,10 +41,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Constructor3.html b/doc/devdocs/index/Constructor3.html
index 3d24fc8..015622f 100644
--- a/doc/devdocs/index/Constructor3.html
+++ b/doc/devdocs/index/Constructor3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
+<div id=Index><div class=IPageTitle>Constructor Index</div><div class=INavigationBar>$#! · 0-9 · <a href="Constructor.html#A">A</a> · <a href="Constructor.html#B">B</a> · <a href="Constructor.html#C">C</a> · <a href="Constructor.html#D">D</a> · <a href="Constructor.html#E">E</a> · <a href="Constructor.html#F">F</a> · <a href="Constructor.html#G">G</a> · <a href="Constructor.html#H">H</a> · <a href="Constructor.html#I"> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt137"><div class=CConstructor>Create a WFS feature.</div></div><div class=CToolTip id="tt138"><div class=CConstructor>Create a WFS-T formatter. </div></div><div class=CToolTip id="tt139"><div class=CConstructor>A class for giving layers WFS protocol.</div></div><div class=CToolTip id="tt140"><div class=CConstructor>Create a new parser for WFS capabilities.</div></div><div class=CToolTip id="tt141"><div class=CConstructor>Create a new parser for WFS DescribeFeatur [...]
+<div class=CToolTip id="tt152"><div class=CConstructor>Create a WFS feature.</div></div><div class=CToolTip id="tt153"><div class=CConstructor>Create a WFS-T formatter. </div></div><div class=CToolTip id="tt154"><div class=CConstructor>A class for giving layers WFS protocol.</div></div><div class=CToolTip id="tt155"><div class=CConstructor>Create a new parser for WFS capabilities.</div></div><div class=CToolTip id="tt156"><div class=CConstructor>Create a new parser for WFS DescribeFeatur [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt150"><div class=CConstructor>Construct an XML parser. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt167"><div class=CConstructor>Create a new parser for XLS.</div></div><div class=CToolTip id="tt168"><div class=CConstructor>Construct an XML parser. </div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
@@ -25,7 +25,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt151"><div class=CConstructor>Add the three zooming controls.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt169"><div class=CConstructor>Add the three zooming controls.</div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -33,10 +33,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Files.html b/doc/devdocs/index/Files.html
index b1353ed..80bc7b5 100644
--- a/doc/devdocs/index/Files.html
+++ b/doc/devdocs/index/Files.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>File Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>File Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,15 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · <a href="#C">C</a> · D · E · F · G · H · I · J · K · L · M · N · <a href="#O">O</a> · P · Q · R · <a href="#S">S</a> · T · U · <a href="#V">V</a> · <a href="#W">W</a> · X · Y · Z</div><tab [...]
+<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · <a href="#C">C</a> · D · E · F · G · H · <a href="#I">I</a> · J · <a href="#K">K</a> · L · M · N · <a href="#O">O</a> · P · Q · R · <a href="#S">S</a> · T · U · <a href="#V">V</a> · <a href="#W">W</a> · [...]
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
 <!--START_ND_TOOLTIPS-->
 <!--END_ND_TOOLTIPS-->
 
@@ -41,10 +49,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions.html b/doc/devdocs/index/Functions.html
index 8007783..898cb19 100644
--- a/doc/devdocs/index/Functions.html
+++ b/doc/devdocs/index/Functions.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="#Symbols">$#!</a> · 0-9 · <a href="#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9.html#I">I</a [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="#Symbols">$#!</a> · 0-9 · <a href="#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9.html#I">I</a [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_addButton:function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>img,</td></tr><tr><td></td><td class=PParameter nowrap>activeImg,</td></tr><tr><td></td><td class=PParameter nowrap>xy,</td></tr><tr><td></td><td class=PParameter nowrap>sz [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_addButton:function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>img,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>activeImg,</td></tr><tr><td></td><td class="PParamet [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cel [...]
+<div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request.</div></div><div class=CToolTip id="tt10"><div class=CFuncti [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions10.html b/doc/devdocs/index/Functions10.html
index cf66f87..8a64e7d 100644
--- a/doc/devdocs/index/Functions10.html
+++ b/doc/devdocs/index/Functions10.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1083"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mapDivClick: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Handle browser events</div></div><div class=CToolTip id="tt1084"><div class=CFunction><blockquote><table border=0 cellspacing=0 c [...]
+<div class=CToolTip id="tt1149"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>layerToContext: function(</td><td class="PParameter  prettyprint " nowrap>layer</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a layer context object given a wms layer object.</div></div><div clas [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions11.html b/doc/devdocs/index/Functions11.html
index 796b081..cee1cb1 100644
--- a/doc/devdocs/index/Functions11.html
+++ b/doc/devdocs/index/Functions11.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1178"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>nextTrigger: function()</td></tr></table></blockquote>Restore the next state. </div></div><div class=CToolTip id="tt1179"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>nodeFactory: function(</td><td class=PParameter nowra [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1187"><div class=CFunction>Transform an object into a JSON string.</div></div><div class=CToolTip id="tt1188"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>observe: function(</td><td class=PParameter nowrap>elementParam,</td></tr><tr><td></td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PParameter nowrap>o [...]
+<div class=CToolTip id="tt1178"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mapDivClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Handle browser events</div></div><div class=CToolTip id="tt1179"><div class=CFunc [...]
 
 </div><!--Index-->
 
@@ -25,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions12.html b/doc/devdocs/index/Functions12.html
index 62d6621..372a532 100644
--- a/doc/devdocs/index/Functions12.html
+++ b/doc/devdocs/index/Functions12.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1234"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>page: function(</td><td class=PParameter nowrap>start,</td></tr><tr><td></td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Display the page starting at the given index from the cache.</div></div><div  [...]
+<div class=CToolTip id="tt1279"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">nextTrigger: function()</td></tr></table></blockquote>Restore the next state. </div></div><div class=CToolTip id="tt1280"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>nodeFactory: f [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1290"><div class=CFunction>Transform an object into a JSON string.</div></div><div class=CToolTip id="tt1291"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>observe: function(</td><td class="PParameter  prettyprint " nowrap>elementParam,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>name,</t [...]
 
 </div><!--Index-->
 
@@ -21,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions13.html b/doc/devdocs/index/Functions13.html
index cfd8d9e..f4242b1 100644
--- a/doc/devdocs/index/Functions13.html
+++ b/doc/devdocs/index/Functions13.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1312"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.rad = function(</td><td class=PParameter nowrap>x</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt1313"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 c [...]
+<div class=CToolTip id="tt1338"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>page: function(</td><td class="PParameter  prettyprint " nowrap>start,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Display the p [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions14.html b/doc/devdocs/index/Functions14.html
index 0f8a1b7..2efdd00 100644
--- a/doc/devdocs/index/Functions14.html
+++ b/doc/devdocs/index/Functions14.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1500"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.safeStopPropagation = function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="tt1501"><div class=CFunction><blockquote><table b [...]
+<div class=CToolTip id="tt1426"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>queuePotentialClick: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>This method is separated out largely to make testing easier (so we don&rs [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions15.html b/doc/devdocs/index/Functions15.html
index 81dedae..ab9a5a7 100644
--- a/doc/devdocs/index/Functions15.html
+++ b/doc/devdocs/index/Functions15.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1671"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>testTarget: function(</td><td class=PParameter nowrap>target,</td></tr><tr><td></td><td class=PParameter nowrap>loc</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt1672"><div class=CFunction><blockq [...]
+<div class=CToolTip id="tt1427"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.rad = function(</td><td class="PParameter  prettyprint " nowrap>x</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt1428"><div class=CFunction><blockquo [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions16.html b/doc/devdocs/index/Functions16.html
index 2237e3b..5120817 100644
--- a/doc/devdocs/index/Functions16.html
+++ b/doc/devdocs/index/Functions16.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1718"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>un: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div class=CToolTip id="tt1719"><div class=CFunction><b [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1763"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>value2regex: function(</td><td class=PParameter nowrap>wildCard,</td></tr><tr><td></td><td class=PParameter nowrap>singleChar,</td></tr><tr><td></td><td class=PParameter nowrap>escapeChar</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote> [...]
+<div class=CToolTip id="tt1666"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.safeStopPropagation = function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="t [...]
 
 </div><!--Index-->
 
@@ -25,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions17.html b/doc/devdocs/index/Functions17.html
index bf1e78e..713f6b1 100644
--- a/doc/devdocs/index/Functions17.html
+++ b/doc/devdocs/index/Functions17.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1766"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt1767"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1819"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><td class=PParameter nowrap>nextNode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This compa [...]
+<div class=CToolTip id="tt1850"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>testTarget: function(</td><td class="PParameter  prettyprint " nowrap>target,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>loc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></ [...]
 
 </div><!--Index-->
 
@@ -25,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions18.html b/doc/devdocs/index/Functions18.html
new file mode 100644
index 0000000..c9bb815
--- /dev/null
+++ b/doc/devdocs/index/Functions18.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1912"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>un: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div cl [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1970"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>value2regex: function(</td><td class="PParameter  prettyprint " nowrap>wildCard,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>singleChar,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>escapeChar</td><td class="PAfterPa [...]
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([31], 32);// --></script></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/index/Functions19.html b/doc/devdocs/index/Functions19.html
new file mode 100644
index 0000000..7ee4e2c
--- /dev/null
+++ b/doc/devdocs/index/Functions19.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1974"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt1975"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><ta [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2039"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>newNode,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>nextNode</td><td class="PAfterParameters   [...]
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([31], 32);// --></script></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/index/Functions2.html b/doc/devdocs/index/Functions2.html
index b2bb9dc..d208d5f 100644
--- a/doc/devdocs/index/Functions2.html
+++ b/doc/devdocs/index/Functions2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt112"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>baseLayerDraw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt113"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>beforeSelectFeature: function(</td><td class=PParameter nowrap>feature</td><t [...]
+<div class=CToolTip id="tt107"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">baseLayerDraw: function()</td></tr></table></blockquote></div></div><div class=CToolTip id="tt108"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>beforeSelectFeature: function(</td><td [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions3.html b/doc/devdocs/index/Functions3.html
index 731fdc7..b097622 100644
--- a/doc/devdocs/index/Functions3.html
+++ b/doc/devdocs/index/Functions3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt137"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>cacheFeatures: function(</td><td class=PParameter nowrap>event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Cache features before they are added to the layer.</div></div><div class=CToolTip id="tt138"><div class=CFunction><blockquote> [...]
+<div class=CToolTip id="tt134"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>cacheFeatures: function(</td><td class="PParameter  prettyprint " nowrap>event</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Cache features before they are added to the layer.</div></div><div class=CTool [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions4.html b/doc/devdocs/index/Functions4.html
index 4c94cf6..2360c28 100644
--- a/doc/devdocs/index/Functions4.html
+++ b/doc/devdocs/index/Functions4.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt341"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dashStyle: function(</td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>widthFactor</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt342"><div class=CFunction><bl [...]
+<div class=CToolTip id="tt347"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dashStyle: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>widthFactor</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></d [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions5.html b/doc/devdocs/index/Functions5.html
index 1a35fa0..135091e 100644
--- a/doc/devdocs/index/Functions5.html
+++ b/doc/devdocs/index/Functions5.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt613"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeIn: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PParameter nowrap>d</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class=CToolTip id="tt644"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeIn: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>c,</td></tr><tr><td></td><td class="PParameter  prettypr [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions6.html b/doc/devdocs/index/Functions6.html
index dc3be5e..4e94200 100644
--- a/doc/devdocs/index/Functions6.html
+++ b/doc/devdocs/index/Functions6.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt656"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>False : function()</td></tr></table></blockquote>A simple function to that just does “return false”. </div></div><div class=CToolTip id="tt657"><div class=CFunction>Return a partial GeoJSON object representing a single feature.</div></div><div class=CToolTip id="tt658"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 c [...]
+<div class=CToolTip id="tt690"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>failure: function (</td><td class="PParameter  prettyprint " nowrap>error</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>method called on browser’s geolocation failure</div></div><div class=CToolTip [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions7.html b/doc/devdocs/index/Functions7.html
index da9ef92..767d23b 100644
--- a/doc/devdocs/index/Functions7.html
+++ b/doc/devdocs/index/Functions7.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="#G">G</a> · <a href="Functions8.html#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt682"><div class=CFunction>Return a GeoJSON object representing a single geometry.</div></div><div class=CToolTip id="tt683"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>geometryClone: function()</td></tr></table></blockquote>Return a clone of the relevant geometry.</div></div><div class=CToolTip id="tt684"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>< [...]
+<div class=CToolTip id="tt724"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>geolocate: function (</td><td class="PParameter  prettyprint " nowrap>position</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Activates the control.</div></div><div class=CToolTip id="tt725"><div class=CF [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions8.html b/doc/devdocs/index/Functions8.html
index 1f65e60..fc9d307 100644
--- a/doc/devdocs/index/Functions8.html
+++ b/doc/devdocs/index/Functions8.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="#H">H</a> · <a href="Functions9 [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="#H">H</a> · <a href="Functions9 [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt980"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handle: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt981"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype [...]
+<div class=CToolTip id="tt1053"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handle: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt1054"><div class=CFunction><blockquote><table bo [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Functions9.html b/doc/devdocs/index/Functions9.html
index 3c9d7fd..2702892 100644
--- a/doc/devdocs/index/Functions9.html
+++ b/doc/devdocs/index/Functions9.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Function Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar><a href="Functions.html#Symbols">$#!</a> · 0-9 · <a href="Functions.html#A">A</a> · <a href="Functions2.html#B">B</a> · <a href="Functions3.html#C">C</a> · <a href="Functions4.html#D">D</a> · <a href="Functions5.html#E">E</a> · <a href="Functions6.html#F">F</a> · <a href="Functions7.html#G">G</a> · <a href="Functions8.html#H">H</a> · <a h [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1006"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt1007"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ignoreEvent: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToo [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1055"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>layerToContext: function(</td><td class=PParameter nowrap>layer</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Create a layer context object given a wms layer object.</div></div><div class=CToolTip id="tt1056"><div class=CFunction><blo [...]
+<div class=CToolTip id="tt1083"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt1084"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">iconOff: function()</td></tr></table></blockquote>Internal use, for use only with “controls[i].events.on/un”.</div></div><div class=CToolTip id="tt1085"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpad [...]
 
 </div><!--Index-->
 
@@ -25,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General.html b/doc/devdocs/index/General.html
index 67825d7..d54d626 100644
--- a/doc/devdocs/index/General.html
+++ b/doc/devdocs/index/General.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="#Symbols">$#!</a> · 0-9 · <a href="#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a href="Gener [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="#Symbols">$#!</a> · 0-9 · <a href="#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a href="Gener [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>_addButton:function(</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PParameter nowrap>img,</td></tr><tr><td></td><td class=PParameter nowrap>activeImg,</td></tr><tr><td></td><td class=PParameter nowrap>xy,</td></tr><tr><td></td><td class=PParameter nowrap>sz [...]
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>_addButton:function(</td><td class="PParameter  prettyprint " nowrap>id,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>img,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>activeImg,</td></tr><tr><td></td><td class="PParamet [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>abort: function(</td><td class=PParameter nowrap>response</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 ce [...]
+<div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>abort: function(</td><td class="PParameter  prettyprint " nowrap>response</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Abort an ongoing request.</div></div><div class=CToolTip id="tt11"><div class=CFunct [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General10.html b/doc/devdocs/index/General10.html
index 1302e7a..1431b36 100644
--- a/doc/devdocs/index/General10.html
+++ b/doc/devdocs/index/General10.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1613"><div class=CConstructor>Create a new parser for JSON.</div></div><div class=CToolTip id="tt1614"><div class=CProperty>{OpenLayers.Format.JSON}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1751"><div class=CConstructor>Create a new parser for JSON.</div></div><div class=CToolTip id="tt1752"><div class=CProperty>{OpenLayers.Format.JSON}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1615"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt1616"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt1617"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it  [...]
+<div class=CToolTip id="tt1753"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt1754"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt1755"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it  [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General11.html b/doc/devdocs/index/General11.html
index 8fbad3d..6fc08e1 100644
--- a/doc/devdocs/index/General11.html
+++ b/doc/devdocs/index/General11.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1632"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt1633"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1634"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1635"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1636"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1637"><div class=CProperty>{String} the format of the labels, default = &lsqu [...]
+<div class=CToolTip id="tt1772"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt1773"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1774"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1775"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1776"><div class=CConstant>{Object}</div></div><div class=CToolTip id="tt1777"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt1778 [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General12.html b/doc/devdocs/index/General12.html
index 4deae21..42c2f0a 100644
--- a/doc/devdocs/index/General12.html
+++ b/doc/devdocs/index/General12.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1739"><div class=CProperty>{OpenLayers.Map} this gets set in the addControl() function in OpenLayers.Map</div></div><div class=CToolTip id="tt1740"><div class=CProperty>{OpenLayers.Map}</div></div><div class=CToolTip id="tt1741"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt1742"><div class=CProperty>{OpenLayers.Map} the map this marker is at [...]
+<div class=CToolTip id="tt1891"><div class=CProperty>{OpenLayers.Map} this gets set in the addControl() function in OpenLayers.Map</div></div><div class=CToolTip id="tt1892"><div class=CProperty>{OpenLayers.Map}</div></div><div class=CToolTip id="tt1893"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt1894"><div class=CProperty>{OpenLayers.Map} the map this marker is at [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General13.html b/doc/devdocs/index/General13.html
index 8b8e28f..fd39a78 100644
--- a/doc/devdocs/index/General13.html
+++ b/doc/devdocs/index/General13.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1920"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt1921"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt1922"><div class=CProperty>{String} name of this rule</div></div><div class=CToolTip id="tt1923"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt1924"><div class=CProperty>{String} Style identifier.</div></div><div class=CToolTip id="tt1925"><div class=CProperty>{Boolean} Generate a name [...]
+<div class=CToolTip id="tt2085"><div class=CProperty>{String} Name of the function.</div></div><div class=CToolTip id="tt2086"><div class=CProperty>{String} The name of this parser, this is the part of the CLASS_NAME except for “OpenLayers.Format.”</div></div><div class=CToolTip id="tt2087"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt2088"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt2089"><div class=CProperty>{String} [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General14.html b/doc/devdocs/index/General14.html
index 388991d..f8b9706 100644
--- a/doc/devdocs/index/General14.html
+++ b/doc/devdocs/index/General14.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1973"><div class=CProperty>{Object}  the code object issuing application events</div></div><div class=CToolTip id="tt1974"><div class=CFunction>Transform an object into a JSON string.</div></div><div class=CToolTip id="tt1975"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>observe: function(</td><td class=PParameter nowrap>elem [...]
+<div class=CToolTip id="tt2150"><div class=CProperty>{Object}  the code object issuing application events</div></div><div class=CToolTip id="tt2151"><div class=CFunction>Transform an object into a JSON string.</div></div><div class=CToolTip id="tt2152"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>observe: function(</td><td class="PPar [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General15.html b/doc/devdocs/index/General15.html
index b20b449..15a2a44 100644
--- a/doc/devdocs/index/General15.html
+++ b/doc/devdocs/index/General15.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt2310"><div class=CProperty>{int or OpenLayers.Bounds} An extra opportunity to specify internal padding of the content div inside the popup. </div></div><div class=CToolTip id="tt2311"><div class=CProperty>{OpenLayers.Bounds} Outside margin of the popup. </div></div><div class=CToolTip id="tt2312"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforePa [...]
+<div class=CToolTip id="tt2520"><div class=CProperty>{int or OpenLayers.Bounds} An extra opportunity to specify internal padding of the content div inside the popup. </div></div><div class=CToolTip id="tt2521"><div class=CProperty>{OpenLayers.Bounds} Outside margin of the popup. </div></div><div class=CToolTip id="tt2522"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBefor [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General16.html b/doc/devdocs/index/General16.html
index 46d7b66..07961c5 100644
--- a/doc/devdocs/index/General16.html
+++ b/doc/devdocs/index/General16.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt2471"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt2472"><div class=CProperty>{Boolean} If true, filter out hidden layers when searching the map for layers to query. </div></div><div class=CToolTip id="tt2473"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2705"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt2706"><div class=CProperty>{Boolean} If true, filter out hidden layers when searching the map for layers to query. </div></div><div class=CToolTip id="tt2707"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><div class=CToolTip id="tt2708"><div class=CF [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General17.html b/doc/devdocs/index/General17.html
index 8319a2f..4df380b 100644
--- a/doc/devdocs/index/General17.html
+++ b/doc/devdocs/index/General17.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt2474"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.rad = function(</td><td class=PParameter nowrap>x</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2475"><div class=CProperty>{Float} Optional radius in map units of the regular polyg [...]
+<div class=CToolTip id="tt2709"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.rad = function(</td><td class="PParameter  prettyprint " nowrap>x</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt2710"><div class=CProperty>{Float} O [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General18.html b/doc/devdocs/index/General18.html
index 117d318..aa15e04 100644
--- a/doc/devdocs/index/General18.html
+++ b/doc/devdocs/index/General18.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt2770"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>OpenLayers.Util.safeStopPropagation = function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="tt2771"><div class=CFunction><blockquote><table b [...]
+<div class=CToolTip id="tt3071"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>OpenLayers.Util.safeStopPropagation = function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><b>Deprecated</b>. </div></div><div class=CToolTip id="t [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General19.html b/doc/devdocs/index/General19.html
index 18adb18..90ca2e1 100644
--- a/doc/devdocs/index/General19.html
+++ b/doc/devdocs/index/General19.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3083"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt3084"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div class=CToolTip id="tt3085"><div class=CProperty>{Integer} The maximum size of the grid in pixels on the map</div></div><div class=CToolTip id="tt3086"><div class [...]
+<div class=CToolTip id="tt3421"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt3422"><div class=CConstant>{Number} value for OpenLayers.Layer.PointTrack.dataFrom and OpenLayers.Layer.PointTrack.styleFrom</div></div><div class=CToolTip id="tt3423"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General2.html b/doc/devdocs/index/General2.html
index b172e15..50dc6b9 100644
--- a/doc/devdocs/index/General2.html
+++ b/doc/devdocs/index/General2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt152"><div class=CProperty>{OpenLayers.Tile} A clone of the tile used to create transition effects when the tile is moved or changes resolution.</div></div><div class=CToolTip id="tt153"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt154"><div class=CProperty>{String} the background color used by the popup.</div></div><div class=CToolTip id="tt155"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt156"><div class=CConstructor> [...]
+<div class=CToolTip id="tt154"><div class=CProperty>{OpenLayers.Tile} A clone of the tile used to create transition effects when the tile is moved or changes resolution.</div></div><div class=CToolTip id="tt155"><div class=CConstant>{String}</div></div><div class=CToolTip id="tt156"><div class=CProperty>{String} the background color used by the popup.</div></div><div class=CToolTip id="tt157"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt158"><div class=CConstructor> [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General20.html b/doc/devdocs/index/General20.html
index e405854..7f6e89d 100644
--- a/doc/devdocs/index/General20.html
+++ b/doc/devdocs/index/General20.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3199"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>un: function(</td><td class=PParameter nowrap>object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div class=CToolTip id="tt3200"><div class=CFunction><b [...]
+<div class=CToolTip id="tt3572"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>un: function(</td><td class="PParameter  prettyprint " nowrap>object</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Convenience method for unregistering listeners with a common scope. </div></div><div cl [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General21.html b/doc/devdocs/index/General21.html
index 94a7e48..de00ab0 100644
--- a/doc/devdocs/index/General21.html
+++ b/doc/devdocs/index/General21.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3267"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt3268"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt3269"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt3270"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip  [...]
+<div class=CToolTip id="tt3659"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt3660"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt3661"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip id="tt3662"><div class=CConstructor>Instances of this class are not created directly. </div></div><div class=CToolTip  [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General22.html b/doc/devdocs/index/General22.html
index 779e3dd..93e0a47 100644
--- a/doc/devdocs/index/General22.html
+++ b/doc/devdocs/index/General22.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3345"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt3346"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt3347"><div class=CConstructor>Create a WFS feature.</di [...]
+<div class=CToolTip id="tt3743"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt3744"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">warn: function()</td></tr></table></blockquote>Writes a message to the console with the visual “warning” icon and color coding and a hyperlink to the line where it was called.</div></div><div class=CToolTip id="tt3745"><div class=CProperty>{Boole [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General23.html b/doc/devdocs/index/General23.html
index 194880a..3a381d3 100644
--- a/doc/devdocs/index/General23.html
+++ b/doc/devdocs/index/General23.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3440"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt3441"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt3442"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt3443"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt3444"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt3445"><div class=CConstructor>Construct an XML parser. </div></div><div class=CToolTi [...]
+<div class=CToolTip id="tt3858"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt3859"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt3860"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt3861"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt3862"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt3863"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt3864"><div c [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3456"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt3457"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt3458"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt3459"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt3460"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><div cla [...]
+<div class=CToolTip id="tt3878"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt3879"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt3880"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt3881"><div class=CConstant>{Integer}</div></div><div class=CToolTip id="tt3882"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><div cla [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3463"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><div class=CToolTip id="tt3464"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>Z_ORDER: function(</td><td class=PParameter nowrap>indexer,</td></tr><tr><td></td><td class=PParameter nowrap>newNode,</td></tr><tr><td></td><td class=PParam [...]
+<div class=CToolTip id="tt3885"><div class=CConstant>{Object} Base z-indexes for different classes of thing</div></div><div class=CToolTip id="tt3886"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>Z_ORDER: function(</td><td class="PParameter  prettyprint " nowrap>indexer,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowra [...]
 
 </div><!--Index-->
 
@@ -29,10 +29,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General3.html b/doc/devdocs/index/General3.html
index 5f8c1e9..43afacc 100644
--- a/doc/devdocs/index/General3.html
+++ b/doc/devdocs/index/General3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt209"><div class=CProperty>{Object} Cache for elements that should only be created once per map.</div></div><div class=CToolTip id="tt210"><div class=CProperty>{Array(OpenLayers.Feature.Vector)} List of currently cached features.</div></div><div class=CToolTip id="tt211"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>cacheFeatur [...]
+<div class=CToolTip id="tt216"><div class=CProperty>{Object} Cache for elements that should only be created once per map.</div></div><div class=CToolTip id="tt217"><div class=CProperty>{Array(OpenLayers.Feature.Vector)} List of currently cached features.</div></div><div class=CToolTip id="tt218"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "n [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General4.html b/doc/devdocs/index/General4.html
index e448d57..d1ab140 100644
--- a/doc/devdocs/index/General4.html
+++ b/doc/devdocs/index/General4.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt476"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>dashStyle: function(</td><td class=PParameter nowrap>style,</td></tr><tr><td></td><td class=PParameter nowrap>widthFactor</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt477"><div class=CFunction><bl [...]
+<div class=CToolTip id="tt497"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>dashStyle: function(</td><td class="PParameter  prettyprint " nowrap>style,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>widthFactor</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></d [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General5.html b/doc/devdocs/index/General5.html
index 13e6afa..22854af 100644
--- a/doc/devdocs/index/General5.html
+++ b/doc/devdocs/index/General5.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt860"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>easeIn: function(</td><td class=PParameter nowrap>t,</td></tr><tr><td></td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PParameter nowrap>c,</td></tr><tr><td></td><td class=PParameter nowrap>d</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr [...]
+<div class=CToolTip id="tt922"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>easeIn: function(</td><td class="PParameter  prettyprint " nowrap>t,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>b,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>c,</td></tr><tr><td></td><td class="PParameter  prettypr [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General6.html b/doc/devdocs/index/General6.html
index 849713a..fc3ad44 100644
--- a/doc/devdocs/index/General6.html
+++ b/doc/devdocs/index/General6.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt964"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt965"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt966"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>False : function()</td></tr></table></blockquote>A simple function to that just does &ldquo [...]
+<div class=CToolTip id="tt1033"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>failure: function (</td><td class="PParameter  prettyprint " nowrap>error</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>method called on browser’s geolocation failure</div></div><div class=CToolTi [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General7.html b/doc/devdocs/index/General7.html
index b481fd7..dfcf509 100644
--- a/doc/devdocs/index/General7.html
+++ b/doc/devdocs/index/General7.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="#G">G</a> · <a href="General8.html#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1091"><div class=CProperty>{Boolean} Calculate geodesic metrics instead of planar metrics. </div></div><div class=CToolTip id="tt1092"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt1093"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt1094"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt1095"><div class=CProperty>{OpenLay [...]
+<div class=CToolTip id="tt1169"><div class=CProperty>{Boolean} Calculate geodesic metrics instead of planar metrics. </div></div><div class=CToolTip id="tt1170"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt1171"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt1172"><div class=CConstructor>Create a new parser for GeoJSON.</div></div><div class=CToolTip id="tt1173"><div class=CFunction><blockqu [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General8.html b/doc/devdocs/index/General8.html
index 2dfec38..d723d8d 100644
--- a/doc/devdocs/index/General8.html
+++ b/doc/devdocs/index/General8.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="#H">H</a> · <a href="General9.html#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1434"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt1435"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>handle: function(</td><td class=PParameter nowrap>evt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt1436"><div class [...]
+<div class=CToolTip id="tt1547"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt1548"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>handle: function(</td><td class="PParameter  prettyprint " nowrap>evt</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div> [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/General9.html b/doc/devdocs/index/General9.html
index 366b3c1..ee11805 100644
--- a/doc/devdocs/index/General9.html
+++ b/doc/devdocs/index/General9.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="#I">I</a> · <a  [...]
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar><a href="General.html#Symbols">$#!</a> · 0-9 · <a href="General.html#A">A</a> · <a href="General2.html#B">B</a> · <a href="General3.html#C">C</a> · <a href="General4.html#D">D</a> · <a href="General5.html#E">E</a> · <a href="General6.html#F">F</a> · <a href="General7.html#G">G</a> · <a href="General8.html#H">H</a> · <a href="#I">I</a> · <a  [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1490"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt1491"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt1492"><div class=CProperty>{OpenLayers.Icon} The icon used by this marker.</div></div><div class=CToolTip id="tt1493"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt1494"><div class=CProperty>{String}</div></div><div  [...]
+<div class=CToolTip id="tt1610"><div class=CFunction>Alias for OpenLayers.Lang.translate. </div></div><div class=CToolTip id="tt1611"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt1612"><div class=CProperty>{OpenLayers.Icon} The icon used by this marker.</div></div><div class=CToolTip id="tt1613"><div class=CConstructor>Creates an icon, which is an image tag in a div.</div></div><div class=CToolTip id="tt1614"><div class=CFunction><blockquote><table border [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties.html b/doc/devdocs/index/Properties.html
index c59d757..9b8416c 100644
--- a/doc/devdocs/index/Properties.html
+++ b/doc/devdocs/index/Properties.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="#Symbols">$#!</a> · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Properties7.html#I">I</a> &middo [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="#Symbols">$#!</a> · 0-9 · <a href="#A">A</a> · <a href="#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Properties7.html#I">I</a> &middo [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt2"><div class=CProperty>{String} Relative path of this script.</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CProperty>{Boolean}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt3"><div class=CProperty>{Boolean} The control is active.</div></div><div class=CToolTip id="tt4"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt5"><div class=CProperty>{Boolean} The control is active.</div></div><div class=CToolTip id="tt6"><div class=CProperty>{Integer}</div></div><div class=CToolTip id="tt7"><div class=CProperty>{Object} stores the active state of this panel’s controls.</div></div><div class=CToolTip id="tt8"><div cl [...]
+<div class=CToolTip id="tt2"><div class=CProperty>{Boolean} The control is active (read-only). </div></div><div class=CToolTip id="tt3"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt4"><div class=CProperty>{Boolean} The control is active.</div></div><div class=CToolTip id="tt5"><div class=CProperty>{Integer}</div></div><div class=CToolTip id="tt6"><div class=CProperty>{Object} stores the active state of this panel’s controls.</div></div><div class=CToolTip id= [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt37"><div class=CProperty>{OpenLayers.Tile} A clone of the tile used to create transition effects when the tile is moved or changes resolution.</div></div><div class=CToolTip id="tt38"><div class=CProperty>{String} the background color used by the popup.</div></div><div class=CToolTip id="tt39"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt40"><div class=CProperty>{OpenLayers.Layer} The currently selected base layer. </div></div><div class=CT [...]
+<div class=CToolTip id="tt43"><div class=CProperty>{OpenLayers.Tile} A clone of the tile used to create transition effects when the tile is moved or changes resolution.</div></div><div class=CToolTip id="tt44"><div class=CProperty>{String} the background color used by the popup.</div></div><div class=CToolTip id="tt45"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt46"><div class=CProperty>{OpenLayers.Layer} The currently selected base layer. </div></div><div class=CT [...]
 
 </div><!--Index-->
 
@@ -29,10 +29,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties10.html b/doc/devdocs/index/Properties10.html
index 3525343..9be2ced 100644
--- a/doc/devdocs/index/Properties10.html
+++ b/doc/devdocs/index/Properties10.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt662"><div class=CProperty>{Object}  the code object issuing application events</div></div><div class=CToolTip id="tt663"><div class=CProperty>{Object} A hashtable cache of the event observers. </div></div><div class=CToolTip id="tt664"><div class=CProperty>{OpenLayers.Pixel} distance in pixels to offset the image when being rendered</div></div><div class=CToolTip id="tt665"><div class=CProperty>{Object} Hash with “x” and “y” properties</d [...]
+<div class=CToolTip id="tt673"><div class=CProperty>{String} Name of the function.</div></div><div class=CToolTip id="tt674"><div class=CProperty>{String} The name of this parser, this is the part of the CLASS_NAME except for “OpenLayers.Format.”</div></div><div class=CToolTip id="tt675"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt676"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt677"><div class=CProperty>{String} name [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt688"><div class=CProperty>{int or OpenLayers.Bounds} An extra opportunity to specify internal padding of the content div inside the popup. </div></div><div class=CToolTip id="tt689"><div class=CProperty>{OpenLayers.Bounds} Outside margin of the popup. </div></div><div class=CToolTip id="tt690"><div class=CProperty>{Boolean} The strategy is currently changing pages.</div></div><div class=CToolTip id="tt691"><div class=CProperty>{Integer} The number of steps to be [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt754"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt755"><div class=CProperty>{Boolean} If true, filter out hidden layers when searching the map for layers to query. </div></div><div class=CToolTip id="tt756"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt725"><div class=CProperty>{Object}  the code object issuing application events</div></div><div class=CToolTip id="tt726"><div class=CProperty>{Object} A hashtable cache of the event observers. </div></div><div class=CToolTip id="tt727"><div class=CProperty>{OpenLayers.Pixel} distance in pixels to offset the image when being rendered</div></div><div class=CToolTip id="tt728"><div class=CProperty>{Object} Hash with “x” and “y” properties</d [...]
 
 </div><!--Index-->
 
@@ -29,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties11.html b/doc/devdocs/index/Properties11.html
index 0a0bc89..1eb6690 100644
--- a/doc/devdocs/index/Properties11.html
+++ b/doc/devdocs/index/Properties11.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt757"><div class=CProperty>{Float} Optional radius in map units of the regular polygon. </div></div><div class=CToolTip id="tt758"><div class=CProperty>{OpenLayers.Feature.Vector} A handle for rotating/resizing a feature.</div></div><div class=CToolTip id="tt759"><div class=CProperty>{Float} The ratio of the feature relative to the ratio the time the feature was set. </div></div><div class=CToolTip id="tt760"><div class=CProperty>{Float} Used only when in single- [...]
+<div class=CToolTip id="tt756"><div class=CProperty>{int or OpenLayers.Bounds} An extra opportunity to specify internal padding of the content div inside the popup. </div></div><div class=CToolTip id="tt757"><div class=CProperty>{OpenLayers.Bounds} Outside margin of the popup. </div></div><div class=CToolTip id="tt758"><div class=CProperty>{Boolean} The strategy is currently changing pages.</div></div><div class=CToolTip id="tt759"><div class=CProperty>{Integer} The number of steps to be [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt833"><div class=CProperty>{String} Value of the csw:Query element, used when writing a csw:GetRecords document.</div></div><div class=CToolTip id="tt834"><div class=CProperty>{Boolean} If true, filter out hidden layers when searching the map for layers to query. </div></div><div class=CToolTip id="tt835"><div class=CProperty>{Boolean} Filter out hidden layers when searching the map for layers to query. </div></div><!--END_ND_TOOLTIPS-->
 
 </div><!--Index-->
 
@@ -21,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties12.html b/doc/devdocs/index/Properties12.html
index 636c0c0..faf7b74 100644
--- a/doc/devdocs/index/Properties12.html
+++ b/doc/devdocs/index/Properties12.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt852"><div class=CProperty>{Boolean} Whether to save the feature state (OpenLayers.State) into the database, defaults to true.</div></div><div class=CToolTip id="tt853"><div class=CProperty>{Boolean} If set to true, the active state of this panel’s controls will be stored on panel deactivation, and restored on reactivation. </div></div><div class=CToolTip id="tt854"><div class=CProperty>{Float} The scale of the feature, relative to the scale the time the fe [...]
+<div class=CToolTip id="tt836"><div class=CProperty>{Float} Optional radius in map units of the regular polygon. </div></div><div class=CToolTip id="tt837"><div class=CProperty>{OpenLayers.Feature.Vector} A handle for rotating/resizing a feature.</div></div><div class=CToolTip id="tt838"><div class=CProperty>{Float} The ratio of the feature relative to the ratio the time the feature was set. </div></div><div class=CToolTip id="tt839"><div class=CProperty>{Float} Used only when in single- [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties13.html b/doc/devdocs/index/Properties13.html
index 1f348bc..e9d705c 100644
--- a/doc/devdocs/index/Properties13.html
+++ b/doc/devdocs/index/Properties13.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt974"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt975"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div class=CToolTip id="tt976"><div class=CProperty>{Integer} The maximum size of the grid in pixels on the map</div></div><div class=CToolTip id="tt977"><div class=CPr [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1033"><div class=CProperty>{String} The layer map units. </div></div><div class=CToolTip id="tt1034"><div class=CProperty>{?}</div></div><div class=CToolTip id="tt1035"><div class=CProperty>{String} The map units. </div></div><div class=CToolTip id="tt1036"><div class=CProperty>{Object} hash of features, keyed by feature.id, that the renderer failed to draw</div></div><div class=CToolTip id="tt1037"><div class=CProperty>{Array} Array with browsers, which should  [...]
+<div class=CToolTip id="tt946"><div class=CProperty>{Boolean} Whether to save the feature state (OpenLayers.State) into the database, defaults to true.</div></div><div class=CToolTip id="tt947"><div class=CProperty>{Boolean} If set to true, the active state of this panel’s controls will be stored on panel deactivation, and restored on reactivation. </div></div><div class=CToolTip id="tt948"><div class=CProperty>{Float} The scale of the feature, relative to the scale the time the fe [...]
 
 </div><!--Index-->
 
@@ -25,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties14.html b/doc/devdocs/index/Properties14.html
index e7c0f78..662af1b 100644
--- a/doc/devdocs/index/Properties14.html
+++ b/doc/devdocs/index/Properties14.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,25 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1055"><div class=CProperty>{Number} or {String} comparison value for binary comparisons. </div></div><div class=CToolTip id="tt1056"><div class=CProperty>{OpenLayers.Bounds || OpenLayers.Geometry} The bounds or geometry to be used by the filter. </div></div><div class=CToolTip id="tt1057"><div class=CProperty>{Boolean} Should be calculated automatically. </div></div><div class=CToolTip id="tt1058"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip  [...]
+<div class=CToolTip id="tt1090"><div class=CProperty>Name of the database table into which Features should be saved.</div></div><div class=CToolTip id="tt1091"><div class=CProperty>{OpenLayers.Filter} Optional filter that will be evaluated to determine if a feature from the target layer is eligible for splitting.</div></div><div class=CToolTip id="tt1092"><div class=CProperty>{Integer} The maximum size of the grid in pixels on the map</div></div><div class=CToolTip id="tt1093"><div class [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1091"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt1092"><div class=CProperty>{Object} Cache to use for storing parsed results from OpenLayers.Format.WFSDescribeFeatureType.read. </div></div><div class=CToolTip id="tt1093"><div class=CProperty>{function}</div></div><div class=CToolTip id="tt1094"><div class=CProperty>{Function}</div></div><div class=CToolTip id="tt1095"><div class=CProperty>{Float}</div></div><div class=CToolTip id="t [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1120"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1121"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt1122"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt1123"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt1124"><div class=CProperty>{XMLDom} If this browser uses ActiveX, this will be set to a XMLDOM object. </div></div><div class=CToolTip id="tt1125"><div class=C [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1134"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1135"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt1136"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt1137"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><div class=CToolTip id="tt1138"><div class=CProperty>{Object} Members in the yx ob [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt1140"><div class=CProperty>{Number} The zIndex determines the rendering order for a symbolizer. </div></div><div class=CToolTip id="tt1141"><div class=CProperty>{Integer} The current zoom level of the map</div></div><div class=CToolTip id="tt1142"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt1143"><div class=CProperty>{OpenLayers.Control.ZoomBox}</div></div><div class=CToolTip id="tt1144"><div class=CProperty>{Boolean} Whether the user  [...]
+<div class=CToolTip id="tt1168"><div class=CProperty>{String} The layer map units. </div></div><div class=CToolTip id="tt1169"><div class=CProperty>{?}</div></div><div class=CToolTip id="tt1170"><div class=CProperty>{String} The map units. </div></div><div class=CToolTip id="tt1171"><div class=CProperty>{Object} hash of features, keyed by feature.id, that the renderer failed to draw</div></div><div class=CToolTip id="tt1172"><div class=CProperty>{Array} Array with browsers, which should  [...]
 
 </div><!--Index-->
 
@@ -37,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties15.html b/doc/devdocs/index/Properties15.html
new file mode 100644
index 0000000..1690d0e
--- /dev/null
+++ b/doc/devdocs/index/Properties15.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1196"><div class=CProperty>{Number} or {String} comparison value for binary comparisons. </div></div><div class=CToolTip id="tt1197"><div class=CProperty>{OpenLayers.Bounds || OpenLayers.Geometry} The bounds or geometry to be used by the filter. </div></div><div class=CToolTip id="tt1198"><div class=CProperty>{Boolean} Should be calculated automatically. </div></div><div class=CToolTip id="tt1199"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip  [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1227"><div class=CProperty>{Number} width</div></div><div class=CToolTip id="tt1228"><div class=CProperty>{Boolean} If true, position will be update regularly.</div></div><div class=CToolTip id="tt1229"><div class=CProperty>{Object} Cache to use for storing parsed results from OpenLayers.Format.WFSDescribeFeatureType.read. </div></div><div class=CToolTip id="tt1230"><div class=CProperty>{function}</div></div><div class=CToolTip id="tt1231"><div class=CProperty>{ [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1262"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1263"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt1264"><div class=CProperty>{Number} The x coordinate</div></div><div class=CToolTip id="tt1265"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt1266"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt1267"><div class=CProperty>{XMLDom} If this browser uses ActiveX, this will be set to  [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1279"><div class=CProperty>{float}</div></div><div class=CToolTip id="tt1280"><div class=CProperty>{Float}</div></div><div class=CToolTip id="tt1281"><div class=CProperty>{Number} The y coordinate</div></div><div class=CToolTip id="tt1282"><div class=CProperty>{Object} Members in the yx object are used to determine if a CRS URN corresponds to a CRS with y,x axis order. </div></div><div class=CToolTip id="tt1283"><div class=CProperty>{Object} Members in the yx ob [...]
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1285"><div class=CProperty>{Number} The zIndex determines the rendering order for a symbolizer. </div></div><div class=CToolTip id="tt1286"><div class=CProperty>{Integer} The current zoom level of the map</div></div><div class=CToolTip id="tt1287"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt1288"><div class=CProperty>{OpenLayers.Control.ZoomBox}</div></div><div class=CToolTip id="tt1289"><div class=CProperty>{Boolean} Whether the user  [...]
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
+HideAllBut([31], 32);// --></script></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/index/Properties2.html b/doc/devdocs/index/Properties2.html
index 11bd9df..3bd0ed0 100644
--- a/doc/devdocs/index/Properties2.html
+++ b/doc/devdocs/index/Properties2.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt64"><div class=CProperty>{Object} Cache for elements that should only be created once per map.</div></div><div class=CToolTip id="tt65"><div class=CProperty>{Array(OpenLayers.Feature.Vector)} List of currently cached features.</div></div><div class=CToolTip id="tt66"><div class=CProperty>{Boolean} The filter is currently caching features.</div></div><div class=CToolTip id="tt67"><div class=CProperty>{OpenLayers.Pixel} Function to calculate the offset (based on t [...]
+<div class=CToolTip id="tt71"><div class=CProperty>{Object} Cache for elements that should only be created once per map.</div></div><div class=CToolTip id="tt72"><div class=CProperty>{Array(OpenLayers.Feature.Vector)} List of currently cached features.</div></div><div class=CToolTip id="tt73"><div class=CProperty>{Boolean} The filter is currently caching features.</div></div><div class=CToolTip id="tt74"><div class=CProperty>{OpenLayers.Pixel} Function to calculate the offset (based on t [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties3.html b/doc/devdocs/index/Properties3.html
index 14c2a55..31ce5be 100644
--- a/doc/devdocs/index/Properties3.html
+++ b/doc/devdocs/index/Properties3.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt119"><div class=CProperty>{Object}</div></div><div class=CToolTip id="tt120"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt121"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt122"><div class=CProperty>{Array(OpenLayers.Layer)}</div></div><div class=CToolTip id="tt123"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt124"><div class=CPrope [...]
+<div class=CToolTip id="tt131"><div class=CProperty>{Object}</div></div><div class=CToolTip id="tt132"><div class=CProperty>{Object} When keepData is true, this is the parsed string sent to read.</div></div><div class=CToolTip id="tt133"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt134"><div class=CProperty>{Array(OpenLayers.Layer)}</div></div><div class=CToolTip id="tt135"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt136"><div class=CPrope [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties4.html b/doc/devdocs/index/Properties4.html
index 45950e1..c1790ac 100644
--- a/doc/devdocs/index/Properties4.html
+++ b/doc/devdocs/index/Properties4.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt212"><div class=CProperty>{<OpenLayers.Easing>(Function)} Easing equation used for the animation Defaultly set to OpenLayers.Easing.Expo.easeOut</div></div><div class=CToolTip id="tt213"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt214"><div class=CProperty>{Boolean} Allow splits given intersection of edges only. </div></div><div class=CToolTip id="tt215"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt216"> [...]
+<div class=CToolTip id="tt240"><div class=CProperty>{<OpenLayers.Easing>(Function)} Easing equation used for the animation Defaultly set to OpenLayers.Easing.Expo.easeOut</div></div><div class=CToolTip id="tt241"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt242"><div class=CProperty>{Boolean} Allow splits given intersection of edges only. </div></div><div class=CToolTip id="tt243"><div class=CProperty>{DOMElement}</div></div><div class=CToolTip id="tt244"> [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties5.html b/doc/devdocs/index/Properties5.html
index 5b99f20..520af64 100644
--- a/doc/devdocs/index/Properties5.html
+++ b/doc/devdocs/index/Properties5.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> · <a href="Pro [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt260"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt261"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt262"><div class=CProperty>{OpenLayers.Feature.Vector}</div></div><div class=CToolTip id="tt263"><div class=CProperty>{OpenLayers.Feature.Vector} Feature currently available for modification.</div>< [...]
+<div class=CToolTip id="tt292"><div class=CProperty>{Boolean}</div></div><div class=CToolTip id="tt293"><div class=CProperty>{Boolean} Should OpenLayers allow events on the map to fall through to other elements on the page, or should it swallow them?  </div></div><div class=CToolTip id="tt294"><div class=CProperty>{OpenLayers.Feature.Vector}</div></div><div class=CToolTip id="tt295"><div class=CProperty>{OpenLayers.Feature.Vector} Feature currently available for modification.</div>< [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties6.html b/doc/devdocs/index/Properties6.html
index 48e290b..d329cf2 100644
--- a/doc/devdocs/index/Properties6.html
+++ b/doc/devdocs/index/Properties6.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,13 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="Properties7.html#I" [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="#G">G</a> · <a href="#H">H</a> · <a href="Properties7.html#I" [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt350"><div class=CProperty>{Boolean} Calculate geodesic metrics instead of planar metrics. </div></div><div class=CToolTip id="tt351"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt352"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt353"><div class=CProperty>{OpenLayers.Geometry}</div></div><div class=CToolTip id="tt354"><div class=CProperty>{String} Name of geometry e [...]
+<div class=CToolTip id="tt384"><div class=CProperty>{Boolean} Calculate geodesic metrics instead of planar metrics. </div></div><div class=CToolTip id="tt385"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt386"><div class=CProperty>{Boolean} Use geodesic measurement. </div></div><div class=CToolTip id="tt387"><div class=CProperty>{Object} The geolocation engine, as a property to be possibly mocked.</div></div><div class=CToolTip id="tt388"> [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt385"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt386"><div class=CProperty>{OpenLayers.Handler} null</div></div><div class=CToolTip id="tt387"><div class=CProperty>{OpenLayers.Handler.Path} The temporary sketch handler created if no source layer is provided.</div></div><div class=CToolTip id="tt388"><div class=CProperty>{Object} Reference to the OpenLayers.Handler for this control</div></div><div class=CToolTip id="tt389"><div class [...]
+<div class=CToolTip id="tt422"><div class=CProperty>{Number} height</div></div><div class=CToolTip id="tt423"><div class=CProperty>{OpenLayers.Handler} null</div></div><div class=CToolTip id="tt424"><div class=CProperty>{OpenLayers.Handler.Path} The temporary sketch handler created if no source layer is provided.</div></div><div class=CToolTip id="tt425"><div class=CProperty>{Object} Reference to the OpenLayers.Handler for this control</div></div><div class=CToolTip id="tt426"><div class [...]
 
 </div><!--Index-->
 
@@ -25,10 +25,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties7.html b/doc/devdocs/index/Properties7.html
index 2eece73..38da96b 100644
--- a/doc/devdocs/index/Properties7.html
+++ b/doc/devdocs/index/Properties7.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,17 +11,17 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt412"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt413"><div class=CProperty>{OpenLayers.Icon} The icon used by this marker.</div></div><div class=CToolTip id="tt414"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt415"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt416"><div class=CProperty>{String} A unique identifier for this geometry.</div></div><div class=CToolTip id="tt417"><div class=C [...]
+<div class=CToolTip id="tt452"><div class=CProperty>{OpenLayers.Icon}. </div></div><div class=CToolTip id="tt453"><div class=CProperty>{OpenLayers.Icon} The icon used by this marker.</div></div><div class=CToolTip id="tt454"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt455"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt456"><div class=CProperty>{String} A unique identifier for this geometry.</div></div><div class=CToolTip id="tt457"><div class=C [...]
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt480"><div class=CProperty>{OpenLayers.Format.JSON}</div></div><!--END_ND_TOOLTIPS-->
+<div class=CToolTip id="tt520"><div class=CProperty>{OpenLayers.Format.JSON}</div></div><!--END_ND_TOOLTIPS-->
 
 
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt481"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt482"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt483"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it alw [...]
+<div class=CToolTip id="tt521"><div class=CProperty>{Object} Maintain a reference (data) to the most recently read data. </div></div><div class=CToolTip id="tt522"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it always fits in the available map space. </div></div><div class=CToolTip id="tt523"><div class=CProperty>{Boolean} If panMapIfOutOfView is false, and this property is true, contrain the popup such that it alw [...]
 
 </div><!--Index-->
 
@@ -29,10 +29,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties8.html b/doc/devdocs/index/Properties8.html
index 567a511..f18dd74 100644
--- a/doc/devdocs/index/Properties8.html
+++ b/doc/devdocs/index/Properties8.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,9 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt486"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt487"><div class=CProperty>{String} the format of the labels, default = ‘dm’. </div></div><div class=CToolTip id="tt488"><div class=CProperty>{Boolean} Should the graticule lines be labelled?. </div></div><div class=CToolTip id="tt489"><div class=CProperty>{symbolizer} the symbolizer used to render labels</div></div><div class=CToolTip id="tt490"><div class [...]
+<div class=CToolTip id="tt528"><div class=CProperty>{String} The text for the label.</div></div><div class=CToolTip id="tt529"><div class=CProperty>{String} the format of the labels, default = ‘dm’. </div></div><div class=CToolTip id="tt530"><div class=CProperty>{Boolean} Should the graticule lines be labelled?. </div></div><div class=CToolTip id="tt531"><div class=CProperty>{symbolizer} the symbolizer used to render labels</div></div><div class=CToolTip id="tt532"><div class [...]
 
 </div><!--Index-->
 
@@ -21,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/index/Properties9.html b/doc/devdocs/index/Properties9.html
index 67b3fce..e6e7232 100644
--- a/doc/devdocs/index/Properties9.html
+++ b/doc/devdocs/index/Properties9.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Property Index - OpenLayers</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,13 +11,9 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
+<div id=Index><div class=IPageTitle>Property Index</div><div class=INavigationBar><a href="Properties.html#Symbols">$#!</a> · 0-9 · <a href="Properties.html#A">A</a> · <a href="Properties.html#B">B</a> · <a href="Properties2.html#C">C</a> · <a href="Properties3.html#D">D</a> · <a href="Properties4.html#E">E</a> · <a href="Properties5.html#F">F</a> · <a href="Properties6.html#G">G</a> · <a href="Properties6.html#H">H</a> &midd [...]
 <!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt556"><div class=CProperty>{OpenLayers.Map} this gets set in the addControl() function in OpenLayers.Map</div></div><div class=CToolTip id="tt557"><div class=CProperty>{OpenLayers.Map}</div></div><div class=CToolTip id="tt558"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt559"><div class=CProperty>{OpenLayers.Map} the map this marker is attach [...]
-
-
-<!--START_ND_TOOLTIPS-->
-<div class=CToolTip id="tt620"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt621"><div class=CProperty>{String} Layer name. </div></div><div class=CToolTip id="tt622"><div class=CProperty>{String} name of this rule</div></div><div class=CToolTip id="tt623"><div class=CProperty>{String}</div></div><div class=CToolTip id="tt624"><div class=CProperty>{String} Style identifier.</div></div><div class=CToolTip id="tt625"><div class=CProperty>{Boolean} Generate a namedLayer [...]
+<div class=CToolTip id="tt601"><div class=CProperty>{OpenLayers.Map} this gets set in the addControl() function in OpenLayers.Map</div></div><div class=CToolTip id="tt602"><div class=CProperty>{OpenLayers.Map}</div></div><div class=CToolTip id="tt603"><div class=CProperty>{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().</div></div><div class=CToolTip id="tt604"><div class=CProperty>{OpenLayers.Map} the map this marker is attach [...]
 
 </div><!--Index-->
 
@@ -25,10 +21,10 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
 
 
-<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent34')">OpenLayers</a><div class=MGroupContent id=MGroupContent34><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">BaseTypes</a><div class=MGroupContent id=MGroupContent1><div c [...]
+<div id=Menu><div class=MTitle>OpenLayers<div class=MSubTitle>JavaScript Mapping Library</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent30')">OpenLayers</a><div class=MGroupContent id=MGroupContent30><div class=MEntry><div class=MFile><a href="../files/OpenLayers-js.html">OpenLayers</a></div></div><div class=MEntry><div class=MFile><a href="../files/OpenLayers/Ajax-js.html">Ajax</a></div></div><div class=MEntry><div class=MGroup><a href="javas [...]
 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value=" [...]
-HideAllBut([35], 36);// --></script></div><!--Menu-->
+HideAllBut([31], 32);// --></script></div><!--Menu-->
 
 
 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
diff --git a/doc/devdocs/javascript/main.js b/doc/devdocs/javascript/main.js
index d9b8d3a..3f42acd 100644
--- a/doc/devdocs/javascript/main.js
+++ b/doc/devdocs/javascript/main.js
@@ -1,5 +1,10 @@
-// This file is part of Natural Docs, which is Copyright (C) 2003-2005 Greg Valure
-// Natural Docs is licensed under the GPL
+// This file is part of Natural Docs, which is Copyright � 2003-2010 Greg Valure
+// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
+// Refer to License.txt for the complete details
+
+// This file may be distributed with documentation files generated by Natural Docs.
+// Such documentation is not covered by Natural Docs' copyright and licensing,
+// and may have its own copyright and distribution terms as decided by its author.
 
 
 //
@@ -564,7 +569,8 @@ function SearchPanel(name, mode, resultsPath)
             // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
             // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
             // page anyway to get around the bug.
-            (browserType == "IE" && hasResultsPage && resultsFrame.searchResults.lastMatchCount == 0) )
+            (browserType == "IE" && hasResultsPage &&
+            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
 
             {
             resultsFrame.location.href = resultsPageWithSearch;
diff --git a/doc/devdocs/javascript/prettify.js b/doc/devdocs/javascript/prettify.js
new file mode 100644
index 0000000..fda4bf1
--- /dev/null
+++ b/doc/devdocs/javascript/prettify.js
@@ -0,0 +1,1526 @@
+
+// This code comes from the December 2009 release of Google Prettify, which is Copyright � 2006 Google Inc.
+// Minor modifications are marked with "ND Change" comments.
+// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.)
+// However, it may also be obtained separately under version 2.0 of the Apache License.
+// Refer to License.txt for the complete details
+
+
+// Main code
+// ____________________________________________________________________________
+
+// Copyright (C) 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ * <p>
+ *
+ * For a fairly comprehensive set of languages see the
+ * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
+ * file that came with this source.  At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ * <p>
+ * Usage: <ol>
+ * <li> include this source file in an html page via
+ *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
+ * <li> define style rules.  See the example page for examples.
+ * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
+ *    {@code class=prettyprint.}
+ *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
+ *    printer needs to do more substantial DOM manipulations to support that, so
+ *    some css styles may not be preserved.
+ * </ol>
+ * That's it.  I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code <pre>} or {@code <code>} element to specify the
+ * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ * <p>
+ * Change log:<br>
+ * cbeust, 2006/08/22
+ * <blockquote>
+ *   Java annotations (start with "@") are now captured as literals ("lit")
+ * </blockquote>
+ * @requires console
+ * @overrides window
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window */
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+/** the number of characters between tab columns */
+window['PR_TAB_WIDTH'] = 8;
+
+/** Walks the DOM returning a properly escaped version of innerHTML.
+  * @param {Node} node
+  * @param {Array.<string>} out output buffer that receives chunks of HTML.
+  */
+window['PR_normalizedHtml']
+
+/** Contains functions for creating and registering new language handlers.
+  * @type {Object}
+  */
+  = window['PR']
+
+/** Pretty print a chunk of code.
+  *
+  * @param {string} sourceCodeHtml code as html
+  * @return {string} code as html, but prettier
+  */
+  = window['prettyPrintOne']
+/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
+  * {@code class=prettyprint} and prettify them.
+  * @param {Function?} opt_whenDone if specified, called when the last entry
+  *     has been finished.
+  */
+  = window['prettyPrint'] = void 0;
+
+/** browser detection. @extern @returns false if not IE, otherwise the major version. */
+window['_pr_isIE6'] = function () {
+  var ieVersion = navigator && navigator.userAgent &&
+      navigator.userAgent.match(/\bMSIE ([678])\./);
+  ieVersion = ieVersion ? +ieVersion[1] : false;
+  window['_pr_isIE6'] = function () { return ieVersion; };
+  return ieVersion;
+};
+
+
+(function () {
+  // Keyword lists for various languages.
+  var FLOW_CONTROL_KEYWORDS =
+      "break continue do else for if return while ";
+  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
+      "double enum extern float goto int long register short signed sizeof " +
+      "static struct switch typedef union unsigned void volatile ";
+  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
+      "new operator private protected public this throw true try typeof ";
+  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
+      "concept concept_map const_cast constexpr decltype " +
+      "dynamic_cast explicit export friend inline late_check " +
+      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
+      "template typeid typename using virtual wchar_t where ";
+  var JAVA_KEYWORDS = COMMON_KEYWORDS +
+      "abstract boolean byte extends final finally implements import " +
+      "instanceof null native package strictfp super synchronized throws " +
+      "transient ";
+  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
+      "as base by checked decimal delegate descending event " +
+      "fixed foreach from group implicit in interface internal into is lock " +
+      "object out override orderby params partial readonly ref sbyte sealed " +
+      "stackalloc string select uint ulong unchecked unsafe ushort var ";
+  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
+      "debugger eval export function get null set undefined var with " +
+      "Infinity NaN ";
+  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
+      "goto if import last local my next no our print package redo require " +
+      "sub undef unless until use wantarray while BEGIN END ";
+  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
+      "elif except exec finally from global import in is lambda " +
+      "nonlocal not or pass print raise try with yield " +
+      "False True None ";
+  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
+      " defined elsif end ensure false in module next nil not or redo rescue " +
+      "retry self super then true undef unless until when yield BEGIN END ";
+  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
+      "function in local set then until ";
+  var ALL_KEYWORDS = (
+      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
+      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
+
+  // token style names.  correspond to css classes
+  /** token style for a string literal */
+  var PR_STRING = 'str';
+  /** token style for a keyword */
+  var PR_KEYWORD = 'kwd';
+  /** token style for a comment */
+  var PR_COMMENT = 'com';
+  /** token style for a type */
+  var PR_TYPE = 'typ';
+  /** token style for a literal value.  e.g. 1, null, true. */
+  var PR_LITERAL = 'lit';
+  /** token style for a punctuation string. */
+  var PR_PUNCTUATION = 'pun';
+  /** token style for a punctuation string. */
+  var PR_PLAIN = 'pln';
+
+  /** token style for an sgml tag. */
+  var PR_TAG = 'tag';
+  /** token style for a markup declaration such as a DOCTYPE. */
+  var PR_DECLARATION = 'dec';
+  /** token style for embedded source. */
+  var PR_SOURCE = 'src';
+  /** token style for an sgml attribute name. */
+  var PR_ATTRIB_NAME = 'atn';
+  /** token style for an sgml attribute value. */
+  var PR_ATTRIB_VALUE = 'atv';
+
+  /**
+   * A class that indicates a section of markup that is not code, e.g. to allow
+   * embedding of line numbers within code listings.
+   */
+  var PR_NOCODE = 'nocode';
+
+  /** A set of tokens that can precede a regular expression literal in
+    * javascript.
+    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
+    * list, but I've removed ones that might be problematic when seen in
+    * languages that don't support regular expression literals.
+    *
+    * <p>Specifically, I've removed any keywords that can't precede a regexp
+    * literal in a syntactically legal javascript program, and I've removed the
+    * "in" keyword since it's not a keyword in many languages, and might be used
+    * as a count of inches.
+    *
+    * <p>The link a above does not accurately describe EcmaScript rules since
+    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+    * very well in practice.
+    *
+    * @private
+    */
+  var REGEXP_PRECEDER_PATTERN = function () {
+      var preceders = [
+          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
+          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
+          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
+          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
+          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
+          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
+          "||=", "~" /* handles =~ and !~ */,
+          "break", "case", "continue", "delete",
+          "do", "else", "finally", "instanceof",
+          "return", "throw", "try", "typeof"
+          ];
+      var pattern = '(?:^^|[+-]';
+      for (var i = 0; i < preceders.length; ++i) {
+        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
+      }
+      pattern += ')\\s*';  // matches at end, and matches empty string
+      return pattern;
+      // CAVEAT: this does not properly handle the case where a regular
+      // expression immediately follows another since a regular expression may
+      // have flags for case-sensitivity and the like.  Having regexp tokens
+      // adjacent is not valid in any language I'm aware of, so I'm punting.
+      // TODO: maybe style special characters inside a regexp as punctuation.
+    }();
+
+  // Define regexps here so that the interpreter doesn't have to create an
+  // object each time the function containing them is called.
+  // The language spec requires a new object created even if you don't access
+  // the $1 members.
+  var pr_amp = /&/g;
+  var pr_lt = /</g;
+  var pr_gt = />/g;
+  var pr_quot = /\"/g;
+  /** like textToHtml but escapes double quotes to be attribute safe. */
+  function attribToHtml(str) {
+    return str.replace(pr_amp, '&')
+        .replace(pr_lt, '<')
+        .replace(pr_gt, '>')
+        .replace(pr_quot, '"');
+  }
+
+  /** escapest html special characters to html. */
+  function textToHtml(str) {
+    return str.replace(pr_amp, '&')
+        .replace(pr_lt, '<')
+        .replace(pr_gt, '>');
+  }
+
+
+  var pr_ltEnt = /</g;
+  var pr_gtEnt = />/g;
+  var pr_aposEnt = /'/g;
+  var pr_quotEnt = /"/g;
+  var pr_ampEnt = /&/g;
+  var pr_nbspEnt = / /g;
+  /** unescapes html to plain text. */
+  function htmlToText(html) {
+    var pos = html.indexOf('&');
+    if (pos < 0) { return html; }
+    // Handle numeric entities specially.  We can't use functional substitution
+    // since that doesn't work in older versions of Safari.
+    // These should be rare since most browsers convert them to normal chars.
+    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
+      var end = html.indexOf(';', pos);
+      if (end >= 0) {
+        var num = html.substring(pos + 3, end);
+        var radix = 10;
+        if (num && num.charAt(0) === 'x') {
+          num = num.substring(1);
+          radix = 16;
+        }
+        var codePoint = parseInt(num, radix);
+        if (!isNaN(codePoint)) {
+          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
+                  html.substring(end + 1));
+        }
+      }
+    }
+
+    return html.replace(pr_ltEnt, '<')
+        .replace(pr_gtEnt, '>')
+        .replace(pr_aposEnt, "'")
+        .replace(pr_quotEnt, '"')
+        .replace(pr_nbspEnt, ' ')
+        .replace(pr_ampEnt, '&');
+  }
+
+  /** is the given node's innerHTML normally unescaped? */
+  function isRawContent(node) {
+    return 'XMP' === node.tagName;
+  }
+
+  var newlineRe = /[\r\n]/g;
+  /**
+   * Are newlines and adjacent spaces significant in the given node's innerHTML?
+   */
+  function isPreformatted(node, content) {
+    // PRE means preformatted, and is a very common case, so don't create
+    // unnecessary computed style objects.
+    if ('PRE' === node.tagName) { return true; }
+    if (!newlineRe.test(content)) { return true; }  // Don't care
+    var whitespace = '';
+    // For disconnected nodes, IE has no currentStyle.
+    if (node.currentStyle) {
+      whitespace = node.currentStyle.whiteSpace;
+    } else if (window.getComputedStyle) {
+      // Firefox makes a best guess if node is disconnected whereas Safari
+      // returns the empty string.
+      whitespace = window.getComputedStyle(node, null).whiteSpace;
+    }
+    return !whitespace || whitespace === 'pre';
+  }
+
+  function normalizedHtml(node, out) {
+    switch (node.nodeType) {
+      case 1:  // an element
+        var name = node.tagName.toLowerCase();
+        out.push('<', name);
+        for (var i = 0; i < node.attributes.length; ++i) {
+          var attr = node.attributes[i];
+          if (!attr.specified) { continue; }
+          out.push(' ');
+          normalizedHtml(attr, out);
+        }
+        out.push('>');
+        for (var child = node.firstChild; child; child = child.nextSibling) {
+          normalizedHtml(child, out);
+        }
+        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
+          out.push('<\/', name, '>');
+        }
+        break;
+      case 2: // an attribute
+        out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
+        break;
+      case 3: case 4: // text
+        out.push(textToHtml(node.nodeValue));
+        break;
+    }
+  }
+
+  /**
+   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+   * matches the union o the sets o strings matched d by the input RegExp.
+   * Since it matches globally, if the input strings have a start-of-input
+   * anchor (/^.../), it is ignored for the purposes of unioning.
+   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
+   * @return {RegExp} a global regex.
+   */
+  function combinePrefixPatterns(regexs) {
+    var capturedGroupIndex = 0;
+
+    var needToFoldCase = false;
+    var ignoreCase = false;
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.ignoreCase) {
+        ignoreCase = true;
+      } else if (/[a-z]/i.test(regex.source.replace(
+                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+        needToFoldCase = true;
+        ignoreCase = false;
+        break;
+      }
+    }
+
+    function decodeEscape(charsetPart) {
+      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
+      switch (charsetPart.charAt(1)) {
+        case 'b': return 8;
+        case 't': return 9;
+        case 'n': return 0xa;
+        case 'v': return 0xb;
+        case 'f': return 0xc;
+        case 'r': return 0xd;
+        case 'u': case 'x':
+          return parseInt(charsetPart.substring(2), 16)
+              || charsetPart.charCodeAt(1);
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7':
+          return parseInt(charsetPart.substring(1), 8);
+        default: return charsetPart.charCodeAt(1);
+      }
+    }
+
+    function encodeEscape(charCode) {
+      if (charCode < 0x20) {
+        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+      }
+      var ch = String.fromCharCode(charCode);
+      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
+        ch = '\\' + ch;
+      }
+      return ch;
+    }
+
+    function caseFoldCharset(charSet) {
+      var charsetParts = charSet.substring(1, charSet.length - 1).match(
+          new RegExp(
+              '\\\\u[0-9A-Fa-f]{4}'
+              + '|\\\\x[0-9A-Fa-f]{2}'
+              + '|\\\\[0-3][0-7]{0,2}'
+              + '|\\\\[0-7]{1,2}'
+              + '|\\\\[\\s\\S]'
+              + '|-'
+              + '|[^-\\\\]',
+              'g'));
+      var groups = [];
+      var ranges = [];
+      var inverse = charsetParts[0] === '^';
+      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+        var p = charsetParts[i];
+        switch (p) {
+          case '\\B': case '\\b':
+          case '\\D': case '\\d':
+          case '\\S': case '\\s':
+          case '\\W': case '\\w':
+            groups.push(p);
+            continue;
+        }
+        var start = decodeEscape(p);
+        var end;
+        if (i + 2 < n && '-' === charsetParts[i + 1]) {
+          end = decodeEscape(charsetParts[i + 2]);
+          i += 2;
+        } else {
+          end = start;
+        }
+        ranges.push([start, end]);
+        // If the range might intersect letters, then expand it.
+        if (!(end < 65 || start > 122)) {
+          if (!(end < 65 || start > 90)) {
+            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+          }
+          if (!(end < 97 || start > 122)) {
+            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+          }
+        }
+      }
+
+      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+      // -> [[1, 12], [14, 14], [16, 17]]
+      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
+      var consolidatedRanges = [];
+      var lastRange = [NaN, NaN];
+      for (var i = 0; i < ranges.length; ++i) {
+        var range = ranges[i];
+        if (range[0] <= lastRange[1] + 1) {
+          lastRange[1] = Math.max(lastRange[1], range[1]);
+        } else {
+          consolidatedRanges.push(lastRange = range);
+        }
+      }
+
+      var out = ['['];
+      if (inverse) { out.push('^'); }
+      out.push.apply(out, groups);
+      for (var i = 0; i < consolidatedRanges.length; ++i) {
+        var range = consolidatedRanges[i];
+        out.push(encodeEscape(range[0]));
+        if (range[1] > range[0]) {
+          if (range[1] + 1 > range[0]) { out.push('-'); }
+          out.push(encodeEscape(range[1]));
+        }
+      }
+      out.push(']');
+      return out.join('');
+    }
+
+    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+      // Split into character sets, escape sequences, punctuation strings
+      // like ('(', '(?:', ')', '^'), and runs of characters that do not
+      // include any of the above.
+      var parts = regex.source.match(
+          new RegExp(
+              '(?:'
+              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
+              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
+              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
+              + '|\\\\[0-9]+'  // a back-reference or octal escape
+              + '|\\\\[^ux0-9]'  // other escape sequence
+              + '|\\(\\?[:!=]'  // start of a non-capturing group
+              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
+              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
+              + ')',
+              'g'));
+      var n = parts.length;
+
+      // Maps captured group numbers to the number they will occupy in
+      // the output or to -1 if that has not been determined, or to
+      // undefined if they need not be capturing in the output.
+      var capturedGroups = [];
+
+      // Walk over and identify back references to build the capturedGroups
+      // mapping.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          // groups are 1-indexed, so max group index is count of '('
+          ++groupIndex;
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            capturedGroups[decimalValue] = -1;
+          }
+        }
+      }
+
+      // Renumber groups and reduce capturing groups to non-capturing groups
+      // where possible.
+      for (var i = 1; i < capturedGroups.length; ++i) {
+        if (-1 === capturedGroups[i]) {
+          capturedGroups[i] = ++capturedGroupIndex;
+        }
+      }
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          ++groupIndex;
+          if (capturedGroups[groupIndex] === undefined) {
+            parts[i] = '(?:';
+          }
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            parts[i] = '\\' + capturedGroups[groupIndex];
+          }
+        }
+      }
+
+      // Remove any prefix anchors so that the output will match anywhere.
+      // ^^ really does mean an anchored match though.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+      }
+
+      // Expand letters to groupts to handle mixing of case-sensitive and
+      // case-insensitive patterns if necessary.
+      if (regex.ignoreCase && needToFoldCase) {
+        for (var i = 0; i < n; ++i) {
+          var p = parts[i];
+          var ch0 = p.charAt(0);
+          if (p.length >= 2 && ch0 === '[') {
+            parts[i] = caseFoldCharset(p);
+          } else if (ch0 !== '\\') {
+            // TODO: handle letters in numeric escapes.
+            parts[i] = p.replace(
+                /[a-zA-Z]/g,
+                function (ch) {
+                  var cc = ch.charCodeAt(0);
+                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+                });
+          }
+        }
+      }
+
+      return parts.join('');
+    }
+
+    var rewritten = [];
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.global || regex.multiline) { throw new Error('' + regex); }
+      rewritten.push(
+          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+    }
+
+    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+  }
+
+  var PR_innerHtmlWorks = null;
+  function getInnerHtml(node) {
+    // inner html is hopelessly broken in Safari 2.0.4 when the content is
+    // an html description of well formed XML and the containing tag is a PRE
+    // tag, so we detect that case and emulate innerHTML.
+    if (null === PR_innerHtmlWorks) {
+      var testNode = document.createElement('PRE');
+      testNode.appendChild(
+          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
+      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
+    }
+
+    if (PR_innerHtmlWorks) {
+      var content = node.innerHTML;
+      // XMP tags contain unescaped entities so require special handling.
+      if (isRawContent(node)) {
+        content = textToHtml(content);
+      } else if (!isPreformatted(node, content)) {
+        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
+            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
+      }
+      return content;
+    }
+
+    var out = [];
+    for (var child = node.firstChild; child; child = child.nextSibling) {
+      normalizedHtml(child, out);
+    }
+    return out.join('');
+  }
+
+  /** returns a function that expand tabs to spaces.  This function can be fed
+    * successive chunks of text, and will maintain its own internal state to
+    * keep track of how tabs are expanded.
+    * @return {function (string) : string} a function that takes
+    *   plain text and return the text with tabs expanded.
+    * @private
+    */
+  function makeTabExpander(tabWidth) {
+    var SPACES = '                ';
+    var charInLine = 0;
+
+    return function (plainText) {
+      // walk over each character looking for tabs and newlines.
+      // On tabs, expand them.  On newlines, reset charInLine.
+      // Otherwise increment charInLine
+      var out = null;
+      var pos = 0;
+      for (var i = 0, n = plainText.length; i < n; ++i) {
+        var ch = plainText.charAt(i);
+
+        switch (ch) {
+          case '\t':
+            if (!out) { out = []; }
+            out.push(plainText.substring(pos, i));
+            // calculate how much space we need in front of this part
+            // nSpaces is the amount of padding -- the number of spaces needed
+            // to move us to the next column, where columns occur at factors of
+            // tabWidth.
+            var nSpaces = tabWidth - (charInLine % tabWidth);
+            charInLine += nSpaces;
+            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
+              out.push(SPACES.substring(0, nSpaces));
+            }
+            pos = i + 1;
+            break;
+          case '\n':
+            charInLine = 0;
+            break;
+          default:
+            ++charInLine;
+        }
+      }
+      if (!out) { return plainText; }
+      out.push(plainText.substring(pos));
+      return out.join('');
+    };
+  }
+
+  var pr_chunkPattern = new RegExp(
+      '[^<]+'  // A run of characters other than '<'
+      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
+      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
+      // a probable tag that should not be highlighted
+      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
+      + '|<',  // A '<' that does not begin a larger chunk
+      'g');
+  var pr_commentPrefix = /^<\!--/;
+  var pr_cdataPrefix = /^<!\[CDATA\[/;
+  var pr_brPrefix = /^<br\b/i;
+  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
+
+  /** split markup into chunks of html tags (style null) and
+    * plain text (style {@link #PR_PLAIN}), converting tags which are
+    * significant for tokenization (<br>) into their textual equivalent.
+    *
+    * @param {string} s html where whitespace is considered significant.
+    * @return {Object} source code and extracted tags.
+    * @private
+    */
+  function extractTags(s) {
+    // since the pattern has the 'g' modifier and defines no capturing groups,
+    // this will return a list of all chunks which we then classify and wrap as
+    // PR_Tokens
+    var matches = s.match(pr_chunkPattern);
+    var sourceBuf = [];
+    var sourceBufLen = 0;
+    var extractedTags = [];
+    if (matches) {
+      for (var i = 0, n = matches.length; i < n; ++i) {
+        var match = matches[i];
+        if (match.length > 1 && match.charAt(0) === '<') {
+          if (pr_commentPrefix.test(match)) { continue; }
+          if (pr_cdataPrefix.test(match)) {
+            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
+            sourceBuf.push(match.substring(9, match.length - 3));
+            sourceBufLen += match.length - 12;
+          } else if (pr_brPrefix.test(match)) {
+            // <br> tags are lexically significant so convert them to text.
+            // This is undone later.
+            sourceBuf.push('\n');
+            ++sourceBufLen;
+          } else {
+            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
+              // A <span class="nocode"> will start a section that should be
+              // ignored.  Continue walking the list until we see a matching end
+              // tag.
+              var name = match.match(pr_tagNameRe)[2];
+              var depth = 1;
+              var j;
+              end_tag_loop:
+              for (j = i + 1; j < n; ++j) {
+                var name2 = matches[j].match(pr_tagNameRe);
+                if (name2 && name2[2] === name) {
+                  if (name2[1] === '/') {
+                    if (--depth === 0) { break end_tag_loop; }
+                  } else {
+                    ++depth;
+                  }
+                }
+              }
+              if (j < n) {
+                extractedTags.push(
+                    sourceBufLen, matches.slice(i, j + 1).join(''));
+                i = j;
+              } else {  // Ignore unclosed sections.
+                extractedTags.push(sourceBufLen, match);
+              }
+            } else {
+              extractedTags.push(sourceBufLen, match);
+            }
+          }
+        } else {
+          var literalText = htmlToText(match);
+          sourceBuf.push(literalText);
+          sourceBufLen += literalText.length;
+        }
+      }
+    }
+    return { source: sourceBuf.join(''), tags: extractedTags };
+  }
+
+  /** True if the given tag contains a class attribute with the nocode class. */
+  function isNoCodeTag(tag) {
+    return !!tag
+        // First canonicalize the representation of attributes
+        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
+                 ' $1="$2$3$4"')
+        // Then look for the attribute we want.
+        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
+  }
+
+  /**
+   * Apply the given language handler to sourceCode and add the resulting
+   * decorations to out.
+   * @param {number} basePos the index of sourceCode within the chunk of source
+   *    whose decorations are already present on out.
+   */
+  function appendDecorations(basePos, sourceCode, langHandler, out) {
+    if (!sourceCode) { return; }
+    var job = {
+      source: sourceCode,
+      basePos: basePos
+    };
+    langHandler(job);
+    out.push.apply(out, job.decorations);
+  }
+
+  /** Given triples of [style, pattern, context] returns a lexing function,
+    * The lexing function interprets the patterns to find token boundaries and
+    * returns a decoration list of the form
+    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+    * where index_n is an index into the sourceCode, and style_n is a style
+    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
+    * all characters in sourceCode[index_n-1:index_n].
+    *
+    * The stylePatterns is a list whose elements have the form
+    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+    *
+    * Style is a style constant like PR_PLAIN, or can be a string of the
+    * form 'lang-FOO', where FOO is a language extension describing the
+    * language of the portion of the token in $1 after pattern executes.
+    * E.g., if style is 'lang-lisp', and group 1 contains the text
+    * '(hello (world))', then that portion of the token will be passed to the
+    * registered lisp handler for formatting.
+    * The text before and after group 1 will be restyled using this decorator
+    * so decorators should take care that this doesn't result in infinite
+    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
+    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
+    * '<script>foo()<\/script>', which would cause the current decorator to
+    * be called with '<script>' which would not match the same rule since
+    * group 1 must not be empty, so it would be instead styled as PR_TAG by
+    * the generic tag rule.  The handler registered for the 'js' extension would
+    * then be called with 'foo()', and finally, the current decorator would
+    * be called with '<\/script>' which would not match the original rule and
+    * so the generic tag rule would identify it as a tag.
+    *
+    * Pattern must only match prefixes, and if it matches a prefix, then that
+    * match is considered a token with the same style.
+    *
+    * Context is applied to the last non-whitespace, non-comment token
+    * recognized.
+    *
+    * Shortcut is an optional string of characters, any of which, if the first
+    * character, gurantee that this pattern and only this pattern matches.
+    *
+    * @param {Array} shortcutStylePatterns patterns that always start with
+    *   a known character.  Must have a shortcut string.
+    * @param {Array} fallthroughStylePatterns patterns that will be tried in
+    *   order if the shortcut ones fail.  May have shortcuts.
+    *
+    * @return {function (Object)} a
+    *   function that takes source code and returns a list of decorations.
+    */
+  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
+    var shortcuts = {};
+    var tokenizer;
+    (function () {
+      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
+      var allRegexs = [];
+      var regexKeys = {};
+      for (var i = 0, n = allPatterns.length; i < n; ++i) {
+        var patternParts = allPatterns[i];
+        var shortcutChars = patternParts[3];
+        if (shortcutChars) {
+          for (var c = shortcutChars.length; --c >= 0;) {
+            shortcuts[shortcutChars.charAt(c)] = patternParts;
+          }
+        }
+        var regex = patternParts[1];
+        var k = '' + regex;
+        if (!regexKeys.hasOwnProperty(k)) {
+          allRegexs.push(regex);
+          regexKeys[k] = null;
+        }
+      }
+      allRegexs.push(/[\0-\uffff]/);
+      tokenizer = combinePrefixPatterns(allRegexs);
+    })();
+
+    var nPatterns = fallthroughStylePatterns.length;
+    var notWs = /\S/;
+
+    /**
+     * Lexes job.source and produces an output array job.decorations of style
+     * classes preceded by the position at which they start in job.source in
+     * order.
+     *
+     * @param {Object} job an object like {@code
+     *    source: {string} sourceText plain text,
+     *    basePos: {int} position of job.source in the larger chunk of
+     *        sourceCode.
+     * }
+     */
+    var decorate = function (job) {
+      var sourceCode = job.source, basePos = job.basePos;
+      /** Even entries are positions in source in ascending order.  Odd enties
+        * are style markers (e.g., PR_COMMENT) that run from that position until
+        * the end.
+        * @type {Array.<number|string>}
+        */
+      var decorations = [basePos, PR_PLAIN];
+      var pos = 0;  // index into sourceCode
+      var tokens = sourceCode.match(tokenizer) || [];
+      var styleCache = {};
+
+      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
+        var token = tokens[ti];
+        var style = styleCache[token];
+        var match = void 0;
+
+        var isEmbedded;
+        if (typeof style === 'string') {
+          isEmbedded = false;
+        } else {
+          var patternParts = shortcuts[token.charAt(0)];
+          if (patternParts) {
+            match = token.match(patternParts[1]);
+            style = patternParts[0];
+          } else {
+            for (var i = 0; i < nPatterns; ++i) {
+              patternParts = fallthroughStylePatterns[i];
+              match = token.match(patternParts[1]);
+              if (match) {
+                style = patternParts[0];
+                break;
+              }
+            }
+
+            if (!match) {  // make sure that we make progress
+              style = PR_PLAIN;
+            }
+          }
+
+          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
+          if (isEmbedded && !(match && typeof match[1] === 'string')) {
+            isEmbedded = false;
+            style = PR_SOURCE;
+          }
+
+          if (!isEmbedded) { styleCache[token] = style; }
+        }
+
+        var tokenStart = pos;
+        pos += token.length;
+
+        if (!isEmbedded) {
+          decorations.push(basePos + tokenStart, style);
+        } else {  // Treat group 1 as an embedded block of source code.
+          var embeddedSource = match[1];
+          var embeddedSourceStart = token.indexOf(embeddedSource);
+          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
+          if (match[2]) {
+            // If embeddedSource can be blank, then it would match at the
+            // beginning which would cause us to infinitely recurse on the
+            // entire token, so we catch the right context in match[2].
+            embeddedSourceEnd = token.length - match[2].length;
+            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
+          }
+          var lang = style.substring(5);
+          // Decorate the left of the embedded source
+          appendDecorations(
+              basePos + tokenStart,
+              token.substring(0, embeddedSourceStart),
+              decorate, decorations);
+          // Decorate the embedded source
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceStart,
+              embeddedSource,
+              langHandlerForExtension(lang, embeddedSource),
+              decorations);
+          // Decorate the right of the embedded section
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceEnd,
+              token.substring(embeddedSourceEnd),
+              decorate, decorations);
+        }
+      }
+      job.decorations = decorations;
+    };
+    return decorate;
+  }
+
+  /** returns a function that produces a list of decorations from source text.
+    *
+    * This code treats ", ', and ` as string delimiters, and \ as a string
+    * escape.  It does not recognize perl's qq() style strings.
+    * It has no special handling for double delimiter escapes as in basic, or
+    * the tripled delimiters used in python, but should work on those regardless
+    * although in those cases a single string literal may be broken up into
+    * multiple adjacent string literals.
+    *
+    * It recognizes C, C++, and shell style comments.
+    *
+    * @param {Object} options a set of optional parameters.
+    * @return {function (Object)} a function that examines the source code
+    *     in the input job and builds the decoration list.
+    */
+  function sourceDecorator(options) {
+    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
+    if (options['tripleQuotedStrings']) {
+      // '''multi-line-string''', 'single-line-string', and double-quoted
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+           null, '\'"']);
+    } else if (options['multiLineStrings']) {
+      // 'multi-line-string', "multi-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+           null, '\'"`']);
+    } else {
+      // 'single-line-string', "single-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,
+           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+           null, '"\'']);
+    }
+    if (options['verbatimStrings']) {
+      // verbatim-string-literal production from the C# grammar.  See issue 93.
+      fallthroughStylePatterns.push(
+          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+    }
+    if (options['hashComments']) {
+      if (options['cStyleComments']) {
+        // Stop C preprocessor declarations at an unclosed open comment
+        shortcutStylePatterns.push(
+            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+             null, '#']);
+        fallthroughStylePatterns.push(
+            [PR_STRING,
+             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+             null]);
+      } else {
+        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
+      }
+    }
+    if (options['cStyleComments']) {
+      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
+      fallthroughStylePatterns.push(
+          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+    }
+    if (options['regexLiterals']) {
+      var REGEX_LITERAL = (
+          // A regular expression literal starts with a slash that is
+          // not followed by * or / so that it is not confused with
+          // comments.
+          '/(?=[^/*])'
+          // and then contains any number of raw characters,
+          + '(?:[^/\\x5B\\x5C]'
+          // escape sequences (\x5C),
+          +    '|\\x5C[\\s\\S]'
+          // or non-nesting character sets (\x5B\x5D);
+          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
+          // finally closed by a /.
+          + '/');
+      fallthroughStylePatterns.push(
+          ['lang-regex',
+           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
+           ]);
+    }
+
+    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
+    if (keywords.length) {
+      fallthroughStylePatterns.push(
+          [PR_KEYWORD,
+           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
+    }
+
+    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
+    fallthroughStylePatterns.push(
+        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
+        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
+        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_LITERAL,
+         new RegExp(
+             '^(?:'
+             // A hex number
+             + '0x[a-f0-9]+'
+             // or an octal or decimal number,
+             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
+             // possibly in scientific notation
+             + '(?:e[+\\-]?\\d+)?'
+             + ')'
+             // with an optional modifier like UL for unsigned long
+             + '[a-z]*', 'i'),
+         null, '0123456789'],
+        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
+
+    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
+  }
+
+  var decorateSource = sourceDecorator({
+        'keywords': ALL_KEYWORDS,
+        'hashComments': true,
+        'cStyleComments': true,
+        'multiLineStrings': true,
+        'regexLiterals': true
+      });
+
+  /** Breaks {@code job.source} around style boundaries in
+    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
+    * and leaves the result in {@code job.prettyPrintedHtml}.
+    * @param {Object} job like {
+    *    source: {string} source as plain text,
+    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
+    *                   html preceded by their position in {@code job.source}
+    *                   in order
+    *    decorations: {Array.<number|string} an array of style classes preceded
+    *                 by the position at which they start in job.source in order
+    * }
+    * @private
+    */
+  function recombineTagsAndDecorations(job) {
+    var sourceText = job.source;
+    var extractedTags = job.extractedTags;
+    var decorations = job.decorations;
+
+    var html = [];
+    // index past the last char in sourceText written to html
+    var outputIdx = 0;
+
+    var openDecoration = null;
+    var currentDecoration = null;
+    var tagPos = 0;  // index into extractedTags
+    var decPos = 0;  // index into decorations
+    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
+
+    var adjacentSpaceRe = /([\r\n ]) /g;
+    var startOrSpaceRe = /(^| ) /gm;
+    var newlineRe = /\r\n?|\n/g;
+    var trailingSpaceRe = /[ \r\n]$/;
+    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
+
+    // A helper function that is responsible for opening sections of decoration
+    // and outputing properly escaped chunks of source
+    function emitTextUpTo(sourceIdx) {
+      if (sourceIdx > outputIdx) {
+        if (openDecoration && openDecoration !== currentDecoration) {
+          // Close the current decoration
+          html.push('</span>');
+          openDecoration = null;
+        }
+        if (!openDecoration && currentDecoration) {
+          openDecoration = currentDecoration;
+          html.push('<span class="', openDecoration, '">');
+        }
+        // This interacts badly with some wikis which introduces paragraph tags
+        // into pre blocks for some strange reason.
+        // It's necessary for IE though which seems to lose the preformattedness
+        // of <pre> tags when their innerHTML is assigned.
+        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
+        // and it serves to undo the conversion of <br>s to newlines done in
+        // chunkify.
+        var htmlChunk = textToHtml(
+            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
+            .replace(lastWasSpace
+                     ? startOrSpaceRe
+                     : adjacentSpaceRe, '$1 ');
+        // Keep track of whether we need to escape space at the beginning of the
+        // next chunk.
+        lastWasSpace = trailingSpaceRe.test(htmlChunk);
+        // IE collapses multiple adjacient <br>s into 1 line break.
+        // Prefix every <br> with ' ' can prevent such IE's behavior.
+        var lineBreakHtml = window['_pr_isIE6']() ? ' <br />' : '<br />';
+        html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
+        outputIdx = sourceIdx;
+      }
+    }
+
+    while (true) {
+      // Determine if we're going to consume a tag this time around.  Otherwise
+      // we consume a decoration or exit.
+      var outputTag;
+      if (tagPos < extractedTags.length) {
+        if (decPos < decorations.length) {
+          // Pick one giving preference to extractedTags since we shouldn't open
+          // a new style that we're going to have to immediately close in order
+          // to output a tag.
+          outputTag = extractedTags[tagPos] <= decorations[decPos];
+        } else {
+          outputTag = true;
+        }
+      } else {
+        outputTag = false;
+      }
+      // Consume either a decoration or a tag or exit.
+      if (outputTag) {
+        emitTextUpTo(extractedTags[tagPos]);
+        if (openDecoration) {
+          // Close the current decoration
+          html.push('</span>');
+          openDecoration = null;
+        }
+        html.push(extractedTags[tagPos + 1]);
+        tagPos += 2;
+      } else if (decPos < decorations.length) {
+        emitTextUpTo(decorations[decPos]);
+        currentDecoration = decorations[decPos + 1];
+        decPos += 2;
+      } else {
+        break;
+      }
+    }
+    emitTextUpTo(sourceText.length);
+    if (openDecoration) {
+      html.push('</span>');
+    }
+    job.prettyPrintedHtml = html.join('');
+  }
+
+  /** Maps language-specific file extensions to handlers. */
+  var langHandlerRegistry = {};
+  /** Register a language handler for the given file extensions.
+    * @param {function (Object)} handler a function from source code to a list
+    *      of decorations.  Takes a single argument job which describes the
+    *      state of the computation.   The single parameter has the form
+    *      {@code {
+    *        source: {string} as plain text.
+    *        decorations: {Array.<number|string>} an array of style classes
+    *                     preceded by the position at which they start in
+    *                     job.source in order.
+    *                     The language handler should assigned this field.
+    *        basePos: {int} the position of source in the larger source chunk.
+    *                 All positions in the output decorations array are relative
+    *                 to the larger source chunk.
+    *      } }
+    * @param {Array.<string>} fileExtensions
+    */
+  function registerLangHandler(handler, fileExtensions) {
+    for (var i = fileExtensions.length; --i >= 0;) {
+      var ext = fileExtensions[i];
+      if (!langHandlerRegistry.hasOwnProperty(ext)) {
+        langHandlerRegistry[ext] = handler;
+      } else if ('console' in window) {
+        console.warn('cannot override language handler %s', ext);
+      }
+    }
+  }
+  function langHandlerForExtension(extension, source) {
+    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
+      // Treat it as markup if the first non whitespace character is a < and
+      // the last non-whitespace character is a >.
+      extension = /^\s*</.test(source)
+          ? 'default-markup'
+          : 'default-code';
+    }
+    return langHandlerRegistry[extension];
+  }
+  registerLangHandler(decorateSource, ['default-code']);
+  registerLangHandler(
+      createSimpleLexer(
+          [],
+          [
+           [PR_PLAIN,       /^[^<?]+/],
+           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
+           // Unescaped content in an unknown language
+           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
+           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
+           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+           // Unescaped content in javascript.  (Or possibly vbscript).
+           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+           // Contains unescaped stylesheet content
+           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
+          ]),
+      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
+  registerLangHandler(
+      createSimpleLexer(
+          [
+           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
+           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
+           ],
+          [
+           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+           [PR_PUNCTUATION,  /^[=<>\/]+/],
+           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
+           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
+           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
+           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
+           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
+           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
+           ]),
+      ['in.tag']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CPP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true
+        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': 'null true false'
+        }), ['json']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CSHARP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true,
+          'verbatimStrings': true
+        }), ['cs']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JAVA_KEYWORDS,
+          'cStyleComments': true
+        }), ['java']);
+  registerLangHandler(sourceDecorator({
+          'keywords': SH_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true
+        }), ['bsh', 'csh', 'sh']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PYTHON_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'tripleQuotedStrings': true
+        }), ['cv', 'py']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PERL_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['perl', 'pl', 'pm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': RUBY_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['rb']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JSCRIPT_KEYWORDS,
+          'cStyleComments': true,
+          'regexLiterals': true
+        }), ['js']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
+
+  function applyDecorator(job) {
+    var sourceCodeHtml = job.sourceCodeHtml;
+    var opt_langExtension = job.langExtension;
+
+    // Prepopulate output in case processing fails with an exception.
+    job.prettyPrintedHtml = sourceCodeHtml;
+
+    try {
+      // Extract tags, and convert the source code to plain text.
+      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
+      /** Plain text. @type {string} */
+      var source = sourceAndExtractedTags.source;
+      job.source = source;
+      job.basePos = 0;
+
+      /** Even entries are positions in source in ascending order.  Odd entries
+        * are tags that were extracted at that position.
+        * @type {Array.<number|string>}
+        */
+      job.extractedTags = sourceAndExtractedTags.tags;
+
+      // Apply the appropriate language handler
+      langHandlerForExtension(opt_langExtension, source)(job);
+      // Integrate the decorations and tags back into the source code to produce
+      // a decorated html string which is left in job.prettyPrintedHtml.
+      recombineTagsAndDecorations(job);
+    } catch (e) {
+      if ('console' in window) {
+        console.log(e);
+        console.trace();
+      }
+    }
+  }
+
+  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
+    var job = {
+      sourceCodeHtml: sourceCodeHtml,
+      langExtension: opt_langExtension
+    };
+    applyDecorator(job);
+    return job.prettyPrintedHtml;
+  }
+
+  function prettyPrint(opt_whenDone) {
+    var isIE678 = window['_pr_isIE6']();
+    var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
+    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
+
+    // fetch a list of nodes to rewrite
+    var codeSegments = [
+        document.getElementsByTagName('pre'),
+        document.getElementsByTagName('code'),
+        document.getElementsByTagName('td'),  /* ND Change: Add tables to support prototypes. */
+        document.getElementsByTagName('xmp') ];
+    var elements = [];
+    for (var i = 0; i < codeSegments.length; ++i) {
+      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
+        elements.push(codeSegments[i][j]);
+      }
+    }
+    codeSegments = null;
+
+    var clock = Date;
+    if (!clock['now']) {
+      clock = { 'now': function () { return (new Date).getTime(); } };
+    }
+
+    // The loop is broken into a series of continuations to make sure that we
+    // don't make the browser unresponsive when rewriting a large page.
+    var k = 0;
+    var prettyPrintingJob;
+
+    function doWork() {
+      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
+                     clock.now() + 250 /* ms */ :
+                     Infinity);
+      for (; k < elements.length && clock.now() < endTime; k++) {
+        var cs = elements[k];
+        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
+          // If the classes includes a language extensions, use it.
+          // Language extensions can be specified like
+          //     <pre class="prettyprint lang-cpp">
+          // the language extension "cpp" is used to find a language handler as
+          // passed to PR_registerLangHandler.
+          var langExtension = cs.className.match(/\blang-(\w+)\b/);
+          if (langExtension) { langExtension = langExtension[1]; }
+
+          // make sure this is not nested in an already prettified element
+          var nested = false;
+          for (var p = cs.parentNode; p; p = p.parentNode) {
+            if ((p.tagName === 'pre' || p.tagName === 'code' ||
+                 p.tagName === 'xmp' || p.tagName === 'td') &&  /* ND Change: Add tables to support prototypes */
+                p.className && p.className.indexOf('prettyprint') >= 0) {
+              nested = true;
+              break;
+            }
+          }
+          if (!nested) {
+            // fetch the content as a snippet of properly escaped HTML.
+            // Firefox adds newlines at the end.
+            var content = getInnerHtml(cs);
+            content = content.replace(/(?:\r\n?|\n)$/, '');
+
+	  		/* ND Change: we need to preserve  s so change them to a special character instead of a space. */
+			content = content.replace(/ /g, '\x11');
+
+            // do the pretty printing
+            prettyPrintingJob = {
+              sourceCodeHtml: content,
+              langExtension: langExtension,
+              sourceNode: cs
+            };
+            applyDecorator(prettyPrintingJob);
+            replaceWithPrettyPrintedHtml();
+          }
+        }
+      }
+      if (k < elements.length) {
+        // finish up in a continuation
+        setTimeout(doWork, 250);
+      } else if (opt_whenDone) {
+        opt_whenDone();
+      }
+    }
+
+    function replaceWithPrettyPrintedHtml() {
+      var newContent = prettyPrintingJob.prettyPrintedHtml;
+      if (!newContent) { return; }
+
+      /* ND Change: Restore the preserved  s.  */
+	  newContent = newContent.replace(/\x11/g, ' ');
+
+      var cs = prettyPrintingJob.sourceNode;
+
+      // push the prettified html back into the tag.
+      if (!isRawContent(cs)) {
+        // just replace the old html with the new
+        cs.innerHTML = newContent;
+      } else {
+        // we need to change the tag to a <pre> since <xmp>s do not allow
+        // embedded tags such as the span tags used to attach styles to
+        // sections of source code.
+        var pre = document.createElement('PRE');
+        for (var i = 0; i < cs.attributes.length; ++i) {
+          var a = cs.attributes[i];
+          if (a.specified) {
+            var aname = a.name.toLowerCase();
+            if (aname === 'class') {
+              pre.className = a.value;  // For IE 6
+            } else {
+              pre.setAttribute(a.name, a.value);
+            }
+          }
+        }
+        pre.innerHTML = newContent;
+
+        // remove the old
+        cs.parentNode.replaceChild(pre, cs);
+        cs = pre;
+      }
+
+      // Replace <br>s with line-feeds so that copying and pasting works
+      // on IE 6.
+      // Doing this on other browsers breaks lots of stuff since \r\n is
+      // treated as two newlines on Firefox, and doing this also slows
+      // down rendering.
+      if (isIE678 && cs.tagName === 'PRE') {
+        var lineBreaks = cs.getElementsByTagName('br');
+        for (var j = lineBreaks.length; --j >= 0;) {
+          var lineBreak = lineBreaks[j];
+          lineBreak.parentNode.replaceChild(
+              document.createTextNode(ieNewline), lineBreak);
+        }
+      }
+    }
+
+    doWork();
+  }
+
+  window['PR_normalizedHtml'] = normalizedHtml;
+  window['prettyPrintOne'] = prettyPrintOne;
+  window['prettyPrint'] = prettyPrint;
+  window['PR'] = {
+        'combinePrefixPatterns': combinePrefixPatterns,
+        'createSimpleLexer': createSimpleLexer,
+        'registerLangHandler': registerLangHandler,
+        'sourceDecorator': sourceDecorator,
+        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
+        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
+        'PR_COMMENT': PR_COMMENT,
+        'PR_DECLARATION': PR_DECLARATION,
+        'PR_KEYWORD': PR_KEYWORD,
+        'PR_LITERAL': PR_LITERAL,
+        'PR_NOCODE': PR_NOCODE,
+        'PR_PLAIN': PR_PLAIN,
+        'PR_PUNCTUATION': PR_PUNCTUATION,
+        'PR_SOURCE': PR_SOURCE,
+        'PR_STRING': PR_STRING,
+        'PR_TAG': PR_TAG,
+        'PR_TYPE': PR_TYPE
+      };
+})();
+
+
+// ____________________________________________________________________________
+
+
+
+// Lua extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d [...]
+
+
+// Haskell extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,'	\n

\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|ins [...]
+
+
+// ML extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|fin [...]
+
+
+// SQL extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURR [...]
+
+
+// VB extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,'	\n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boole [...]
diff --git a/doc/devdocs/javascript/searchdata.js b/doc/devdocs/javascript/searchdata.js
index a77c64a..1724571 100644
--- a/doc/devdocs/javascript/searchdata.js
+++ b/doc/devdocs/javascript/searchdata.js
@@ -78,7 +78,7 @@ var indexSectionsWithContent = {
       "N": true,
       "O": true,
       "P": true,
-      "Q": false,
+      "Q": true,
       "R": true,
       "S": true,
       "T": true,
@@ -100,9 +100,9 @@ var indexSectionsWithContent = {
       "F": false,
       "G": false,
       "H": false,
-      "I": false,
+      "I": true,
       "J": false,
-      "K": false,
+      "K": true,
       "L": false,
       "M": false,
       "N": false,
diff --git a/doc/devdocs/search/ClassesO.html b/doc/devdocs/search/ClassesO.html
index ef84745..9be5e71 100644
--- a/doc/devdocs/search/ClassesO.html
+++ b/doc/devdocs/search/ClassesO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OpenLayers><div class=IEntry><a href="../files/OpenLayers-js.html#OpenLayers" target=_parent class=ISymbol>OpenLayers</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax" target=_parent class=ISymbol>OpenLayers.Ajax</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax_p [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OpenLayers><div class=IEntry><a href="../files/OpenLayers-js.html#OpenLayers" target=_parent class=ISymbol>OpenLayers</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax" target=_parent class=ISymbol>OpenLayers.Ajax</a></div></div><div class=SRResult id=SR_OpenLayers_perAjax_p [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ClassesU.html b/doc/devdocs/search/ClassesU.html
index 798b8f9..fad197a 100644
--- a/doc/devdocs/search/ClassesU.html
+++ b/doc/devdocs/search/ClassesU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/devdocs/search/ConstantsB.html b/doc/devdocs/search/ConstantsB.html
index b655329..bf08275 100644
--- a/doc/devdocs/search/ConstantsB.html
+++ b/doc/devdocs/search/ConstantsB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX" target=_parent class=ISymbol>BACKGROUND_ID_SUFFIX</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Elements</span></div></div><div class=SRResult id=SR_BROWSER_undEVENT [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.Renderer.Elements.BACKGROUND_ID_SUFFIX" target=_parent class=ISymbol>BACKGROUND_ID_SUFFIX</a>, <span class=IParent>OpenLayers.<wbr>Renderer.<wbr>Elements</span></div></div><div class=SRResult id=SR_BROWSER_undEVENTS><div class=IEntry><a href="../file [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsC.html b/doc/devdocs/search/ConstantsC.html
index 2ee37f5..9cd097d 100644
--- a/doc/devdocs/search/ConstantsC.html
+++ b/doc/devdocs/search/ConstantsC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_CORNER_undSIZE><div class=IEntry><a href="../files/OpenLayers/Popup/AnchoredBubble-js.html#OpenLayers.Popup.AnchoredBubble.CORNER_SIZE" target=_parent class=ISymbol>CORNER_SIZE</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>AnchoredBubble</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_CORNER_undSIZE><div class=IEntry><a href="../files/OpenLayers/Popup/AnchoredBubble-js.html#OpenLayers.Popup.AnchoredBubble.CORNER_SIZE" target=_parent class=ISymbol>CORNER_SIZE</a>, <span class=IParent>OpenLayers.<wbr>Popup.<wbr>AnchoredBubble</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matc [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsD.html b/doc/devdocs/search/ConstantsD.html
index 18281fb..6a40c20 100644
--- a/doc/devdocs/search/ConstantsD.html
+++ b/doc/devdocs/search/ConstantsD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dataFrom><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" target=_parent class=ISymbol>dataFrom</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>PointTrack.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer.<span class=HB [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dataFrom><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.dataFrom" target=_parent class=ISymbol>dataFrom</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>OpenLayers.<wbr>Layer.<wbr>PointTrack</span></div></div><div class=SRResult id=SR_DEFAULT_undCONFIG><div cla [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsE.html b/doc/devdocs/search/ConstantsE.html
index 860c350..813ed30 100644
--- a/doc/devdocs/search/ConstantsE.html
+++ b/doc/devdocs/search/ConstantsE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EVENT_undTYPES><div class=IEntry><a href="javascript:searchResults.Toggle('SR_EVENT_undTYPES')" class=ISymbol>EVENT_TYPES</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.EVENT_TYPES" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control</a><a href="../files/OpenLayers/Control/DrawFeature-js.html#OpenLay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EVENT_undTYPES><div class=IEntry><a href="javascript:searchResults.Toggle('SR_EVENT_undTYPES')" class=ISymbol>EVENT_TYPES</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.EVENT_TYPES" target=_parent class=IParent>OpenLayers.<wbr>Control</a><a href="../files/OpenLayers/Control/DrawFeature-js.html#OpenLayers.Control.DrawFe [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsF.html b/doc/devdocs/search/ConstantsF.html
index 247d8d9..c9f7d11 100644
--- a/doc/devdocs/search/ConstantsF.html
+++ b/doc/devdocs/search/ConstantsF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_FOLDER_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.FOLDER_PARAMS" target=_parent class=ISymbol>FOLDER_PARAMS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRSta [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_FOLDER_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.FOLDER_PARAMS" target=_parent class=ISymbol>FOLDER_PARAMS</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><sc [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsI.html b/doc/devdocs/search/ConstantsI.html
index 43a0612..b7d5f10 100644
--- a/doc/devdocs/search/ConstantsI.html
+++ b/doc/devdocs/search/ConstantsI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_IMAGE_undEXTENSIONS><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js.html#OpenLayers.Layer.KaMapCache.IMAGE_EXTENSIONS" target=_parent class=ISymbol>IMAGE_EXTENSIONS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMapCache</span></div></div><div class=SRResult id=SR_INCHES_undPER_undUNIT><div class=I [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_IFrame><div class=IEntry><a href="../files/OpenLayers/Tile/Image/IFrame-js.html#OpenLayers.Tile.Image.IFrame" target=_parent class=ISymbol>IFrame</a>, <span class=IParent>OpenLayers.<wbr>Tile.<wbr>Image</span></div></div><div class=SRResult id=SR_IMAGE_undEXTENSIONS><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js.html#OpenLayers.Layer.KaMap [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsK.html b/doc/devdocs/search/ConstantsK.html
index 5dc4966..429a385 100644
--- a/doc/devdocs/search/ConstantsK.html
+++ b/doc/devdocs/search/ConstantsK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KEY_undBACKSPACE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_BACKSPACE" target=_parent class=ISymbol>KEY_BACKSPACE</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Event</span></div></div><div class=SRResult id=SR_KEY_undDELETE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_D [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KEY_undBACKSPACE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_BACKSPACE" target=_parent class=ISymbol>KEY_BACKSPACE</a>, <span class=IParent>OpenLayers.<wbr>Event</span></div></div><div class=SRResult id=SR_KEY_undDELETE><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.KEY_DELETE" target=_par [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsL.html b/doc/devdocs/search/ConstantsL.html
index d876ca9..31eb0b3 100644
--- a/doc/devdocs/search/ConstantsL.html
+++ b/doc/devdocs/search/ConstantsL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')" class=ISymbol>LABEL_ALIGN</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')" class=ISymbol>LABEL_ALIGN</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas.LABEL_ALIGN" target=_parent class=IParent>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>OpenLayers.<wbr>Renderer [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsM.html b/doc/devdocs/search/ConstantsM.html
index 51c94f0..020948c 100644
--- a/doc/devdocs/search/ConstantsM.html
+++ b/doc/devdocs/search/ConstantsM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_MAX_undPIXEL><div class=IEntry><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.MAX_PIXEL" target=_parent class=ISymbol>MAX_PIXEL</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.SVG</span></div></div><div class=SRResult id=SR_MAX_undZOOM_undLEVEL><div class=IEntry><a href="javascript:searchResults.Toggle('SR_MAX_un [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_MAX_undPIXEL><div class=IEntry><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.MAX_PIXEL" target=_parent class=ISymbol>MAX_PIXEL</a>, <span class=IParent>OpenLayers.<wbr>Renderer.SVG</span></div></div><div class=SRResult id=SR_MAX_undZOOM_undLEVEL><div class=IEntry><a href="javascript:searchResults.Toggle('SR_MAX_undZOOM_undLEVEL')"  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsO.html b/doc/devdocs/search/ConstantsO.html
index 1018228..2abd281 100644
--- a/doc/devdocs/search/ConstantsO.html
+++ b/doc/devdocs/search/ConstantsO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OVERLAY_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.OVERLAY_PARAMS" target=_parent class=ISymbol>OVERLAY_PARAMS</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SR [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OVERLAY_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.OVERLAY_PARAMS" target=_parent class=ISymbol>OVERLAY_PARAMS</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>MapGuide</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsR.html b/doc/devdocs/search/ConstantsR.html
index 655c396..1e12290 100644
--- a/doc/devdocs/search/ConstantsR.html
+++ b/doc/devdocs/search/ConstantsR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RESHAPE><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js.html#OpenLayers.Control.ModifyFeature.RESHAPE" target=_parent class=ISymbol>RESHAPE</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>ModifyFeature</span></div></div><div class=SRResult id=SR_RESIZE><div class=IEntry><a href="../files/OpenLa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RESHAPE><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js.html#OpenLayers.Control.ModifyFeature.RESHAPE" target=_parent class=ISymbol>RESHAPE</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>ModifyFeature</span></div></div><div class=SRResult id=SR_RESIZE><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js.html#O [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsS.html b/doc/devdocs/search/ConstantsS.html
index 0978161..9470712 100644
--- a/doc/devdocs/search/ConstantsS.html
+++ b/doc/devdocs/search/ConstantsS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_serviceTypes><div class=IEntry><a href="../files/OpenLayers/Format/Context-js.html#OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes" target=_parent class=ISymbol>serviceTypes</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Context.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format.<span cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_serviceTypes><div class=IEntry><a href="../files/OpenLayers/Format/Context-js.html#OpenLayers.Format.Context.OpenLayers.Format.Context.serviceTypes" target=_parent class=ISymbol>serviceTypes</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>Context.<wbr>OpenLayers.<wbr>Format.<wbr>Context</span></div></div><div class=SRResult id=SR_SINGLE_undTILE_undPARAMS [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsT.html b/doc/devdocs/search/ConstantsT.html
index 4c6b29a..d5aef7e 100644
--- a/doc/devdocs/search/ConstantsT.html
+++ b/doc/devdocs/search/ConstantsT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_TILE_undHEIGHT><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.TILE_HEIGHT" target=_parent class=ISymbol>TILE_HEIGHT</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_TILE_undPARAMS><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.TILE_PARAMS" target=_pa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_TARGET_undNODE><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTrack.OpenLayers.Layer.PointTrack.TARGET_NODE" target=_parent class=ISymbol>TARGET_NODE</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>PointTrack.<wbr>OpenLayers.<wbr>Layer.<wbr>PointTrack</span></div></div><div class=SRResult id=SR_TILE_undHEIGHT [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsU.html b/doc/devdocs/search/ConstantsU.html
index ca8b8f9..ea76246 100644
--- a/doc/devdocs/search/ConstantsU.html
+++ b/doc/devdocs/search/ConstantsU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_URL_undHASH_undFACTOR><div class=IEntry><a href="../files/OpenLayers/Layer/HTTPRequest-js.html#OpenLayers.Layer.HTTPRequest.URL_HASH_FACTOR" target=_parent class=ISymbol>URL_HASH_FACTOR</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>HTTPRequest</span></div></div></table><div class=SRStatus id=Searching>Searching...</di [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_URL_undHASH_undFACTOR><div class=IEntry><a href="../files/OpenLayers/Layer/HTTPRequest-js.html#OpenLayers.Layer.HTTPRequest.URL_HASH_FACTOR" target=_parent class=ISymbol>URL_HASH_FACTOR</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>HTTPRequest</span></div></div><div class=SRResult id=SR_URL_undSPLIT_undREGEX><div class=IEntry><a href="../files/OpenLayer [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsV.html b/doc/devdocs/search/ConstantsV.html
index 1b3476a..f39a23c 100644
--- a/doc/devdocs/search/ConstantsV.html
+++ b/doc/devdocs/search/ConstantsV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v2><div class=IEntry><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2" target=_parent class=ISymbol>v2</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google</span></div></div> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v2><div class=IEntry><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.v2" target=_parent class=ISymbol>v2</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>Google.<wbr>OpenLayers.<wbr>Layer.<wbr>Google</span></div></div><div class=SRResult id=SR_v3><div class=IEntry><a href="../files/OpenLayers/Layer/Google/v [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsX.html b/doc/devdocs/search/ConstantsX.html
index b4b6bd4..747d031 100644
--- a/doc/devdocs/search/ConstantsX.html
+++ b/doc/devdocs/search/ConstantsX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_X><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.X" target=_parent class=ISymbol>X</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><sc [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_X><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.X" target=_parent class=ISymbol>X</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsY.html b/doc/devdocs/search/ConstantsY.html
index 0c6bff4..f973570 100644
--- a/doc/devdocs/search/ConstantsY.html
+++ b/doc/devdocs/search/ConstantsY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Y><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.Y" target=_parent class=ISymbol>Y</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><sc [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Y><div class=IEntry><a href="../files/OpenLayers/Control/PanZoom-js.html#OpenLayers.Control.PanZoom.Y" target=_parent class=ISymbol>Y</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>PanZoom</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstantsZ.html b/doc/devdocs/search/ConstantsZ.html
index 74b5974..24fc58d 100644
--- a/doc/devdocs/search/ConstantsZ.html
+++ b/doc/devdocs/search/ConstantsZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/devdocs/search/ConstructorA.html b/doc/devdocs/search/ConstructorA.html
index 10df3bb..3ac1528 100644
--- a/doc/devdocs/search/ConstructorA.html
+++ b/doc/devdocs/search/ConstructorA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Anchored><div class=IEntry><a href="../files/OpenLayers/Popup/Anchored-js.html#OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored" target=_parent class=ISymbol>Anchored</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Popup.<span class=HB> </span>Anchored.<span class=HB> </span>OpenLayers.<span class=HB> </span>Popup</span></div></div><div class=SR [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Anchored><div class=IEntry><a href="../files/OpenLayers/Popup/Anchored-js.html#OpenLayers.Popup.Anchored.OpenLayers.Popup.Anchored" target=_parent class=ISymbol>Anchored</a>, <span class=IParent>OpenLayers.<wbr>Popup.<wbr>Anchored.<wbr>OpenLayers.<wbr>Popup</span></div></div><div class=SRResult id=SR_AnchoredBubble><div class=IEntry><a href="../files/OpenLaye [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorB.html b/doc/devdocs/search/ConstructorB.html
index dc3e704..6a52d73 100644
--- a/doc/devdocs/search/ConstructorB.html
+++ b/doc/devdocs/search/ConstructorB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Base><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Base')" class=ISymbol>Base</a><div class=ISubIndex><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax.Base.OpenLayers.Ajax.Base" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Base.<span class=HB> </span>OpenLayers.Ajax</a><a href="../files/O [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Base><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Base')" class=ISymbol>Base</a><div class=ISubIndex><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax.Base.OpenLayers.Ajax.Base" target=_parent class=IParent>OpenLayers.<wbr>Ajax.<wbr>Base.<wbr>OpenLayers.Ajax</a><a href="../files/OpenLayers/Format/GML/Base-js.html#OpenLayers.Format.GM [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorC.html b/doc/devdocs/search/ConstructorC.html
index 6649f57..a5f54dc 100644
--- a/doc/devdocs/search/ConstructorC.html
+++ b/doc/devdocs/search/ConstructorC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Canvas><div class=IEntry><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas" target=_parent class=ISymbol>Canvas</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Renderer.<span class=HB> </span>Canvas.<span class=HB> </span>OpenLayers.<span class=HB> </span>Renderer</span></div></div><div class [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Canvas><div class=IEntry><a href="../files/OpenLayers/Renderer/Canvas-js.html#OpenLayers.Renderer.Canvas.OpenLayers.Renderer.Canvas" target=_parent class=ISymbol>Canvas</a>, <span class=IParent>OpenLayers.<wbr>Renderer.<wbr>Canvas.<wbr>OpenLayers.<wbr>Renderer</span></div></div><div class=SRResult id=SR_Class><div class=IEntry><a href="../files/OpenLayers/Bas [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorD.html b/doc/devdocs/search/ConstructorD.html
index fb9f490..b9fd6d0 100644
--- a/doc/devdocs/search/ConstructorD.html
+++ b/doc/devdocs/search/ConstructorD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Drag><div class=IEntry><a href="../files/OpenLayers/Handler/Drag-js.html#OpenLayers.Handler.Drag.OpenLayers.Handler.Drag" target=_parent class=ISymbol>Drag</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Drag.<span class=HB> </span>OpenLayers.<span class=HB> </span>Handler</span></div></div><div class=SRResult id=SR_D [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Drag><div class=IEntry><a href="../files/OpenLayers/Handler/Drag-js.html#OpenLayers.Handler.Drag.OpenLayers.Handler.Drag" target=_parent class=ISymbol>Drag</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>Drag.<wbr>OpenLayers.<wbr>Handler</span></div></div><div class=SRResult id=SR_DragFeature><div class=IEntry><a href="../files/OpenLayers/Control/DragFe [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorE.html b/doc/devdocs/search/ConstructorE.html
index 3c07f26..f8521ba 100644
--- a/doc/devdocs/search/ConstructorE.html
+++ b/doc/devdocs/search/ConstructorE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EditingToolbar><div class=IEntry><a href="../files/OpenLayers/Control/EditingToolbar-js.html#OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar" target=_parent class=ISymbol>EditingToolbar</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>EditingToolbar.<span class=HB> </span>OpenLayers.<span class=HB>  [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_EditingToolbar><div class=IEntry><a href="../files/OpenLayers/Control/EditingToolbar-js.html#OpenLayers.Control.EditingToolbar.OpenLayers.Control.EditingToolbar" target=_parent class=ISymbol>EditingToolbar</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>EditingToolbar.<wbr>OpenLayers.<wbr>Control</span></div></div><div class=SRResult id=SR_Elements><div [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorF.html b/doc/devdocs/search/ConstructorF.html
index abc765c..6e0b11b 100644
--- a/doc/devdocs/search/ConstructorF.html
+++ b/doc/devdocs/search/ConstructorF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Feature><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Feature')" class=ISymbol>Feature</a><div class=ISubIndex><a href="../files/OpenLayers/Feature-js.html#OpenLayers.Feature.OpenLayers.Feature" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>OpenLayers</a><a href="../files/OpenLayers/Handler/Feat [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Feature><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Feature')" class=ISymbol>Feature</a><div class=ISubIndex><a href="../files/OpenLayers/Feature-js.html#OpenLayers.Feature.OpenLayers.Feature" target=_parent class=IParent>OpenLayers.<wbr>Feature.<wbr>OpenLayers</a><a href="../files/OpenLayers/Handler/Feature-js.html#OpenLayers.Handler.Featu [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorG.html b/doc/devdocs/search/ConstructorG.html
index 6a208e2..63825f3 100644
--- a/doc/devdocs/search/ConstructorG.html
+++ b/doc/devdocs/search/ConstructorG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears.<span class=HB> </span>OpenLayers.<span class=HB> </span>Prot [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears.<wbr>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_GeoJSON><div class=IEntry><a href=".. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorH.html b/doc/devdocs/search/ConstructorH.html
index cf7c1fc..a10eb1b 100644
--- a/doc/devdocs/search/ConstructorH.html
+++ b/doc/devdocs/search/ConstructorH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Handler><div class=IEntry><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.OpenLayers.Handler" target=_parent class=ISymbol>Handler</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_Hover><div class=IEntry><a href="../files/OpenLayers/Handler/Hover-js [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Handler><div class=IEntry><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.OpenLayers.Handler" target=_parent class=ISymbol>Handler</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_Hover><div class=IEntry><a href="../files/OpenLayers/Handler/Hover-js.html#OpenLayers.Handler.Hover.OpenL [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorI.html b/doc/devdocs/search/ConstructorI.html
index 8dc17e1..61c751d 100644
--- a/doc/devdocs/search/ConstructorI.html
+++ b/doc/devdocs/search/ConstructorI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Icon><div class=IEntry><a href="../files/OpenLayers/Icon-js.html#OpenLayers.Icon.OpenLayers.Icon" target=_parent class=ISymbol>Icon</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Icon.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_IFrame><div class=IEntry><a href="../files/OpenLayers/Tile/Image/IFrame-js.html#OpenLay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Icon><div class=IEntry><a href="../files/OpenLayers/Icon-js.html#OpenLayers.Icon.OpenLayers.Icon" target=_parent class=ISymbol>Icon</a>, <span class=IParent>OpenLayers.<wbr>Icon.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_Image><div class=IEntry><a href="../files/OpenLayers/Layer/Image-js.html#OpenLayers.Layer.Image.OpenLayers.Layer.Image" tar [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorJ.html b/doc/devdocs/search/ConstructorJ.html
index 485c9ca..14b852f 100644
--- a/doc/devdocs/search/ConstructorJ.html
+++ b/doc/devdocs/search/ConstructorJ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>JSON.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div></table><div class=SRStatus id=S [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>JSON.<wbr>OpenLayers.<wbr>Format</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorK.html b/doc/devdocs/search/ConstructorK.html
index 9bcc417..645b059 100644
--- a/doc/devdocs/search/ConstructorK.html
+++ b/doc/devdocs/search/ConstructorK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult id=SR_KaMap [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>KaMap.<wbr>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_KaMapCache><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorL.html b/doc/devdocs/search/ConstructorL.html
index 5153f8f..e23429a 100644
--- a/doc/devdocs/search/ConstructorL.html
+++ b/doc/devdocs/search/ConstructorL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Layer><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.OpenLayers.Layer" target=_parent class=ISymbol>Layer</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_LayerSwitcher><div class=IEntry><a href="../files/OpenLayers/Control/LayerSwitche [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Layer><div class=IEntry><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.OpenLayers.Layer" target=_parent class=ISymbol>Layer</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_LayerSwitcher><div class=IEntry><a href="../files/OpenLayers/Control/LayerSwitcher-js.html#OpenLayers.Control.LayerSw [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorM.html b/doc/devdocs/search/ConstructorM.html
index 869ef6e..5920cde 100644
--- a/doc/devdocs/search/ConstructorM.html
+++ b/doc/devdocs/search/ConstructorM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Map><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.OpenLayers.Map" target=_parent class=ISymbol>Map</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Map.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_MapGuide><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Lay [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Map><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.OpenLayers.Map" target=_parent class=ISymbol>Map</a>, <span class=IParent>OpenLayers.<wbr>Map.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_MapGuide><div class=IEntry><a href="../files/OpenLayers/Layer/MapGuide-js.html#OpenLayers.Layer.MapGuide.OpenLayers.Layer.MapGuid [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorN.html b/doc/devdocs/search/ConstructorN.html
index 4c2e861..0409548 100644
--- a/doc/devdocs/search/ConstructorN.html
+++ b/doc/devdocs/search/ConstructorN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Navigation><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" target=_parent class=ISymbol>Navigation</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Navigation.<span class=HB> </span>OpenLayers.<span class=HB> </span>Control</span></d [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Navigation><div class=IEntry><a href="../files/OpenLayers/Control/Navigation-js.html#OpenLayers.Control.Navigation.OpenLayers.Control.Navigation" target=_parent class=ISymbol>Navigation</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Navigation.<wbr>OpenLayers.<wbr>Control</span></div></div><div class=SRResult id=SR_NavigationHistory><div class=IEntry>< [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorO.html b/doc/devdocs/search/ConstructorO.html
index 64d7864..d0686ca 100644
--- a/doc/devdocs/search/ConstructorO.html
+++ b/doc/devdocs/search/ConstructorO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OSM><div class=IEntry><a href="../files/OpenLayers/Format/OSM-js.html#OpenLayers.Format.OSM.OpenLayers.Format.OSM" target=_parent class=ISymbol>OSM</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OSM.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_OverviewMap> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OGCExceptionReport><div class=IEntry><a href="../files/OpenLayers/Format/OGCExceptionReport-js.html#OpenLayers.Format.OGCExceptionReport.OpenLayers.Format.OGCExceptionReport" target=_parent class=ISymbol>OGCExceptionReport</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>OGCExceptionReport.<wbr>OpenLayers.<wbr>Format</span></div></div><div class=SRResult  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorP.html b/doc/devdocs/search/ConstructorP.html
index 3b60658..726d6f0 100644
--- a/doc/devdocs/search/ConstructorP.html
+++ b/doc/devdocs/search/ConstructorP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Paging><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging" target=_parent class=ISymbol>Paging</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging.<span class=HB> </span>OpenLayers.<span class=HB> </span>Strategy</span></div></div><div class [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Paging><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.OpenLayers.Strategy.Paging" target=_parent class=ISymbol>Paging</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Paging.<wbr>OpenLayers.<wbr>Strategy</span></div></div><div class=SRResult id=SR_Pan><div class=IEntry><a href="../files/OpenLayers/Contr [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorR.html b/doc/devdocs/search/ConstructorR.html
index 8202b8f..f9e7c38 100644
--- a/doc/devdocs/search/ConstructorR.html
+++ b/doc/devdocs/search/ConstructorR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Raster><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Raster-js.html#OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster" target=_parent class=ISymbol>Raster</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer.<span class=HB> </span>Raster.<span class=HB> </span>OpenLayers.<span class=HB> </span>Symbolizer</span></div></div> [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Raster><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Raster-js.html#OpenLayers.Symbolizer.Raster.OpenLayers.Symbolizer.Raster" target=_parent class=ISymbol>Raster</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer.<wbr>Raster.<wbr>OpenLayers.<wbr>Symbolizer</span></div></div><div class=SRResult id=SR_Rectangle><div class=IEntry><a href="../files/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorS.html b/doc/devdocs/search/ConstructorS.html
index e25ada3..17fa78e 100644
--- a/doc/devdocs/search/ConstructorS.html
+++ b/doc/devdocs/search/ConstructorS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.OpenLayers.Strategy.Save" target=_parent class=ISymbol>Save</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Save.<span class=HB> </span>OpenLayers.<span class=HB> </span>Strategy</span></div></div><div class=SRResult id [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.OpenLayers.Strategy.Save" target=_parent class=ISymbol>Save</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Save.<wbr>OpenLayers.<wbr>Strategy</span></div></div><div class=SRResult id=SR_Scale><div class=IEntry><a href="../files/OpenLayers/Control/Scale-j [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorT.html b/doc/devdocs/search/ConstructorT.html
index 8aada3c..f7409d6 100644
--- a/doc/devdocs/search/ConstructorT.html
+++ b/doc/devdocs/search/ConstructorT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Text><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Text')" class=ISymbol>Text</a><div class=ISubIndex><a href="../files/OpenLayers/Format/Text-js.html#OpenLayers.Format.Text.OpenLayers.Format.Text" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>Text.<span class=HB> </span>OpenLayers.<span class=HB [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Text><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Text')" class=ISymbol>Text</a><div class=ISubIndex><a href="../files/OpenLayers/Format/Text-js.html#OpenLayers.Format.Text.OpenLayers.Format.Text" target=_parent class=IParent>OpenLayers.<wbr>Format.<wbr>Text.<wbr>OpenLayers.<wbr>Format</a><a href="../files/OpenLayers/Layer/Text-js.html#OpenL [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorU.html b/doc/devdocs/search/ConstructorU.html
index 76c2521..c218c54 100644
--- a/doc/devdocs/search/ConstructorU.html
+++ b/doc/devdocs/search/ConstructorU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Untiled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Untiled')" class=ISymbol>Untiled</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/MapServer/Untiled-js.html#OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>MapServer [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Untiled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Untiled')" class=ISymbol>Untiled</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/MapServer/Untiled-js.html#OpenLayers.Layer.MapServer.Untiled.OpenLayers.Layer.MapServer.Untiled" target=_parent class=IParent>OpenLayers.<wbr>Layer.<wbr>MapServer.<wbr>Untiled.<wbr>OpenLayers.<wbr>L [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorV.html b/doc/devdocs/search/ConstructorV.html
index 9daf61c..d179af9 100644
--- a/doc/devdocs/search/ConstructorV.html
+++ b/doc/devdocs/search/ConstructorV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1.<span class=HB> </span>OpenLa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1.<wbr>OpenLayers.<wbr>Format.<wbr>OWSContext</span></div></div><div class=SRResult i [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorW.html b/doc/devdocs/search/ConstructorW.html
index 185c45f..eb697d9 100644
--- a/doc/devdocs/search/ConstructorW.html
+++ b/doc/devdocs/search/ConstructorW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WFS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_WFS')" class=ISymbol>WFS</a><div class=ISubIndex><a href="../files/OpenLayers/Feature/WFS-js.html#OpenLayers.Feature.WFS.OpenLayers.Feature.WFS" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Feature.<span class=HB> </span>WFS.<span class=HB> </span>OpenLayers.<span class=HB> < [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WCSGetCoverage><div class=IEntry><a href="../files/OpenLayers/Format/WCSGetCoverage-js.html#OpenLayers.Format.WCSGetCoverage_version_1.1.0.OpenLayers.Format.WCSGetCoverage" target=_parent class=ISymbol>WCSGetCoverage</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>WCSGetCoverage version 1.<wbr>1.0.<wbr>OpenLayers.<wbr>Format</span></div></div><div class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorX.html b/doc/devdocs/search/ConstructorX.html
index 0306625..96fbd57 100644
--- a/doc/devdocs/search/ConstructorX.html
+++ b/doc/devdocs/search/ConstructorX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_XML><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.Format.XML.OpenLayers.Format.XML" target=_parent class=ISymbol>XML</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>XML.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_XYZ><div cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_XLS><div class=IEntry><a href="../files/OpenLayers/Format/XLS-js.html#OpenLayers.Format.XLS.OpenLayers.Format.XLS" target=_parent class=ISymbol>XLS</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>XLS.<wbr>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_XML><div class=IEntry><a href="../files/OpenLayers/Format/XML-js.html#OpenLayers.For [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorY.html b/doc/devdocs/search/ConstructorY.html
index 3033d64..2ced573 100644
--- a/doc/devdocs/search/ConstructorY.html
+++ b/doc/devdocs/search/ConstructorY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Yahoo><div class=IEntry><a href="../files/OpenLayers/Layer/Yahoo-js.html#OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo" target=_parent class=ISymbol>Yahoo</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Yahoo.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div></table><div class=SRStatus id= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Yahoo><div class=IEntry><a href="../files/OpenLayers/Layer/Yahoo-js.html#OpenLayers.Layer.Yahoo.OpenLayers.Layer.Yahoo" target=_parent class=ISymbol>Yahoo</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>Yahoo.<wbr>OpenLayers.<wbr>Layer</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches< [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/ConstructorZ.html b/doc/devdocs/search/ConstructorZ.html
index 7732e07..24abb97 100644
--- a/doc/devdocs/search/ConstructorZ.html
+++ b/doc/devdocs/search/ConstructorZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Zoomify><div class=IEntry><a href="../files/OpenLayers/Layer/Zoomify-js.html#OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify" target=_parent class=ISymbol>Zoomify</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Zoomify.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Zoomify><div class=IEntry><a href="../files/OpenLayers/Layer/Zoomify-js.html#OpenLayers.Layer.Zoomify.OpenLayers.Layer.Zoomify" target=_parent class=ISymbol>Zoomify</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>Zoomify.<wbr>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_ZoomPanel><div class=IEntry><a href="../files/OpenLayers/Control/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FilesA.html b/doc/devdocs/search/FilesA.html
index f9c9172..7a1c64b 100644
--- a/doc/devdocs/search/FilesA.html
+++ b/doc/devdocs/search/FilesA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Ajax_perjs><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#Ajax.js" target=_parent class=ISymbol>Ajax.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Ajax_perjs><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#Ajax.js" target=_parent class=ISymbol>Ajax.js</a></div></div><div class=SRResult id=SR_ArcGISCache_perjs><div class=IEntry><a href="../files/OpenLayers/Layer/ArcGISCache-js.html#ArcGISCache.js" target=_parent class=ISymbol>ArcGISCache.js</a></div></div></table><div class=SRStatus id=Search [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FilesC.html b/doc/devdocs/search/FilesC.html
index 4f568c7..14f3a41 100644
--- a/doc/devdocs/search/FilesC.html
+++ b/doc/devdocs/search/FilesC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Class_perjs><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Class-js.html#Class.js" target=_parent class=ISymbol>Class.js</a></div></div><div class=SRResult id=SR_CSWGetDomain_perjs><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetDomain-js.html#CSWGetDomain.js" target=_parent class=ISymbol>CSWGetDomain.js</a></div></div><div class=SRResul [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Class_perjs><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Class-js.html#Class.js" target=_parent class=ISymbol>Class.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FilesI.html b/doc/devdocs/search/FilesI.html
new file mode 100644
index 0000000..eae6a2e
--- /dev/null
+++ b/doc/devdocs/search/FilesI.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_IFrame_perjs><div class=IEntry><a href="../files/OpenLayers/Tile/Image/IFrame-js.html#IFrame.js" target=_parent class=ISymbol>IFrame.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/search/FilesK.html b/doc/devdocs/search/FilesK.html
new file mode 100644
index 0000000..20369f2
--- /dev/null
+++ b/doc/devdocs/search/FilesK.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Kinetic_perjs><div class=IEntry><a href="../files/OpenLayers/Kinetic-js.html#Kinetic.js" target=_parent class=ISymbol>Kinetic.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/search/FilesO.html b/doc/devdocs/search/FilesO.html
index 1d83f8f..4eccc8f 100644
--- a/doc/devdocs/search/FilesO.html
+++ b/doc/devdocs/search/FilesO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/devdocs/search/FilesS.html b/doc/devdocs/search/FilesS.html
index 3813296..021231f 100644
--- a/doc/devdocs/search/FilesS.html
+++ b/doc/devdocs/search/FilesS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_SOS_perjs><div class=IEntry><a href="../files/OpenLayers/Protocol/SOS-js.html#SOS.js" target=_parent class=ISymbol>SOS.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_SingleFile_perjs><div class=IEntry><a href="../files/OpenLayers/SingleFile-js.html#SingleFile.js" target=_parent class=ISymbol>SingleFile.js</a></div></div><div class=SRResult id=SR_SOS_perjs><div class=IEntry><a href="../files/OpenLayers/Protocol/SOS-js.html#SOS.js" target=_parent class=ISymbol>SOS.js</a></div></div></table><div class=SRStatus id=Searching>S [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FilesV.html b/doc/devdocs/search/FilesV.html
index 18b067d..bd6d556 100644
--- a/doc/devdocs/search/FilesV.html
+++ b/doc/devdocs/search/FilesV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/devdocs/search/FilesW.html b/doc/devdocs/search/FilesW.html
index e1f2506..32359c8 100644
--- a/doc/devdocs/search/FilesW.html
+++ b/doc/devdocs/search/FilesW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WFS_perjs><div class=IEntry><a href="../files/OpenLayers/Protocol/WFS-js.html#WFS.js" target=_parent class=ISymbol>WFS.js</a></div></div><div class=SRResult id=SR_WFSDescribeFeatureType_perjs><div class=IEntry><a href="../files/OpenLayers/Format/WFSDescribeFeatureType-js.html#WFSDescribeFeatureType.js" target=_parent class=ISymbol>WFSDescribeFeatureType.js</a [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WFSDescribeFeatureType_perjs><div class=IEntry><a href="../files/OpenLayers/Format/WFSDescribeFeatureType-js.html#WFSDescribeFeatureType.js" target=_parent class=ISymbol>WFSDescribeFeatureType.js</a></div></div><div class=SRResult id=SR_WFST_perjs><div class=IEntry><a href="../files/OpenLayers/Format/WFST-js.html#WFST.js" target=_parent class=ISymbol>WFST.js< [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsA.html b/doc/devdocs/search/FunctionsA.html
index 9bbd2f4..bd9b78a 100644
--- a/doc/devdocs/search/FunctionsA.html
+++ b/doc/devdocs/search/FunctionsA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="javascript:searchResults.Toggle('SR_abort')" class=ISymbol>abort</a><div class=ISubIndex><a href="../files/OpenLayers/Protocol-js.html#OpenLayers.Protocol.abort" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Protocol</a><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="javascript:searchResults.Toggle('SR_abort')" class=ISymbol>abort</a><div class=ISubIndex><a href="../files/OpenLayers/Protocol-js.html#OpenLayers.Protocol.abort" target=_parent class=IParent>OpenLayers.<wbr>Protocol</a><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_parent class=IPare [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsB.html b/doc/devdocs/search/FunctionsB.html
index f02cd18..42fb1bd 100644
--- a/doc/devdocs/search/FunctionsB.html
+++ b/doc/devdocs/search/FunctionsB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_baseLayerDraw><div class=IEntry><a href="../files/OpenLayers/Control/OverviewMap-js.html#OpenLayers.Control.OverviewMap.baseLayerDraw" target=_parent class=ISymbol>baseLayerDraw</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>OverviewMap</span></div></div><div class=SRResult id=SR_beforeSelectFeature><div class=IEntry [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_baseLayerDraw><div class=IEntry><a href="../files/OpenLayers/Control/OverviewMap-js.html#OpenLayers.Control.OverviewMap.baseLayerDraw" target=_parent class=ISymbol>baseLayerDraw</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>OverviewMap</span></div></div><div class=SRResult id=SR_beforeSelectFeature><div class=IEntry><a href="../files/OpenLayers/Contro [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsC.html b/doc/devdocs/search/FunctionsC.html
index 0b9cf09..ab05194 100644
--- a/doc/devdocs/search/FunctionsC.html
+++ b/doc/devdocs/search/FunctionsC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cacheFeatures><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cacheFeatures')" class=ISymbol>cacheFeatures</a><div class=ISubIndex><a href="../files/OpenLayers/Strategy/Cluster-js.html#OpenLayers.Strategy.Cluster.cacheFeatures" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Cluster</a><a href="../ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cacheFeatures><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cacheFeatures')" class=ISymbol>cacheFeatures</a><div class=ISubIndex><a href="../files/OpenLayers/Strategy/Cluster-js.html#OpenLayers.Strategy.Cluster.cacheFeatures" target=_parent class=IParent>OpenLayers.<wbr>Strategy.<wbr>Cluster</a><a href="../files/OpenLayers/Strategy/Paging-js. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsD.html b/doc/devdocs/search/FunctionsD.html
index 4dc07f3..40f1e19 100644
--- a/doc/devdocs/search/FunctionsD.html
+++ b/doc/devdocs/search/FunctionsD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dashStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dashStyle')" class=ISymbol>dashStyle</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.dashStyle" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Renderer.SVG</a><a href="../files/OpenLayers/Renderer/VML-js.html#OpenLayers.Re [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dashStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dashStyle')" class=ISymbol>dashStyle</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.dashStyle" target=_parent class=IParent>OpenLayers.<wbr>Renderer.SVG</a><a href="../files/OpenLayers/Renderer/SVG2-js.html#OpenLayers.Renderer.SVG2.dashS [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsE.html b/doc/devdocs/search/FunctionsE.html
index 10403fa..59688f8 100644
--- a/doc/devdocs/search/FunctionsE.html
+++ b/doc/devdocs/search/FunctionsE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easeIn><div class=IEntry><a href="javascript:searchResults.Toggle('SR_easeIn')" class=ISymbol>easeIn</a><div class=ISubIndex><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Expo.easeIn" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Easing.Expo</a><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Linear.easeIn" target=_ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easeIn><div class=IEntry><a href="javascript:searchResults.Toggle('SR_easeIn')" class=ISymbol>easeIn</a><div class=ISubIndex><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Expo.easeIn" target=_parent class=IParent>OpenLayers.<wbr>Easing.Expo</a><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Linear.easeIn" target=_parent class=IPare [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsF.html b/doc/devdocs/search/FunctionsF.html
index e99010b..bcf6549 100644
--- a/doc/devdocs/search/FunctionsF.html
+++ b/doc/devdocs/search/FunctionsF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_False><div class=IEntry><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.False" target=_parent class=ISymbol>False</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Function</span></div></div><div class=SRResult id=SR_feature><div class=IEntry><a href="../files/OpenLayers/Format/GeoJSON-js.html#OpenLayers.Format.GeoJSON.extract.feat [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_failure><div class=IEntry><a href="../files/OpenLayers/Control/Geolocate-js.html#OpenLayers.Control.Geolocate.failure" target=_parent class=ISymbol>failure</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Geolocate</span></div></div><div class=SRResult id=SR_False><div class=IEntry><a href="../files/OpenLayers/BaseTypes-js.html#OpenLayers.Function.False" [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsG.html b/doc/devdocs/search/FunctionsG.html
index c6d2f94..5e61884 100644
--- a/doc/devdocs/search/FunctionsG.html
+++ b/doc/devdocs/search/FunctionsG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geometry><div class=IEntry><a href="../files/OpenLayers/Format/GeoJSON-js.html#OpenLayers.Format.GeoJSON.extract.geometry" target=_parent class=ISymbol>geometry</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>GeoJSON.<span class=HB> </span>extract</span></div></div><div class=SRResult id=SR_geometryClone><div class=IEn [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geolocate><div class=IEntry><a href="../files/OpenLayers/Control/Geolocate-js.html#OpenLayers.Control.Geolocate.geolocate" target=_parent class=ISymbol>geolocate</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Geolocate</span></div></div><div class=SRResult id=SR_geometry><div class=IEntry><a href="../files/OpenLayers/Format/GeoJSON-js.html#OpenLayers.F [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsH.html b/doc/devdocs/search/FunctionsH.html
index 0f47d9c..e956516 100644
--- a/doc/devdocs/search/FunctionsH.html
+++ b/doc/devdocs/search/FunctionsH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_handle><div class=IEntry><a href="../files/OpenLayers/Handler/Feature-js.html#OpenLayers.Handler.Feature.handle" target=_parent class=ISymbol>handle</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>Feature</span></div></div><div class=SRResult id=SR_handleAdd><div class=IEntry><a href="../files/OpenLayers/Strategy/Filt [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_handle><div class=IEntry><a href="../files/OpenLayers/Handler/Feature-js.html#OpenLayers.Handler.Feature.handle" target=_parent class=ISymbol>handle</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>Feature</span></div></div><div class=SRResult id=SR_handleAdd><div class=IEntry><a href="../files/OpenLayers/Strategy/Filter-js.html#OpenLayers.Strategy.Filte [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsI.html b/doc/devdocs/search/FunctionsI.html
index 3eb2a96..cf5c7bd 100644
--- a/doc/devdocs/search/FunctionsI.html
+++ b/doc/devdocs/search/FunctionsI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Lang.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_ignoreEvent><div class=IEntry><a href="../files/OpenLayers/Control/LayerSwitcher-js.htm [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<wbr>Lang.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_iconOff><div class=IEntry><a href="../files/OpenLayers/Control/Panel-js.html#OpenLayers.Control.Panel.iconOff" target=_pare [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsL.html b/doc/devdocs/search/FunctionsL.html
index 7063084..d3fb9d8 100644
--- a/doc/devdocs/search/FunctionsL.html
+++ b/doc/devdocs/search/FunctionsL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_layerToContext><div class=IEntry><a href="../files/OpenLayers/Format/WMC-js.html#OpenLayers.Format.WMC.layerToContext" target=_parent class=ISymbol>layerToContext</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.WMC</span></div></div><div class=SRResult id=SR_leaveMode><div class=IEntry><a href="../files/OpenLayers/Control/MouseToolbar-js.htm [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_layerToContext><div class=IEntry><a href="../files/OpenLayers/Format/WMC-js.html#OpenLayers.Format.WMC.layerToContext" target=_parent class=ISymbol>layerToContext</a>, <span class=IParent>OpenLayers.<wbr>Format.WMC</span></div></div><div class=SRResult id=SR_leaveMode><div class=IEntry><a href="../files/OpenLayers/Control/MouseToolbar-js.html#OpenLayers.Contr [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsM.html b/doc/devdocs/search/FunctionsM.html
index 5971860..257b3c2 100644
--- a/doc/devdocs/search/FunctionsM.html
+++ b/doc/devdocs/search/FunctionsM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mapDivClick><div class=IEntry><a href="../files/OpenLayers/Control/OverviewMap-js.html#OpenLayers.Control.OverviewMap.mapDivClick" target=_parent class=ISymbol>mapDivClick</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>OverviewMap</span></div></div><div class=SRResult id=SR_markerClick><div class=IEntry><a href="../f [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mapDivClick><div class=IEntry><a href="../files/OpenLayers/Control/OverviewMap-js.html#OpenLayers.Control.OverviewMap.mapDivClick" target=_parent class=ISymbol>mapDivClick</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>OverviewMap</span></div></div><div class=SRResult id=SR_markerClick><div class=IEntry><a href="../files/OpenLayers/Layer/GeoRSS-js.html [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsN.html b/doc/devdocs/search/FunctionsN.html
index e621dbe..baa2bc7 100644
--- a/doc/devdocs/search/FunctionsN.html
+++ b/doc/devdocs/search/FunctionsN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_nextTrigger><div class=IEntry><a href="../files/OpenLayers/Control/NavigationHistory-js.html#OpenLayers.Control.NavigationHistory.nextTrigger" target=_parent class=ISymbol>nextTrigger</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>NavigationHistory</span></div></div><div class=SRResult id=SR_nodeFactory><div class=IE [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_nextTrigger><div class=IEntry><a href="../files/OpenLayers/Control/NavigationHistory-js.html#OpenLayers.Control.NavigationHistory.nextTrigger" target=_parent class=ISymbol>nextTrigger</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>NavigationHistory</span></div></div><div class=SRResult id=SR_nodeFactory><div class=IEntry><a href="../files/OpenLayers/Re [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsO.html b/doc/devdocs/search/FunctionsO.html
index b9089db..728bb52 100644
--- a/doc/devdocs/search/FunctionsO.html
+++ b/doc/devdocs/search/FunctionsO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_object><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.serialize.object" target=_parent class=ISymbol>object</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>JSON.<span class=HB> </span>serialize</span></div></div><div class=SRResult id=SR_observe><div class=IEntry><a href="../f [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_object><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.serialize.object" target=_parent class=ISymbol>object</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>JSON.<wbr>serialize</span></div></div><div class=SRResult id=SR_observe><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.observ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsP.html b/doc/devdocs/search/FunctionsP.html
index d68240e..4f81b67 100644
--- a/doc/devdocs/search/FunctionsP.html
+++ b/doc/devdocs/search/FunctionsP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_page><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.page" target=_parent class=ISymbol>page</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Strategy.<span class=HB> </span>Paging</span></div></div><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_page><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.page" target=_parent class=ISymbol>page</a>, <span class=IParent>OpenLayers.<wbr>Strategy.<wbr>Paging</span></div></div><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/OpenLayers/Strategy/Paging-js.html#OpenLayers.Strategy.Paging.page [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsQ.html b/doc/devdocs/search/FunctionsQ.html
new file mode 100644
index 0000000..4b613a6
--- /dev/null
+++ b/doc/devdocs/search/FunctionsQ.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.52 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_queuePotentialClick><div class=IEntry><a href="../files/OpenLayers/Handler/Click-js.html#OpenLayers.Handler.Click.queuePotentialClick" target=_parent class=ISymbol>queuePotentialClick</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>Click</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matc [...]
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/devdocs/search/FunctionsR.html b/doc/devdocs/search/FunctionsR.html
index e789dbf..317b859 100644
--- a/doc/devdocs/search/FunctionsR.html
+++ b/doc/devdocs/search/FunctionsR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rad><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.rad" target=_parent class=ISymbol>rad</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_raiseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.raiseLayer" target=_parent class=ISymbol>raiseLayer</a>, <span class=IParent>OpenLayers.Map</sp [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rad><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.rad" target=_parent class=ISymbol>rad</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_raiseLayer><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.raiseLayer" target=_parent class=ISymbol>raiseLayer</a>, <span class=IParent>OpenLayers.Map</sp [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsS.html b/doc/devdocs/search/FunctionsS.html
index 5e8f4e4..abe76ad 100644
--- a/doc/devdocs/search/FunctionsS.html
+++ b/doc/devdocs/search/FunctionsS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_safeStopPropagation><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.safeStopPropagation" target=_parent class=ISymbol>safeStopPropagation</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbo [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_safeStopPropagation><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.safeStopPropagation" target=_parent class=ISymbol>safeStopPropagation</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbo [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsSymbols.html b/doc/devdocs/search/FunctionsSymbols.html
index 6be3524..39e2f4c 100644
--- a/doc/devdocs/search/FunctionsSymbols.html
+++ b/doc/devdocs/search/FunctionsSymbols.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR__undaddButton><div class=IEntry><a href="javascript:searchResults.Toggle('SR__undaddButton')" class=ISymbol>_addButton</a><div class=ISubIndex><a href="../files/OpenLayers/Control/MouseToolbar-js.html#OpenLayers.Control.MouseToolbar._addButton" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseToolbar</a><a hre [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR__undaddButton><div class=IEntry><a href="javascript:searchResults.Toggle('SR__undaddButton')" class=ISymbol>_addButton</a><div class=ISubIndex><a href="../files/OpenLayers/Control/MouseToolbar-js.html#OpenLayers.Control.MouseToolbar._addButton" target=_parent class=IParent>OpenLayers.<wbr>Control.<wbr>MouseToolbar</a><a href="../files/OpenLayers/Control/PanZo [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsT.html b/doc/devdocs/search/FunctionsT.html
index 7fb2fb6..eb9e234 100644
--- a/doc/devdocs/search/FunctionsT.html
+++ b/doc/devdocs/search/FunctionsT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_testTarget><div class=IEntry><a href="../files/OpenLayers/Control/Snapping-js.html#OpenLayers.Control.Snapping.testTarget" target=_parent class=ISymbol>testTarget</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Snapping</span></div></div><div class=SRResult id=SR_time><div class=IEntry><a href="../files/OpenLayers/Con [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_testTarget><div class=IEntry><a href="../files/OpenLayers/Control/Snapping-js.html#OpenLayers.Control.Snapping.testTarget" target=_parent class=ISymbol>testTarget</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Snapping</span></div></div><div class=SRResult id=SR_time><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.time [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsU.html b/doc/devdocs/search/FunctionsU.html
index 38513d3..9925d1f 100644
--- a/doc/devdocs/search/FunctionsU.html
+++ b/doc/devdocs/search/FunctionsU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Events</span></div></div><div class=SRResult id=SR_unfreezeFeature><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.unfreezeFeat [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<wbr>Events</span></div></div><div class=SRResult id=SR_undo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_undo')" class=ISymbol>undo</a><div class=ISubIndex><a href="../files/OpenLayers/Co [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsV.html b/doc/devdocs/search/FunctionsV.html
index a83805f..36cb88d 100644
--- a/doc/devdocs/search/FunctionsV.html
+++ b/doc/devdocs/search/FunctionsV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value2regex><div class=IEntry><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value2regex" target=_parent class=ISymbol>value2regex</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</span></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="javascript:sea [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value2regex><div class=IEntry><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value2regex" target=_parent class=ISymbol>value2regex</a>, <span class=IParent>OpenLayers.<wbr>Filter.<wbr>Comparison</span></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visible')" cla [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsW.html b/doc/devdocs/search/FunctionsW.html
index 7d6347f..f0c31e2 100644
--- a/doc/devdocs/search/FunctionsW.html
+++ b/doc/devdocs/search/FunctionsW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Console</span></div></div><div class=SRResult id=SR_WFS><div class=IEntry><a href="../files/OpenLayers/Protocol/WFS-js.html#OpenLayers.Protocol.WFS" target=_parent class=ISymb [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>OpenLayers.<wbr>Console</span></div></div><div class=SRResult id=SR_WFST><div class=IEntry><a href="../files/OpenLayers/Format/WFST-js.html#OpenLayers.Format.WFST" target=_parent class=ISymbol>WFST</a>, <span  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/FunctionsZ.html b/doc/devdocs/search/FunctionsZ.html
index efbb27b..0086209 100644
--- a/doc/devdocs/search/FunctionsZ.html
+++ b/doc/devdocs/search/FunctionsZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER" target=_parent class=ISymbol>Z_ORDER</a>, <span class=IParent>OpenLayers.<span class=HB> </span>ElementsIndexer.<span class=HB> </span>IndexingMethods</span></div></div><div class=SRResult id=SR_Z_undORDER_undDRAWING_undORDER [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER" target=_parent class=ISymbol>Z_ORDER</a>, <span class=IParent>OpenLayers.<wbr>ElementsIndexer.<wbr>IndexingMethods</span></div></div><div class=SRResult id=SR_Z_undORDER_undDRAWING_undORDER><div class=IEntry><a href="../files [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralA.html b/doc/devdocs/search/GeneralA.html
index 94f63d8..a4e2510 100644
--- a/doc/devdocs/search/GeneralA.html
+++ b/doc/devdocs/search/GeneralA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="javascript:searchResults.Toggle('SR_abort')" class=ISymbol>abort</a><div class=ISubIndex><a href="../files/OpenLayers/Protocol-js.html#OpenLayers.Protocol.abort" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Protocol</a><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_abort><div class=IEntry><a href="javascript:searchResults.Toggle('SR_abort')" class=ISymbol>abort</a><div class=ISubIndex><a href="../files/OpenLayers/Protocol-js.html#OpenLayers.Protocol.abort" target=_parent class=IParent>OpenLayers.<wbr>Protocol</a><a href="../files/OpenLayers/Protocol/HTTP-js.html#OpenLayers.Protocol.HTTP.abort" target=_parent class=IPare [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralB.html b/doc/devdocs/search/GeneralB.html
index 89ba522..5bc0181 100644
--- a/doc/devdocs/search/GeneralB.html
+++ b/doc/devdocs/search/GeneralB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_backBufferTile><div class=IEntry><a href="../files/OpenLayers/Tile/Image-js.html#OpenLayers.Tile.Image.backBufferTile" target=_parent class=ISymbol>backBufferTile</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image</span></div></div><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../file [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_backBufferTile><div class=IEntry><a href="../files/OpenLayers/Tile/Image-js.html#OpenLayers.Tile.Image.backBufferTile" target=_parent class=ISymbol>backBufferTile</a>, <span class=IParent>OpenLayers.<wbr>Tile.<wbr>Image</span></div></div><div class=SRResult id=SR_BACKGROUND_undID_undSUFFIX><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.ht [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralC.html b/doc/devdocs/search/GeneralC.html
index cefb48f..6140776 100644
--- a/doc/devdocs/search/GeneralC.html
+++ b/doc/devdocs/search/GeneralC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cache><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cache')" class=ISymbol>cache</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.cache" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.<span class=HB> </span>OpenLayers.< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cache><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cache')" class=ISymbol>cache</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.cache" target=_parent class=IParent>OpenLayers.<wbr>Layer.<wbr>Google.<wbr>OpenLayers.<wbr>Layer.<wbr>Google</a><a href="../files/OpenLayers/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralD.html b/doc/devdocs/search/GeneralD.html
index a75ae67..4b13d18 100644
--- a/doc/devdocs/search/GeneralD.html
+++ b/doc/devdocs/search/GeneralD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dashStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dashStyle')" class=ISymbol>dashStyle</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.dashStyle" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Renderer.SVG</a><a href="../files/OpenLayers/Renderer/VML-js.html#OpenLayers.Re [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dashStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dashStyle')" class=ISymbol>dashStyle</a><div class=ISubIndex><a href="../files/OpenLayers/Renderer/SVG-js.html#OpenLayers.Renderer.SVG.dashStyle" target=_parent class=IParent>OpenLayers.<wbr>Renderer.SVG</a><a href="../files/OpenLayers/Renderer/SVG2-js.html#OpenLayers.Renderer.SVG2.dashS [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralE.html b/doc/devdocs/search/GeneralE.html
index 20f7f76..7007574 100644
--- a/doc/devdocs/search/GeneralE.html
+++ b/doc/devdocs/search/GeneralE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easeIn><div class=IEntry><a href="javascript:searchResults.Toggle('SR_easeIn')" class=ISymbol>easeIn</a><div class=ISubIndex><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Expo.easeIn" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Easing.Expo</a><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Linear.easeIn" target=_ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easeIn><div class=IEntry><a href="javascript:searchResults.Toggle('SR_easeIn')" class=ISymbol>easeIn</a><div class=ISubIndex><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Expo.easeIn" target=_parent class=IParent>OpenLayers.<wbr>Easing.Expo</a><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Easing.Linear.easeIn" target=_parent class=IPare [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralF.html b/doc/devdocs/search/GeneralF.html
index 5ded935..7870650 100644
--- a/doc/devdocs/search/GeneralF.html
+++ b/doc/devdocs/search/GeneralF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" targ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_failure><div class=IEntry><a href="../files/OpenLayers/Control/Geolocate-js.html#OpenLayers.Control.Geolocate.failure" target=_parent class=ISymbol>failure</a>, <span class=IParent>OpenLayers.<wbr>Control.<wbr>Geolocate</span></div></div><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=I [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralG.html b/doc/devdocs/search/GeneralG.html
index 158d072..7971e0c 100644
--- a/doc/devdocs/search/GeneralG.html
+++ b/doc/devdocs/search/GeneralG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears.<span class=HB> </span>OpenLayers.<span class=HB> </span>Prot [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Gears><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.OpenLayers.Protocol.SQL.Gears" target=_parent class=ISymbol>Gears</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears.<wbr>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_geodesic><div class=IEntry><a href="j [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralH.html b/doc/devdocs/search/GeneralH.html
index 1354a3a..cf10fd1 100644
--- a/doc/devdocs/search/GeneralH.html
+++ b/doc/devdocs/search/GeneralH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_handle><div class=IEntry><a href="../files/OpenLayers/Handler/Feature-js.html#OpenLayers.Handler.Feature.handle" target=_parent class=ISymbol>handle</a>,  [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_handle><div class=IEntry><a href="../files/OpenLayers/Handler/Feature-js.html#OpenLayers.Handler.Feature.handle" target=_parent class=ISymbol>handle</a>,  [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralI.html b/doc/devdocs/search/GeneralI.html
index fee227d..12b7498 100644
--- a/doc/devdocs/search/GeneralI.html
+++ b/doc/devdocs/search/GeneralI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Lang.<span class=HB> </span>OpenLayers</span></div></div><div class=SRResult id=SR_icon><div class=IEntry><a href="javascript:searchResults.Toggle('SR_icon')" class=ISymb [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_i18n><div class=IEntry><a href="../files/OpenLayers/Lang-js.html#OpenLayers.Lang.OpenLayers.i18n" target=_parent class=ISymbol>i18n</a>, <span class=IParent>OpenLayers.<wbr>Lang.<wbr>OpenLayers</span></div></div><div class=SRResult id=SR_icon><div class=IEntry><a href="javascript:searchResults.Toggle('SR_icon')" class=ISymbol>icon</a><div class=ISubIndex><a h [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralJ.html b/doc/devdocs/search/GeneralJ.html
index a7b45f7..144270b 100644
--- a/doc/devdocs/search/GeneralJ.html
+++ b/doc/devdocs/search/GeneralJ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>JSON.<span class=HB> </span>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_jsonPa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_JSON><div class=IEntry><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.OpenLayers.Format.JSON" target=_parent class=ISymbol>JSON</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>JSON.<wbr>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_jsonParser><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-j [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralK.html b/doc/devdocs/search/GeneralK.html
index 62333e4..d887447 100644
--- a/doc/devdocs/search/GeneralK.html
+++ b/doc/devdocs/search/GeneralK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>KaMap.<span class=HB> </span>OpenLayers.<span class=HB> </span>Layer</span></div></div><div class=SRResult id=SR_KaMap [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_KaMap><div class=IEntry><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.OpenLayers.Layer.KaMap" target=_parent class=ISymbol>KaMap</a>, <span class=IParent>OpenLayers.<wbr>Layer.<wbr>KaMap.<wbr>OpenLayers.<wbr>Layer</span></div></div><div class=SRResult id=SR_KaMapCache><div class=IEntry><a href="../files/OpenLayers/Layer/KaMapCache-js [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralL.html b/doc/devdocs/search/GeneralL.html
index 82ade6b..97b1241 100644
--- a/doc/devdocs/search/GeneralL.html
+++ b/doc/devdocs/search/GeneralL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer.Text</span></div></div><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')"  [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer.Text</span></div></div><div class=SRResult id=SR_LABEL_undALIGN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undALIGN')" class=ISymbol>LABE [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralM.html b/doc/devdocs/search/GeneralM.html
index f3e36d2..f0b1c35 100644
--- a/doc/devdocs/search/GeneralM.html
+++ b/doc/devdocs/search/GeneralM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="javascript:searchResults.Toggle('SR_map')" class=ISymbol>map</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.map" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control</a><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.map" target=_parent class=IParent>Open [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="javascript:searchResults.Toggle('SR_map')" class=ISymbol>map</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.map" target=_parent class=IParent>OpenLayers.<wbr>Control</a><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.map" target=_parent class=IParent>OpenLayers.<wbr>Handle [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralN.html b/doc/devdocs/search/GeneralN.html
index f0e2d3b..6a2fb51 100644
--- a/doc/devdocs/search/GeneralN.html
+++ b/doc/devdocs/search/GeneralN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.name" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer</a><a href="../files/OpenLayers/Layer/ArcIMS-js.html#OpenLayers.Layer.ArcIMS.name" target=_parent class=IPa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Function-js.html#OpenLayers.Filter.Function.name" target=_parent class=IParent>OpenLayers.<wbr>Filter.<wbr>Function</a><a href="../files/OpenLayers/Format/XML/VersionedOGC-js.html#OpenLayers.Format.XML.Vers [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralO.html b/doc/devdocs/search/GeneralO.html
index dc0c769..2661e71 100644
--- a/doc/devdocs/search/GeneralO.html
+++ b/doc/devdocs/search/GeneralO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_object><div class=IEntry><a href="javascript:searchResults.Toggle('SR_object')" class=ISymbol>object</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.object" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Events</a><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.serialize.object" tar [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_object><div class=IEntry><a href="javascript:searchResults.Toggle('SR_object')" class=ISymbol>object</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.object" target=_parent class=IParent>OpenLayers.<wbr>Events</a><a href="../files/OpenLayers/Format/JSON-js.html#OpenLayers.Format.JSON.serialize.object" target=_parent class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralP.html b/doc/devdocs/search/GeneralP.html
index 10e842b..8ab2577 100644
--- a/doc/devdocs/search/GeneralP.html
+++ b/doc/devdocs/search/GeneralP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_padding><div class=IEntry><a href="../files/OpenLayers/Popup-js.html#OpenLayers.Popup.padding" target=_parent class=ISymbol>padding</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Popup</span></div></div><div class=SRResult id=SR_paddingForPopups><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.paddingForPopups" target=_par [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_padding><div class=IEntry><a href="../files/OpenLayers/Popup-js.html#OpenLayers.Popup.padding" target=_parent class=ISymbol>padding</a>, <span class=IParent>OpenLayers.<wbr>Popup</span></div></div><div class=SRResult id=SR_paddingForPopups><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.paddingForPopups" target=_parent class=ISymbol> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralQ.html b/doc/devdocs/search/GeneralQ.html
index 68a95f7..0e49bdd 100644
--- a/doc/devdocs/search/GeneralQ.html
+++ b/doc/devdocs/search/GeneralQ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible><div class=IEntry><a href="javascript:searchResults.Tog [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralR.html b/doc/devdocs/search/GeneralR.html
index 5cfd318..648f600 100644
--- a/doc/devdocs/search/GeneralR.html
+++ b/doc/devdocs/search/GeneralR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rad><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.rad" target=_parent class=ISymbol>rad</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rad><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.rad" target=_parent class=ISymbol>rad</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class= [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralS.html b/doc/devdocs/search/GeneralS.html
index ff12904..c8ea5af 100644
--- a/doc/devdocs/search/GeneralS.html
+++ b/doc/devdocs/search/GeneralS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_safeStopPropagation><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.safeStopPropagation" target=_parent class=ISymbol>safeStopPropagation</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbo [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_safeStopPropagation><div class=IEntry><a href="../files/OpenLayers/Util-js.html#Util.safeStopPropagation" target=_parent class=ISymbol>safeStopPropagation</a>, <span class=IParent>Util</span></div></div><div class=SRResult id=SR_save><div class=IEntry><a href="../files/OpenLayers/Strategy/Save-js.html#OpenLayers.Strategy.Save.save" target=_parent class=ISymbo [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralSymbols.html b/doc/devdocs/search/GeneralSymbols.html
index 85cdd44..49342d0 100644
--- a/doc/devdocs/search/GeneralSymbols.html
+++ b/doc/devdocs/search/GeneralSymbols.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR__undaddButton><div class=IEntry><a href="javascript:searchResults.Toggle('SR__undaddButton')" class=ISymbol>_addButton</a><div class=ISubIndex><a href="../files/OpenLayers/Control/MouseToolbar-js.html#OpenLayers.Control.MouseToolbar._addButton" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>MouseToolbar</a><a hre [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR__undaddButton><div class=IEntry><a href="javascript:searchResults.Toggle('SR__undaddButton')" class=ISymbol>_addButton</a><div class=ISubIndex><a href="../files/OpenLayers/Control/MouseToolbar-js.html#OpenLayers.Control.MouseToolbar._addButton" target=_parent class=IParent>OpenLayers.<wbr>Control.<wbr>MouseToolbar</a><a href="../files/OpenLayers/Control/PanZo [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralT.html b/doc/devdocs/search/GeneralT.html
index 9b16c79..21f1153 100644
--- a/doc/devdocs/search/GeneralT.html
+++ b/doc/devdocs/search/GeneralT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.SQL</span></div></div><div class=SRResult id=SR_targetFilter><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_TARGET_undNODE><div class=IEntry><a href="../files/OpenLayers/Layer/PointTrack-js.html#OpenLayers.Layer.PointTr [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralU.html b/doc/devdocs/search/GeneralU.html
index 2c36737..e2de23f 100644
--- a/doc/devdocs/search/GeneralU.html
+++ b/doc/devdocs/search/GeneralU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Events</span></div></div><div class=SRResult id=SR_unfreezeFeature><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.unfreezeFeat [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_un><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.un" target=_parent class=ISymbol>un</a>, <span class=IParent>OpenLayers.<wbr>Events</span></div></div><div class=SRResult id=SR_undo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_undo')" class=ISymbol>undo</a><div class=ISubIndex><a href="../files/OpenLayers/Co [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralV.html b/doc/devdocs/search/GeneralV.html
index cc2cf9a..379c836 100644
--- a/doc/devdocs/search/GeneralV.html
+++ b/doc/devdocs/search/GeneralV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>OWSContext.<span class=HB> </span>v0_3_1.<span class=HB> </span>OpenLa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_v0_und3_und1><div class=IEntry><a href="../files/OpenLayers/Format/OWSContext/v0_3_1-js.html#OpenLayers.Format.OWSContext.v0_3_1.OpenLayers.Format.OWSContext.v0_3_1" target=_parent class=ISymbol>v0_3_1</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>OWSContext.<wbr>v0_3_1.<wbr>OpenLayers.<wbr>Format.<wbr>OWSContext</span></div></div><div class=SRResult i [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralW.html b/doc/devdocs/search/GeneralW.html
index 7951f54..fbabb21 100644
--- a/doc/devdocs/search/GeneralW.html
+++ b/doc/devdocs/search/GeneralW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>Op [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/OpenLayers/Console-js.html#OpenLayers.Console.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>Op [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralX.html b/doc/devdocs/search/GeneralX.html
index e38159d..83fd171 100644
--- a/doc/devdocs/search/GeneralX.html
+++ b/doc/devdocs/search/GeneralX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers.Geometry.Rectangle.x" target=_paren [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralY.html b/doc/devdocs/search/GeneralY.html
index 45d3b4b..96cc3c2 100644
--- a/doc/devdocs/search/GeneralY.html
+++ b/doc/devdocs/search/GeneralY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers.Geometry.Rectangle.y" target=_paren [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/GeneralZ.html b/doc/devdocs/search/GeneralZ.html
index fb3f977..fef84c4 100644
--- a/doc/devdocs/search/GeneralZ.html
+++ b/doc/devdocs/search/GeneralZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undINDEX_undBASE><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.Z_INDEX_BASE" target=_parent class=ISymbol>Z_INDEX_BASE</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_Z_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndexer.IndexingMethods.Z [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Z_undINDEX_undBASE><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.Z_INDEX_BASE" target=_parent class=ISymbol>Z_INDEX_BASE</a>, <span class=IParent>OpenLayers.Map</span></div></div><div class=SRResult id=SR_Z_undORDER><div class=IEntry><a href="../files/OpenLayers/Renderer/Elements-js.html#OpenLayers.ElementsIndexer.IndexingMethods.Z [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/NoResults.html b/doc/devdocs/search/NoResults.html
index 947d3b5..8c72496 100644
--- a/doc/devdocs/search/NoResults.html
+++ b/doc/devdocs/search/NoResults.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
diff --git a/doc/devdocs/search/PropertiesA.html b/doc/devdocs/search/PropertiesA.html
index 631349c..accaba4 100644
--- a/doc/devdocs/search/PropertiesA.html
+++ b/doc/devdocs/search/PropertiesA.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_active><div class=IEntry><a href="javascript:searchResults.Toggle('SR_active')" class=ISymbol>active</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.active" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control</a><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.active" target=_parent cla [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_active><div class=IEntry><a href="javascript:searchResults.Toggle('SR_active')" class=ISymbol>active</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.active" target=_parent class=IParent>OpenLayers.<wbr>Control</a><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.active" target=_parent class=IParent>OpenLay [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesB.html b/doc/devdocs/search/PropertiesB.html
index 74d1c09..aa55040 100644
--- a/doc/devdocs/search/PropertiesB.html
+++ b/doc/devdocs/search/PropertiesB.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_backBufferTile><div class=IEntry><a href="../files/OpenLayers/Tile/Image-js.html#OpenLayers.Tile.Image.backBufferTile" target=_parent class=ISymbol>backBufferTile</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Tile.<span class=HB> </span>Image</span></div></div><div class=SRResult id=SR_backgroundColor><div class=IEntry><a href="../files/OpenLayer [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_backBufferTile><div class=IEntry><a href="../files/OpenLayers/Tile/Image-js.html#OpenLayers.Tile.Image.backBufferTile" target=_parent class=ISymbol>backBufferTile</a>, <span class=IParent>OpenLayers.<wbr>Tile.<wbr>Image</span></div></div><div class=SRResult id=SR_backgroundColor><div class=IEntry><a href="../files/OpenLayers/Popup-js.html#OpenLayers.Popup.bac [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesC.html b/doc/devdocs/search/PropertiesC.html
index c1a645c..df4f3d0 100644
--- a/doc/devdocs/search/PropertiesC.html
+++ b/doc/devdocs/search/PropertiesC.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cache><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cache')" class=ISymbol>cache</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.cache" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>Google.<span class=HB> </span>OpenLayers.< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cache><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cache')" class=ISymbol>cache</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/Google-js.html#OpenLayers.Layer.Google.OpenLayers.Layer.Google.cache" target=_parent class=IParent>OpenLayers.<wbr>Layer.<wbr>Google.<wbr>OpenLayers.<wbr>Layer.<wbr>Google</a><a href="../files/OpenLayers/ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesD.html b/doc/devdocs/search/PropertiesD.html
index a5a2b70..267adf4 100644
--- a/doc/devdocs/search/PropertiesD.html
+++ b/doc/devdocs/search/PropertiesD.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_data><div class=IEntry><a href="javascript:searchResults.Toggle('SR_data')" class=ISymbol>data</a><div class=ISubIndex><a href="../files/OpenLayers/Feature-js.html#OpenLayers.Feature.data" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Feature</a><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.data" target=_parent class=IParent>O [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_data><div class=IEntry><a href="javascript:searchResults.Toggle('SR_data')" class=ISymbol>data</a><div class=ISubIndex><a href="../files/OpenLayers/Feature-js.html#OpenLayers.Feature.data" target=_parent class=IParent>OpenLayers.<wbr>Feature</a><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.data" target=_parent class=IParent>OpenLayers.<wbr>For [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesE.html b/doc/devdocs/search/PropertiesE.html
index 3eb13f0..db0b492 100644
--- a/doc/devdocs/search/PropertiesE.html
+++ b/doc/devdocs/search/PropertiesE.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easing><div class=IEntry><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Tween.easing" target=_parent class=ISymbol>easing</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Tween</span></div></div><div class=SRResult id=SR_eBottom><div class=IEntry><a href="../files/OpenLayers/Control/ScaleLine-js.html#OpenLayers.Control.ScaleLine.eBottom" targ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_easing><div class=IEntry><a href="../files/OpenLayers/Tween-js.html#OpenLayers.Tween.easing" target=_parent class=ISymbol>easing</a>, <span class=IParent>OpenLayers.<wbr>Tween</span></div></div><div class=SRResult id=SR_eBottom><div class=IEntry><a href="../files/OpenLayers/Control/ScaleLine-js.html#OpenLayers.Control.ScaleLine.eBottom" target=_parent class=I [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesF.html b/doc/devdocs/search/PropertiesF.html
index b450cc2..82c35ed 100644
--- a/doc/devdocs/search/PropertiesF.html
+++ b/doc/devdocs/search/PropertiesF.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" targ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fallThrough><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fallThrough')" class=ISymbol>fallThrough</a><div class=ISubIndex><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.fallThrough" target=_parent class=IParent>OpenLayers.<wbr>Events</a><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.fallThrough" target=_parent class=I [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesG.html b/doc/devdocs/search/PropertiesG.html
index a67ca7d..a5c39a7 100644
--- a/doc/devdocs/search/PropertiesG.html
+++ b/doc/devdocs/search/PropertiesG.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geodesic><div class=IEntry><a href="javascript:searchResults.Toggle('SR_geodesic')" class=ISymbol>geodesic</a><div class=ISubIndex><a href="../files/OpenLayers/Control/Measure-js.html#OpenLayers.Control.Measure.geodesic" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control.<span class=HB> </span>Measure</a><a href="../files/OpenLayers/Contro [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geodesic><div class=IEntry><a href="javascript:searchResults.Toggle('SR_geodesic')" class=ISymbol>geodesic</a><div class=ISubIndex><a href="../files/OpenLayers/Control/Measure-js.html#OpenLayers.Control.Measure.geodesic" target=_parent class=IParent>OpenLayers.<wbr>Control.<wbr>Measure</a><a href="../files/OpenLayers/Control/Scale-js.html#OpenLayers.Control.S [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesH.html b/doc/devdocs/search/PropertiesH.html
index 4b6515b..58ded17 100644
--- a/doc/devdocs/search/PropertiesH.html
+++ b/doc/devdocs/search/PropertiesH.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_handler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_handler')" class=ISymbol>handler</a><div class=ISubIndex><a href="../files/OpenLaye [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.h" target=_parent class=ISymbol>h</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_handler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_handler')" class=ISymbol>handler</a><div class=ISubIndex><a href="../files/OpenLaye [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesI.html b/doc/devdocs/search/PropertiesI.html
index 2b0034a..529dd53 100644
--- a/doc/devdocs/search/PropertiesI.html
+++ b/doc/devdocs/search/PropertiesI.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_icon><div class=IEntry><a href="javascript:searchResults.Toggle('SR_icon')" class=ISymbol>icon</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/GeoRSS-js.html#OpenLayers.Layer.GeoRSS.icon" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer.<span class=HB> </span>GeoRSS</a><a href="../files/OpenLayers/Marker-js.html#OpenLayers.Marke [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_icon><div class=IEntry><a href="javascript:searchResults.Toggle('SR_icon')" class=ISymbol>icon</a><div class=ISubIndex><a href="../files/OpenLayers/Layer/GeoRSS-js.html#OpenLayers.Layer.GeoRSS.icon" target=_parent class=IParent>OpenLayers.<wbr>Layer.<wbr>GeoRSS</a><a href="../files/OpenLayers/Marker-js.html#OpenLayers.Marker.icon" target=_parent class=IParent [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesJ.html b/doc/devdocs/search/PropertiesJ.html
index 9afbd64..bdbf8dd 100644
--- a/doc/devdocs/search/PropertiesJ.html
+++ b/doc/devdocs/search/PropertiesJ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_jsonParser><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.jsonParser" target=_parent class=ISymbol>jsonParser</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears</span></div></div></table><div class=SRStatus id=Searching>Searching.. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_jsonParser><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.jsonParser" target=_parent class=ISymbol>jsonParser</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</di [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesK.html b/doc/devdocs/search/PropertiesK.html
index bf57649..66850ee 100644
--- a/doc/devdocs/search/PropertiesK.html
+++ b/doc/devdocs/search/PropertiesK.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keepData><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.keepData" target=_parent class=ISymbol>keepData</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format</span></div></div><div class=SRResult id=SR_keepInMap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_keepInMap')" class=ISymbol>keepInMap</a>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keepData><div class=IEntry><a href="../files/OpenLayers/Format-js.html#OpenLayers.Format.keepData" target=_parent class=ISymbol>keepData</a>, <span class=IParent>OpenLayers.<wbr>Format</span></div></div><div class=SRResult id=SR_keepInMap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_keepInMap')" class=ISymbol>keepInMap</a><div class=ISubInde [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesL.html b/doc/devdocs/search/PropertiesL.html
index 4b7bdd3..1d0f195 100644
--- a/doc/devdocs/search/PropertiesL.html
+++ b/doc/devdocs/search/PropertiesL.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer.Text</span></div></div><div class=SRResult id=SR_labelFormat><div class=IEntry><a href="../files/OpenLayers/Control/Graticule-js.html#OpenLayers. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/OpenLayers/Symbolizer/Text-js.html#OpenLayers.Symbolizer.Text.label" target=_parent class=ISymbol>label</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer.Text</span></div></div><div class=SRResult id=SR_labelFormat><div class=IEntry><a href="../files/OpenLayers/Control/Graticule-js.html#OpenLayers.Control.Graticule. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesM.html b/doc/devdocs/search/PropertiesM.html
index 86fa076..9957ee7 100644
--- a/doc/devdocs/search/PropertiesM.html
+++ b/doc/devdocs/search/PropertiesM.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="javascript:searchResults.Toggle('SR_map')" class=ISymbol>map</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.map" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Control</a><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.map" target=_parent class=IParent>Open [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_map><div class=IEntry><a href="javascript:searchResults.Toggle('SR_map')" class=ISymbol>map</a><div class=ISubIndex><a href="../files/OpenLayers/Control-js.html#OpenLayers.Control.map" target=_parent class=IParent>OpenLayers.<wbr>Control</a><a href="../files/OpenLayers/Handler-js.html#OpenLayers.Handler.map" target=_parent class=IParent>OpenLayers.<wbr>Handle [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesN.html b/doc/devdocs/search/PropertiesN.html
index 5eaa767..f97ca03 100644
--- a/doc/devdocs/search/PropertiesN.html
+++ b/doc/devdocs/search/PropertiesN.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.name" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer</a><a href="../files/OpenLayers/Layer/ArcIMS-js.html#OpenLayers.Layer.ArcIMS.name" target=_parent class=IPa [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="javascript:searchResults.Toggle('SR_name')" class=ISymbol>name</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Function-js.html#OpenLayers.Filter.Function.name" target=_parent class=IParent>OpenLayers.<wbr>Filter.<wbr>Function</a><a href="../files/OpenLayers/Format/XML/VersionedOGC-js.html#OpenLayers.Format.XML.Vers [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesO.html b/doc/devdocs/search/PropertiesO.html
index e508ad3..84a99f8 100644
--- a/doc/devdocs/search/PropertiesO.html
+++ b/doc/devdocs/search/PropertiesO.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_object><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.object" target=_parent class=ISymbol>object</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Events</span></div></div><div class=SRResult id=SR_observers><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.observers" target=_parent class [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_object><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Events.object" target=_parent class=ISymbol>object</a>, <span class=IParent>OpenLayers.<wbr>Events</span></div></div><div class=SRResult id=SR_observers><div class=IEntry><a href="../files/OpenLayers/Events-js.html#OpenLayers.Event.observers" target=_parent class=ISymbol>observers [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesP.html b/doc/devdocs/search/PropertiesP.html
index fcde193..fe2b2ee 100644
--- a/doc/devdocs/search/PropertiesP.html
+++ b/doc/devdocs/search/PropertiesP.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_padding><div class=IEntry><a href="../files/OpenLayers/Popup-js.html#OpenLayers.Popup.padding" target=_parent class=ISymbol>padding</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Popup</span></div></div><div class=SRResult id=SR_paddingForPopups><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.paddingForPopups" target=_par [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_padding><div class=IEntry><a href="../files/OpenLayers/Popup-js.html#OpenLayers.Popup.padding" target=_parent class=ISymbol>padding</a>, <span class=IParent>OpenLayers.<wbr>Popup</span></div></div><div class=SRResult id=SR_paddingForPopups><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.paddingForPopups" target=_parent class=ISymbol> [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesQ.html b/doc/devdocs/search/PropertiesQ.html
index 68a95f7..3062734 100644
--- a/doc/devdocs/search/PropertiesQ.html
+++ b/doc/devdocs/search/PropertiesQ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Format.<span class=HB> </span>CSWGetRecords.<span class=HB> </span>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible>< [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Query><div class=IEntry><a href="../files/OpenLayers/Format/CSWGetRecords/v2_0_2-js.html#OpenLayers.Format.CSWGetRecords.v2_0_2.Query" target=_parent class=ISymbol>Query</a>, <span class=IParent>OpenLayers.<wbr>Format.<wbr>CSWGetRecords.<wbr>v2_0_2</span></div></div><div class=SRResult id=SR_queryVisible><div class=IEntry><a href="javascript:searchResults.Tog [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesR.html b/doc/devdocs/search/PropertiesR.html
index a2d61e5..613975a 100644
--- a/doc/devdocs/search/PropertiesR.html
+++ b/doc/devdocs/search/PropertiesR.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Handler.<span class=HB> </span>RegularPolygon</span></div></div><div class=SRResult id=SR_radiusHandle><div class=IEntry><a href="../files/ [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="../files/OpenLayers/Handler/RegularPolygon-js.html#OpenLayers.Handler.RegularPolygon.radius" target=_parent class=ISymbol>radius</a>, <span class=IParent>OpenLayers.<wbr>Handler.<wbr>RegularPolygon</span></div></div><div class=SRResult id=SR_radiusHandle><div class=IEntry><a href="../files/OpenLayers/Control/ModifyFeature-js. [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesS.html b/doc/devdocs/search/PropertiesS.html
index 5522009..0ee8542 100644
--- a/doc/devdocs/search/PropertiesS.html
+++ b/doc/devdocs/search/PropertiesS.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_saveFeatureState><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.saveFeatureState" target=_parent class=ISymbol>saveFeatureState</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.<span class=HB> </span>SQL.<span class=HB> </span>Gears</span></div></div><div class=SRResult id=SR_saveStat [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_saveFeatureState><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL/Gears-js.html#OpenLayers.Protocol.SQL.Gears.saveFeatureState" target=_parent class=ISymbol>saveFeatureState</a>, <span class=IParent>OpenLayers.<wbr>Protocol.<wbr>SQL.<wbr>Gears</span></div></div><div class=SRResult id=SR_saveState><div class=IEntry><a href="../files/OpenLayers/Contr [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesSymbols.html b/doc/devdocs/search/PropertiesSymbols.html
index db33671..a3c9d85 100644
--- a/doc/devdocs/search/PropertiesSymbols.html
+++ b/doc/devdocs/search/PropertiesSymbols.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR__undcomplete><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax.Request._complete" target=_parent class=ISymbol>_complete</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Ajax.<span class=HB> </span>Request</span></div></div><div class=SRResult id=SR__undscriptName><div class=IEntry><a href="../files/OpenLayers-js.html#OpenL [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR__undcomplete><div class=IEntry><a href="../files/OpenLayers/Ajax-js.html#OpenLayers.Ajax.Request._complete" target=_parent class=ISymbol>_complete</a>, <span class=IParent>OpenLayers.<wbr>Ajax.<wbr>Request</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesT.html b/doc/devdocs/search/PropertiesT.html
index e816c31..54b6c5f 100644
--- a/doc/devdocs/search/PropertiesT.html
+++ b/doc/devdocs/search/PropertiesT.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Protocol.SQL</span></div></div><div class=SRResult id=SR_targetFilter><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers. [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tableName><div class=IEntry><a href="../files/OpenLayers/Protocol/SQL-js.html#OpenLayers.Protocol.SQL.tableName" target=_parent class=ISymbol>tableName</a>, <span class=IParent>OpenLayers.<wbr>Protocol.SQL</span></div></div><div class=SRResult id=SR_targetFilter><div class=IEntry><a href="../files/OpenLayers/Control/Split-js.html#OpenLayers.Control.Split.targ [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesU.html b/doc/devdocs/search/PropertiesU.html
index b07bbf7..4531f73 100644
--- a/doc/devdocs/search/PropertiesU.html
+++ b/doc/devdocs/search/PropertiesU.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_units><div class=IEntry><a href="javascript:searchResults.Toggle('SR_units')" class=ISymbol>units</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.units" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Layer</a><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.units" target=_parent class= [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_units><div class=IEntry><a href="javascript:searchResults.Toggle('SR_units')" class=ISymbol>units</a><div class=ISubIndex><a href="../files/OpenLayers/Layer-js.html#OpenLayers.Layer.units" target=_parent class=IParent>OpenLayers.<wbr>Layer</a><a href="../files/OpenLayers/Layer/KaMap-js.html#OpenLayers.Layer.KaMap.units" target=_parent class=IParent>OpenLayers [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesV.html b/doc/devdocs/search/PropertiesV.html
index b7b9cae..19d9beb 100644
--- a/doc/devdocs/search/PropertiesV.html
+++ b/doc/devdocs/search/PropertiesV.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value><div class=IEntry><a href="javascript:searchResults.Toggle('SR_value')" class=ISymbol>value</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Filter.<span class=HB> </span>Comparison</a><a href="../files/OpenLayers/Filter/Spati [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value><div class=IEntry><a href="javascript:searchResults.Toggle('SR_value')" class=ISymbol>value</a><div class=ISubIndex><a href="../files/OpenLayers/Filter/Comparison-js.html#OpenLayers.Filter.Comparison.value" target=_parent class=IParent>OpenLayers.<wbr>Filter.<wbr>Comparison</a><a href="../files/OpenLayers/Filter/Spatial-js.html#OpenLayers.Filter.Spatial [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesW.html b/doc/devdocs/search/PropertiesW.html
index aea91a8..e962467 100644
--- a/doc/devdocs/search/PropertiesW.html
+++ b/doc/devdocs/search/PropertiesW.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_wfsCache><div class=IEntry><a href="../files/OpenLayers/Control/SLDSelect-js.html#OpenLayers.Control.SLDSelect.wfsCache" target=_parent class=ISymbol>wfsC [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w><div class=IEntry><a href="../files/OpenLayers/BaseTypes/Size-js.html#OpenLayers.Size.w" target=_parent class=ISymbol>w</a>, <span class=IParent>OpenLayers.Size</span></div></div><div class=SRResult id=SR_watch><div class=IEntry><a href="../files/OpenLayers/Control/Geolocate-js.html#OpenLayers.Control.Geolocate.watch" target=_parent class=ISymbol>watch</a>, [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesX.html b/doc/devdocs/search/PropertiesX.html
index f410f8a..9dd3c6c 100644
--- a/doc/devdocs/search/PropertiesX.html
+++ b/doc/devdocs/search/PropertiesX.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.x" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers.Geometry.Rectangle.x" target=_paren [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesY.html b/doc/devdocs/search/PropertiesY.html
index 6cae8ac..fddd1f8 100644
--- a/doc/devdocs/search/PropertiesY.html
+++ b/doc/devdocs/search/PropertiesY.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<span class=HB> </span>Geometry.<span class=HB> </span>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.y" target=_parent class=IParent>OpenLayers.<wbr>Geometry.<wbr>Point</a><a href="../files/OpenLayers/Geometry/Rectangle-js.html#OpenLayers.Geometry.Rectangle.y" target=_paren [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/search/PropertiesZ.html b/doc/devdocs/search/PropertiesZ.html
index 2d6afe5..b596c69 100644
--- a/doc/devdocs/search/PropertiesZ.html
+++ b/doc/devdocs/search/PropertiesZ.html
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 
-<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
 
-<!--  Generated by Natural Docs, version Development Release 12-07-2007 (1.35 base) -->
+<!--  Generated by Natural Docs, version 1.52 -->
 <!--  http://www.naturaldocs.org  -->
 
 <!-- saved from url=(0026)http://www.naturaldocs.org -->
@@ -11,7 +11,7 @@ if (browserType) {document.write("<div class=" + browserType + ">");if (browserV
 
 
 
-<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zIndex><div class=IEntry><a href="../files/OpenLayers/Symbolizer-js.html#OpenLayers.Symbolizer.zIndex" target=_parent class=ISymbol>zIndex</a>, <span class=IParent>OpenLayers.<span class=HB> </span>Symbolizer</span></div></div><div class=SRResult id=SR_zoom><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.zoom" target=_parent class=IS [...]
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zIndex><div class=IEntry><a href="../files/OpenLayers/Symbolizer-js.html#OpenLayers.Symbolizer.zIndex" target=_parent class=ISymbol>zIndex</a>, <span class=IParent>OpenLayers.<wbr>Symbolizer</span></div></div><div class=SRResult id=SR_zoom><div class=IEntry><a href="../files/OpenLayers/Map-js.html#OpenLayers.Map.zoom" target=_parent class=ISymbol>zoom</a>, <s [...]
 document.getElementById("Loading").style.display="none";
 document.getElementById("NoMatches").style.display="none";
 var searchResults = new SearchResults("searchResults", "HTML");
diff --git a/doc/devdocs/styles/1.css b/doc/devdocs/styles/1.css
index 9ea166f..1832d8f 100644
--- a/doc/devdocs/styles/1.css
+++ b/doc/devdocs/styles/1.css
@@ -10,12 +10,17 @@
    directory, the changes will automatically be applied to all your projects
    that use this style the next time Natural Docs is run on them.
 
-   This file is part of Natural Docs, which is Copyright (C) 2003-2005 Greg Valure
-   Natural Docs is licensed under the GPL
+   This file is part of Natural Docs, which is Copyright � 2003-2010 Greg Valure.
+   Natural Docs is licensed under version 3 of the GNU Affero General Public
+   License (AGPL).  Refer to License.txt for the complete details.
+
+   This file may be distributed with documentation files generated by Natural Docs.
+   Such documentation is not covered by Natural Docs' copyright and licensing,
+   and may have its own copyright and distribution terms as decided by its author.
 */
 
 body {
-    font: 10pt Verdana, Arial, sans-serif;
+    font: 8pt Verdana, Arial, sans-serif;
     color: #000000;
     margin: 0; padding: 0;
     }
@@ -53,11 +58,10 @@ p {
     text-indent: 5ex; margin: 0 }
 
 
-/*  Can't use something like display: none or it won't break.  */
-.HB {
-    font-size: 1px;
-    visibility: hidden;
-    }
+/*  Opera doesn't break with just wbr, but will if you add this.  */
+.Opera wbr:after {
+	content: "\00200B";
+	}
 
 /*  Blockquotes are used as containers for things that may need to scroll.  */
 blockquote {
@@ -84,7 +88,7 @@ blockquote {
 
 
 #Menu {
-    font-size: 9pt;
+    font-size: 8pt;
     padding: 10px 0 0 0;
     }
 .ContentPage #Menu,
@@ -175,7 +179,7 @@ blockquote {
 
 
     #MSearchField {
-        font: italic 9pt Verdana, sans-serif;
+        font: italic 8pt Verdana, sans-serif;
         color: #606060;
         background-color: #E8E8E8;
         border: none;
@@ -277,7 +281,7 @@ blockquote {
     border-style: solid;
     border-color: #000000;
     background-color: #FFFFFF;
-    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
+    font-size: 8pt;  /* To make 31ex match the menu's 31ex. */
     margin-left: 31ex;
     }
 .ContentPage .Firefox #Content {
@@ -287,13 +291,13 @@ blockquote {
 
 
     .CTopic {
-        font-size: 10pt;
+        font-size: 8pt;
         margin-bottom: 3em;
         }
 
 
     .CTitle {
-        font-size: 12pt; font-weight: bold;
+        font-size: 11pt; font-weight: bold;
         border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
         margin: 0 15px .5em 15px }
 
@@ -347,13 +351,18 @@ blockquote {
         }
 
     .CHeading {
-        font-weight: bold; font-size: 10pt;
+        font-weight: bold; font-size: 9pt;
         margin: 1.5em 0 .5em 0;
         }
 
     .CBody pre {
-        font: 10pt "Courier New", Courier, monospace;
-        margin: 1em 0;
+        font: 8pt "Courier New", Courier, monospace;
+	    background-color: #FCFCFC;
+	    margin: 1em 35px;
+	    padding: 10px 15px 10px 10px;
+	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
+	    border-width: 1px 1px 1px 6px;
+	    border-style: dashed dashed dashed solid;
         }
 
     .CBody ul {
@@ -367,12 +376,12 @@ blockquote {
         margin: .5em 5ex 0 5ex }
 
         .CDLEntry {
-            font: 10pt "Courier New", Courier, monospace; color: #808080;
+            font: 8pt "Courier New", Courier, monospace; color: #808080;
             padding-bottom: .25em;
             white-space: nowrap }
 
         .CDLDescription {
-            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
+            font-size: 8pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
             padding-bottom: .5em; padding-left: 5ex }
 
 
@@ -403,14 +412,14 @@ blockquote {
 
 
 .Prototype {
-    font: 10pt "Courier New", Courier, monospace;
+    font: 8pt "Courier New", Courier, monospace;
     padding: 5px 3ex;
     border-width: 1px; border-style: solid;
     margin: 0 5ex 1.5em 5ex;
     }
 
     .Prototype td {
-        font-size: 10pt;
+        font-size: 8pt;
         }
 
     .PDefaultValue,
@@ -436,12 +445,20 @@ blockquote {
     .CVariable .Prototype {
         background-color: #FFFFF0; border-color: #E0E0A0 }
 
+    .CClass .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        background-color: #F4F4F4;
+        }
+    .CInterface .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+        background-color: #F4F4FF;
+        }
+
     .CDatabaseIndex .Prototype,
     .CConstant .Prototype {
         background-color: #D0D0D0; border-color: #000000 }
     .CType .Prototype,
-    .CClass .Prototype,
-    .CInterface .Prototype {
+    .CEnumeration .Prototype {
         background-color: #FAF0F0; border-color: #E0B0B0;
         }
     .CDatabaseTrigger .Prototype,
@@ -462,7 +479,7 @@ blockquote {
     margin: 1.5em 5ex 0 5ex }
 
     .STitle {
-        font-size: 12pt; font-weight: bold;
+        font-size: 11pt; font-weight: bold;
         margin-bottom: .5em }
 
 
@@ -483,7 +500,7 @@ blockquote {
 
 
     .STable {
-        font-size: 9pt; width: 100% }
+        font-size: 8pt; width: 100% }
 
     .SEntry {
         width: 30% }
@@ -559,7 +576,7 @@ blockquote {
         border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
         margin-bottom: 3px;
         padding: 2px 2ex;
-        font-size: 10pt;
+        font-size: 8pt;
         background-color: #F4F4F4; color: #606060;
         }
 
@@ -610,7 +627,7 @@ blockquote {
     border-width: 0 0 1px 1px;
     border-style: solid;
     border-color: #000000;
-    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
+    font-size: 8pt;  /* To make 27ex match the menu's 27ex. */
     margin-left: 27ex;
     }
 
@@ -627,7 +644,6 @@ blockquote {
         }
 
     .INavigationBar {
-        font-size: 10pt;
         text-align: center;
         background-color: #FFFFF0;
         padding: 5px;
@@ -639,7 +655,7 @@ blockquote {
         font-weight: bold }
 
     .IHeading {
-        font-size: 16pt; font-weight: bold;
+        font-size: 14pt; font-weight: bold;
         padding: 2.5em 0 .5em 0;
         text-align: center;
         width: 3.5ex;
@@ -649,7 +665,6 @@ blockquote {
         }
 
     .IEntry {
-        font-size: 10pt;
         padding-left: 1ex;
         }
     .PopupSearchResultsPage .IEntry {
@@ -677,7 +692,6 @@ blockquote {
 
     .IndexPage .ISymbolPrefix,
     .FramedIndexPage .ISymbolPrefix {
-        font-size: 10pt;
         text-align: right;
         color: #C47C7C;
         background-color: #F8F8F8;
@@ -718,7 +732,7 @@ blockquote {
         font-style: italic;
         }
     .FramedSearchResultsPage .SRStatus {
-        font-size: 10pt;
+        font-size: 8pt;
         font-style: italic;
         }
 
@@ -757,3 +771,54 @@ blockquote {
     #Footer a:visited { color: #989898 }
     #Footer a:active { color: #A00000 }
 
+
+
+.prettyprint .kwd { color: #800000; }  /* keywords */
+
+    .prettyprint.PDefaultValue .kwd,
+    .prettyprint.PDefaultValuePrefix .kwd,
+    .prettyprint.PTypePrefix .kwd {
+        color: #C88F8F;
+        }
+
+.prettyprint .com { color: #008000; }  /* comments */
+
+    .prettyprint.PDefaultValue .com,
+    .prettyprint.PDefaultValuePrefix .com,
+    .prettyprint.PTypePrefix .com {
+        color: #8FC88F;
+        }
+
+.prettyprint .str { color: #0000B0; }  /* strings */
+.prettyprint .lit { color: #0000B0; }  /* literals */
+
+    .prettyprint.PDefaultValue .str,
+    .prettyprint.PDefaultValuePrefix .str,
+    .prettyprint.PTypePrefix .str,
+    .prettyprint.PDefaultValue .lit,
+    .prettyprint.PDefaultValuePrefix .lit,
+    .prettyprint.PTypePrefix .lit {
+        color: #8F8FC0;
+        }
+
+.prettyprint .typ { color: #000000; }  /* types */
+.prettyprint .pun { color: #000000; }  /* punctuation */
+.prettyprint .pln { color: #000000; }  /* punctuation */
+
+    .prettyprint.PDefaultValue .typ,
+    .prettyprint.PDefaultValuePrefix .typ,
+    .prettyprint.PTypePrefix .typ,
+    .prettyprint.PDefaultValue .pun,
+    .prettyprint.PDefaultValuePrefix .pun,
+    .prettyprint.PTypePrefix .pun,
+    .prettyprint.PDefaultValue .pln,
+    .prettyprint.PDefaultValuePrefix .pln,
+    .prettyprint.PTypePrefix .pln {
+        color: #8F8F8F;
+        }
+
+.prettyprint .tag { color: #008; }
+.prettyprint .atn { color: #606; }
+.prettyprint .atv { color: #080; }
+.prettyprint .dec { color: #606; }
+
diff --git a/doc_config/Data/ClassHierarchy.nd b/doc_config/Data/ClassHierarchy.nd
index c2257f2..11ddf9f 100644
Binary files a/doc_config/Data/ClassHierarchy.nd and b/doc_config/Data/ClassHierarchy.nd differ
diff --git a/doc_config/Data/ConfigFileInfo.nd b/doc_config/Data/ConfigFileInfo.nd
index fbb0e5b..3c05ca5 100644
Binary files a/doc_config/Data/ConfigFileInfo.nd and b/doc_config/Data/ConfigFileInfo.nd differ
diff --git a/doc_config/Data/FileInfo.nd b/doc_config/Data/FileInfo.nd
index e738b8a..e2d9524 100644
--- a/doc_config/Data/FileInfo.nd
+++ b/doc_config/Data/FileInfo.nd
@@ -1,289 +1,317 @@
-Development Release 12-07-2007 (1.35 base)
+1.52
 JavaScript
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomToMaxExtent.js	1283463805	1	OpenLayers.Control.ZoomToMaxExtent
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tween.js	1283463805	1	OpenLayers.Tween
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Marker/Box.js	1283463805	1	OpenLayers.Marker.Box
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/vi.js	1283463805	1	OpenLayers.Lang["vi"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Box.js	1283463805	1	OpenLayers.Handler.Box
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS/v1_0_0.js	1283463805	1	OpenLayers.Protocol.WFS.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OSM.js	1283463805	1	OpenLayers.Format.OSM
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/gl.js	1283463805	1	OpenLayers.Lang["gl"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nn.js	1283463805	1	OpenLayers.Lang["nn"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter/v1_1_0.js	1283463805	1	OpenLayers.Format.Filter.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFS.js	1283463805	1	OpenLayers.Format.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js	1283463805	1	OpenLayers.Format.WFSCapabilities/v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/VirtualEarth.js	1283463805	1	OpenLayers.Layer.VirtualEarth
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMS/Post.js	1283463805	1	OpenLayers.Layer.WMS.Post
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomIn.js	1283463805	1	OpenLayers.Control.ZoomIn
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GPX.js	1283463805	1	OpenLayers.Format.GPX
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities.js	1283463805	1	OpenLayers.Format.WMSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter/v1.js	1283463805	1	OpenLayers.Format.Filter.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMS.js	1283463805	1	OpenLayers.Layer.WMS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Boxes.js	1283463805	1	OpenLayers.Layer.Boxes
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Text.js	1283463805	1	OpenLayers.Format.Text
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Scale.js	1283463805	1	OpenLayers.Control.Scale
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Click.js	1283463805	1	OpenLayers.Handler.Click
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js	1283463805	1	OpenLayers.Format.SOSCapabilities.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/MultiPolygon.js	1283463805	1	OpenLayers.Geometry.MultiPolygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes.js	1283463805	1	OpenLayers Base Types
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/FixedZoomLevels.js	1283463805	1	OpenLayers.Layer.FixedZoomLevels
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry.js	1283463805	1	OpenLayers.Geometry
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/FeatureId.js	1283463805	1	OpenLayers.Filter.FeatureId
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter.js	1283463805	1	OpenLayers.Filter
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/RegularPolygon.js	1283463805	1	OpenLayers.Handler.RegularPolygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Panel.js	1283463805	1	OpenLayers.Control.Panel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/MultiLineString.js	1283463805	1	OpenLayers.Geometry.MultiLineString
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ModifyFeature.js	1283463805	1	OpenLayers.Control.ModifyFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Refresh.js	1283463805	1	OpenLayers.Strategy.Refresh
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Attribution.js	1283463805	1	OpenLayers.Control.Attribution
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers.js	1284024673	1	OpenLayers
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/SelectFeature.js	1283463805	1	OpenLayers.Control.SelectFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/es.js	1283463805	1	OpenLayers.Lang["es"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/te.js	1283463805	1	OpenLayers.Lang["te"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/hsb.js	1283463805	1	OpenLayers.Lang["hsb"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Grid.js	1283463805	1	OpenLayers.Layer.Grid
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/da-DK.js	1283463805	1	OpenLayers.Lang["da-DK"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomOut.js	1283463805	1	OpenLayers.Control.ZoomOut
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Polygon.js	1283463805	1	OpenLayers.Geometry.Polygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSCommon/v1_1_0.js	1283463805	1	OpenLayers.Format.OWSCommon.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ar.js	1283463805	1	OpenLayers.Lang["ar"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSCapabilities.js	1283463805	1	OpenLayers.Format.SOSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Style.js	1283463805	1	OpenLayers.Style
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/XYZ.js	1283463805	1	OpenLayers.Layer.XYZ
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/hu.js	1283463805	1	OpenLayers.Lang["hu"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer.js	1283463805	1	OpenLayers.Symbolizer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Feature.js	1283463805	1	OpenLayers.Handler.Feature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ja.js	1283463805	1	OpenLayers.Lang["ja"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/is.js	1283463805	1	OpenLayers.Lang["is"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/Canvas.js	1283463805	1	OpenLayers.Renderer.Canvas
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter/v1_0_0.js	1283463805	1	OpenLayers.Format.Filter.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/TMS.js	1283463805	1	OpenLayers.Layer.TMS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/OverviewMap.js	1283463805	1	OpenLayers.Control.OverviewMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/WMSGetFeatureInfo.js	1283463805	1	OpenLayers.Control.WMSGetFeatureInfo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/hr.js	1283463805	1	OpenLayers.Lang["hr"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/bg.js	1283463805	1	OpenLayers.Lang["bg"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ca.js	1283463805	1	OpenLayers.Lang["ca"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js	1283463805	1	OpenLayers.Format.WFSCapabilities/v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/en-CA.js	1283463805	1	OpenLayers.Lang["en-CA"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/LinearRing.js	1283463805	1	OpenLayers.Geometry.LinearRing
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/MultiPoint.js	1283463805	1	OpenLayers.Geometry.MultiPoint
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Navigation.js	1283463805	1	OpenLayers.Control.Navigation
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSContext/v0_3_1.js	1283463805	1	OpenLayers.Format.OWSContext.v0_3_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MapServer/Untiled.js	1283463805	1	OpenLayers.Layer.MapServer.Untiled
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js	1283463805	1	OpenLayers.Format.WMTSCapabilities.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/license.txt	1181603869	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/license.txt
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Line.js	1283463805	1	OpenLayers.Symbolizer.Line
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/GeoRSS.js	1283463805	1	OpenLayers.Layer.GeoRSS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Events.js	1283463805	1	OpenLayers.Event
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Atom.js	1283463805	1	OpenLayers.Format.Atom
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSGetObservation.js	1283463805	1	OpenLayers.Format.SOSGetObservation
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Cluster.js	1283463805	1	OpenLayers.Strategy.Cluster
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/fur.js	1283463805	1	OpenLayers.Lang["fur"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ksh.js	1283463805	1	OpenLayers.Lang["ksh"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/JSON.js	1283463805	1	OpenLayers.Format.JSON
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebugx.js	1202500315	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebugx.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSCommon/v1.js	1283463805	1	OpenLayers.Format.OWSCommon.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Vector/RootContainer.js	1283463805	1	OpenLayers.Layer.Vector.RootContainer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SOS/v1_0_0.js	1283463805	1	OpenLayers.Protocol.SOS.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SLD/v1.js	1283463805	1	OpenLayers.Format.SLD.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Save.js	1283463805	1	OpenLayers.Strategy.Save
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/PanZoom.js	1283463805	1	OpenLayers.Control.PanZoom
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/VML.js	1283463805	1	OpenLayers.Renderer.VML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Pixel.js	1283463805	1	OpenLayers.Pixel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/be-tarask.js	1283463805	1	OpenLayers.Lang["be-tarask"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML/v2.js	1283463805	1	OpenLayers.Format.GML.v2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/br.js	1283463805	1	OpenLayers.Lang["br"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC/v1.js	1283463805	1	OpenLayers.Format.WMC.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Text.js	1283463805	1	OpenLayers.Symbolizer.Text
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile.js	1283463805	1	OpenLayers.Tile
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/ArcXML.js	1283463805	1	OpenLayers.Format.ArcXML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Rule.js	1283463805	1	OpenLayers.Rule
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/oc.js	1283463805	1	OpenLayers.Lang["oc"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS/v1_1_0.js	1283463805	1	OpenLayers.Protocol.WFS.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SOS.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SOS.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/Spatial.js	1283463805	1	OpenLayers.Filter.Spatial
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/zh-TW.js	1283463805	1	OpenLayers.Lang["zh-TW"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/GML.js	1283463805	1	OpenLayers.Layer.GML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MultiMap.js	1283463805	1	OpenLayers.Layer.MultiMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format.js	1283463805	1	OpenLayers.Format
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST/v1_0_0.js	1283463805	1	OpenLayers.Format.WFST.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Class.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Class.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer.js	1283463805	1	OpenLayers.Layer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC/v1_1_0.js	1283463805	1	OpenLayers.Format.WMC.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Element.js	1283463805	1	OpenLayers.Element
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/WMTSGetFeatureInfo.js	1283463805	1	OpenLayers.Control.WMTSGetFeatureInfo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC/v1_0_0.js	1283463805	1	OpenLayers.Format.WMC.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Markers.js	1283463805	1	OpenLayers.Layer.Markers
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/LonLat.js	1283463805	1	OpenLayers.LonLat
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Permalink.js	1283463805	1	OpenLayers.Control.Permalink
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/MouseToolbar.js	1283463805	1	OpenLayers.Control.MouseToolbar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/zh-CN.js	1283463805	1	OpenLayers.Lang["zh-CN"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Pan.js	1283463805	1	OpenLayers.Control.Pan
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/EventPane.js	1283463805	1	OpenLayers.Layer.EventPane
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSCommon/v1_0_0.js	1283463805	1	OpenLayers.Format.OWSCommon.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1.js	1283463805	1	OpenLayers.Format.WMSCapabilities.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Yahoo.js	1283463805	1	OpenLayers.Layer.Yahoo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetRecords.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetRecords.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol.js	1283463805	1	OpenLayers.Protocol
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_1.js	1283463805	1	OpenLayers.Format.WMSCapabilities.v1_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js	1283463805	1	OpenLayers.Format.CSWGetDomain.v2_0_2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebug.js	1202500315	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/firebug.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Keyboard.js	1283463805	1	OpenLayers.handler.Keyboard
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/km.js	1283463805	1	OpenLayers.Lang["km"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nds.js	1283463805	1	OpenLayers.Lang["nds"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MapGuide.js	1283463805	1	OpenLayers.Layer.MapGuide
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/Framed.js	1283463805	1	OpenLayers.Popup.Framed
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/ArcGIS93Rest.js	1283463805	1	OpenLayers.Layer.ArcGIS93Rest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Curve.js	1283463805	1	OpenLayers.Geometry.Curve
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Raster.js	1283463805	1	OpenLayers.Symbolizer.Raster
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Style2.js	1283463805	1	OpenLayers.Style2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Vector.js	1283463805	1	OpenLayers.Layer.Vector
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities/v1.js	1283463805	1	OpenLayers.Format.WFSCapabilities.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ru.js	1283463805	1	OpenLayers.Lang["ru"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GeoRSS.js	1283463805	1	OpenLayers.Format.GeoRSS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomBox.js	1283463805	1	OpenLayers.Control.ZoomBox
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/ArcXML/Features.js	1283463805	1	OpenLayers.Format.ArcXML.Features
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/gsw.js	1283463805	1	OpenLayers.Lang["gsw"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/io.js	1283463805	1	OpenLayers.Lang["io"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/readme.txt	1181603869	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Firebug/readme.txt
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/BBOX.js	1283463805	1	OpenLayers.Strategy.BBOX
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMC.js	1283463805	1	OpenLayers.Format.WMC
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js	1283463805	1	OpenLayers.Format.SOSGetFeatureOfInterest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Request.js	1283463805	1	OpenLayers.Request
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WKT.js	1283463805	1	OpenLayers.Format.WKT
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SQL.js	1283463805	1	OpenLayers.Protocol.SQL
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Util.js	1283463805	1	Util
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSGetFeatureInfo.js	1283463805	1	OpenLayers.Format.WMSGetFeatureInfo
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSDescribeLayer.js	1283463805	1	OpenLayers.Format.WMSDescribeLayer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GeoJSON.js	1283463805	1	OpenLayers.Format.GeoJSON
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Projection.js	1283463805	1	OpenLayers.Projection
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Ajax.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Ajax.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/MousePosition.js	1283463805	1	OpenLayers.Control.MousePosition
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/it.js	1283463805	1	OpenLayers.Lang["it"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/PanZoomBar.js	1283463805	1	OpenLayers.Control.PanZoomBar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/KeyboardDefaults.js	1283463805	1	OpenLayers.Control.KeyboardDefaults
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/HTTP.js	1283463805	1	OpenLayers.Protocol.HTTP
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/HTTPRequest.js	1283463805	1	OpenLayers.Layer.HTTPRequest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/fr.js	1283463805	1	OpenLayers.Lang["fr"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WFS.js	1283463805	1	OpenLayers.Layer.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Map.js	1283463805	1	OpenLayers.Map
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nl.js	1283463805	1	OpenLayers.Lang["nl"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SLD.js	1283463805	1	OpenLayers.Format.SLD
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/SLD/v1_0_0.js	1283463805	1	OpenLayers.Format.SLD.v1_0_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMS/Untiled.js	1283463805	1	OpenLayers.Layer.WMS.Untiled
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/PointTrack.js	1283463805	1	OpenLayers.Layer.PointTrack
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMTSCapabilities.js	1283463805	1	OpenLayers.Format.WMTSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/fi.js	1283463805	1	OpenLayers.Lang["fi"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Surface.js	1283463805	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Surface.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control.js	1283463805	1	OpenLayers.Control
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST/v1.js	1283463805	1	OpenLayers.Format.WFST.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/TileCache.js	1283463805	1	OpenLayers.Layer.TileCache
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Color.js	1201963564	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Color.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSCapabilities.js	1283463805	1	OpenLayers.Format.WFSCapabilities
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang.js	1283463805	1	OpenLayers.Lang
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Request/XMLHttpRequest.js	1277709397	1	OpenLayers.Request.XMLHttpRequest
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile/Image.js	1283463805	1	OpenLayers.Tile.Image
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetDomain.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetDomain.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/TransformFeature.js	1283463805	1	OpenLayers.Control.TransformFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/OWSContext.js	1283463805	1	OpenLayers.Format.OWSContext
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Image.js	1283463805	1	OpenLayers.Layer.Image
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/DrawFeature.js	1283463805	1	OpenLayers.Control.DrawFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WMTS.js	1283463805	1	OpenLayers.Layer.WMTS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Feature/WFS.js	1283463805	1	OpenLayers.Feature.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy.js	1283463805	1	OpenLayers.Strategy
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ArgParser.js	1283463805	1	OpenLayers.Control.ArgParser
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/Comparison.js	1283463805	1	OpenLayers.Filter.Comparison
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/sk.js	1283463805	1	OpenLayers.Lang["sk"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Gears/gears_init.js	1221231425	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Gears/gears_init.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Snapping.js	1283463805	1	OpenLayers.Control.Snapping
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/Elements.js	1283463805	1	OpenLayers.ElementsIndexer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Button.js	1283463805	1	OpenLayers.Control.Button
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/NavToolbar.js	1283463805	1	OpenLayers.Control.NavToolbar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/NavigationHistory.js	1283463805	1	OpenLayers.Control.NavigationHistory
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/KaMap.js	1283463805	1	OpenLayers.Layer.KaMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Collection.js	1283463805	1	OpenLayers.Geometry.Collection
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google/v3.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google/v3.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Zoomify.js	1283463805	1	OpenLayers.Layer.Zoomify
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ScaleLine.js	1283463805	1	OpenLayers.Control.ScaleLine
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/el.js	1283463805	1	OpenLayers.Lang["el"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Console.js	1283463805	1	OpenLayers.Console
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Bounds.js	1283463805	1	OpenLayers.Bounds
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Icon.js	1283463805	1	OpenLayers.Icon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer/SVG.js	1283463805	1	OpenLayers.Renderer.SVG
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Hover.js	1283463805	1	OpenLayers.Handler.Hover
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile/Image/IFrame.js	1283463805	1	OpenLayers.Tile.Image.IFrame
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML/Base.js	1283463805	1	OpenLayers.Format.GML.Base
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/ia.js	1283463805	1	OpenLayers.Lang["ia"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/DragFeature.js	1283463805	1	OpenLayers.Control.DragFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Filter.js	1283463805	1	OpenLayers.Strategy.Filter
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Text.js	1283463805	1	OpenLayers.Layer.Text
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Context.js	1283463805	1	OpenLayers.Format.Context
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/LayerSwitcher.js	1283463805	1	OpenLayers.Control.LayerSwitcher
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/de.js	1283463805	1	OpenLayers.Lang["de"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Point.js	1283463805	1	OpenLayers.Geometry.Point
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/nb.js	1283463805	1	OpenLayers.Lang["nb"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/SQL/Gears.js	1283463805	1	OpenLayers.Protocol.SQL.Gears
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/pt-BR.js	1283463805	1	OpenLayers.Lang["pt-br"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/ArcIMS.js	1283463805	1	OpenLayers.Layer.ArcIMS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFST/v1_1_0.js	1283463805	1	OpenLayers.Format.WFST.v1_1_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/Google.js	1283463805	1	OpenLayers.Layer.Google
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/PanPanel.js	1283463805	1	OpenLayers.Control.PanPanel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML.js	1283463805	1	OpenLayers.Format.GML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/SingleFile.js	1283463805	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/SingleFile.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/SphericalMercator.js	1283463805	1	OpenLayers.Layer.SphericalMercator
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Measure.js	1283463805	1	OpenLayers.Control.Measure
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Split.js	1283463805	1	OpenLayers.Control.Split
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/LineString.js	1283463805	1	OpenLayers.Geometry.LineString
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/id.js	1283463805	1	OpenLayers.Lang["id"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/AnchoredBubble.js	1283463805	1	OpenLayers.Popup.AnchoredBubble
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSDescribeFeatureType.js	1283463805	1	/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WFSDescribeFeatureType.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/ZoomPanel.js	1283463805	1	OpenLayers.Control.ZoomPanel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Tile/WFS.js	1283463805	1	OpenLayers.Tile.WFS
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_3.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_3
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/BaseTypes/Size.js	1283463805	1	OpenLayers.Size
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Polygon.js	1283463805	1	OpenLayers.Symbolizer.Polygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_1_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/EditingToolbar.js	1283463805	1	OpenLayers.Control.EditingToolbar
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js	1283463805	1	OpenLayers.Format.CSWGetRecords.v2_0_2
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/KaMapCache.js	1283463805	1	OpenLayers.Layer.KaMapCache
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/GetFeature.js	1283463805	1	OpenLayers.Control.GetFeature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/MouseDefaults.js	1283463805	1	OpenLayers.Control.MouseDefaults
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Drag.js	1283463805	1	OpenLayers.Handler.Drag
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js	1283463805	1	OpenLayers.Format.WMSCapabilities/v1_3_0
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/FramedCloud.js	1283463805	1	OpenLayers.Popup.FramedCloud
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Paging.js	1283463805	1	OpenLayers.Strategy.Paging
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Polygon.js	1283463805	1	OpenLayers.Handler.Polygon
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Symbolizer/Point.js	1283463805	1	OpenLayers.Symbolizer.Point
-/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Corner.js	1201963564	0	/home/crschmidt/2.10/OpenLayers-2.10/lib/Rico/Corner.js
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Feature.js	1283463805	1	OpenLayers.Feature
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/en.js	1283463805	1	OpenLayers.Lang["en"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Marker.js	1283463805	1	OpenLayers.Marker
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler.js	1283463805	1	OpenLayers.Handler
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Geometry/Rectangle.js	1283463805	1	OpenLayers.Geometry.Rectangle
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/sv-SE.js	1283463805	1	OpenLayers.Lang["sv"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/MouseWheel.js	1283463805	1	OpenLayers.Handler.MouseWheel
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/cs-CZ.js	1283463805	1	OpenLayers.Lang["cs-CZ"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Strategy/Fixed.js	1283463805	1	OpenLayers.Strategy.Fixed
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/WorldWind.js	1283463805	1	OpenLayers.Layer.WorldWind
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup/Anchored.js	1283463805	1	OpenLayers.Popup.Anchored
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Popup.js	1283463805	1	OpenLayers.Popup
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Point.js	1283463805	1	OpenLayers.Handler.Point
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/StyleMap.js	1283463805	1	OpenLayers.StyleMap
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/KML.js	1283463805	1	OpenLayers.Format.KML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Filter/Logical.js	1283463805	1	OpenLayers.Filter.Logical
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/XML.js	1283463805	1	OpenLayers.Format.XML
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/DragPan.js	1283463805	1	OpenLayers.Control.DragPan
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Renderer.js	1283463805	1	OpenLayers.Renderer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Layer/MapServer.js	1283463805	1	OpenLayers.Layer.MapServer
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Handler/Path.js	1283463805	1	OpenLayers.Handler.Path
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/Filter.js	1283463805	1	OpenLayers.Format.Filter
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Lang/pt.js	1283463805	1	OpenLayers.Lang["pt"]
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/Graticule.js	1283463805	1	OpenLayers.Control.Graticule
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Protocol/WFS/v1.js	1283463805	1	OpenLayers.Protocol.WFS.v1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js	1283463805	1	OpenLayers.Format.WMSDescribeLayer.v1_1
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Feature/Vector.js	1283463805	1	OpenLayers.Feature.Vector
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Control/SLDSelect.js	1283463805	1	OpenLayers.Control.SLDSelect
-/home/crschmidt/2.10/OpenLayers-2.10/lib/OpenLayers/Format/GML/v3.js	1283463805	1	OpenLayers.Format.GML.v3
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js	1308251785	1	OpenLayers.Format.CSWGetRecords.v2_0_2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Vector/RootContainer.js	1294069180	1	OpenLayers.Layer.Vector.RootContainer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Graticule.js	1308946332	1	OpenLayers.Control.Graticule
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/OverviewMap.js	1298622650	1	OpenLayers.Control.OverviewMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Style2.js	1294249365	1	OpenLayers.Style2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Pixel.js	1298640899	1	OpenLayers.Pixel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML/v2.js	1308251785	1	OpenLayers.Format.GML.v2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebug.js	1202500315	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebug.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMS.js	1309678404	1	OpenLayers.Layer.WMS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomBox.js	1294069180	1	OpenLayers.Control.ZoomBox
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Feature/Vector.js	1309774702	1	OpenLayers.Feature.Vector
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Icon.js	1294249365	1	OpenLayers.Icon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/it.js	1312531137	1	OpenLayers.Lang["it"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1_0_0.js	1302127591	1	OpenLayers.Format.WMC.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/MousePosition.js	1299508428	1	OpenLayers.Control.MousePosition
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/ArcXML/Features.js	1294069180	1	OpenLayers.Format.ArcXML.Features
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/SVG.js	1307358131	1	OpenLayers.Renderer.SVG
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Logical.js	1294069180	1	OpenLayers.Filter.Logical
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Color.js	1299496812	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Color.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/FixedZoomLevels.js	1308424314	1	OpenLayers.Layer.FixedZoomLevels
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetRecords.js	1309411359	1	OpenLayers.Format.CSWGetRecords
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes.js	1312381930	1	OpenLayers Base Types
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js	1315064268	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google/v3.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/br.js	1312531137	1	OpenLayers.Lang["br"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XML.js	1308425609	1	OpenLayers.Format.XML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Style.js	1302201931	1	OpenLayers.Style
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomPanel.js	1294069180	1	OpenLayers.Control.ZoomPanel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/GML.js	1294069180	1	OpenLayers.Layer.GML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS.js	1294069180	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WKT.js	1310056862	1	OpenLayers.Format.WKT
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1.js	1308251785	1	OpenLayers.Format.WMC.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/FeatureId.js	1301424567	1	OpenLayers.Filter.FeatureId
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SQL.js	1294069180	1	OpenLayers.Protocol.SQL
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Button.js	1294069180	1	OpenLayers.Control.Button
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/LonLat.js	1311932195	1	OpenLayers.LonLat
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PanZoomBar.js	1301400326	1	OpenLayers.Control.PanZoomBar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomIn.js	1294069180	1	OpenLayers.Control.ZoomIn
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/VirtualEarth.js	1298644074	1	OpenLayers.Layer.VirtualEarth
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy.js	1294249365	1	OpenLayers.Strategy
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ru.js	1312531137	1	OpenLayers.Lang["ru"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/en.js	1312531137	1	OpenLayers.Lang["en"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter.js	1309858954	1	OpenLayers.Format.Filter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tween.js	1294249365	1	OpenLayers.Tween
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Element.js	1298880356	1	OpenLayers.Element
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Cluster.js	1299509306	1	OpenLayers.Strategy.Cluster
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Polygon.js	1294069180	1	OpenLayers.Symbolizer.Polygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/MouseDefaults.js	1301834834	1	OpenLayers.Control.MouseDefaults
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/SelectFeature.js	1311932729	1	OpenLayers.Control.SelectFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML/v3.js	1310738859	1	OpenLayers.Format.GML.v3
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/AnchoredBubble.js	1294249365	1	OpenLayers.Popup.AnchoredBubble
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1.js	1294069180	1	OpenLayers.Format.WMSCapabilities.v1_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetDomain.js	1309411359	1	OpenLayers.Format.CSWGetDomain
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/TransformFeature.js	1304926617	1	OpenLayers.Control.TransformFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/KeyboardDefaults.js	1299601896	1	OpenLayers.Control.KeyboardDefaults
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CQL.js	1296256510	1	OpenLayers.Format.CQL
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Line.js	1294069180	1	OpenLayers.Symbolizer.Line
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Text.js	1294069180	1	OpenLayers.Symbolizer.Text
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/KML.js	1312811516	1	OpenLayers.Format.KML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/da-DK.js	1312531137	1	OpenLayers.Lang["da-DK"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Kinetic.js	1298463233	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Kinetic.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomOut.js	1294069180	1	OpenLayers.Control.ZoomOut
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSExecute.js	1308756001	1	OpenLayers.Format.WPSExecute version 1.0.0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Date.js	1312382120	1	OpenLayers.Date
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/te.js	1308946332	1	OpenLayers.Lang["te"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/vi.js	1312531137	1	OpenLayers.Lang["vi"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/lt.js	1312531137	1	OpenLayers.Lang["lt"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Save.js	1294069180	1	OpenLayers.Strategy.Save
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST.js	1294069180	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSGetFeatureInfo.js	1301391847	1	OpenLayers.Format.WMSGetFeatureInfo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1_0_0.js	1309341217	1	OpenLayers.Format.Filter.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/el.js	1308946332	1	OpenLayers.Lang["el"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/NG.js	1310404035	1	OpenLayers.Renderer.NG
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/HTTPRequest.js	1314228754	1	OpenLayers.Layer.HTTPRequest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/es.js	1312531137	1	OpenLayers.Lang["es"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WCSGetCoverage.js	1309883200	1	OpenLayers.Format.WCSGetCoverage version 1.1.0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol.js	1307725942	1	OpenLayers.Protocol
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Point.js	1294069180	1	OpenLayers.Symbolizer.Point
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/id.js	1312531137	1	OpenLayers.Lang["id"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_3.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_3
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSDescribeFeatureType.js	1299507212	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSDescribeFeatureType.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMTS.js	1308251785	1	OpenLayers.Layer.WMTS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/Image.js	1308251785	1	OpenLayers.Tile.Image
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/fr.js	1312531137	1	OpenLayers.Lang["fr"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Spatial.js	1294069180	1	OpenLayers.Filter.Spatial
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/sk.js	1312531137	1	OpenLayers.Lang["sk"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Point.js	1309812492	1	OpenLayers.Handler.Point
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/EventPane.js	1307100529	1	OpenLayers.Layer.EventPane
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/gsw.js	1312531137	1	OpenLayers.Lang["gsw"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Projection.js	1298881158	1	OpenLayers.Projection
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Atom.js	1308251785	1	OpenLayers.Format.Atom
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML.js	1308251785	1	OpenLayers.Format.GML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang.js	1294249365	1	OpenLayers.Lang
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Curve.js	1294069180	1	OpenLayers.Geometry.Curve
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/TouchNavigation.js	1308724245	1	OpenLayers.Control.TouchNavigation
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js	1299507212	1	OpenLayers.Format.SOSGetFeatureOfInterest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Drag.js	1301834834	1	OpenLayers.Handler.Drag
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/JSON.js	1299507212	1	OpenLayers.Format.JSON
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Markers.js	1312965697	1	OpenLayers.Layer.Markers
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SQL/Gears.js	1308251785	1	OpenLayers.Protocol.SQL.Gears
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Navigation.js	1304929715	1	OpenLayers.Control.Navigation
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1_0_0.js	1309341217	1	OpenLayers.Format.WFST.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Request.js	1300366897	1	OpenLayers.Request
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/fi.js	1312530680	1	OpenLayers.Lang["fi"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer.js	1312965697	1	OpenLayers.Layer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Grid.js	1309811687	1	OpenLayers.Layer.Grid
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/bg.js	1308946332	1	OpenLayers.Lang["bg"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Feature/WFS.js	1294069180	1	OpenLayers.Feature.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js	1298013267	1	OpenLayers.Format.WMTSCapabilities.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcIMS.js	1298880725	1	OpenLayers.Layer.ArcIMS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFS.js	1294069180	1	OpenLayers.Format.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/is.js	1312530680	1	OpenLayers.Lang["is"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers.js	1315754186	1	OpenLayers
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/QueryStringFilter.js	1301426533	1	OpenLayers.Format.QueryStringFilter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Comparison.js	1302031403	1	OpenLayers.Filter.Comparison
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SLD/v1.js	1308251785	1	OpenLayers.Format.SLD.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Rule.js	1294249365	1	OpenLayers.Rule
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/TMS.js	1309390224	1	OpenLayers.Layer.TMS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MapGuide.js	1309678404	1	OpenLayers.Layer.MapGuide
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Events.js	1305100940	1	OpenLayers.Event
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities.js	1309858954	1	OpenLayers.Format.WMSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMS/Post.js	1294069180	1	OpenLayers.Layer.WMS.Post
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1_0_0.js	1294069180	1	OpenLayers.Protocol.WFS.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Polygon.js	1294069180	1	OpenLayers.Geometry.Polygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MultiMap.js	1297862474	1	OpenLayers.Layer.MultiMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/WMSGetFeatureInfo.js	1308251785	1	OpenLayers.Control.WMSGetFeatureInfo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Marker.js	1294249365	1	OpenLayers.Marker
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GeoRSS.js	1308251785	1	OpenLayers.Format.GeoRSS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/HTTP.js	1302158978	1	OpenLayers.Protocol.HTTP
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/gl.js	1312531137	1	OpenLayers.Lang["gl"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/fur.js	1308946332	1	OpenLayers.Lang["fur"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSCapabilities.js	1309858954	1	OpenLayers.Format.SOSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Surface.js	1294069180	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Surface.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/BBOX.js	1308939709	1	OpenLayers.Strategy.BBOX
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XML/VersionedOGC.js	1309858954	1	OpenLayers.Format.XML.VersionedOGC
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nds.js	1312531137	1	OpenLayers.Lang["nds"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSGetObservation.js	1299507212	1	OpenLayers.Format.SOSGetObservation
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nb.js	1312531137	1	OpenLayers.Lang["nb"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/Anchored.js	1294069180	1	OpenLayers.Popup.Anchored
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Image.js	1294069180	1	OpenLayers.Layer.Image
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/Script.js	1314228754	1	OpenLayers.Protocol.Script
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Polygon.js	1308337156	1	OpenLayers.Handler.Polygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/pt-BR.js	1312531137	1	OpenLayers.Lang["pt-br"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Paging.js	1299509306	1	OpenLayers.Strategy.Paging
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Feature.js	1301494633	1	OpenLayers.Feature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/WFS.js	1294069180	1	OpenLayers.Tile.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Bing.js	1308722650	1	OpenLayers.Layer.Bing
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XLS/v1_1_0.js	1301493331	1	OpenLayers.Format.XLS.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiPoint.js	1294069180	1	OpenLayers.Geometry.MultiPoint
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ar.js	1308946332	1	OpenLayers.Lang["ar"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/SOS/v1_0_0.js	1294069180	1	OpenLayers.Protocol.SOS.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/LineString.js	1308337156	1	OpenLayers.Geometry.LineString
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ja.js	1312531137	1	OpenLayers.Lang["ja"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/DrawFeature.js	1308337156	1	OpenLayers.Control.DrawFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/Image/IFrame.js	1308652107	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile/Image/IFrame.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSCapabilities.js	1309858954	1	OpenLayers.Format.WPSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/readme.txt	1181603869	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/readme.txt
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js	1299601176	1	OpenLayers.Format.WFSCapabilities/v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/Elements.js	1307086062	1	OpenLayers.ElementsIndexer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/hsb.js	1312531137	1	OpenLayers.Lang["hsb"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Refresh.js	1299509306	1	OpenLayers.Strategy.Refresh
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Util.js	1312810994	1	Util
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MapServer.js	1309678404	1	OpenLayers.Layer.MapServer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/VML.js	1307358131	1	OpenLayers.Renderer.VML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GPX.js	1298881158	1	OpenLayers.Format.GPX
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nl.js	1312531137	1	OpenLayers.Lang["nl"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/NavToolbar.js	1305011357	1	OpenLayers.Control.NavToolbar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/km.js	1308946332	1	OpenLayers.Lang["km"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/oc.js	1312531137	1	OpenLayers.Lang["oc"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/SingleFile.js	1315754186	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/SingleFile.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Yahoo.js	1294069180	1	OpenLayers.Layer.Yahoo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js	1294069180	1	OpenLayers.Format.WMSDescribeLayer.v1_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_1_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1_0_0.js	1307725942	1	OpenLayers.Format.OWSCommon.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control.js	1310668608	1	OpenLayers.Control
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js	1312807427	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Class.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon.js	1309858954	1	OpenLayers.Format.OWSCommon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Snapping.js	1298881158	1	OpenLayers.Control.Snapping
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ZoomToMaxExtent.js	1294069180	1	OpenLayers.Control.ZoomToMaxExtent
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Geolocate.js	1298623948	1	OpenLayers.Control.Geolocate
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ModifyFeature.js	1314228754	1	OpenLayers.Control.ModifyFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer/Raster.js	1294069180	1	OpenLayers.Symbolizer.Raster
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter/Function.js	1300376848	1	OpenLayers.Filter.Function
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Pan.js	1296658857	1	OpenLayers.Control.Pan
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/Canvas.js	1312386426	1	OpenLayers.Renderer.Canvas
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ca.js	1312531137	1	OpenLayers.Lang["ca"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Marker/Box.js	1294069180	1	OpenLayers.Marker.Box
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WFS.js	1312965697	1	OpenLayers.Layer.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiLineString.js	1294069180	1	OpenLayers.Geometry.MultiLineString
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup.js	1311666540	1	OpenLayers.Popup
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/MultiPolygon.js	1294069180	1	OpenLayers.Geometry.MultiPolygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Permalink.js	1308946332	1	OpenLayers.Control.Permalink
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SLD.js	1309858954	1	OpenLayers.Format.SLD
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/LinearRing.js	1308337156	1	OpenLayers.Geometry.LinearRing
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Boxes.js	1294069180	1	OpenLayers.Layer.Boxes
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/GeoRSS.js	1294069180	1	OpenLayers.Layer.GeoRSS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGIS93Rest.js	1298880725	1	OpenLayers.Layer.ArcGIS93Rest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Feature.js	1308722650	1	OpenLayers.Handler.Feature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GeoJSON.js	1308556072	1	OpenLayers.Format.GeoJSON
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry.js	1308251785	1	OpenLayers.Geometry
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Measure.js	1298538049	1	OpenLayers.Control.Measure
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Map.js	1314228754	1	OpenLayers.Map
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1.js	1312809779	1	OpenLayers.Protocol.WFS.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/FramedCloud.js	1294249365	1	OpenLayers.Popup.FramedCloud
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/hu.js	1312531137	1	OpenLayers.Lang["hu"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PanZoom.js	1299474171	1	OpenLayers.Control.PanZoom
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Point.js	1294069180	1	OpenLayers.Geometry.Point
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/KaMap.js	1299623293	1	OpenLayers.Layer.KaMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/ArcXML.js	1308251785	1	OpenLayers.Format.ArcXML
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ScaleLine.js	1299508428	1	OpenLayers.Control.ScaleLine
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1_1_0.js	1308736475	1	OpenLayers.Format.OWSCommon.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/DragPan.js	1306760116	1	OpenLayers.Control.DragPan
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Collection.js	1308337156	1	OpenLayers.Geometry.Collection
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/SLDSelect.js	1300797041	1	OpenLayers.Control.SLDSelect
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Vector.js	1311599626	1	OpenLayers.Layer.Vector
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMTSCapabilities.js	1309858954	1	OpenLayers.Format.WMTSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/nn.js	1308946332	1	OpenLayers.Lang["nn"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer.js	1308251785	1	OpenLayers.Renderer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSDescribeProcess.js	1314228754	1	OpenLayers.Format.WPSDescribeProcess
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js	1294069180	1	OpenLayers.Format.SOSCapabilities.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Corner.js	1294249365	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Rico/Corner.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/zh-CN.js	1312531137	1	OpenLayers.Lang["zh-CN"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Split.js	1298881158	1	OpenLayers.Control.Split
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1_1_0.js	1309341217	1	OpenLayers.Format.Filter.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Path.js	1308337156	1	OpenLayers.Handler.Path
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC/v1_1_0.js	1301937314	1	OpenLayers.Format.WMC.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/TileCache.js	1308251785	1	OpenLayers.Layer.TileCache
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Box.js	1307360630	1	OpenLayers.Handler.Box
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js	1308251785	1	OpenLayers.Format.CSWGetDomain.v2_0_2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Filter/v1.js	1301649071	1	OpenLayers.Format.Filter.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Panel.js	1308251785	1	OpenLayers.Control.Panel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/MouseToolbar.js	1301834834	1	OpenLayers.Control.MouseToolbar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PanPanel.js	1296658857	1	OpenLayers.Control.PanPanel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Text.js	1294069180	1	OpenLayers.Format.Text
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Text.js	1294069180	1	OpenLayers.Layer.Text
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OGCExceptionReport.js	1309870390	1	OpenLayers.Format.OGCExceptionReport
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Click.js	1311766593	1	OpenLayers.Handler.Click
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/StyleMap.js	1294249365	1	OpenLayers.StyleMap
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/SLD/v1_0_0.js	1294069180	1	OpenLayers.Format.SLD.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js	1314228754	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/ArcGISCache.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler.js	1294249365	1	OpenLayers.Handler
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/MapServer/Untiled.js	1294069180	1	OpenLayers.Layer.MapServer.Untiled
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/SphericalMercator.js	1297689039	1	OpenLayers.Layer.SphericalMercator
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/DragFeature.js	1311451922	1	OpenLayers.Control.DragFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/ArgParser.js	1299508428	1	OpenLayers.Control.ArgParser
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/KaMapCache.js	1308251785	1	OpenLayers.Layer.KaMapCache
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XLS/v1.js	1308251785	1	OpenLayers.Format.XLS.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSDescribeLayer.js	1309858954	1	OpenLayers.Format.WMSDescribeLayer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WorldWind.js	1311948039	1	OpenLayers.Layer.WorldWind
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/GetFeature.js	1308251785	1	OpenLayers.Control.GetFeature
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/EditingToolbar.js	1305011357	1	OpenLayers.Control.EditingToolbar
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/cs-CZ.js	1312531137	1	OpenLayers.Lang["cs-CZ"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Bounds.js	1311932195	1	OpenLayers.Bounds
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSContext/v0_3_1.js	1308251785	1	OpenLayers.Format.OWSContext.v0_3_1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js	1294069180	1	OpenLayers.Format.WMSCapabilities/v1_3_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Pinch.js	1311766593	1	OpenLayers.Handler.Pinch
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Filter.js	1294249365	1	OpenLayers.Filter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1.js	1311602460	1	OpenLayers.Format.WFST.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Geometry/Rectangle.js	1298881158	1	OpenLayers.Geometry.Rectangle
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities.js	1309858954	1	OpenLayers.Format.WFSCapabilities
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Tile.js	1312788666	1	OpenLayers.Tile
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Ajax.js	1312386914	1	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Ajax.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Fixed.js	1299509306	1	OpenLayers.Strategy.Fixed
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/pt.js	1312531137	1	OpenLayers.Lang["pt"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Scale.js	1308946332	1	OpenLayers.Control.Scale
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/GML/Base.js	1310738859	1	OpenLayers.Format.GML.Base
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OSM.js	1308251785	1	OpenLayers.Format.OSM
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js	1304495335	1	OpenLayers.Format.WFSCapabilities/v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Popup/Framed.js	1294069180	1	OpenLayers.Popup.Framed
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/XYZ.js	1308251785	1	OpenLayers.Layer.XYZ
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Gears/gears_init.js	1221231425	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Gears/gears_init.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/en-CA.js	1283310391	1	OpenLayers.Lang["en-CA"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/XLS.js	1309858954	1	OpenLayers.Format.XLS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/BaseTypes/Size.js	1311932282	1	OpenLayers.Size
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Hover.js	1301834834	1	OpenLayers.Handler.Hover
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSContext.js	1309858954	1	OpenLayers.Format.OWSContext
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Request/XMLHttpRequest.js	1292235246	1	OpenLayers.Request.XMLHttpRequest
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/RegularPolygon.js	1308689633	1	OpenLayers.Handler.RegularPolygon
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/io.js	1308946332	1	OpenLayers.Lang["io"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/MouseWheel.js	1294069180	1	OpenLayers.Handler.MouseWheel
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/LayerSwitcher.js	1308946332	1	OpenLayers.Control.LayerSwitcher
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/be-tarask.js	1312531137	1	OpenLayers.Lang["be-tarask"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/zh-TW.js	1312531137	1	OpenLayers.Lang["zh-TW"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS.js	1312809779	1	OpenLayers.Protocol.WFS
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Symbolizer.js	1294249365	1	OpenLayers.Symbolizer
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Strategy/Filter.js	1301516364	1	OpenLayers.Strategy.Filter
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/PinchZoom.js	1299808406	1	OpenLayers.Control.PinchZoom
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFST/v1_1_0.js	1309341217	1	OpenLayers.Format.WFST.v1_1_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/PointTrack.js	1300801558	1	OpenLayers.Layer.PointTrack
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/Context.js	1309858954	1	OpenLayers.Format.Context
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/de.js	1312531137	1	OpenLayers.Lang["de"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/PointGrid.js	1308334720	1	OpenLayers.Layer.PointGrid
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/hr.js	1312531137	1	OpenLayers.Lang["hr"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1.js	1312779036	1	OpenLayers.Format.WMSCapabilities.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ia.js	1312531137	1	OpenLayers.Lang["ia"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebugx.js	1298652019	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/firebugx.js
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/sv-SE.js	1312531137	1	OpenLayers.Lang["sv"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Zoomify.js	1308251785	1	OpenLayers.Layer.Zoomify
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/OWSCommon/v1.js	1308736475	1	OpenLayers.Format.OWSCommon.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Handler/Keyboard.js	1294069180	1	OpenLayers.handler.Keyboard
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/NavigationHistory.js	1294069180	1	OpenLayers.Control.NavigationHistory
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/WMS/Untiled.js	1294069180	1	OpenLayers.Layer.WMS.Untiled
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Lang/ksh.js	1312531137	1	OpenLayers.Lang["ksh"]
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/WMTSGetFeatureInfo.js	1308251785	1	OpenLayers.Control.WMTSGetFeatureInfo
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js	1295873033	1	OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Renderer/SVG2.js	1310404035	1	OpenLayers.Renderer.SVG2
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format.js	1294249365	1	OpenLayers.Format
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Console.js	1298881158	1	OpenLayers.Console
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/license.txt	1181603869	0	/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/Firebug/license.txt
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js	1308736475	1	OpenLayers.Format.WPSCapabilities.v1_0_0
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Layer/Google.js	1294069180	1	OpenLayers.Layer.Google
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WFSCapabilities/v1.js	1294069180	1	OpenLayers.Format.WFSCapabilities.v1
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Format/WMC.js	1309858954	1	OpenLayers.Format.WMC
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Control/Attribution.js	1299508428	1	OpenLayers.Control.Attribution
+/home/crschmidt/openlayers/tools/OpenLayers-2.11/lib/OpenLayers/Protocol/WFS/v1_1_0.js	1294069180	1	OpenLayers.Protocol.WFS.v1_1_0
diff --git a/doc_config/Data/ImageFileInfo.nd b/doc_config/Data/ImageFileInfo.nd
index 550e24b..c9df45b 100644
Binary files a/doc_config/Data/ImageFileInfo.nd and b/doc_config/Data/ImageFileInfo.nd differ
diff --git a/doc_config/Data/ImageReferenceTable.nd b/doc_config/Data/ImageReferenceTable.nd
index a3ed9fa..49ffcc0 100644
Binary files a/doc_config/Data/ImageReferenceTable.nd and b/doc_config/Data/ImageReferenceTable.nd differ
diff --git a/doc_config/Data/IndexInfo.nd b/doc_config/Data/IndexInfo.nd
index 83a62e4..14f94d5 100644
Binary files a/doc_config/Data/IndexInfo.nd and b/doc_config/Data/IndexInfo.nd differ
diff --git a/doc_config/Data/PreviousMenuState.nd b/doc_config/Data/PreviousMenuState.nd
index bf41f62..549adae 100644
Binary files a/doc_config/Data/PreviousMenuState.nd and b/doc_config/Data/PreviousMenuState.nd differ
diff --git a/doc_config/Data/PreviousSettings.nd b/doc_config/Data/PreviousSettings.nd
index 274c3eb..3513012 100644
Binary files a/doc_config/Data/PreviousSettings.nd and b/doc_config/Data/PreviousSettings.nd differ
diff --git a/doc_config/Data/SymbolTable.nd b/doc_config/Data/SymbolTable.nd
index 0475a68..3780690 100644
Binary files a/doc_config/Data/SymbolTable.nd and b/doc_config/Data/SymbolTable.nd differ
diff --git a/doc_config/Languages.txt b/doc_config/Languages.txt
index ce0f107..42b197c 100644
--- a/doc_config/Languages.txt
+++ b/doc_config/Languages.txt
@@ -1,4 +1,4 @@
-Format: Development Release 12-07-2007 (1.35 base)
+Format: 1.52
 
 # This is the Natural Docs languages file for this project.  If you change
 # anything here, it will apply to THIS PROJECT ONLY.  If you'd like to change
diff --git a/doc_config/Menu.txt b/doc_config/Menu.txt
index 93cff7d..475cb6a 100644
--- a/doc_config/Menu.txt
+++ b/doc_config/Menu.txt
@@ -1,4 +1,4 @@
-Format: Development Release 12-07-2007 (1.35 base)
+Format: 1.52
 
 
 Title: OpenLayers
@@ -48,68 +48,72 @@ SubTitle: JavaScript Mapping Library
 Group: OpenLayers  {
 
    File: OpenLayers  (no auto-title, OpenLayers.js)
+   File: Ajax  (no auto-title, OpenLayers/Ajax.js)
 
    Group: BaseTypes  {
 
       File: Base Types  (no auto-title, OpenLayers/BaseTypes.js)
       File: Bounds  (no auto-title, OpenLayers/BaseTypes/Bounds.js)
       File: Class  (no auto-title, OpenLayers/BaseTypes/Class.js)
+      File: Date  (no auto-title, OpenLayers/BaseTypes/Date.js)
       File: Element  (no auto-title, OpenLayers/BaseTypes/Element.js)
       File: LonLat  (no auto-title, OpenLayers/BaseTypes/LonLat.js)
       File: Pixel  (no auto-title, OpenLayers/BaseTypes/Pixel.js)
       File: Size  (no auto-title, OpenLayers/BaseTypes/Size.js)
       }  # Group: BaseTypes
 
+   File: Console  (no auto-title, OpenLayers/Console.js)
+
    Group: Control  {
 
       File: Control  (no auto-title, OpenLayers/Control.js)
-
-      Group: Control  {
-
-         File: ArgParser  (no auto-title, OpenLayers/Control/ArgParser.js)
-         File: Attribution  (no auto-title, OpenLayers/Control/Attribution.js)
-         File: Button  (no auto-title, OpenLayers/Control/Button.js)
-         File: DragFeature  (no auto-title, OpenLayers/Control/DragFeature.js)
-         File: DragPan  (no auto-title, OpenLayers/Control/DragPan.js)
-         File: DrawFeature  (no auto-title, OpenLayers/Control/DrawFeature.js)
-         File: EditingToolbar  (no auto-title, OpenLayers/Control/EditingToolbar.js)
-         File: GetFeature  (no auto-title, OpenLayers/Control/GetFeature.js)
-         File: Graticule  (OpenLayers/Control/Graticule.js)
-         File: KeyboardDefaults  (no auto-title, OpenLayers/Control/KeyboardDefaults.js)
-         File: LayerSwitcher  (no auto-title, OpenLayers/Control/LayerSwitcher.js)
-         File: Measure  (no auto-title, OpenLayers/Control/Measure.js)
-         File: ModifyFeature  (no auto-title, OpenLayers/Control/ModifyFeature.js)
-         File: MouseDefaults  (no auto-title, OpenLayers/Control/MouseDefaults.js)
-         File: MousePosition  (no auto-title, OpenLayers/Control/MousePosition.js)
-         File: MouseToolbar  (no auto-title, OpenLayers/Control/MouseToolbar.js)
-         File: Navigation  (no auto-title, OpenLayers/Control/Navigation.js)
-         File: NavigationHistory  (no auto-title, OpenLayers/Control/NavigationHistory.js)
-         File: NavToolbar  (no auto-title, OpenLayers/Control/NavToolbar.js)
-         File: OverviewMap  (no auto-title, OpenLayers/Control/OverviewMap.js)
-         File: Pan  (no auto-title, OpenLayers/Control/Pan.js)
-         File: Panel  (no auto-title, OpenLayers/Control/Panel.js)
-         File: PanPanel  (no auto-title, OpenLayers/Control/PanPanel.js)
-         File: PanZoom  (no auto-title, OpenLayers/Control/PanZoom.js)
-         File: PanZoomBar  (no auto-title, OpenLayers/Control/PanZoomBar.js)
-         File: Permalink  (no auto-title, OpenLayers/Control/Permalink.js)
-         File: Scale  (no auto-title, OpenLayers/Control/Scale.js)
-         File: ScaleLine  (no auto-title, OpenLayers/Control/ScaleLine.js)
-         File: SelectFeature  (no auto-title, OpenLayers/Control/SelectFeature.js)
-         File: SLDSelect  (OpenLayers/Control/SLDSelect.js)
-         File: Snapping  (no auto-title, OpenLayers/Control/Snapping.js)
-         File: Split  (no auto-title, OpenLayers/Control/Split.js)
-         File: TransformFeature  (OpenLayers/Control/TransformFeature.js)
-         File: WMSGetFeatureInfo  (OpenLayers/Control/WMSGetFeatureInfo.js)
-         File: WMTSGetFeatureInfo  (OpenLayers/Control/WMTSGetFeatureInfo.js)
-         File: ZoomBox  (no auto-title, OpenLayers/Control/ZoomBox.js)
-         File: ZoomIn  (no auto-title, OpenLayers/Control/ZoomIn.js)
-         File: ZoomOut  (no auto-title, OpenLayers/Control/ZoomOut.js)
-         File: ZoomPanel  (no auto-title, OpenLayers/Control/ZoomPanel.js)
-         File: ZoomToMaxExtent  (no auto-title, OpenLayers/Control/ZoomToMaxExtent.js)
-         }  # Group: Control
-
+      File: ArgParser  (no auto-title, OpenLayers/Control/ArgParser.js)
+      File: Attribution  (no auto-title, OpenLayers/Control/Attribution.js)
+      File: Button  (no auto-title, OpenLayers/Control/Button.js)
+      File: DragFeature  (no auto-title, OpenLayers/Control/DragFeature.js)
+      File: DragPan  (no auto-title, OpenLayers/Control/DragPan.js)
+      File: DrawFeature  (no auto-title, OpenLayers/Control/DrawFeature.js)
+      File: EditingToolbar  (no auto-title, OpenLayers/Control/EditingToolbar.js)
+      File: Geolocate  (no auto-title, OpenLayers/Control/Geolocate.js)
+      File: GetFeature  (no auto-title, OpenLayers/Control/GetFeature.js)
+      File: Graticule  (no auto-title, OpenLayers/Control/Graticule.js)
+      File: KeyboardDefaults  (no auto-title, OpenLayers/Control/KeyboardDefaults.js)
+      File: LayerSwitcher  (no auto-title, OpenLayers/Control/LayerSwitcher.js)
+      File: Measure  (no auto-title, OpenLayers/Control/Measure.js)
+      File: ModifyFeature  (no auto-title, OpenLayers/Control/ModifyFeature.js)
+      File: MouseDefaults  (no auto-title, OpenLayers/Control/MouseDefaults.js)
+      File: MousePosition  (no auto-title, OpenLayers/Control/MousePosition.js)
+      File: MouseToolbar  (no auto-title, OpenLayers/Control/MouseToolbar.js)
+      File: Navigation  (no auto-title, OpenLayers/Control/Navigation.js)
+      File: NavigationHistory  (no auto-title, OpenLayers/Control/NavigationHistory.js)
+      File: NavToolbar  (no auto-title, OpenLayers/Control/NavToolbar.js)
+      File: OverviewMap  (no auto-title, OpenLayers/Control/OverviewMap.js)
+      File: Pan  (no auto-title, OpenLayers/Control/Pan.js)
+      File: Panel  (no auto-title, OpenLayers/Control/Panel.js)
+      File: PanPanel  (no auto-title, OpenLayers/Control/PanPanel.js)
+      File: PanZoom  (no auto-title, OpenLayers/Control/PanZoom.js)
+      File: PanZoomBar  (no auto-title, OpenLayers/Control/PanZoomBar.js)
+      File: Permalink  (no auto-title, OpenLayers/Control/Permalink.js)
+      File: PinchZoom  (no auto-title, OpenLayers/Control/PinchZoom.js)
+      File: Scale  (no auto-title, OpenLayers/Control/Scale.js)
+      File: ScaleLine  (no auto-title, OpenLayers/Control/ScaleLine.js)
+      File: SelectFeature  (no auto-title, OpenLayers/Control/SelectFeature.js)
+      File: SLDSelect  (no auto-title, OpenLayers/Control/SLDSelect.js)
+      File: Snapping  (no auto-title, OpenLayers/Control/Snapping.js)
+      File: Split  (no auto-title, OpenLayers/Control/Split.js)
+      File: TouchNavigation  (no auto-title, OpenLayers/Control/TouchNavigation.js)
+      File: TransformFeature  (no auto-title, OpenLayers/Control/TransformFeature.js)
+      File: WMSGetFeatureInfo  (no auto-title, OpenLayers/Control/WMSGetFeatureInfo.js)
+      File: WMTSGetFeatureInfo  (no auto-title, OpenLayers/Control/WMTSGetFeatureInfo.js)
+      File: ZoomBox  (no auto-title, OpenLayers/Control/ZoomBox.js)
+      File: ZoomIn  (no auto-title, OpenLayers/Control/ZoomIn.js)
+      File: ZoomOut  (no auto-title, OpenLayers/Control/ZoomOut.js)
+      File: ZoomPanel  (no auto-title, OpenLayers/Control/ZoomPanel.js)
+      File: ZoomToMaxExtent  (no auto-title, OpenLayers/Control/ZoomToMaxExtent.js)
       }  # Group: Control
 
+   File: Events  (no auto-title, OpenLayers/Events.js)
+
    Group: Feature  {
 
       File: Feature  (no auto-title, OpenLayers/Feature.js)
@@ -122,6 +126,7 @@ Group: OpenLayers  {
       File: Filter  (no auto-title, OpenLayers/Filter.js)
       File: Comparison  (no auto-title, OpenLayers/Filter/Comparison.js)
       File: FeatureId  (no auto-title, OpenLayers/Filter/FeatureId.js)
+      File: Function  (no auto-title, OpenLayers/Filter/Function.js)
       File: Logical  (no auto-title, OpenLayers/Filter/Logical.js)
       File: Spatial  (no auto-title, OpenLayers/Filter/Spatial.js)
       }  # Group: Filter
@@ -135,7 +140,7 @@ Group: OpenLayers  {
          File: Filter  (no auto-title, OpenLayers/Format/Filter.js)
          File: v1  (no auto-title, OpenLayers/Format/Filter/v1.js)
          File: v1_0_0  (no auto-title, OpenLayers/Format/Filter/v1_0_0.js)
-         File: v1_1_0  (OpenLayers/Format/Filter/v1_1_0.js)
+         File: v1_1_0  (no auto-title, OpenLayers/Format/Filter/v1_1_0.js)
          }  # Group: Filter
 
       Group: GML  {
@@ -164,9 +169,9 @@ Group: OpenLayers  {
       Group: WFST  {
 
          File: WFST  (no auto-title, OpenLayers/Format/WFST.js)
-         File: v1  (OpenLayers/Format/WFST/v1.js)
-         File: v1_0_0  (OpenLayers/Format/WFST/v1_0_0.js)
-         File: v1_1_0  (OpenLayers/Format/WFST/v1_1_0.js)
+         File: v1  (no auto-title, OpenLayers/Format/WFST/v1.js)
+         File: v1_0_0  (no auto-title, OpenLayers/Format/WFST/v1_0_0.js)
+         File: v1_1_0  (no auto-title, OpenLayers/Format/WFST/v1_1_0.js)
          }  # Group: WFST
 
       Group: WMC  {
@@ -186,6 +191,7 @@ Group: OpenLayers  {
          File: v1_1_1  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1.js)
          File: v1_3  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3.js)
          File: v1_3_0  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3_0.js)
+         File: WMSCapabilities/v1_1_1_WMSC  (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js)
          }  # Group: WMSCapabilities
 
       Group: WMSDescribeLayer  {
@@ -199,38 +205,51 @@ Group: OpenLayers  {
          File: ArcXML  (no auto-title, OpenLayers/Format/ArcXML.js)
          File: ArcXML.Features  (no auto-title, OpenLayers/Format/ArcXML/Features.js)
          File: Atom  (no auto-title, OpenLayers/Format/Atom.js)
-         File: Context  (OpenLayers/Format/Context.js)
-         File: CSWGetDomain.DEFAULTS  (no auto-title, OpenLayers/Format/CSWGetDomain.js)
+         File: Context  (no auto-title, OpenLayers/Format/Context.js)
+         File: CQL  (no auto-title, OpenLayers/Format/CQL.js)
+         File: CSWGetDomain  (no auto-title, OpenLayers/Format/CSWGetDomain.js)
          File: CSWGetDomain.v2_0_2  (no auto-title, OpenLayers/Format/CSWGetDomain/v2_0_2.js)
-         File: CSWGetRecords.DEFAULTS  (no auto-title, OpenLayers/Format/CSWGetRecords.js)
+         File: CSWGetRecords  (no auto-title, OpenLayers/Format/CSWGetRecords.js)
          File: CSWGetRecords.v2_0_2  (no auto-title, OpenLayers/Format/CSWGetRecords/v2_0_2.js)
          File: GeoJSON  (no auto-title, OpenLayers/Format/GeoJSON.js)
          File: GeoRSS  (no auto-title, OpenLayers/Format/GeoRSS.js)
          File: GPX  (no auto-title, OpenLayers/Format/GPX.js)
          File: JSON  (no auto-title, OpenLayers/Format/JSON.js)
          File: KML  (no auto-title, OpenLayers/Format/KML.js)
+         File: OGCExceptionReport  (no auto-title, OpenLayers/Format/OGCExceptionReport.js)
          File: OSM  (no auto-title, OpenLayers/Format/OSM.js)
+         File: OWSCommon  (no auto-title, OpenLayers/Format/OWSCommon.js)
 
          Group: OWSCommon  {
 
-            File: v1  (OpenLayers/Format/OWSCommon/v1.js)
-            File: v1_0_0  (OpenLayers/Format/OWSCommon/v1_0_0.js)
-            File: v1_1_0  (OpenLayers/Format/OWSCommon/v1_1_0.js)
+            File: v1  (no auto-title, OpenLayers/Format/OWSCommon/v1.js)
+            File: v1_0_0  (no auto-title, OpenLayers/Format/OWSCommon/v1_0_0.js)
+            File: v1_1_0  (no auto-title, OpenLayers/Format/OWSCommon/v1_1_0.js)
             }  # Group: OWSCommon
 
-         File: OWSContext  (OpenLayers/Format/OWSContext.js)
-         File: OWSContext.v0_3_1  (OpenLayers/Format/OWSContext/v0_3_1.js)
-         File: SOSCapabilities  (OpenLayers/Format/SOSCapabilities.js)
-         File: SOSCapabilities.v1_0_0  (OpenLayers/Format/SOSCapabilities/v1_0_0.js)
-         File: SOSGetFeatureOfInterest  (OpenLayers/Format/SOSGetFeatureOfInterest.js)
-         File: SOSGetObservation  (OpenLayers/Format/SOSGetObservation.js)
+         File: OWSContext  (no auto-title, OpenLayers/Format/OWSContext.js)
+         File: OWSContext.v0_3_1  (no auto-title, OpenLayers/Format/OWSContext/v0_3_1.js)
+         File: QueryStringFilter  (no auto-title, OpenLayers/Format/QueryStringFilter.js)
+         File: SOSCapabilities  (no auto-title, OpenLayers/Format/SOSCapabilities.js)
+         File: SOSCapabilities.v1_0_0  (no auto-title, OpenLayers/Format/SOSCapabilities/v1_0_0.js)
+         File: SOSGetFeatureOfInterest  (no auto-title, OpenLayers/Format/SOSGetFeatureOfInterest.js)
+         File: SOSGetObservation  (no auto-title, OpenLayers/Format/SOSGetObservation.js)
          File: Text  (no auto-title, OpenLayers/Format/Text.js)
+         File: VersionedOGC  (OpenLayers/Format/XML/VersionedOGC.js)
+         File: WCSGetCoverage version 1.1.0  (no auto-title, OpenLayers/Format/WCSGetCoverage.js)
          File: WFS  (no auto-title, OpenLayers/Format/WFS.js)
          File: WFSDescribeFeatureType  (no auto-title, OpenLayers/Format/WFSDescribeFeatureType.js)
          File: WKT  (no auto-title, OpenLayers/Format/WKT.js)
          File: WMSGetFeatureInfo  (no auto-title, OpenLayers/Format/WMSGetFeatureInfo.js)
-         File: WMTSCapabilities  (OpenLayers/Format/WMTSCapabilities.js)
-         File: WMTSCapabilities.v1_0_0  (OpenLayers/Format/WMTSCapabilities/v1_0_0.js)
+         File: WMTSCapabilities  (no auto-title, OpenLayers/Format/WMTSCapabilities.js)
+         File: WMTSCapabilities.v1_0_0  (no auto-title, OpenLayers/Format/WMTSCapabilities/v1_0_0.js)
+         File: WPSCapabilities  (no auto-title, OpenLayers/Format/WPSCapabilities.js)
+         File: WPSCapabilities.v1_0_0  (no auto-title, OpenLayers/Format/WPSCapabilities/v1_0_0.js)
+         File: WPSDescribeProcess  (no auto-title, OpenLayers/Format/WPSDescribeProcess.js)
+         File: WPSExecute version 1.0.0  (no auto-title, OpenLayers/Format/WPSExecute.js)
+         File: XLS  (no auto-title, OpenLayers/Format/XLS.js)
+         File: XLS.v1  (no auto-title, OpenLayers/Format/XLS/v1.js)
+         File: XLS.v1_1_0  (no auto-title, OpenLayers/Format/XLS/v1_1_0.js)
          File: XML  (no auto-title, OpenLayers/Format/XML.js)
          }  # Group: Format
 
@@ -262,11 +281,15 @@ Group: OpenLayers  {
       File: Keyboard  (no auto-title, OpenLayers/Handler/Keyboard.js)
       File: MouseWheel  (no auto-title, OpenLayers/Handler/MouseWheel.js)
       File: Path  (no auto-title, OpenLayers/Handler/Path.js)
+      File: Pinch  (no auto-title, OpenLayers/Handler/Pinch.js)
       File: Point  (no auto-title, OpenLayers/Handler/Point.js)
       File: Polygon  (no auto-title, OpenLayers/Handler/Polygon.js)
       File: RegularPolygon  (no auto-title, OpenLayers/Handler/RegularPolygon.js)
       }  # Group: Handler
 
+   File: Icon  (no auto-title, OpenLayers/Icon.js)
+   File: Kinetic  (no auto-title, OpenLayers/Kinetic.js)
+
    Group: Lang  {
 
       File: Lang  (no auto-title, OpenLayers/Lang.js)
@@ -298,6 +321,7 @@ Group: OpenLayers  {
       File: ja  (no auto-title, OpenLayers/Lang/ja.js)
       File: km  (no auto-title, OpenLayers/Lang/km.js)
       File: ksh  (no auto-title, OpenLayers/Lang/ksh.js)
+      File: lt  (no auto-title, OpenLayers/Lang/lt.js)
       File: nds  (no auto-title, OpenLayers/Lang/nds.js)
       File: nb  (no auto-title, OpenLayers/Lang/nb.js)
       File: nl  (no auto-title, OpenLayers/Lang/nl.js)
@@ -317,49 +341,49 @@ Group: OpenLayers  {
    Group: Layer  {
 
       File: Layer  (no auto-title, OpenLayers/Layer.js)
-
-      Group: Layer  {
-
-         File: ArcGIS93Rest  (no auto-title, OpenLayers/Layer/ArcGIS93Rest.js)
-         File: ArcIMS  (no auto-title, OpenLayers/Layer/ArcIMS.js)
-         File: Boxes  (no auto-title, OpenLayers/Layer/Boxes.js)
-         File: EventPane  (no auto-title, OpenLayers/Layer/EventPane.js)
-         File: FixedZoomLevels  (no auto-title, OpenLayers/Layer/FixedZoomLevels.js)
-         File: GeoRSS  (no auto-title, OpenLayers/Layer/GeoRSS.js)
-         File: GML  (no auto-title, OpenLayers/Layer/GML.js)
-         File: Google  (no auto-title, OpenLayers/Layer/Google.js)
-         File: Grid  (no auto-title, OpenLayers/Layer/Grid.js)
-         File: HTTPRequest  (no auto-title, OpenLayers/Layer/HTTPRequest.js)
-         File: Image  (no auto-title, OpenLayers/Layer/Image.js)
-         File: KaMap  (no auto-title, OpenLayers/Layer/KaMap.js)
-         File: KaMapCache  (no auto-title, OpenLayers/Layer/KaMapCache.js)
-         File: MapGuide  (no auto-title, OpenLayers/Layer/MapGuide.js)
-         File: MapServer  (no auto-title, OpenLayers/Layer/MapServer.js)
-         File: MapServer.Untiled  (no auto-title, OpenLayers/Layer/MapServer/Untiled.js)
-         File: Markers  (no auto-title, OpenLayers/Layer/Markers.js)
-         File: MultiMap  (no auto-title, OpenLayers/Layer/MultiMap.js)
-         File: PointTrack  (no auto-title, OpenLayers/Layer/PointTrack.js)
-         File: SphericalMercator  (no auto-title, OpenLayers/Layer/SphericalMercator.js)
-         File: Text  (no auto-title, OpenLayers/Layer/Text.js)
-         File: TileCache  (no auto-title, OpenLayers/Layer/TileCache.js)
-         File: TMS  (no auto-title, OpenLayers/Layer/TMS.js)
-         File: Vector  (no auto-title, OpenLayers/Layer/Vector.js)
-         File: Vector.RootContainer  (no auto-title, OpenLayers/Layer/Vector/RootContainer.js)
-         File: VirtualEarth  (no auto-title, OpenLayers/Layer/VirtualEarth.js)
-         File: WFS  (no auto-title, OpenLayers/Layer/WFS.js)
-         File: WMS  (no auto-title, OpenLayers/Layer/WMS.js)
-         File: WMS.Untiled  (no auto-title, OpenLayers/Layer/WMS/Untiled.js)
-         File: WMS.Post  (no auto-title, OpenLayers/Layer/WMS/Post.js)
-         File: WorldWind  (no auto-title, OpenLayers/Layer/WorldWind.js)
-         File: Yahoo  (no auto-title, OpenLayers/Layer/Yahoo.js)
-         File: XYZ  (no auto-title, OpenLayers/Layer/XYZ.js)
-         File: Google/v3.js  (OpenLayers/Layer/Google/v3.js)
-         File: WMTS  (OpenLayers/Layer/WMTS.js)
-         File: Zoomify  (OpenLayers/Layer/Zoomify.js)
-         }  # Group: Layer
-
+      File: ArcGISCache.js  (no auto-title, OpenLayers/Layer/ArcGISCache.js)
+      File: ArcGIS93Rest  (no auto-title, OpenLayers/Layer/ArcGIS93Rest.js)
+      File: ArcIMS  (no auto-title, OpenLayers/Layer/ArcIMS.js)
+      File: Bing  (no auto-title, OpenLayers/Layer/Bing.js)
+      File: Boxes  (no auto-title, OpenLayers/Layer/Boxes.js)
+      File: EventPane  (no auto-title, OpenLayers/Layer/EventPane.js)
+      File: FixedZoomLevels  (no auto-title, OpenLayers/Layer/FixedZoomLevels.js)
+      File: GeoRSS  (no auto-title, OpenLayers/Layer/GeoRSS.js)
+      File: GML  (no auto-title, OpenLayers/Layer/GML.js)
+      File: Google  (no auto-title, OpenLayers/Layer/Google.js)
+      File: Google.v3  (no auto-title, OpenLayers/Layer/Google/v3.js)
+      File: Grid  (no auto-title, OpenLayers/Layer/Grid.js)
+      File: HTTPRequest  (no auto-title, OpenLayers/Layer/HTTPRequest.js)
+      File: Image  (no auto-title, OpenLayers/Layer/Image.js)
+      File: KaMap  (no auto-title, OpenLayers/Layer/KaMap.js)
+      File: KaMapCache  (no auto-title, OpenLayers/Layer/KaMapCache.js)
+      File: MapGuide  (no auto-title, OpenLayers/Layer/MapGuide.js)
+      File: MapServer  (no auto-title, OpenLayers/Layer/MapServer.js)
+      File: MapServer.Untiled  (no auto-title, OpenLayers/Layer/MapServer/Untiled.js)
+      File: Markers  (no auto-title, OpenLayers/Layer/Markers.js)
+      File: MultiMap  (no auto-title, OpenLayers/Layer/MultiMap.js)
+      File: PointGrid  (no auto-title, OpenLayers/Layer/PointGrid.js)
+      File: PointTrack  (no auto-title, OpenLayers/Layer/PointTrack.js)
+      File: SphericalMercator  (no auto-title, OpenLayers/Layer/SphericalMercator.js)
+      File: Text  (no auto-title, OpenLayers/Layer/Text.js)
+      File: TileCache  (no auto-title, OpenLayers/Layer/TileCache.js)
+      File: TMS  (no auto-title, OpenLayers/Layer/TMS.js)
+      File: Vector  (no auto-title, OpenLayers/Layer/Vector.js)
+      File: Vector.RootContainer  (no auto-title, OpenLayers/Layer/Vector/RootContainer.js)
+      File: VirtualEarth  (no auto-title, OpenLayers/Layer/VirtualEarth.js)
+      File: WFS  (no auto-title, OpenLayers/Layer/WFS.js)
+      File: WMS  (no auto-title, OpenLayers/Layer/WMS.js)
+      File: WMS.Untiled  (no auto-title, OpenLayers/Layer/WMS/Untiled.js)
+      File: WMS.Post  (no auto-title, OpenLayers/Layer/WMS/Post.js)
+      File: WMTS  (no auto-title, OpenLayers/Layer/WMTS.js)
+      File: WorldWind  (no auto-title, OpenLayers/Layer/WorldWind.js)
+      File: XYZ  (no auto-title, OpenLayers/Layer/XYZ.js)
+      File: Yahoo  (no auto-title, OpenLayers/Layer/Yahoo.js)
+      File: Zoomify  (no auto-title, OpenLayers/Layer/Zoomify.js)
       }  # Group: Layer
 
+   File: Map  (no auto-title, OpenLayers/Map.js)
+
    Group: Marker  {
 
       File: Marker  (no auto-title, OpenLayers/Marker.js)
@@ -375,6 +399,8 @@ Group: OpenLayers  {
       File: FramedCloud  (no auto-title, OpenLayers/Popup/FramedCloud.js)
       }  # Group: Popup
 
+   File: Projection  (no auto-title, OpenLayers/Projection.js)
+
    Group: Protocol  {
 
       File: Protocol  (no auto-title, OpenLayers/Protocol.js)
@@ -394,16 +420,19 @@ Group: OpenLayers  {
          File: v1_1_0  (no auto-title, OpenLayers/Protocol/WFS/v1_1_0.js)
          }  # Group: WFS
 
-      File: Protocol/SOS.js  (OpenLayers/Protocol/SOS.js)
-      File: v1_0_0  (OpenLayers/Protocol/SOS/v1_0_0.js)
+      File: Script  (no auto-title, OpenLayers/Protocol/Script.js)
+      File: SOS.DEFAULTS  (no auto-title, OpenLayers/Protocol/SOS.js)
+      File: SOS.v1_0_0  (no auto-title, OpenLayers/Protocol/SOS/v1_0_0.js)
       }  # Group: Protocol
 
    Group: Renderer  {
 
       File: Renderer  (no auto-title, OpenLayers/Renderer.js)
       File: Canvas  (no auto-title, OpenLayers/Renderer/Canvas.js)
-      File: Elements  (no auto-title, OpenLayers/Renderer/Elements.js)
+      File: ElementsIndexer  (no auto-title, OpenLayers/Renderer/Elements.js)
+      File: NG  (no auto-title, OpenLayers/Renderer/NG.js)
       File: SVG  (no auto-title, OpenLayers/Renderer/SVG.js)
+      File: SVG2  (no auto-title, OpenLayers/Renderer/SVG2.js)
       File: VML  (no auto-title, OpenLayers/Renderer/VML.js)
       }  # Group: Renderer
 
@@ -413,58 +442,45 @@ Group: OpenLayers  {
       File: XMLHttpRequest  (no auto-title, OpenLayers/Request/XMLHttpRequest.js)
       }  # Group: Request
 
+   File: SingleFile.js  (no auto-title, OpenLayers/SingleFile.js)
+   File: Rule  (no auto-title, OpenLayers/Rule.js)
+
    Group: Strategy  {
 
       File: Strategy  (no auto-title, OpenLayers/Strategy.js)
+      File: BBOX  (no auto-title, OpenLayers/Strategy/BBOX.js)
+      File: Cluster  (no auto-title, OpenLayers/Strategy/Cluster.js)
+      File: Filter  (no auto-title, OpenLayers/Strategy/Filter.js)
+      File: Fixed  (no auto-title, OpenLayers/Strategy/Fixed.js)
+      File: Paging  (no auto-title, OpenLayers/Strategy/Paging.js)
+      File: Refresh  (no auto-title, OpenLayers/Strategy/Refresh.js)
+      File: Save  (no auto-title, OpenLayers/Strategy/Save.js)
+      }  # Group: Strategy
 
-      Group: Strategy  {
+   File: Style  (no auto-title, OpenLayers/Style.js)
+   File: Style2  (no auto-title, OpenLayers/Style2.js)
+   File: StyleMap  (no auto-title, OpenLayers/StyleMap.js)
 
-         File: BBOX  (no auto-title, OpenLayers/Strategy/BBOX.js)
-         File: Cluster  (no auto-title, OpenLayers/Strategy/Cluster.js)
-         File: Filter  (OpenLayers/Strategy/Filter.js)
-         File: Fixed  (no auto-title, OpenLayers/Strategy/Fixed.js)
-         File: Paging  (no auto-title, OpenLayers/Strategy/Paging.js)
-         File: Refresh  (OpenLayers/Strategy/Refresh.js)
-         File: Save  (OpenLayers/Strategy/Save.js)
-         }  # Group: Strategy
+   Group: Symbolizer  {
 
-      }  # Group: Strategy
+      File: Symbolizer  (no auto-title, OpenLayers/Symbolizer.js)
+      File: Line  (no auto-title, OpenLayers/Symbolizer/Line.js)
+      File: Point  (no auto-title, OpenLayers/Symbolizer/Point.js)
+      File: Polygon  (no auto-title, OpenLayers/Symbolizer/Polygon.js)
+      File: Raster  (no auto-title, OpenLayers/Symbolizer/Raster.js)
+      File: Text  (no auto-title, OpenLayers/Symbolizer/Text.js)
+      }  # Group: Symbolizer
 
    Group: Tile  {
 
       File: Tile  (no auto-title, OpenLayers/Tile.js)
       File: Image  (no auto-title, OpenLayers/Tile/Image.js)
+      File: Image.IFrame  (no auto-title, OpenLayers/Tile/Image/IFrame.js)
       File: WFS  (no auto-title, OpenLayers/Tile/WFS.js)
-      File: IFrame  (OpenLayers/Tile/Image/IFrame.js)
       }  # Group: Tile
 
-   Group: OpenLayers  {
-
-      File: Ajax  (no auto-title, OpenLayers/Ajax.js)
-      File: Console  (no auto-title, OpenLayers/Console.js)
-      File: Events  (no auto-title, OpenLayers/Events.js)
-      File: Icon  (no auto-title, OpenLayers/Icon.js)
-      File: Map  (no auto-title, OpenLayers/Map.js)
-      File: Projection  (no auto-title, OpenLayers/Projection.js)
-      File: Rule  (no auto-title, OpenLayers/Rule.js)
-      File: Style  (no auto-title, OpenLayers/Style.js)
-      File: Style2  (OpenLayers/Style2.js)
-      File: StyleMap  (no auto-title, OpenLayers/StyleMap.js)
-      File: Symbolizer  (OpenLayers/Symbolizer.js)
-
-      Group: Symbolizer  {
-
-         File: Line  (OpenLayers/Symbolizer/Line.js)
-         File: Point  (OpenLayers/Symbolizer/Point.js)
-         File: Polygon  (OpenLayers/Symbolizer/Polygon.js)
-         File: Raster  (OpenLayers/Symbolizer/Raster.js)
-         File: Text  (OpenLayers/Symbolizer/Text.js)
-         }  # Group: Symbolizer
-
-      File: Tween  (no auto-title, OpenLayers/Tween.js)
-      File: Util  (no auto-title, OpenLayers/Util.js)
-      }  # Group: OpenLayers
-
+   File: Tween  (no auto-title, OpenLayers/Tween.js)
+   File: Util  (no auto-title, OpenLayers/Util.js)
    }  # Group: OpenLayers
 
 Group: Index  {
diff --git a/doc_config/Topics.txt b/doc_config/Topics.txt
index 2823c71..087d348 100644
--- a/doc_config/Topics.txt
+++ b/doc_config/Topics.txt
@@ -1,4 +1,4 @@
-Format: Development Release 12-07-2007 (1.35 base)
+Format: 1.52
 
 # This is the Natural Docs topics file for this project.  If you change anything
 # here, it will apply to THIS PROJECT ONLY.  If you'd like to change something
diff --git a/examples/GMLParser.html b/examples/GMLParser.html
deleted file mode 100644
index 962b2ef..0000000
--- a/examples/GMLParser.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers GML Parser</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        function parseData(req) {
-          g =  new OpenLayers.Format.GML();
-          html = ""
-          features = g.read(req.responseText);
-          for(var feat in features) {
-            html += "Feature: Geometry: "+ features[feat].geometry+",";
-                html += "<ul>";
-            for (var j in features[feat].attributes) {
-                html += "<li>"+j+":"+features[feat].attributes[j]+"</li>";
-            }
-                html += "</ul>"
-          }
-          document.getElementById('output').innerHTML = html;
-        }
-        function load() {
-            OpenLayers.loadURL("gml/owls.xml", "", null, parseData);
-        }
-    </script>
-  </head>
-  <body onload="load()">
-      <h1 id="title">GML Parser Example</h1>
-
-      <div id="tags"></div>
-
-      <p id="shortdesc">
-          Demonstrate the operation of the GML parser.
-      </p>
-
-      <div id="output"></div>
-
-      <div id="docs">
-          This script reads data from a GML file and parses out the coordinates, appending them to a HTML string with markup tags.
-          This markup is dumped to an element in the page.
-    </div>
-  </body>
-</html>
diff --git a/examples/Jugl.js b/examples/Jugl.js
index 38014ef..4f81a27 100644
--- a/examples/Jugl.js
+++ b/examples/Jugl.js
@@ -1,84 +1,8 @@
-/**
+/*
  * Jugl.js -- JavaScript Template Library
  *
- * Copyright 2007 Tim Schaub
- * Released under the MIT license.  Please see
- * http://svn.tschaub.net/jugl/trunk/license.txt for the full license.
+ * Copyright 2007-2010 Tim Schaub
+ * Released under the MIT license.  Please see 
+ * http://github.com/tschaub/jugl/blob/master/license.txt for the full license.
  */
-
-(function(){var Jugl={prefix:"jugl",namespaceURI:"http://namespace.jugl.org/"};Jugl.Array={indexOf:function(array,obj){for(var i=0;i<array.length;i++){if(array[i]==obj)return i;}
-return-1;}};Jugl.Function={bind:function(method,object){var args=[];for(var i=2;i<arguments.length;++i){args.push(arguments[i]);}
-return function(){for(var i=0;i<arguments.length;++i){args.push(arguments[i]);}
-return method.apply(object,args);}}};Jugl.Node={appendChild:function(parent,child){if(typeof(parent)=="string"){var obj=document.getElementById(parent);if(!obj){throw Error("Element id not found: "+parent);}
-parent=obj;}
-if(typeof(child)=="string"){var obj=document.getElementById(child);if(!obj){throw Error("Element id not found: "+child);}
-child=obj;}
-if(child.namespaceURI&&child.xml){var wrapper=document.createElement('div');wrapper.innerHTML=child.xml;var children=wrapper.childNodes;for(var i=0;i<children.length;++i){parent.appendChild(children[i]);}}else{if(parent.ownerDocument&&parent.ownerDocument.importNode){child=parent.ownerDocument.importNode(child,true);}
-parent.appendChild(child);}
-return child;}};Jugl.Object={extend:function(destination,source){destination=destination||{};source=source||{};for(property in source){destination[property]=source[property];}
-return destination;},applyDefaults:function(destination,source){destination=destination||{};source=source||{};for(property in source){if(destination[property]===undefined){destination[property]=source[property];}}
-return destination;}};Jugl.Request={loadTemplate:function(url,onComplete,caller){var createTemplate=function(request){var doc,template;try{doc=request.responseXML;template=new Jugl.Template(doc.documentElement);}catch(invalidXML){try{doc=document.createElement("div");doc.innerHTML=request.responseText;template=new Jugl.Template(doc.firstChild);}catch(invalidHTML){var msg="Can't make HTML out of response: "+
-request.responseText;Jugl.Console.error(msg);throw invalidHTML;}}
-var complete=Jugl.Function.bind(onComplete,caller);complete(template);}
-Jugl.Request.loadUrl(url,createTemplate);},loadUrl:function(url,onComplete,caller){var complete=(caller)?Jugl.Function.bind(onComplete,caller):onComplete;var request=Jugl.Request.createXMLHttpRequest();request.open("GET",url);request.onreadystatechange=function(){if(request.readyState==4){complete(request);}}
-request.send(null);},createXMLHttpRequest:function(){if(typeof XMLHttpRequest!="undefined"){return new XMLHttpRequest();}else if(typeof ActiveXObject!="undefined"){return new ActiveXObject("Microsoft.XMLHTTP");}else{throw new Error("XMLHttpRequest not supported");}}};Jugl.Class=function(){var Class=function(){if(this===Jugl){var msg="Create an instance of a Jugl "+"class with the new keyword";throw Error(msg);}
-this.initialize.apply(this,arguments);}
-var extended={toString:function(){return"["+this.CLASS_NAME+"]";}};var parent;for(var i=0;i<arguments.length;++i){if(typeof arguments[i]=="function"){parent=arguments[i].prototype;}else{parent=arguments[i];}
-Jugl.Object.extend(extended,parent);}
-Class.prototype=extended;return Class;};Jugl.Console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){},assert:function(){},dir:function(){},dirxml:function(){},trace:function(){},group:function(){},groupEnd:function(){},time:function(){},timeEnd:function(){},profile:function(){},profileEnd:function(){},count:function(){}};(function(){if(window.console){var scripts=document.getElementsByTagName("script");for(var i=0;i<scripts.length;++i){if(script [...]
-return items;},splitExpressionPrefix:function(){var items=this.splitAttributeValue();if(!items||(items[0]!='structure'&&items[0]!='text')){items=[null,this.nodeValue];}
-return items;},getAttributeValues:function(){var trimmed=this.nodeValue.replace(/[\t\n]/g,"").replace(/;\s*$/,"");var tabbed=trimmed.replace(/;;/g,"\t");var newlined=tabbed.split(";").join("\n");return newlined.replace(/\t/g,";").split(/\n/g);},removeSelf:function(){this.element.removeAttributeNode(this);},process:function(){return this.processAttribute[this.type].apply(this,[]);},evalInScope:function(str){var expression="with(this.element.scope){"+str+"}";return eval(expression);},proce [...]
-this.removeSelf();return true;},"condition":function(){var proceed;try{proceed=!!(this.evalInScope(this.nodeValue));}catch(err){var message=err.name+": "+err.message+"\n"+"attribute: "+this.nodeName;Jugl.Console.error(message);throw err;}
-this.removeSelf();if(!proceed){this.element.removeSelf();}
-return proceed;},"repeat":function(){var pair=this.splitAttributeValue();var key=pair[0];var list=this.evalInScope(pair[1]);this.removeSelf();if(!(list instanceof Array)){var items=new Array();for(var p in list){items.push(p);}
-list=items;}
-var element;var previousSibling=this.element;var length=list.length;for(var i=0;i<length;++i){element=this.element.clone();element.scope[key]=list[i];element.scope.repeat[key]={index:i,number:i+1,even:!(i%2),odd:!!(i%2),start:(i==0),end:(i==length-1),length:length};previousSibling.insertAfter(element);element.process();previousSibling=element;}
-this.element.removeSelf();return false;},"content":function(){var pair=this.splitExpressionPrefix();var str;try{str=this.evalInScope(pair[1]);}catch(err){Jugl.Console.error("Failed to eval in element scope: "+
-pair[1]);throw err;}
-this.removeSelf();if(pair[0]=='structure'){try{this.element.node.innerHTML=str;}catch(err){var wrapper=document.createElement('div');var msg;try{wrapper.innerHTML=str;}catch(invalidHTML){msg="Can't transform string into valid HTML : "+
-str;Jugl.Console.error(msg);throw invalidHTML;}
-if(this.element.node.xml&&this.template.xmldom){while(this.element.node.firstChild){this.element.node.removeChild(this.element.node.firstChild);}
-this.template.xmldom.loadXML(wrapper.outerHTML);var children=this.template.xmldom.firstChild.childNodes;try{for(var i=0;i<children.length;++i){this.element.node.appendChild(children[i]);}}catch(invalidXML){msg="Can't transform string into valid XHTML : "+
-str;Jugl.Console.error(msg);throw invalidXML;}}else{try{this.element.node.innerHTML=wrapper.innerHTML;}catch(invalidXML){msg="Can't transform string into valid XHTML : "+
-str;Jugl.Console.error(msg);throw invalidXML;}}}}else{var text;if(this.element.node.xml&&this.template.xmldom){text=this.template.xmldom.createTextNode(str);}else{text=document.createTextNode(str);}
-var child=new Jugl.Element(this.template,text);this.element.removeChildNodes();this.element.appendChild(child);}
-return true;},"replace":function(){var pair=this.splitExpressionPrefix();var str;try{str=this.evalInScope(pair[1]);}catch(err){Jugl.Console.error("Failed to eval in element scope: "+
-pair[1]);throw err;}
-this.removeSelf();if(pair[0]=='structure'){var wrapper=document.createElement('div');try{wrapper.innerHTML=str;}catch(err){msg="Can't transform string into valid HTML : "+
-str;Jugl.Console.error(msg);throw err;}
-if(this.element.node.xml&&this.template.xmldom){try{this.template.xmldom.loadXML(wrapper.outerHTML);}catch(err){msg="Can't transform string into valid XML : "+
-str;Jugl.Console.error(msg);throw err;}
-wrapper=this.template.xmldom.firstChild;}
-while(wrapper.firstChild){var child=wrapper.removeChild(wrapper.firstChild);if(this.element.node.ownerDocument&&this.element.node.ownerDocument.importNode){if(child.ownerDocument!=this.element.node.ownerDocument){child=this.element.node.ownerDocument.importNode(child,true);}}
-this.element.node.parentNode.insertBefore(child,this.element.node);}}else{var text;if(this.element.node.xml&&this.template.xmldom){text=this.template.xmldom.createTextNode(str);}else{text=document.createTextNode(str);}
-var replacement=new Jugl.Element(this.template,text);this.element.insertBefore(replacement);}
-this.element.removeSelf();return true;},"attributes":function(){var values=this.getAttributeValues();var pair,name,value;for(var i=0;i<values.length;++i){pair=this.splitAttributeValue(values[i]);name=pair[0];value=this.evalInScope(pair[1]);if(value!==false){this.element.setAttribute(name,value);}}
-this.removeSelf();return true;},"omit-tag":function(){var omit;try{omit=((this.nodeValue=="")||!!(this.evalInScope(this.nodeValue)));}catch(err){Jugl.Console.error("Failed to eval in element scope: "+
-this.nodeValue);throw err;}
-this.removeSelf();if(omit){var children=this.element.getChildNodes();var child;for(var i=0;i<children.length;++i){this.element.insertBefore(children[i]);}
-this.element.removeSelf();}},"reflow":function(){var reflow;try{reflow=((this.nodeValue=="")||!!(this.evalInScope(this.nodeValue)));}catch(err){Jugl.Console.error("Failed to eval in element scope: "+
-this.nodeValue);throw err;}
-this.removeSelf();if(reflow){if(this.element.node.outerHTML){this.element.node.outerHTML=this.element.node.outerHTML;}else{this.element.node.innerHTML=this.element.node.innerHTML;}}}},CLASS_NAME:"Jugl.Attribute"});Jugl.Element=Jugl.Class({template:null,node:null,scope:null,initialize:function(template,node){this.template=template;this.node=node;this.scope=new Object();this.scope.repeat=new Object();},clone:function(){var node=this.node.cloneNode(true);node.removeAttribute("id");var eleme [...]
-localName);}
-if(node&&!node.specified){node=false;}}
-var attribute;if(node){attribute=new Jugl.Attribute(this,node,localName);}else{attribute=node;}
-return attribute;},setAttribute:function(name,value){this.node.setAttribute(name,value);},removeAttributeNode:function(attribute){this.node.removeAttributeNode(attribute.node);},getChildNodes:function(){var numNodes=this.node.childNodes.length;var children=new Array(numNodes);var node,scope;for(var i=0;i<numNodes;++i){node=new Jugl.Element(this.template,this.node.childNodes[i]);node.scope=Jugl.Object.extend({},this.scope);children[i]=node;}
-return children;},removeChildNodes:function(){while(this.node.hasChildNodes()){this.node.removeChild(this.node.firstChild);}},removeChild:function(element){this.node.removeChild(element.node);return node;},removeSelf:function(){this.node.parentNode.removeChild(this.node);},importNode:function(element){if(this.node.ownerDocument&&this.node.ownerDocument.importNode){if(element.node.ownerDocument!=this.node.ownerDocument){element.node=this.node.ownerDocument.importNode(element.node,true);}} [...]
-series[i]+" attribute");throw err;}
-if(!keepProcessing){return;}}}
-var content=this.getAttribute("content");if(content){try{content.process();}catch(err){Jugl.Console.error("Failed to process content attribute");throw err;}}else{var replace=this.getAttribute("replace");if(replace){try{replace.process();}catch(err){Jugl.Console.error("Failed to process replace attribute");throw err;}}}
-var attributes=this.getAttribute("attributes");if(attributes){try{attributes.process();}catch(err){Jugl.Console.error("Failed to process attributes attribute");throw err;}}
-if(!content&&!replace){this.processChildNodes();}
-var omit=this.getAttribute("omit-tag");if(omit){try{omit.process();}catch(err){Jugl.Console.error("Failed to process omit-tag attribute");throw err;}}
-var reflow=this.getAttribute("reflow");if(reflow){try{reflow.process();}catch(err){Jugl.Console.error("Failed to process reflow attribute");throw err;}}},processChildNodes:function(){var children=this.getChildNodes();for(var i=0;i<children.length;++i){try{children[i].process();}catch(err){Jugl.Console.error("Failed to process child node: "+i);throw err;}}},CLASS_NAME:"Jugl.Element"});Jugl.Template=Jugl.Class({node:null,usingNS:false,xhtmlns:"http://www.w3.org/1999/xhtml",xmldom:window.Ac [...]
-config=config||{};if(typeof(config.node)=="string"){config.node=document.getElementById(config.node);if(!config.node){throw Error("Element id not found: "+config.node);}}
-if(config.node){this.node=config.node;this.loaded=true;}else if(config.url){this.load({url:config.url,callback:config.callback,scope:config.scope});}},process:function(config){if(config&&!config.context&&!config.clone&&!config.string&&!config.parent){config={context:config}}
-config=Jugl.Object.applyDefaults(config,{context:null,clone:false,string:false});if(this.node.getAttributeNodeNS){if(this.node.getAttributeNodeNS(Jugl.xhtmlns,Jugl.prefix)){this.usingNS=true;}}
-var element=new Jugl.Element(this,this.node);if(config.clone){element=element.clone();}
-if(config.context){element.scope=config.context;}
-try{element.process();}catch(err){Jugl.Console.error("Failed to process "+
-this.node.nodeName+" node");throw err;}
-var data;if(config.string){if(element.node.innerHTML){data=element.node.innerHTML;}else{if(this.xmldom){data=element.node.xml;}else{var serializer=new XMLSerializer();data=serializer.serializeToString(element.node);}}}else{data=element.node;if(config.parent){if(config.clone){data=Jugl.Node.appendChild(config.parent,element.node);}else{this.appendTo(config.parent);}}}
-return data;},load:function(config){if(typeof config=="string"){config={url:config};}
-config=config||{};this.loading=true;var setNode=function(template){this.node=template.node;this.loading=false;this.loaded=true;if(config.callback){config.callback.apply(config.scope,[template]);}}
-Jugl.Request.loadTemplate(config.url,setNode,this);},appendTo:function(parent){this.node=Jugl.Node.appendChild(parent,this.node);return this;},CLASS_NAME:"Jugl.Template"});window["http://jugl.tschaub.net/trunk/lib/Jugl.js"]=Jugl;})();
\ No newline at end of file
+(function(){var f={prefix:"jugl",namespaceURI:null,loadTemplate:function(h){var i=function(l){var m,k,n=!l.status||(l.status>=200&&l.status<300);if(n){try{m=l.responseXML;k=new e(m.documentElement)}catch(j){m=document.createElement("div");m.innerHTML=l.responseText;k=new e(m.firstChild)}if(h.callback){h.callback.call(h.scope,k)}}else{if(h.failure){h.failure.call(h.scope,l)}}};d(h.url,i)}};var g=function(h,j){h=h||{};j=j||{};for(var i in j){h[i]=j[i]}return h};var a=function(l,o){var m,n, [...]
\ No newline at end of file
diff --git a/examples/KMLParser.html b/examples/KMLParser.html
index 068c087..a6ec027 100644
--- a/examples/KMLParser.html
+++ b/examples/KMLParser.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers KML Parser Example</title>
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         function parseData(req) {
@@ -24,14 +28,19 @@
           document.getElementById('output').innerHTML = html;
         }
         function load() {
-            OpenLayers.loadURL("kml/lines.kml", "", null, parseData);
+            OpenLayers.Request.GET({
+                url: "kml/lines.kml",
+                success: parseData
+            });
         }
     </script>
   </head>
   <body onload="load()">
       <h1 id="title">KML Parser Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+        KML, parsing, format
+      </div>
 
       <p id="shortdesc">
           Demonstrate the operation of the KML parser.
@@ -40,8 +49,9 @@
       <div id="output"></div>
 
       <div id="docs">
-          This script reads data from a KML file and parses out the coordinates, appending them to a HTML string with markup tags.
-          This markup is dumped to an element in the page.
+          <p>This script reads data from a KML file and parses out the
+          coordinates, appending them to a HTML string with markup tags.
+          This markup is dumped to an element in the page.</p>
     </div>
   </body>
 </html>
diff --git a/examples/SLDSelect.html b/examples/SLDSelect.html
index 470adee..ff07e31 100644
--- a/examples/SLDSelect.html
+++ b/examples/SLDSelect.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers SLD based selection control</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olControlSLDSelectBoxActive {
             cursor: crosshair;
@@ -130,11 +134,13 @@
   <body onload="init()">
     <h1 id="title">SLD based selection on WMS layers</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        sld, sldselect, styling, style
+    </div>
 
     <div id="shortdesc">Using Styled Layer Descriptors to make a selection on WMS layers</div>
 
-    <div id="map" style="width: 512; height: 256; border: 1px solid red;"></div>
+    <div id="map" style="width: 512px; height: 256px; border: 1px solid red;"></div>
 
     <div id="docs">
         This example uses the OpenLayers.Control.SLDSelect to select features in a WMS
diff --git a/examples/WMSDescribeLayerParser.html b/examples/WMSDescribeLayerParser.html
index 1ef78c3..0e62465 100644
--- a/examples/WMSDescribeLayerParser.html
+++ b/examples/WMSDescribeLayerParser.html
@@ -1,12 +1,16 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers WMSDescribeLayer Parser Example</title>
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         function parseData(req) {
-          format =  new OpenLayers.Format.WMSDescribeLayer();
-          html = "<br />"
+          format = new OpenLayers.Format.WMSDescribeLayer();
+          html = "<br>"
           resp = format.read(req.responseText);
           for(var i = 0; i < resp.length; i++) {
             html += "Layer: typeName: "+ resp[i].typeName+",";
@@ -18,14 +22,19 @@
           document.getElementById('output').innerHTML = html;
         }
         function load() {
-            OpenLayers.loadURL("xml/wmsdescribelayer.xml", "", null, parseData);
+            OpenLayers.Request.GET({
+                url: "xml/wmsdescribelayer.xml",
+                success: parseData
+            });
         }
     </script>
   </head>
   <body onload="load()">
       <h1 id="title">WMSDescribeLayer Parser Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+          wmsdescribelayer, parser, cleanup
+      </div>
 
       <p id="shortdesc">
           Demonstrate the operation of the WMSDescribeLayer parser.
@@ -34,8 +43,9 @@
       <div id="output"></div>
 
       <div id="docs">
-          This script reads data from a file and parses out the coordinates, appending them to a HTML string with markup tags.
-          This markup is dumped to an element in the page.
+          <p>This script reads data from a file and parses out the coordinates,
+          appending them to a HTML string with markup tags. This markup is
+          dumped to an element in the page.</p>
     </div>
   </body>
 </html>
diff --git a/examples/WMSPost.html b/examples/WMSPost.html
deleted file mode 100644
index 2379598..0000000
--- a/examples/WMSPost.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers Basic WMS Example via HTTP-POST protocol</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        var map;
-
-        function init(){
-            var sld = '<StyledLayerDescriptor version="1.0.0">';
-                sld+= '<NamedLayer>';
-                sld+= '<Name>topp:tasmania_roads</Name>';
-                sld+= '<UserStyle>';
-                sld+= '<IsDefault>1</IsDefault>';
-                sld+= '<FeatureTypeStyle>';
-                sld+= '<Rule>';
-                sld+= '<LineSymbolizer>';
-                sld+= '<Stroke>';
-                sld+= '<CssParameter name="stroke">';
-                sld+= '<Literal>#787878</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '<CssParameter name="stroke-width">';
-                sld+= '<Literal>2</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '</Stroke>';
-                sld+= '</LineSymbolizer>';
-                sld+= '</Rule>';
-                sld+= '</FeatureTypeStyle>';
-                sld+= '</UserStyle>';
-                sld+= '</NamedLayer>';
-
-                sld+= '<NamedLayer>';
-                sld+= '<Name>topp:tasmania_water_bodies</Name>';
-                sld+= '<UserStyle>';
-                sld+= '<IsDefault>1</IsDefault>';
-                sld+= '<FeatureTypeStyle>';
-                sld+= '<Rule>';
-                sld+= '<LineSymbolizer>';
-                sld+= '<Stroke>';
-                sld+= '<CssParameter name="stroke">';
-                sld+= '<Literal>#4F94CD</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '<CssParameter name="stroke-width">';
-                sld+= '<Literal>3</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '</Stroke>';
-                sld+= '</LineSymbolizer>';
-                sld+= '<PolygonSymbolizer>';
-                sld+= '<Fill>';
-                sld+= '<CssParameter name="fill">';
-                sld+= '<Literal>#63B8FF</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '</Fill>';
-                sld+= '</PolygonSymbolizer>';
-                sld+= '</Rule>';
-                sld+= '</FeatureTypeStyle>';
-                sld+= '</UserStyle>';
-                sld+= '</NamedLayer>';
-
-                sld+= '<NamedLayer>';
-                sld+= '<Name>topp:tasmania_cities</Name>';
-                sld+= '<UserStyle>';
-                sld+= '<IsDefault>1</IsDefault>';
-                sld+= '<FeatureTypeStyle>';
-                sld+= '<Rule>';
-                sld+= '<PointSymbolizer>';
-                sld+= '<Graphic>';
-                sld+= '<Mark>';
-                sld+= '<WellKnownName>cross</WellKnownName>';
-                sld+= '<Fill>';
-                sld+= '<CssParameter name="fill">';
-                sld+= '<Literal>#00FF00</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '</Fill>';
-                sld+= '</Mark>';
-                sld+= '<Size>15</Size>';
-                sld+= '</Graphic>';
-                sld+= '</PointSymbolizer>';
-                sld+= '<TextSymbolizer>';
-                sld+= '<Label><PropertyName>CITY_NAME</PropertyName></Label>';
-                sld+= '<Font>';
-                sld+= '<SvgParameter name="font-size">15</SvgParameter>';
-                sld+= '</Font>';
-                sld+= '</TextSymbolizer>';
-                sld+= '</Rule>';
-                sld+= '</FeatureTypeStyle>';
-                sld+= '</UserStyle>';
-                sld+= '</NamedLayer>';
-
-                sld+= '<NamedLayer>';
-                sld+= '<Name>topp:tasmania_state_boundaries</Name>';
-                sld+= '<UserStyle>';
-                sld+= '<IsDefault>1</IsDefault>';
-                sld+= '<FeatureTypeStyle>';
-                sld+= '<Rule>';
-                sld+= '<PolygonSymbolizer>';
-                sld+= '<Fill>';
-                sld+= '<CssParameter name="fill">';
-                sld+= '<Literal>#8B8989</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '<CssParameter name="fill-opacity">';
-                sld+= '<Literal>0.2</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '</Fill>';
-                sld+= '<Stroke>';
-                sld+= '<CssParameter name="stroke">';
-                sld+= '<Literal>#FF4040</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '<CssParameter name="stroke-width">';
-                sld+= '<Literal>2</Literal>';
-                sld+= '</CssParameter>';
-                sld+= '</Stroke>';
-                sld+= '</PolygonSymbolizer>';
-                sld+= '</Rule>';
-                sld+= '</FeatureTypeStyle>';
-                sld+= '</UserStyle>';
-                sld+= '</NamedLayer>';
-
-                sld+= '</StyledLayerDescriptor>';
-
-            map = new OpenLayers.Map('map');
-            map.addControl(new OpenLayers.Control.LayerSwitcher());
-
-            var layer = new OpenLayers.Layer.WMS(
-                "OpenLayers WMS",
-                "http://vmap0.tiles.osgeo.org/wms/vmap0",
-                {
-                    layers: 'basic'
-                }
-            );
-
-            var rcbw = new OpenLayers.Layer.WMS.Post("Roads, Cities, Boundaries, Water",
-                "http://demo.opengeo.org/geoserver/wms", 
-                {
-                    'layers': 'topp:tasmania_roads,topp:tasmania_water_bodies,topp:tasmania_state_boundaries,topp:tasmania_cities',
-                    transparent: true,
-                    format: 'image/jpeg',
-                    sld_body: sld
-                },
-                {
-                    isBaseLayer: false,
-                    unsupportedBrowsers: []
-                }
-            );
-            map.addLayers([layer, rcbw]);
-            map.setCenter(new OpenLayers.LonLat(146.65748632815,-42.230763671875), 7);
-        }
-    </script>
-  </head>
-  <body onload="init()">
-    <h1 id="title">Basic WMS Example via HTTP-POST protocol with a large SLD
-    included</h1>
-
-    <div id="tags"></div>
-
-    <div id="shortdesc">Creating a WMS layer with a large SLD in the sld_body</div>
-
-    <div id="map" style="width: 512; height: 256; border: 1px solid red;"></div>
-
-    <div id="docs">
-        This example uses a large SLD created on the client side to style a WMS
-        layer.  This example uses a WMS.Post layer which transfers data via the
-        HTTP-POST protocol. <br>
-        NOTE: Opera is not able to display transparent tiles with this layer,
-        and in some Firefox browsers can appear ugly viewport-shaking effects
-        while dragging arround. Use the 'unsupportedBrowsers' property to
-        control which browsers should use plain image tiles (like Layer.WMS)
-        instead. The default setting (["mozilla", "firefox", "opera"])
-        excludes problematic browsers without removing the ability to use long
-        request parameters, because all these browsers support long urls via
-        GET.
-    </div>
-  </body>
-</html>
diff --git a/examples/accelerometer.html b/examples/accelerometer.html
new file mode 100644
index 0000000..0721519
--- /dev/null
+++ b/examples/accelerometer.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Accelerometer Usage</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script type="text/javascript" src="browser.js"></script>
+
+    <style type="text/css">
+        .olControlAttribution {
+            bottom: 5px;
+        }
+    </style>
+    <script type="text/javascript">
+        function init() {
+            if (isEventSupported('deviceorientation', window) || isEventSupported('mozorientation', window) || isEventSupported('devicemotion', window)) {
+                if (window.DeviceOrientationEvent) {
+                    window.addEventListener("deviceorientation", function (event) {
+                        document.getElementById('resultDeviceOrientation').innerHTML = '';
+                        if (typeof(event.alpha) != 'undefined') {
+                            document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Alpha: " + event.alpha + "<br>";
+                            document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Beta: " + event.beta + "<br>";
+                            document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Gamma: " + event.gamma + "<br>";
+                        }
+                        if (typeof(event.absolute) != 'undefined') {
+                            document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Gamma: " + event.absolute + "<br>";
+                        }
+                        if (typeof(event.compassCalibrate) != 'undefined') {
+                            document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Gamma: " + event.compassCalibrated + "<br>";
+                        }
+                    }, true);
+                }
+                if (window.DeviceMotionEvent) {
+                    window.addEventListener('devicemotion', function (event) {
+                        document.getElementById('resultDeviceMotion').innerHTML = '';
+                        if (typeof(event.accelerationIncludingGravity) != 'undefined') {
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "accelerationIncludingGravity.x: " + event.accelerationIncludingGravity.x + "<br>";
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "accelerationIncludingGravity.y: " + event.accelerationIncludingGravity.y + "<br>";
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "accelerationIncludingGravity.z: " + event.accelerationIncludingGravity.z + "<br>";
+                        }
+                        if (typeof(event.acceleration) != 'undefined') {
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "acceleration.x: " + event.acceleration.x + "<br>";
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "acceleration.y: " + event.acceleration.y + "<br>";
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "acceleration.z: " + event.acceleration.z + "<br>";
+                        }
+                        if (typeof(event.rotationRate) != 'undefined') {
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "rotationRate.alpha: " + event.rotationRate.alpha + "<br>";
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "rotationRate.beta: " + event.rotationRate.beta + "<br>";
+                            document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "rotationRate.gamma: " + event.rotationRate.gamma + "<br>";
+                        }
+                    }, true);
+                }
+                if (window.MozOrientation) {
+                    window.addEventListener("MozOrientation", function (orientation) {
+                        document.getElementById('resultMozOrientation').innerHTML = "orientation.x: " + orientation.x + "<br>";
+                        document.getElementById('resultMozOrientation').innerHTML = document.getElementById('resultMozOrientation').innerHTML + "orientation.y: " + orientation.y + "<br>";
+                        document.getElementById('resultMozOrientation').innerHTML = document.getElementById('resultMozOrientation').innerHTML + "orientation.z: " + orientation.z + "<br>";
+                    }, true);
+                }
+            } else {
+                alert("Unfortunately, your brower doesn't support the orientation usage");
+            }
+
+        }
+    </script>
+</head>
+<body onload="init()">
+<h1 id="title">Accelerometer</h1>
+
+<p id="shortdesc">
+    The goal of this script is to demonstrate the usage of accelerometer.
+</p>
+<p>
+  The orientation specification can be found <a href="http://dev.w3.org/geo/api/spec-source-orientation.html">here</a>.
+</p>
+
+<div id="tags">
+  browser, vendor, mobile, orientation 
+</div>  
+
+<h1>Device motion</h1>
+
+<div id="resultDeviceMotion">
+
+</div>
+<h1>Device orientation</h1>
+
+<div id="resultDeviceOrientation">
+
+</div>
+<h1>MOZ orientation</h1>
+
+<div id="resultMozOrientation">
+
+</div>
+</body>
+</html>
diff --git a/examples/accessible.html b/examples/accessible.html
index 8e8e85c..d9b8a77 100644
--- a/examples/accessible.html
+++ b/examples/accessible.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Accessible Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             table {
                 border: 1 px solid white;
@@ -50,7 +54,8 @@
         <h1 id="title">Accessible Example</h1>
 
         <div id="tags">
-        </div>
+            keyboard, pan, panning, zoom, zooming, accesskey
+        </div>        
 
         <p id="shortdesc">
             Demonstrate how to use the KeyboardDefaults option parameter for layer types.
@@ -107,7 +112,7 @@
         </table>
 
         <div id="docs">
-            <p>Navigate the map in one of three ways:
+            <p>Navigate the map in one of three ways:</p>
                 <ul>
                     <li>Click on the named links to zoom and pan</li>
                     <li>Use following keys to pan and zoom:
@@ -131,7 +136,7 @@
                         </ul>
                     </li>
                 </ul>
-            </p>
+            <p>
 
             This is an example of using alternate methods to control panning and zooming.  This approach uses map.pan() and map.zoom().  You'll note that to pan, additional math is necessary along with map.size() in order to set the distance to pan.
         </div>
diff --git a/examples/all-overlays-google.html b/examples/all-overlays-google.html
index cc3e2da..55fa828 100644
--- a/examples/all-overlays-google.html
+++ b/examples/all-overlays-google.html
@@ -1,6 +1,9 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers All Overlays with Google and OSM</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
@@ -11,6 +14,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">All Overlays with Google and OSM</h1>
+        <div id="tags">
+            overlay, baselayer, google, osm, openstreetmap
+        </div>
         <p id="shortdesc">
             Using the Google and OSM layers as overlays.
         </p>
diff --git a/examples/all-overlays.html b/examples/all-overlays.html
index 7850f05..cecda0e 100644
--- a/examples/all-overlays.html
+++ b/examples/all-overlays.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>All Overlays Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var map;
@@ -56,6 +60,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">OpenLayers Overlays Only Example</h1>
+        <div id="tags">
+            overlay, baselayer
+        </div> 
         <p id="shortdesc">
             Demonstrates a map with overlays only.
         </p>
diff --git a/examples/anchor-permalink.html b/examples/anchor-permalink.html
new file mode 100644
index 0000000..3905207
--- /dev/null
+++ b/examples/anchor-permalink.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <title>AnchorPermalink Example</title>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="anchor-permalink.js"></script>
+    </head>
+    <body onload="init()">
+        <h1 id="title">AnchorPermalink Example</h1>
+        <div id="tags">
+            anchor, permalink
+        </div>
+        <p id="shortdesc">
+            Place a permalink in the anchor of the url. 
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                See the <a href="anchor-permalink.js" target="_blank">anchor-permalink.js
+                source</a> to see how this is done.
+            </p> 
+        </div>
+    </body>
+</html>
diff --git a/examples/anchor-permalink.js b/examples/anchor-permalink.js
new file mode 100644
index 0000000..1ad2939
--- /dev/null
+++ b/examples/anchor-permalink.js
@@ -0,0 +1,13 @@
+function init() {
+    var map = new OpenLayers.Map({
+        div: "map",
+        projection: new OpenLayers.Projection("EPSG:900913"),
+        displayProjection: new OpenLayers.Projection("EPSG:4326"),
+        layers: [
+            new OpenLayers.Layer.OSM()
+        ]
+    });
+    if (!map.getCenter()) map.zoomToMaxExtent();
+
+    map.addControl(new OpenLayers.Control.Permalink({anchor: true}));
+}
diff --git a/examples/animated_panning.html b/examples/animated_panning.html
index 65e6a0b..a07017c 100644
--- a/examples/animated_panning.html
+++ b/examples/animated_panning.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Animated Panning of the Map via map.panTo</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer, running = false;
@@ -73,11 +77,13 @@
   </head>
   <body onload="init()">
     <h1 id="title">map.panTo Example</h1>
-    <div id="tags">map.panTo</div>
+    <div id="tags">
+        panning, animation, effect, smooth, panMethod
+    </div>
     <div id="shortdesc">Show animated panning effects in the map</div>
     <div id="map" class="smallmap"></div>
     <div id="docs">
-        <p>This is an example of transition effects. If the new random center is in the current extent, the map will pan smoothly. <br />
+        <p>This is an example of transition effects. If the new random center is in the current extent, the map will pan smoothly. <br>
         The random selection will continue until you press it again. Additionally, you can single click in the map to pan smoothly
         to that area, or use the pan control to pan smoothly.
         </p>
diff --git a/examples/arcgis93rest.html b/examples/arcgis93rest.html
index 9cf6e3f..67a96da 100644
--- a/examples/arcgis93rest.html
+++ b/examples/arcgis93rest.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -41,6 +45,7 @@
     <h1 id="title">ArcGIS Server 9.3 Rest API Example</h1>
 
     <div id="tags">
+        ESRI, ArcGIS, REST, filter
     </div>
     <p id="shortdesc">
         Shows the basic use of openlayers using an ArcGIS Server 9.3 Rest API layer
diff --git a/examples/arcgiscache_ags.html b/examples/arcgiscache_ags.html
new file mode 100644
index 0000000..2b92954
--- /dev/null
+++ b/examples/arcgiscache_ags.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>OpenLayers ArcGIS Cache Example (MapServer Access)</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="../lib/OpenLayers/Layer/ArcGISCache.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        var map, 
+            cacheLayer,
+            testLayer,
+            //This layer requires meta data about the ArcGIS service.  Typically you should use a 
+            //JSONP call to get this dynamically.  For this example, we are just going to hard-code
+            //an example that we got from here (yes, it's very big):
+            //    http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer?f=json&pretty=true
+            layerInfo = {
+                  "currentVersion" : 10.01, 
+                  "serviceDescription" : "This worldwide street map presents highway-level data for the world and street-level data for the United States, Canada, Japan, Southern Africa, and a number of countries in Europe and elsewhere. This comprehensive street map includes highways, major roads, minor roads, railways, water features, administrative boundaries, cities, parks, and landmarks, overlaid on shaded relief imagery for added context. The street map was developed by ESRI using  [...]
+                  "mapName" : "Layers", 
+                  "description" : "This worldwide street map presents highway-level data for the world and street-level data for the United States, Canada, Japan, Southern Africa, most countries in Europe, and several other countries. This comprehensive street map includes highways, major roads, minor roads, one-way arrow indicators, railways, water features, administrative boundaries, cities, parks, and landmarks, overlaid on shaded relief imagery for added context. The map also include [...]
+                  "copyrightText" : "Sources: ESRI, DeLorme, AND, Tele Atlas, First American, ESRI Japan, UNEP-WCMC, USGS, METI, ESRI Hong Kong, ESRI Thailand, Procalculo Prosis", 
+                  "layers" : [
+                    {
+                      "id" : 0, 
+                      "name" : "World Street Map", 
+                      "parentLayerId" : -1, 
+                      "defaultVisibility" : true, 
+                      "subLayerIds" : null, 
+                      "minScale" : 0, 
+                      "maxScale" : 0
+                    }
+                  ], 
+                  "tables" : [
+                    
+                  ], 
+                  "spatialReference" : {
+                    "wkid" : 102100
+                  }, 
+                  "singleFusedMapCache" : true, 
+                  "tileInfo" : {
+                    "rows" : 256, 
+                    "cols" : 256, 
+                    "dpi" : 96, 
+                    "format" : "JPEG", 
+                    "compressionQuality" : 90, 
+                    "origin" : {
+                      "x" : -20037508.342787, 
+                      "y" : 20037508.342787
+                    }, 
+                    "spatialReference" : {
+                      "wkid" : 102100
+                    }, 
+                    "lods" : [
+                      {"level" : 0, "resolution" : 156543.033928, "scale" : 591657527.591555}, 
+                      {"level" : 1, "resolution" : 78271.5169639999, "scale" : 295828763.795777}, 
+                      {"level" : 2, "resolution" : 39135.7584820001, "scale" : 147914381.897889}, 
+                      {"level" : 3, "resolution" : 19567.8792409999, "scale" : 73957190.948944}, 
+                      {"level" : 4, "resolution" : 9783.93962049996, "scale" : 36978595.474472}, 
+                      {"level" : 5, "resolution" : 4891.96981024998, "scale" : 18489297.737236}, 
+                      {"level" : 6, "resolution" : 2445.98490512499, "scale" : 9244648.868618}, 
+                      {"level" : 7, "resolution" : 1222.99245256249, "scale" : 4622324.434309}, 
+                      {"level" : 8, "resolution" : 611.49622628138, "scale" : 2311162.217155}, 
+                      {"level" : 9, "resolution" : 305.748113140558, "scale" : 1155581.108577}, 
+                      {"level" : 10, "resolution" : 152.874056570411, "scale" : 577790.554289}, 
+                      {"level" : 11, "resolution" : 76.4370282850732, "scale" : 288895.277144}, 
+                      {"level" : 12, "resolution" : 38.2185141425366, "scale" : 144447.638572}, 
+                      {"level" : 13, "resolution" : 19.1092570712683, "scale" : 72223.819286}, 
+                      {"level" : 14, "resolution" : 9.55462853563415, "scale" : 36111.909643}, 
+                      {"level" : 15, "resolution" : 4.77731426794937, "scale" : 18055.954822}, 
+                      {"level" : 16, "resolution" : 2.38865713397468, "scale" : 9027.977411}, 
+                      {"level" : 17, "resolution" : 1.19432856685505, "scale" : 4513.988705}
+                    ]
+                  }, 
+                  "initialExtent" : {
+                    "xmin" : -20037507.0671618, 
+                    "ymin" : -20037507.0671618, 
+                    "xmax" : 20037507.0671618, 
+                    "ymax" : 20037507.0671619, 
+                    "spatialReference" : {
+                      "wkid" : 102100
+                    }
+                  }, 
+                  "fullExtent" : {
+                    "xmin" : -20037507.0671618, 
+                    "ymin" : -19971868.8804086, 
+                    "xmax" : 20037507.0671618, 
+                    "ymax" : 19971868.8804086, 
+                    "spatialReference" : {
+                      "wkid" : 102100
+                    }
+                  }, 
+                  "units" : "esriMeters", 
+                  "supportedImageFormatTypes" : "PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,AI,BMP", 
+                  "documentInfo" : {
+                    "Title" : "World Street Map", 
+                    "Author" : "ESRI", 
+                    "Comments" : "", 
+                    "Subject" : "streets, highways, major roads, railways, water features, administrative boundaries, cities, parks, protected areas, landmarks ", 
+                    "Category" : "transportation(Transportation Networks) ", 
+                    "Keywords" : "World, Global, 2009, Japan, UNEP-WCMC", 
+                    "Credits" : ""
+                  }, 
+                  "capabilities" : "Map"
+                };
+
+        function init(){
+            //The max extent for spherical mercator
+            var maxExtent = new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34);
+            
+            //Max extent from layerInfo above            
+            var layerMaxExtent = new OpenLayers.Bounds(
+                layerInfo.fullExtent.xmin, 
+                layerInfo.fullExtent.ymin, 
+                layerInfo.fullExtent.xmax, 
+                layerInfo.fullExtent.ymax  
+            );
+            
+            var resolutions = [];
+            for (var i=0; i<layerInfo.tileInfo.lods.length; i++) {
+                resolutions.push(layerInfo.tileInfo.lods[i].resolution);
+            }
+            
+            map = new OpenLayers.Map('map', {
+                maxExtent: maxExtent,
+                StartBounds: layerMaxExtent,
+                units: (layerInfo.units == "esriFeet") ? 'ft' : 'm',
+                resolutions: resolutions,
+                tileSize: new OpenLayers.Size(layerInfo.tileInfo.width, layerInfo.tileInfo.height),                
+                projection: 'EPSG:' + layerInfo.spatialReference.wkid
+            });
+            
+            
+            
+            cacheLayer = new OpenLayers.Layer.ArcGISCache( "AGSCache",
+                    "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
+                        isBaseLayer: true,
+
+                        //From layerInfo above                        
+                        resolutions: resolutions,                        
+                        tileSize: new OpenLayers.Size(layerInfo.tileInfo.cols, layerInfo.tileInfo.rows),                        
+                        tileOrigin: new OpenLayers.LonLat(layerInfo.tileInfo.origin.x , layerInfo.tileInfo.origin.y),                        
+                        maxExtent: layerMaxExtent,                        
+                        projection: 'EPSG:' + layerInfo.spatialReference.wkid
+                    });
+
+            
+            // create Google Mercator layers
+            testLayer = new OpenLayers.Layer.Google(
+                "Google Streets",
+                {'sphericalMercator': true}
+            );
+            
+            map.addLayers([testLayer, cacheLayer]);
+            
+            map.addControl(new OpenLayers.Control.LayerSwitcher());
+            map.addControl( new OpenLayers.Control.MousePosition() );
+            
+            map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
+        }
+    </script>
+  </head>
+  <body onload="init()">
+      <h1 id="title">OpenLayers ArcGIS Cache Example (MapServer Access)</h1>
+
+    <div id="tags">
+        arcgis, arcgiscache, cache, tms
+    </div>
+
+    <p id="shortdesc">
+        Demonstrates the basic initialization of the ArcGIS Cache layer using a prebuilt configuration, and standard tile access.
+    </p>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>This example demonstrates using the ArcGISCache layer for 
+        accessing ESRI's ArcGIS Server (AGS) Map Cache tiles through 
+        an AGS MapServer.  Toggle the visibility of the AGS layer to
+        demonstrate how the two maps are lined up correctly.</p>
+        
+         <h2>Notes on this layer</h2>
+        <p>A few attempts have been made at this kind of layer before. See 
+        <a href="http://trac.osgeo.org/openlayers/ticket/1967">here</a> and 
+        <a href="http://trac.osgeo.org/openlayers/browser/sandbox/tschaub/arcgiscache/lib/OpenLayers/Layer/ArcGISCache.js">here</a>.
+        A problem the users encounter is that the tiles seem to "jump around".
+        This is due to the fact that the max extent for the cached layer actually
+        changes at each zoom level due to the way these caches are constructed.
+        We have attempted to use the resolutions, tile size, and tile origin
+        from the cache meta data to make the appropriate changes to the max extent
+        of the tile to compensate for this behavior.</p>
+        You will need to know:
+        <ul>
+            <li>Max Extent: The max extent of the layer</li>
+            <li>Resolutions: An array of resolutions, one for each zoom level</li>
+            <li>Tile Origin: The location of the tile origin for the cache in the upper left.</li>
+            <li>Tile Size: The size of each tile in the cache. Commonly 256 x 256</li>
+        </ul>
+        <p>It's important that you set the correct values in your layer, and these
+        values will differ from layer to layer. You can find these values for your 
+        layer in a metadata page in ArcGIS Server. 
+        (ie. <a href="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer">http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer</a>)</p>
+        <ul>
+            <li>Max Extent: Full Extent</li>
+            <li>Resolutions: Tile Info -> Levels of Detail -> Resolution</li>
+            <li>Tile Origin: Origin -> X,Y</li>
+            <li>Tile Size: Tile Info -> Height,Width</li>
+        </ul>
+        
+        <h2> Other Examples </h2>
+        <p>This is one of three examples for this layer.  You can also configure this
+        layer to use <a href="arcgiscache_direct.html">prebuilt tiles in a file store
+         (not a live server).</a> It is also  possible to let this
+          <a href="arcgiscache_jsonp.html">layer 'auto-configure' itself using the
+          capabilities json object from the server itself when using a live ArcGIS server.</a>
+        </p>
+    </div>
+  </body>
+</html>
diff --git a/examples/arcgiscache_direct.html b/examples/arcgiscache_direct.html
new file mode 100644
index 0000000..472a480
--- /dev/null
+++ b/examples/arcgiscache_direct.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>ArcGIS Server Map Cache Example (Direct Access)</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js" type="text/javascript"></script>
+        <script src="../lib/OpenLayers/Layer/ArcGISCache.js" type="text/javascript"></script>
+        <script type="text/javascript">
+        /* First 4 variables extracted from conf.xml file */
+        
+            /* Tile layers & map MUST have same projection */
+            var proj='EPSG:26915';
+        
+        
+            /* Layer can also accept serverResolutions array
+             * to deal with situation in which layer resolution array & map resolution
+             * array are out of sync*/
+            var mapResolutions = [33.0729828126323,16.9333672000677,8.46668360003387,4.23334180001693,2.11667090000847,1.05833545000423];
+
+            /* For this example this next line is not really needed, 256x256 is default.
+             * However, you would need to change this if your layer had different tile sizes */
+            var tileSize = new OpenLayers.Size(256,256);
+            
+            /* Tile Origin is required unless it is the same as the implicit map origin
+             * which can be affected by several variables including maxExtent for map or base layer */
+            var agsTileOrigin = new OpenLayers.LonLat(-5120900,9998100);
+            
+            /* This can really be any valid bounds that the map would reasonably be within */
+            /*  var mapExtent = new OpenLayers.Bounds(293449.454286,4307691.661132,314827.830376,4323381.484178); */
+            var mapExtent = new OpenLayers.Bounds(289310.8204,4300021.937,314710.8712,4325421.988);
+            
+            var aerialsUrl = 'http://serverx.esri.com/arcgiscache/dgaerials/Layers/_alllayers';
+            var roadsUrl = 'http://serverx.esri.com/arcgiscache/DG_County_roads_yesA_backgroundDark/Layers/_alllayers';
+            
+            var map;
+            function init(){
+                map = new OpenLayers.Map('map', {
+                    maxExtent:mapExtent,
+                    controls: [
+                        new OpenLayers.Control.Navigation(),
+                        new OpenLayers.Control.LayerSwitcher(), 
+                        new OpenLayers.Control.PanZoomBar(),
+                        new OpenLayers.Control.MousePosition()]
+                });
+                
+                var baseLayer = new OpenLayers.Layer.ArcGISCache('Aerials', aerialsUrl, {
+                    tileOrigin: agsTileOrigin,
+                    resolutions: mapResolutions,
+                    sphericalMercator: true,
+                    maxExtent: mapExtent,
+                    useArcGISServer: false,
+                    isBaseLayer: true,
+                    type: 'jpg',
+                    projection: proj
+                });
+                var overlayLayer = new OpenLayers.Layer.ArcGISCache('Roads', roadsUrl, {
+                    tileOrigin: agsTileOrigin,
+                    resolutions: mapResolutions,
+                    sphericalMercator: true,
+                    maxExtent: mapExtent,
+                    useArcGISServer: false,
+                    isBaseLayer: false,
+                    projection: proj
+                });
+                map.addLayers([baseLayer, overlayLayer]);
+                
+                //map.zoomToExtent(new OpenLayers.Bounds(295892.34, 4308521.69, 312825.71, 4316988.37));
+                map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
+            }
+        </script>
+    </head>
+    <body onload="init()">
+        <h1 id="title">ArcGIS Server Map Cache Example (Direct Access)</h1>
+
+        <div id="tags">
+        </div>
+
+        <p id="shortdesc">
+            Demonstrates the basic initialization of the ArcGIS Cache layer using a prebuilt configuration, and direct tile access from a file store.
+        </p>
+
+        <div id="map" class="smallmap"></div>
+        
+        <div id="docs">
+            <p>This example demonstrates using the ArcGISCache layer for 
+            accessing ESRI's ArcGIS Server (AGS) Map Cache tiles directly 
+            via the folder structure and HTTP.  Toggle the visibility of the AGS layer to
+            demonstrate how the two maps are lined up correctly.</p>
+
+            <h2>Notes on this Layer</h2>
+            <p>It's important that you set the correct values in your layer, and these
+            values will differ between tile sets. You can find these values for your 
+            layer in conf.xml at the root of your cache. 
+            (ie. <a href="http://serverx.esri.com/arcgiscache/dgaerials/Layers/conf.xml">http://serverx.esri.com/arcgiscache/dgaerials/Layers/conf.xml</a>)</p>
+
+            <p>For fused map caches this is often http:<i>ServerName</i>/arcgiscache/<i>MapServiceName</i>/Layers <br>
+            For individual layer caches this is often  http:<i>ServerName</i>/arcgiscache/<i>LayerName</i>/Layers </p>
+            
+            <h2> Other Examples </h2>
+            <p>This is one of three examples for this layer.  You can also configure this
+            layer to use <a href="arcgiscache_ags.html">prebuilt tiles from a live server.</a> It is also
+            possible to let this <a href="arcgiscache_jsonp.html">layer 'auto-configure' itself using the capabilities json object from the server itself when using a live ArcGIS server.</a>
+            </p>
+        </div>
+    </body>
+</html>
diff --git a/examples/arcgiscache_jsonp.html b/examples/arcgiscache_jsonp.html
new file mode 100644
index 0000000..282d636
--- /dev/null
+++ b/examples/arcgiscache_jsonp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>OpenLayers ArcGIS Cache Example (Autoconfigure with JSONP)</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="../lib/OpenLayers/Layer/ArcGISCache.js" type="text/javascript"></script>
+    
+    <!-- This is to simplify making the JSONP request for this example -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
+    
+    <script type="text/javascript">
+        var map,
+            layerURL = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer";
+        
+        function init() {
+            var jsonp_url = layerURL + '?f=json&pretty=true&callback=?';
+            $.getJSON(jsonp_url, function(data) {                
+                initMap(data);
+            });
+        }
+
+        function initMap(layerInfo){
+            /*
+             * The initialize function in this layer has the ability to automatically configure
+             * itself if given the JSON capabilities object from the ArcGIS map server.
+             * This hugely simplifies setting up a new layer, and switching basemaps when using this technique.
+             *
+             * see the 'initialize' function in ArcGISCache.js, or 
+             * see the other two ArcGISCache.js examples for direct manual configuration options
+             *
+             */
+            var baseLayer = new OpenLayers.Layer.ArcGISCache("AGSCache", layerURL, {
+                layerInfo: layerInfo
+            });
+            
+            /*
+             * Make sure our baselayer and our map are synced up
+             */
+            map = new OpenLayers.Map('map', { 
+                maxExtent: baseLayer.maxExtent,
+                units: baseLayer.units,
+                resolutions: baseLayer.resolutions,
+                numZoomLevels: baseLayer.numZoomLevels,
+                tileSize: baseLayer.tileSize,
+                displayProjection: baseLayer.displayProjection,
+                StartBounds: baseLayer.initialExtent                
+            });
+            map.addLayers([baseLayer]);
+            
+            
+            //overlay test layer
+            //http://openlayers.org/dev/examples/web-mercator.html
+            var wms = new OpenLayers.Layer.WMS("Highways",
+                "http://sampleserver1.arcgisonline.com/arcgis/services/Specialty/ESRI_StateCityHighway_USA/MapServer/WMSServer", 
+                {layers: "2", format: "image/gif", transparent: "true"}, 
+                { isBaseLayer: false, wrapDateLine: false } 
+            );
+            map.addLayers([wms]);
+
+            
+            
+            map.addControl(new OpenLayers.Control.LayerSwitcher());
+            map.addControl(new OpenLayers.Control.MousePosition() );            
+            //map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
+            map.zoomToExtent(new OpenLayers.Bounds(-8725663.6225564, 4683718.6735907, -8099491.4868444, 4996804.7414467));
+        }
+    </script>
+  </head>
+  <body onload="init()">
+      <h1 id="title">OpenLayers ArcGIS Cache Example (Autoconfigure with JSONP)</h1>
+
+    <div id="tags">
+        arcgis, arcgiscache, cache, tms, jsonp
+    </div>
+
+    <p id="shortdesc">
+        Demonstrates the basic initialization of the ArcGIS Cache layer by using the server capabilities object.
+    </p>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>This example demonstrates using the ArcGISCache layer for 
+        accessing ESRI's ArcGIS Server (AGS) Map Cache tiles normally through 
+        a live AGS MapServer.  Toggle the visibility of the overlay to
+        demonstrate how the two layers are lined up correctly.</p>
+        
+        <h2>Notes on this Layer</h2>
+        <p>
+        This method automatically configures the layer using the capabilities object 
+        generated by the server itself.  This page shows how to construct the url for the server capabilities object,
+        retrieve it using JSONP (and jQuery), and pass it in during construction.  Note that in this case, 
+        the layer is constructed before the map.  This approach greatly simplifies the
+        configuration of your map, and works best when all your tiles / overlays are similarly laid out.
+        If you are using a live AGS map server for your layer, it can be helpful to check your
+        server configuration using this technique before trying one of the other examples for this layer.  
+        </p>
+        
+        <h2> Other Examples </h2>
+        <p>This is one of three examples for this layer.  You can also configure this
+        layer to use <a href="arcgiscache_direct.html">prebuilt tiles in a file store (not a live server).</a>  
+        As well a retrieve <a href="arcgiscache_ags.html">tiles from a live server.</a> 
+        </p>
+    </div>
+  </body>
+</html>
diff --git a/examples/arcims-thematic.html b/examples/arcims-thematic.html
index 806696f..7f21d13 100644
--- a/examples/arcims-thematic.html
+++ b/examples/arcims-thematic.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>ArcIMS Thematic Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 0;
@@ -58,6 +62,7 @@
     <h1 id="title">ArcIMS Thematic Example</h1>
 
     <div id="tags">
+        ESRI, ArcIMS, ArcXML, style, thematic, chloropleth, representation
     </div>
     <p id="shortdesc">
         Shows the advanced use of OpenLayers using a thematic ArcIMS layer
diff --git a/examples/arcims.html b/examples/arcims.html
index fb7a771..060a674 100644
--- a/examples/arcims.html
+++ b/examples/arcims.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>ArcIMS Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 0;
@@ -33,6 +37,7 @@
     <h1 id="title">ArcIMS Example</h1>
 
     <div id="tags">
+        ESRI, ArcIMS
     </div>
     <p id="shortdesc">
         Shows the basic use of OpenLayers using an ArcIMS layer
diff --git a/examples/attribution.html b/examples/attribution.html
index 1fbd97f..328f342 100644
--- a/examples/attribution.html
+++ b/examples/attribution.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Attribution Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
 
         <script type="text/javascript">
@@ -24,8 +28,10 @@
                 map.addLayers([ol_wms, jpl_wms, vector]);
 
                 map.addControl(new OpenLayers.Control.LayerSwitcher());
-                map.addControl(new OpenLayers.Control.Attribution());
-                // map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+                // OpenLayers.Control.Attribution is one of the default
+                // controls - only needs to be added when the map instance is
+                // created with the controls option
+                //map.addControl(new OpenLayers.Control.Attribution());
                 map.zoomToMaxExtent();
             }
         </script>
@@ -34,7 +40,7 @@
         <h1 id="title">Attribution Example</h1>
 
         <div id="tags">
-            copyright watermark logo attribution
+            copyright, watermark, logo, attribution
         </div>
 
         <p id="shortdesc">
@@ -44,11 +50,11 @@
         <div id="map" class="smallmap"></div>
 
         <div id="docs">
-            This is an example of how to add an attribution block to the OpenLayers window.  In order to use an
+            <p>This is an example of how to add an attribution block to the OpenLayers window.  In order to use an
             attribution block, an attribution parameter must be set in each layer that requires attribution. In
             addition, an attribution control must be added to the map, though one is added to all OpenLayers Maps by default. 
-            Be aware that this is a layer *option*: the options hash goes in
-            different places depending on the layer type you are using.  
+            Be aware that this is a layer <strong>option</strong>: the options hash goes in
+            different places depending on the layer type you are using.</p> 
         </div>
     </body>
 </html>
diff --git a/examples/baseLayers.html b/examples/baseLayers.html
deleted file mode 100644
index c089c84..0000000
--- a/examples/baseLayers.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>OpenLayers Base Layers Example</title>
-        
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
-        <style type="text/css">
-            #controls
-            {
-                width: 512px;
-            }
-        </style>
-
-        <!-- this gmaps key generated for http://openlayers.org/dev/ -->
-        <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA9XNhd8q0UdwNC7YSO4YZghSPUCi5aRYVveCcVYxzezM4iaj_gxQ9t-UajFL70jfcpquH5l1IJ-Zyyw'></script>
-        <!-- Localhost key -->
-        <!-- <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxTS6gjckBmeABOGXIUiOiZObZESPg'></script>-->
-        <script type="text/javascript" src="http://clients.multimap.com/API/maps/1.1/metacarta_04"></script>
-        <script src='http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1'></script>
-        <script src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers"></script>
-        <script src="../lib/OpenLayers.js"></script>
-        <script type="text/javascript">
-            var lon = 5;
-            var lat = 40;
-            var zoom = 5;
-            var map, markers;
-            var barcelona = new OpenLayers.LonLat(2.13134765625,
-                                                  41.37062534198901);
-            var madrid = new OpenLayers.LonLat(-3.6968994140625,
-                                              40.428314208984375);
-
-            function init(){
-                map = new OpenLayers.Map( 'map' );
-
-                var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
-                          "http://vmap0.tiles.osgeo.org/wms/vmap0",
-                          {layers: 'basic'} );
-                var google = new OpenLayers.Layer.Google( "Google Hybrid" , {type: G_HYBRID_MAP });
-                var ve = new OpenLayers.Layer.VirtualEarth( "VE");
-                var yahoo = new OpenLayers.Layer.Yahoo( "Yahoo");
-                var mm = new OpenLayers.Layer.MultiMap( "MultiMap");
-
-
-                map.addLayers([wms, google, ve, yahoo, mm]);
-
-                markers = new OpenLayers.Layer.Markers("markers");
-                map.addLayer(markers);
-
-                map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
-                map.addControl( new OpenLayers.Control.LayerSwitcher() );
-                map.addControl( new OpenLayers.Control.MousePosition() );
-
-            }
-
-            function add() {
-                var url = 'http://www.openlayers.org/dev/img/marker.png';
-                var sz = new OpenLayers.Size(21, 25);
-                var calculateOffset = function(size) {
-                                    return new OpenLayers.Pixel(-(size.w/2), -size.h);
-                                 };
-                var icon = new OpenLayers.Icon(url, sz, null, calculateOffset);
-                marker = new OpenLayers.Marker(barcelona, icon);
-                markers.addMarker(marker);
-
-                marker = new OpenLayers.Marker(madrid, icon.clone());
-                markers.addMarker(marker);
-
-            }
-
-            function remove() {
-                markers.removeMarker(marker);
-            }
-
-        </script>
-    </head>
-    <body onload="init()">
-        <h1 id="title">Base Layers Example</h1>
-
-        <div id="tags">
-        </div>
-
-        <p id="shortdesc">
-           This example shows the use base layers from multiple commercial map image providers.
-        </p>
-
-        <div id="controls">
-            <div id="map" class="smallmap"></div>
-
-            <div style="background-color:green" onclick="add()"> click to add a marker to the map</div>
-            <div style="background-color:red" onclick="remove()"> click to remove the marker from the map</div>
-        </div>
-        
-        <div id="docs">
-       </div>
-    </body>
-</html>
diff --git a/examples/behavior-fixed-http-gml.html b/examples/behavior-fixed-http-gml.html
index 58cd488..c1a11c3 100644
--- a/examples/behavior-fixed-http-gml.html
+++ b/examples/behavior-fixed-http-gml.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Vector Behavior Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var map;
@@ -31,19 +35,22 @@
     </head>
     <body onload="init()">
         <h1 id="title">Vector Behavior Example (Fixed/HTTP/GML)</h1>
+        <div id="tags">
+            vector, strategy, strategies, protocoll, advanced, gml, http, fixed
+        </div>
         <p id="shortdesc">
             Vector layer with a Fixed strategy, HTTP protocol, and GML format.
         </p>
         <div id="map" class="smallmap"></div>
         <div id="docs">
-            The vector layer shown uses the Fixed strategy, the HTTP protocol,
+            <p>The vector layer shown uses the Fixed strategy, the HTTP protocol,
             and the GML format.
             The Fixed strategy is a simple strategy that fetches features once
             and never re-requests new data.
             The HTTP protocol makes requests using HTTP verbs.  It should be
             constructed with a url that corresponds to a collection of features
             (a resource on some server).
-            The GML format is used to serialize features.
+            The GML format is used to serialize features.</p>
         </div>
     </body>
 </html>
diff --git a/examples/bing-tiles-restrictedzoom.html b/examples/bing-tiles-restrictedzoom.html
new file mode 100644
index 0000000..992bd14
--- /dev/null
+++ b/examples/bing-tiles-restrictedzoom.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>Basic Bing Tiles with a Subset of Resolutions Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <style type="text/css">
+    .olControlAttribution {
+        left: 2px;
+        right: inherit;
+        bottom: 3px;
+        line-height: 11px; 
+    }
+    </style>
+  </head>
+  <body>
+    <h1 id="title">Bing Tiles with a Subset of Resolutions Example</h1>
+
+    <div id="tags">
+        bing tiles restrictedMinZoom numZoomLevels
+    </div>
+
+    <div id="shortdesc">Use Bing with direct tile access</div>
+
+    <div id="map" class="smallmap" style="height: 350px;"></div>
+
+    <div id="docs">
+        <p>
+            This example shows how to use the <code>maxResolution</code> and 
+            <code>numZoomLevels</code> layer properties to restrict
+            the number of zoom levels displayed on the Bing layer.
+        </p><p>
+            See <a target="_blank" href="bing-tiles-restrictedzoom.js">bing-tiles-restrictedzoom.js</a>
+            for the source code.
+        </p>
+    </div>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="bing-tiles-restrictedzoom.js"></script>
+  </body>
+</html>
diff --git a/examples/bing-tiles-restrictedzoom.js b/examples/bing-tiles-restrictedzoom.js
new file mode 100644
index 0000000..45c226f
--- /dev/null
+++ b/examples/bing-tiles-restrictedzoom.js
@@ -0,0 +1,37 @@
+// API key for http://openlayers.org. Please get your own at
+// http://bingmapsportal.com/ and use that instead.
+var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
+
+var map = new OpenLayers.Map('map', {
+    controls: [
+        new OpenLayers.Control.Attribution(),
+        new OpenLayers.Control.Navigation(),
+        new OpenLayers.Control.PanZoomBar(),
+        new OpenLayers.Control.LayerSwitcher()
+    ]
+});
+
+var road3 = new OpenLayers.Layer.Bing({
+    name: "Road tiles with 3 zoom levels",
+    type: "Road",
+    key: apiKey,
+    maxResolution: 76.43702827453613,
+    numZoomLevels: 3
+});
+var road5 = new OpenLayers.Layer.Bing({
+    name: "Road tiles with 5 zoom levels",
+    type: "Road",
+    key: apiKey,
+    numZoomLevels: 5
+});
+var road = new OpenLayers.Layer.Bing({
+    name: "Road tiles with all zoom levels",
+    type: "Road",
+    key: apiKey
+});
+
+map.addLayers([road3, road5, road]);
+map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform(
+    new OpenLayers.Projection("EPSG:4326"),
+    map.getProjectionObject()
+), 1);
diff --git a/examples/bing-tiles.html b/examples/bing-tiles.html
new file mode 100644
index 0000000..dbc55d8
--- /dev/null
+++ b/examples/bing-tiles.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Bing Tiles Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <style type="text/css">
+    .olControlAttribution {
+        left: 2px;
+        right: inherit;
+        bottom: 3px;
+        line-height: 11px; 
+    }
+    </style>
+  </head>
+  <body>
+    <h1 id="title">Basic Bing Tiles Example</h1>
+
+    <div id="tags">
+        bing tiles
+    </div>
+
+    <div id="shortdesc">Use Bing with direct tile access</div>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>This example shows a very simple map with Bing layers that use
+        direct tile access through Bing Maps REST Services.</p><p>See
+        <a target="_blank" href="bing-tiles.js">bing-tiles.js</a> for the
+        source code.</p>
+    </div>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="bing-tiles.js"></script>
+  </body>
+</html>
diff --git a/examples/bing-tiles.js b/examples/bing-tiles.js
new file mode 100644
index 0000000..0d4546b
--- /dev/null
+++ b/examples/bing-tiles.js
@@ -0,0 +1,29 @@
+// API key for http://openlayers.org. Please get your own at
+// http://bingmapsportal.com/ and use that instead.
+var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
+
+var map = new OpenLayers.Map( 'map');
+
+var road = new OpenLayers.Layer.Bing({
+    key: apiKey,
+    type: "Road",
+    // custom metadata parameter to request the new map style - only useful
+    // before May 1st, 2011
+    metadataParams: {mapVersion: "v1"}
+});
+var aerial = new OpenLayers.Layer.Bing({
+    key: apiKey,
+    type: "Aerial"
+});
+var hybrid = new OpenLayers.Layer.Bing({
+    key: apiKey,
+    type: "AerialWithLabels",
+    name: "Bing Aerial With Labels"
+});
+
+map.addLayers([road, aerial, hybrid]);
+map.addControl(new OpenLayers.Control.LayerSwitcher());
+map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform(
+    new OpenLayers.Projection("EPSG:4326"),
+    map.getProjectionObject()
+), 11);
diff --git a/examples/bing.html b/examples/bing.html
index f53e8a5..53ae68f 100644
--- a/examples/bing.html
+++ b/examples/bing.html
@@ -1,18 +1,28 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <title>OpenLayers Bing Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <script src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us"></script>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Bing Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us"></script>
 
     <script src="../lib/OpenLayers.js"></script>
     <script>
 
         var map;
-
+ 
         function init(){
+            // setting restrictedExtent so that we can use the 
+            // VirtualEarth-layers, see e.g. 
+            // http://dev.openlayers.org/apidocs/files/OpenLayers/Layer/VirtualEarth-js.html
+            var restrictedExtent = new OpenLayers.Bounds(-180, -90, 
+                180, 90);
+            
             map = new OpenLayers.Map("map");
+            
             map.addControl(new OpenLayers.Control.LayerSwitcher());
 
             var shaded = new OpenLayers.Layer.VirtualEarth("Shaded", {
@@ -35,14 +45,17 @@
   <body onload="init()">
     <h1 id="title">Bing Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        Bing, Microsoft, Virtual Earth
+    </div>
 
     <p id="shortdesc">
         Demonstrates the use of Bing layers.
     </p>
 
     <div id="map" class="smallmap"></div>
-    <div id="docs">This example demonstrates the ability to create layers using tiles from Bing maps.</div>
+    <div id="docs"><p>This example demonstrates the ability to create layers
+        using tiles from Bing maps.</p></div>
   </body>
 </html>
 
diff --git a/examples/boxes-vector.html b/examples/boxes-vector.html
index ac1196e..f3b5f01 100644
--- a/examples/boxes-vector.html
+++ b/examples/boxes-vector.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
-        <title>OpenLayers Boxes Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers Boxes Vector Example</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var box_extents = [
@@ -22,7 +26,7 @@
     
                 for (var i = 0; i < box_extents.length; i++) {
                     ext = box_extents[i];
-                    bounds = new OpenLayers.Bounds(ext[0], ext[1], ext[2], ext[3]);
+                    bounds = OpenLayers.Bounds.fromArray(ext);
                     
                     box = new OpenLayers.Feature.Vector(bounds.toGeometry());
                     boxes.addFeatures(box);
@@ -38,9 +42,10 @@
         </script>
     </head>
     <body onload="init()">
-        <h1 id="title">Boxes Example</h1>
+        <h1 id="title">Boxes Example Vector</h1>
 
         <div id="tags">
+            box, vector, annotation
         </div>
 
         <p id="shortdesc">
diff --git a/examples/boxes.html b/examples/boxes.html
index 5179e24..d2d9ccf 100644
--- a/examples/boxes.html
+++ b/examples/boxes.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Boxes Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var box_extents = [
@@ -22,7 +26,7 @@
     
                 for (var i = 0; i < box_extents.length; i++) {
                     ext = box_extents[i];
-                    bounds = new OpenLayers.Bounds(ext[0], ext[1], ext[2], ext[3]);
+                    bounds = OpenLayers.Bounds.fromArray(ext);
                     box = new OpenLayers.Marker.Box(bounds);
                     box.events.register("click", box, function (e) {
                         this.setBorder("yellow");
@@ -40,6 +44,7 @@
         <h1 id="title">Boxes Example</h1>
 
         <div id="tags">
+            box, annotation
         </div>
 
         <p id="shortdesc">
diff --git a/examples/browser-name.html b/examples/browser-name.html
deleted file mode 100644
index 0fdcd5e..0000000
--- a/examples/browser-name.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        // making this a global variable so that it is accessible for
-        // debugging/inspecting in Firebug
-        var map = null;
-
-        function init(){
-
-            //set title name to include Browser Detection
-            // this is the only way to test the functionality
-            // of the getBrowserName() function
-            //
-            var header = OpenLayers.Util.getElement("browserHeader");
-            header.innerHTML = "(browser: ";
-            var browserCode = OpenLayers.Util.getBrowserName();
-            switch (browserCode) {
-                case "opera":
-                    browserName = "Opera";
-                    break;
-                case "msie":
-                    browserName = "Internet Explorer";
-                    break;
-                case "safari":
-                    browserName = "Safari";
-                    break;
-                case "firefox":
-                    browserName = "FireFox";
-                    break;
-                case "mozilla":
-                    browserName = "Mozilla";
-                    break;
-                default:
-                    browserName = "detection error"
-                    break;
-            }
-            header.innerHTML += browserName + ")";
-
-            map = new OpenLayers.Map('map');
-
-            var options = {
-                            resolutions: [1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.00137329101]
-            };
-
-            var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
-                "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'},
-                options);
-
-            var options2 = {
-                            resolutions: [0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.00137329101]
-            };
-            var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic",
-                "http://t1.hypercube.telascience.org/cgi-bin/landsat7", 
-                {layers: "landsat7"}, options2);
-
-            var dm_wms = new OpenLayers.Layer.WMS( "DM Solutions Demo",
-                "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
-                {layers: "bathymetry,land_fn,park,drain_fn,drainage," +
-                         "prov_bound,fedlimit,rail,road,popplace",
-                 transparent: "true", format: "image/png"},
-                 {minResolution: 0.17578125,
-                  maxResolution: 0.703125});
-
-            map.addLayers([ol_wms, jpl_wms, dm_wms]);
-            map.addControl(new OpenLayers.Control.LayerSwitcher());
-            // map.setCenter(new OpenLayers.LonLat(0, 0), 0);
-            map.zoomToMaxExtent();
-        }
-    </script>
-  </head>
-  <body onload="init()">
-    <h1 id="title" style="display:inline;">Example Showing Browser Name</h1>
-    <h3 id="browserHeader" style="display:inline;"></h3>
-
-    <div id="tags"></div>
-
-    <p id="shortdesc">
-        Demonstrate a simple map that shows the browser name.
-    </p>
-
-    <div id="map" class="smallmap"></div>
-
-    <div id="docs"></div>
-  </body>
-</html>
diff --git a/examples/browser.html b/examples/browser.html
new file mode 100644
index 0000000..195f7d4
--- /dev/null
+++ b/examples/browser.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Browser Detection</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script type="text/javascript" src="browser.js"></script>
+    <style type="text/css">
+        .olControlAttribution {
+            bottom: 5px;
+        }
+
+        .tester {
+            margin: 3px;
+        }
+    </style>
+    <script type="text/javascript">
+        function init() {
+            var result = document.getElementById('result');
+            result.innerHTML = result.innerHTML + "Browser CodeName: " + navigator.appCodeName + '<br>';
+            result.innerHTML = result.innerHTML + "Browser Name: " + navigator.appName + '<br>';
+            result.innerHTML = result.innerHTML + "Browser Version: " + navigator.appVersion + '<br>';
+            result.innerHTML = result.innerHTML + "Cookies Enabled: " + navigator.cookieEnabled + '<br>';
+            result.innerHTML = result.innerHTML + "Platform: " + navigator.platform + '<br>';
+            result.innerHTML = result.innerHTML + 'User agent: ' + navigator.userAgent + '<br>';
+            divResult('mouse', 'click', null, result);
+            divResult('mouse', 'dblclick', null, result);
+            divResult('mouse', 'mousedown', null, result);
+            divResult('mouse', 'mouseup', null, result);
+            divResult('mouse', 'mouseover', null, result);
+            divResult('mouse', 'mousemove', null, result);
+            divResult('mouse', 'mouseout', null, result);
+
+            divResult('key', 'keypress', null, result);
+            divResult('key', 'keydown', null, result);
+            divResult('key', 'keyup', null, result);
+
+            divResult('HTML', 'load', null, result);
+            divResult('HTML', 'unload', window, result);
+            divResult('HTML', 'abort', null, result);
+            divResult('HTML', 'error', null, result);
+
+            divResult('view', 'resize', window, result);
+            divResult('view', 'scroll', null, result);
+
+            divResult('form', 'submit', null, result);
+            divResult('form', 'reset', null, result);
+
+            divResult('form control', 'select', null, result);
+            divResult('form control', 'change', null, result);
+
+            divResult('activation', 'focus', null, result);
+            divResult('activation', 'blur', null, result);
+
+            divResult('touch', 'touchstart', null, result);
+            divResult('touch', 'touchend', null, result);
+            divResult('touch', 'touchmove', null, result);
+            divResult('touch', 'touchcancel', null, result);
+
+            divResult('gesture', 'gesturestart', null, result);
+            divResult('gesture', 'gesturechange', null, result);
+            divResult('gesture', 'gestureend', null, result);
+
+            divResult('HTML5', 'hashchange', document.body, result);
+            divResult('HTML5', 'online', document.body, result);
+            divResult('HTML5', 'offline', document.body, result);
+            divResult('HTML5', 'message', window, result);
+            divResult('HTML5', 'undo', document.body, result);
+            divResult('HTML5', 'redo', document.body, result);
+            divResult('HTML5', 'storage', window, result);
+            divResult('HTML5', 'popstate', window, result);
+            divResult('HTML5', 'canplay', document.createElement('video'), result);
+            divResult('HTML5', 'seeking', document.createElement('video'), result);
+            divResult('HTML5', 'seekend', document.createElement('video'), result);
+
+            divResult('orientation', 'deviceorientation', window, result);
+            divResult('orientation', 'mozorientation', window, result);
+            divResult('orientation', 'devicemotion', window, result);
+        }
+    </script>
+</head>
+<body onload="init()">
+<h1 id="title">Browser detection</h1>
+
+<div id="tags">
+    browser, vendor, mobile, events, HTML5, gesture, touch
+</div>
+
+<p id="shortdesc">
+    The goal of this script is to inform about the capacity of the browser used by the user.
+</p>
+
+<div id="docs">
+    <p>
+        See the <a href="browser.js" target="_blank">
+        browser.js source</a> to see how this is done.
+    </p>
+</div>
+
+<h1>Your browser information</h1>
+
+<div id="result">
+</div>
+
+<h1>Click or touch the red square to get information about the selected events</h1>
+
+<div>
+    <div class="tester">
+        <INPUT TYPE=CHECKBOX ID="clickID" checked>click<BR>
+        <INPUT TYPE=CHECKBOX ID="dblclickID">dblclick<BR>
+        <INPUT TYPE=CHECKBOX ID="mousedownID">mousedown<BR>
+        <INPUT TYPE=CHECKBOX ID="mouseupID">mouseup<BR>
+        <INPUT TYPE=CHECKBOX ID="mouseoverID">mouseover<BR>
+        <INPUT TYPE=CHECKBOX ID="mousemoveID">mousemove<BR>
+        <INPUT TYPE=CHECKBOX ID="mouseoutID">mouseout<BR>
+        <INPUT TYPE=CHECKBOX ID="touchstartID">touchstart<BR>
+        <INPUT TYPE=CHECKBOX ID="touchendID">touchend<BR>
+        <INPUT TYPE=CHECKBOX ID="touchmoveID">touchmove<BR>
+        <INPUT TYPE=CHECKBOX ID="touchcancelID">touchcancel<BR>
+        <INPUT TYPE=CHECKBOX ID="gesturestartID">gesturestart<BR>
+        <INPUT TYPE=CHECKBOX ID="gesturechangeID">gesturechange<BR>
+        <INPUT TYPE=CHECKBOX ID="gestureendID">gestureend<BR>
+    </div>
+
+    <div style="height: 200px;width: 200px;" class="tester">
+        <div id="box" style="height: 200px; width: 200px; background: none repeat scroll 0% 0% red; "
+             onclick="click(event)"
+             ondblclick="dblclick(event)"
+             onmousedown="mousedown(event)"
+             onmouseup="mouseup(event)"
+             onmouseover="mouseover(event)"
+             onmousemove="mousemove(event)"
+             onmouseout="mouseout(event)"
+             ontouchstart="touchstart(event)"
+             ontouchend="touchend(event)"
+             ontouchmove="touchmove(event)"
+             ontouchcancel="touchcancel(event)"
+             ongesturestart="gesturestart(event)"
+             ongesturechange="gesturechange(event)"
+             ongestureend="gestureend(event)">
+        </div>
+    </div>
+
+    <div id="log" class="tester"></div>
+</div>
+
+
+</body>
+</html>
diff --git a/examples/browser.js b/examples/browser.js
new file mode 100644
index 0000000..a593ca6
--- /dev/null
+++ b/examples/browser.js
@@ -0,0 +1,241 @@
+var isEventSupported = (function(undef) {
+
+    var TAGNAMES = {
+        'select':'input',
+        'change':'input',
+        'submit':'form',
+        'reset':'form',
+        'error':'img',
+        'load':'img',
+        'abort':'img'
+    };
+
+    function isEventSupported(eventName, element) {
+        element = element || document.createElement(TAGNAMES[eventName] || 'div');
+        eventName = 'on' + eventName;
+
+        var isSupported = (eventName in element);
+
+        if (!isSupported) {
+            // if it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
+            if (!element.setAttribute) {
+                element = document.createElement('div');
+            }
+            if (element.setAttribute && element.removeAttribute) {
+                element.setAttribute(eventName, '');
+                isSupported = typeof element[eventName] == 'function';
+
+                // if property was created, "remove it" (by setting value to `undefined`)
+                if (typeof element[eventName] != 'undefined') {
+                    element[eventName] = undef;
+                }
+                element.removeAttribute(eventName);
+            }
+        }
+
+        element = null;
+        return isSupported;
+    }
+
+    return isEventSupported;
+})();
+
+function divResult(category, name, element, div) {
+    div.innerHTML = div.innerHTML + category + " " + name + ": ";
+    div.innerHTML = div.innerHTML + (
+            isEventSupported(name, element)
+                    ? '<span style="background-color:green;color:white;">true</span></td>'
+                    : '<span style="background-color:red;color:white;">false</span></td>'
+            );
+    div.innerHTML = div.innerHTML + "<br>";
+}
+var counter = 1;
+
+function log(title, detail) {
+    var logDiv = document.getElementById("log");
+    idString = "'id" + counter + "'";
+    var newlink = document.createElement('a');
+    newlink.setAttribute('href', "javascript:toggle_visibility(" + idString + ")");
+    newlink.innerHTML = counter + ". " + title;
+    var br1 = document.createElement('br');
+    logDiv.appendChild(newlink);
+    logDiv.appendChild(br1);
+
+    var childDiv = document.createElement('div');
+    childDiv.setAttribute("id", idString.replace("'", "").replace("'", ""));
+    childDiv.setAttribute("style", 'display: none; margin-left : 5px;');
+    childDiv.innerHTML = detail;
+    var br2 = document.createElement('br');
+    logDiv.appendChild(childDiv);
+
+    counter = counter + 1;
+}
+
+function inspect(obj) {
+    if (typeof obj === "undefined") {
+        return "undefined";
+    }
+    var _props = [];
+
+    for (var i in obj) {
+        _props.push(i + " : " + obj[i]);
+    }
+    return " {" + _props.join(",<br>") + "} ";
+}
+
+function click(e) {
+    if (document.getElementById("clickID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function dblclick(e) {
+    if (document.getElementById("dblclickID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function mousedown(e) {
+    if (document.getElementById("mousedownID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function mouseup(e) {
+    if (document.getElementById("mouseupID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function mouseover(e) {
+    if (document.getElementById("mouseoverID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function mousemove(e) {
+    if (document.getElementById("mousemoveID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function mouseout(e) {
+    if (document.getElementById("mouseoutID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function touchstart(e) {
+    if (document.getElementById("touchstartID").checked) {
+        var box = document.getElementById("box");
+        var result = inspect(e);
+        for (var i = 0; i < e.touches.length; i++) {
+            result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
+        }
+        log(e.type, result);
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function touchend(e) {
+    if (document.getElementById("touchendID").checked) {
+        var box = document.getElementById("box");
+        var result = inspect(e);
+        for (var i = 0; i < e.touches.length; i++) {
+            result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
+        }
+        log(e.type, result);
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function touchmove(e) {
+    if (document.getElementById("touchmoveID").checked) {
+        var targetEvent = e.touches.item(0);
+        var box = document.getElementById("box");
+        box.style.left = targetEvent.clientX + "px";
+        box.style.top = targetEvent.clientY + "px";
+        var result = inspect(e);
+        for (var i = 0; i < e.touches.length; i++) {
+            result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
+        }
+        log(e.type, result);
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function touchcancel(e) {
+    if (document.getElementById("touchcancelID").checked) {
+        var box = document.getElementById("box");
+        var result = inspect(e);
+        for (var i = 0; i < e.touches.length; i++) {
+            result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
+        }
+        log(e.type, result);
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function gesturestart(e) {
+    if (document.getElementById("gesturestartID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function gesturechange(e) {
+    if (document.getElementById("gesturechangeID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function gestureend(e) {
+    if (document.getElementById("gestureendID").checked) {
+        var box = document.getElementById("box");
+        log(e.type, inspect(e));
+        if (e.preventDefault) e.preventDefault();
+    }
+    return false;
+}
+
+function toggle_visibility(id) {
+    var e = document.getElementById(id);
+    if (e.style.display == 'block') {
+        e.style.display = 'none';
+    } else {
+        e.style.display = 'block';
+    }
+}
+
+
+
diff --git a/examples/buffer.html b/examples/buffer.html
index ce61c3d..03beb12 100644
--- a/examples/buffer.html
+++ b/examples/buffer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Buffer Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var lon = 0;
@@ -33,6 +37,7 @@
         <h1 id="title">Buffer Example</h1>
 
         <div id="tags">
+            buffer, performance, tile
         </div>
 
         <p id="shortdesc">
diff --git a/examples/canvas-hit-detection.html b/examples/canvas-hit-detection.html
new file mode 100644
index 0000000..5148b70
--- /dev/null
+++ b/examples/canvas-hit-detection.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Canvas Hit Detection Example</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0;">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">Feature Hit Detection with Canvas</h1>
+        <p id="shortdesc">
+            Demonstrates detection of feature hits with the canvas renderer.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                Click on the features above to see them selected.  This example 
+                uses the Canvas renderer so it only works on browsers where 
+                canvas is supported.
+            </p>
+            <p>
+                View the <a href="canvas-hit-detection.js" target="_blank">canvas-hit-detection.js</a>
+                source to see how this is done.
+            </p>
+        </div>
+        <script src="canvas-hit-detection.js"></script>
+    </body>
+</html>
diff --git a/examples/canvas-hit-detection.js b/examples/canvas-hit-detection.js
new file mode 100644
index 0000000..abc6897
--- /dev/null
+++ b/examples/canvas-hit-detection.js
@@ -0,0 +1,88 @@
+
+// create some sample features
+var Feature = OpenLayers.Feature.Vector;
+var Geometry = OpenLayers.Geometry;
+var features = [
+    new Feature(new Geometry.Point(-90, 45)),
+    new Feature(
+        new Geometry.Point(0, 45),
+        {cls: "one"}
+    ),
+    new Feature(
+        new Geometry.Point(90, 45),
+        {cls: "two"}
+    ),
+    new Feature(
+        Geometry.fromWKT("LINESTRING(-110 -60, -80 -40, -50 -60, -20 -40)")
+    ),
+    new Feature(
+        Geometry.fromWKT("POLYGON((20 -20, 110 -20, 110 -80, 20 -80, 20 -20), (40 -40, 90 -40, 90 -60, 40 -60, 40 -40))")
+    )    
+];
+
+// create rule based styles
+var Rule = OpenLayers.Rule;
+var Filter = OpenLayers.Filter;
+var style = new OpenLayers.Style({
+    pointRadius: 10,
+    strokeWidth: 3,
+    strokeOpacity: 0.7,
+    strokeColor: "navy",
+    fillColor: "#ffcc66",
+    fillOpacity: 1
+}, {
+    rules: [
+        new Rule({
+            filter: new Filter.Comparison({
+                type: "==",
+                property: "cls",
+                value: "one"
+            }),
+            symbolizer: {
+                externalGraphic: "../img/marker-blue.png"
+            }
+        }),
+        new Rule({
+            filter: new Filter.Comparison({
+                type: "==",
+                property: "cls",
+                value: "two"
+            }),
+            symbolizer: {
+                externalGraphic: "../img/marker-green.png"
+            }
+        }),
+        new Rule({
+            elseFilter: true,
+            symbolizer: {
+                graphicName: "circle"
+            }
+        })
+    ]
+});
+
+var layer = new OpenLayers.Layer.Vector(null, {
+    styleMap: new OpenLayers.StyleMap({
+        "default": style,
+        select: {
+            fillColor: "red",
+            pointRadius: 13,
+            strokeColor: "yellow",
+            strokeWidth: 3
+        }
+    }),
+    isBaseLayer: true,
+    renderers: ["Canvas"]
+});
+layer.addFeatures(features);
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [layer],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 0
+});
+
+var select = new OpenLayers.Control.SelectFeature(layer);
+map.addControl(select);
+select.activate();
diff --git a/examples/canvas-inspector.html b/examples/canvas-inspector.html
new file mode 100644
index 0000000..8f2d8bc
--- /dev/null
+++ b/examples/canvas-inspector.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Canvas Inspector</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="Jugl.js"></script>
+        <style>
+            #template {
+                display: none;
+            }
+            #inspector table {
+                border-right: 1px solid #666;
+                border-bottom: 1px solid #666;
+            }
+            #inspector table td {
+                font-size: 9px;
+                text-align: center;
+                width: 60px;
+                height: 60px;
+                border-top: 1px solid #666;
+                border-left: 1px solid #666;
+            }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Canvas Inspector</h1>
+        <p id="shortdesc">
+            Displays pixel values for canvas context.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                View the <a href="canvas-inspector.js" target="_blank">canvas-inspector.js</a>
+                source to see how this is done.
+            </p>
+        </div>
+        <div id="inspector">
+        </div>
+        <table id="template">
+            <tr jugl:repeat="row new Array(rows)">
+                <td jugl:repeat="col new Array(cols)" 
+                    jugl:attributes="id 'c' + repeat.col.index + 'r' + repeat.row.index">
+                     
+                </td>
+            </tr>
+        </table>
+        <script src="canvas-inspector.js"></script>
+    </body>
+</html>
diff --git a/examples/canvas-inspector.js b/examples/canvas-inspector.js
new file mode 100644
index 0000000..064b4d5
--- /dev/null
+++ b/examples/canvas-inspector.js
@@ -0,0 +1,91 @@
+
+var features = [
+
+    new OpenLayers.Feature.Vector(
+        OpenLayers.Geometry.fromWKT(
+            "LINESTRING(-90 90, 90 -90)"
+        ),
+        {color: "#0f0000"}
+    ),
+    
+    new OpenLayers.Feature.Vector(
+        OpenLayers.Geometry.fromWKT(
+            "LINESTRING(100 50, -100 -50)"
+        ),
+        {color: "#00ff00"}
+    )
+
+];
+
+var layer = new OpenLayers.Layer.Vector(null, {
+    styleMap: new OpenLayers.StyleMap({
+        strokeWidth: 3,
+        strokeColor: "${color}"
+    }),
+    isBaseLayer: true,
+    renderers: ["Canvas"],
+    rendererOptions: {hitDetection: true}
+});
+layer.addFeatures(features);
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [layer],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 0
+});
+
+var xOff = 2, yOff = 2;
+
+var rows = 1 + (2 * yOff);
+var cols = 1 + (2 * xOff);
+
+var template = new jugl.Template("template");
+template.process({
+    clone: true,
+    parent: "inspector",
+    context: {
+        rows: rows,
+        cols: cols
+    }
+});
+
+function isDark(r, g, b, a) {
+    a = a / 255;
+    var da = 1 - a;
+    // convert color values to decimal (assume white background)
+    r = (a * r / 255) + da;
+    g = (a * g / 255) + da;
+    b = (a * b / 255) + da;
+    // use w3C brightness measure
+    var brightness = (r * 0.299) + (g * 0.587) + (b * 0.144);
+    return brightness < 0.5;
+}
+
+var context = layer.renderer.canvas; //layer.renderer.hitContext;
+var size = map.getSize();
+map.events.on({
+    mousemove: function(event) {
+        var x = event.xy.x - 1; // TODO: fix this elsewhere
+        var y = event.xy.y;
+        if ((x >= xOff) && (x < size.w - xOff) && (y >= yOff) && (y < size.h - yOff)) {
+            var data = context.getImageData(x - xOff, y - yOff, rows, cols).data;
+            var offset, red, green, blue, alpha, cell;
+            for (var i=0; i<cols; ++i) {
+                for (var j=0; j<rows; ++j) {
+                    offset = (i * 4) + (j * 4 * cols);
+                    red = data[offset];
+                    green = data[offset + 1];
+                    blue = data[offset + 2];
+                    alpha = data[offset + 3];
+                    cell = document.getElementById("c" + i + "r" + j);
+                    cell.innerHTML = "R: " + red + "<br>G: " + green + "<br>B: " + blue + "<br>A: " + alpha;
+                    cell.style.backgroundColor = "rgba(" + red + ", " + green + ", " + blue + ", " + (alpha / 255) + ")";
+                    cell.style.color = isDark(red, green, blue, alpha) ? "#ffffff" : "#000000";
+                }
+            }
+        }
+    }
+});
+
+
diff --git a/examples/canvas.html b/examples/canvas.html
index 7039756..06beef8 100644
--- a/examples/canvas.html
+++ b/examples/canvas.html
@@ -1,14 +1,21 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Canvas Renderer Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
         <script src="canvas.js"></script>
     </head>
     <body onload="init()">
         <h1 id="title">Canvas Renderer Example</h1>
+        <div id="tags">
+            canvas, renderer, advanced,
+        </div>
         <p id="shortdesc">
             Demonstrates the use of the canvas renderer with a vector layer.
         </p>
diff --git a/examples/canvas.js b/examples/canvas.js
index f9f0d3b..6440c39 100644
--- a/examples/canvas.js
+++ b/examples/canvas.js
@@ -43,9 +43,9 @@ function init() {
         protocol: new OpenLayers.Protocol.WFS({
             version: "1.1.0",
             srsName: "EPSG:900913",
-            url:  "http://demo.opengeo.org/geoserver/wfs",
+            url:  "http://v2.suite.opengeo.org/geoserver/wfs",
             featureType: "states",
-            featureNS: "http://www.openplans.org/topp"
+            featureNS: "http://usa.opengeo.org"
         }),
         styleMap: styleMap,
         renderers: ["Canvas", "SVG", "VML"]
diff --git a/examples/click-handler.html b/examples/click-handler.html
index 5d73401..d0bd9d4 100644
--- a/examples/click-handler.html
+++ b/examples/click-handler.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Click Handler Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #map {
                 width: 340px;
@@ -16,7 +20,7 @@
             #east {
                 position: absolute;
                 left: 370px;
-                top: 3em;
+                top: 4em;
             }
 
             table td {
@@ -156,6 +160,7 @@
         <div id="west">
     
             <div id="tags">
+                event, events, propagation,  advanced
             </div>
     
             <p id="shortdesc">
diff --git a/examples/click.html b/examples/click.html
index 5a3d931..98945c3 100644
--- a/examples/click.html
+++ b/examples/click.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Click Event Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {                
@@ -65,17 +69,23 @@
         <h1 id="title">Click Event Example</h1>
 
         <div id="tags">
+            click control, double, doubleclick, double-click, event, events, 
+            propagation
         </div>
 
         <p id="shortdesc">
-            This example shows the use of the click handler and getLonLatFromViewPortPx functions to trigger events on mouse click. 
-
+            This example shows the use of the click handler and 
+            getLonLatFromViewPortPx functions to trigger events on mouse click. 
         </p>
 
         <div id="map" class="smallmap"></div>
     
         <div id="docs">
-            Using the Click handler allows you to (for example) catch clicks without catching double clicks, something that standard browser events don't do for you. (Try double clicking: you'll zoom in, whereas using the browser click event, you would just get two alerts.) This example click control shows you how to use it. 
+            <p>Using the Click handler allows you to (for example) catch clicks 
+            without catching double clicks, something that standard browser 
+            events don't do for you. (Try double clicking: you'll zoom in, 
+            whereas using the browser click event, you would just get two 
+            alerts.) This example click control shows you how to use it.</p> 
         </div>
     </body>
 </html>
diff --git a/examples/controls.html b/examples/controls.html
index de59e22..33169e0 100644
--- a/examples/controls.html
+++ b/examples/controls.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Map Controls Example</title>
 
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var map;
@@ -23,25 +27,33 @@
                     numZoomLevels: 6
                     
                 });
-    
 
-                var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+                var ol_wms = new OpenLayers.Layer.WMS(
+                    "OpenLayers WMS",
                     "http://vmap0.tiles.osgeo.org/wms/vmap0",
-                    {layers: 'basic'} );
-                var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic",
-                    "http://t1.hypercube.telascience.org/cgi-bin/landsat7", 
-                    {layers: "landsat7"});
-                var dm_wms = new OpenLayers.Layer.WMS( "DM Solutions Demo",
+                    {layers: 'basic'} 
+                );
+
+                var gwc = new OpenLayers.Layer.WMS(
+                    "Global Imagery",
+                    "http://maps.opengeo.org/geowebcache/service/wms",
+                    {layers: "bluemarble"},
+                    {tileOrigin: new OpenLayers.LonLat(-180, -90)}
+                );
+                var dm_wms = new OpenLayers.Layer.WMS(
+                    "DM Solutions Demo",
                     "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
                     {layers: "bathymetry,land_fn,park,drain_fn,drainage," +
                              "prov_bound,fedlimit,rail,road,popplace",
-                     transparent: "true", format: "image/png" });
+                     transparent: "true", format: "image/png"},
+                    {visibility: false}
+                );
 
-                jpl_wms.setVisibility(false);
-                dm_wms.setVisibility(false);
+                map.addLayers([ol_wms, gwc, dm_wms]);
 
-                map.addLayers([ol_wms, jpl_wms, dm_wms]);
-                if (!map.getCenter()) map.zoomToMaxExtent();
+                if (!map.getCenter()) {
+                    map.zoomToMaxExtent();
+                }
             }
         </script>
     </head>
@@ -49,14 +61,15 @@
         <h1 id="title">Map Controls Example</h1>
 
         <div id="tags">
+            control, basic
         </div>
 
         <p id="shortdesc">
             Attach zooming, panning, layer switcher, overview map, and permalink map controls to an OpenLayers window.
         </p>
 
-        <a style="float:right" href="" id="permalink">Permalink</a>
         <div id="map" class="smallmap"></div>
+        <a href="#" id="permalink">Permalink</a>
 
         <div id="docs"></div>
     </body>
diff --git a/examples/cql-format.html b/examples/cql-format.html
new file mode 100644
index 0000000..7a00509
--- /dev/null
+++ b/examples/cql-format.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>
+            OpenLayers CQL Example
+        </title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <style>
+            #cql {
+                width: 400px;
+            }
+            #output {
+                padding-top: 1em;
+                width: 512px;
+                height: 60px;
+                border: none;
+                color: #ff3333;
+            }
+        </style>
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">CQL Filter Example</h1>
+        <div id="tags">
+            CQL, filter
+        </div>
+        <p id="shortdesc">
+            Demonstrate use the CQL filter.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                Enter text for a CQL filter to update the features displayed.
+                <br>
+                <form name="cql_form" id="cql_form">
+                    <label for="cql">CQL</label>
+                    <input id="cql" type="text" value="STATE_ABBR >= 'B' AND STATE_ABBR <= 'O'">
+                    <input type="submit" value="update">
+                    <input type="reset" value="reset">
+                </form>
+                <textarea id="output"></textarea>
+            </p><p>
+                View the <a href="cql-format.js" target="_blank">cql-format.js source</a> 
+                to see how this is done.
+            </p>
+        </div>
+        <script src="cql-format.js"></script>
+        <script src="http://demo.opengeo.org/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typename=topp:states&outputFormat=json&format_options=callback:loadFeatures" type="text/javascript"></script>
+    </body>
+</html>
diff --git a/examples/cql-format.js b/examples/cql-format.js
new file mode 100644
index 0000000..2119b1a
--- /dev/null
+++ b/examples/cql-format.js
@@ -0,0 +1,61 @@
+
+// use a CQL parser for easy filter creation
+var format = new OpenLayers.Format.CQL();
+
+// this rule will get a filter from the CQL text in the form
+var rule = new OpenLayers.Rule({
+    // We could also set a filter here.  E.g.
+    // filter: format.read("STATE_ABBR >= 'B' AND STATE_ABBR <= 'O'"),
+    symbolizer: {
+        fillColor: "#ff0000",
+        strokeColor: "#ffcccc",
+        fillOpacity: "0.5"
+    }    
+});
+
+var states = new OpenLayers.Layer.Vector("States", {
+    styleMap: new OpenLayers.StyleMap({
+        "default": new OpenLayers.Style(null, {rules: [rule]})
+    })
+});
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "OpenLayers WMS",
+            "http://maps.opengeo.org/geowebcache/service/wms",
+            {layers: "openstreetmap", format: "image/png"}
+        ),
+        states
+    ],
+    center: new OpenLayers.LonLat(-101, 39),
+    zoom: 3
+});
+
+// called when features are fetched
+function loadFeatures(data) {
+    var features = new OpenLayers.Format.GeoJSON().read(data);
+    states.addFeatures(features);
+};
+
+// update filter and redraw when form is submitted
+var cql = document.getElementById("cql");
+var output = document.getElementById("output");
+function updateFilter() {
+    var filter;
+    try {
+        filter = format.read(cql.value);
+    } catch (err) {
+        output.value = err.message;
+    }
+    if (filter) {
+        output.value = "";
+        rule.filter = filter;
+        states.redraw();
+    }
+    return false;
+}
+updateFilter();
+var form = document.getElementById("cql_form");
+form.onsubmit = updateFilter;
diff --git a/examples/cross-origin.html b/examples/cross-origin.html
new file mode 100644
index 0000000..246047a
--- /dev/null
+++ b/examples/cross-origin.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Script Protocol Example</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">Script Protocol</h1>
+        <div id="tags">
+            protocol, script, cross origin, advanced
+        </div>
+        <p id="shortdesc">
+            Demonstrates the use of a script protocol for making feature requests 
+            cross origin.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                In cases where a service returns serialized features and accepts
+                a named callback (e.g. http://example.com/features.json?callback=foo),
+                the script protocol can be used to read features without being
+                restricted by the same origin policy.
+            </p>
+            <p>
+                View the <a href="cross-origin.js" target="_blank">cross-origin.js</a>
+                source to see how this is done
+            </p>
+        </div>
+        <script src="cross-origin.js"></script>
+    </body>
+</html>
diff --git a/examples/cross-origin.js b/examples/cross-origin.js
new file mode 100644
index 0000000..6cf39ec
--- /dev/null
+++ b/examples/cross-origin.js
@@ -0,0 +1,39 @@
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "World Map",
+            "http://maps.opengeo.org/geowebcache/service/wms",
+            {layers: "bluemarble"}
+        ),
+        new OpenLayers.Layer.Vector("States", {
+            strategies: [new OpenLayers.Strategy.BBOX()],
+            protocol: new OpenLayers.Protocol.Script({
+                url: "http://suite.opengeo.org/geoserver/wfs",
+                callbackKey: "format_options",
+                callbackPrefix: "callback:",
+                params: {
+                    service: "WFS",
+                    version: "1.1.0",
+                    srsName: "EPSG:4326",
+                    request: "GetFeature",
+                    typeName: "world:cities",
+                    outputFormat: "json"
+                },
+                filterToParams: function(filter, params) {
+                    // example to demonstrate BBOX serialization
+                    if (filter.type === OpenLayers.Filter.Spatial.BBOX) {
+                        params.bbox = filter.value.toArray();
+                        if (filter.projection) {
+                            params.bbox.push(filter.projection.getCode());
+                        }
+                    }
+                    return params;
+                }
+            })
+        })
+    ],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 1
+});
+
diff --git a/examples/custom-control-point.html b/examples/custom-control-point.html
deleted file mode 100644
index 3ff3199..0000000
--- a/examples/custom-control-point.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers Custom Control Point Examle</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        var lon = 5;
-        var lat = 40;
-        var zoom = 5;
-        var map, layer;
-
-        function init(){
-            map = new OpenLayers.Map( $('map') );
-
-            layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
-                    "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
-
-            var control = new OpenLayers.Control();
-            OpenLayers.Util.extend(control, {
-                draw: function () {
-                    // this Handler.Point will intercept the shift-mousedown
-                    // before Control.MouseDefault gets to see it
-                    this.point = new OpenLayers.Handler.Point( control,
-                        {"done": this.notice},
-                        {keyMask: OpenLayers.Handler.MOD_SHIFT});
-                    this.point.activate();
-                },
-
-                notice: function (bounds) {
-                    document.getElementById('bounds').innerHTML = bounds;
-                }
-            });
-
-            map.addLayer(layer);
-            map.addControl(control);
-            map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
-        }
-    </script>
-  </head>
-  <body onload="init()">
-      <h1 id="title">Custom Control Point Example</h1>
-
-      <div id="tags">
-      </div>
-
-      <p id="shortdesc">
-          Demonstrate the addition of a point reporting control to the OpenLayers window.
-      </p>
-
-    <div id="map" class="smallmap"></div>
-    <div id="bounds"></div>
-
-    <div id="docs"></div>
-  </body>
-</html>
diff --git a/examples/custom-control.html b/examples/custom-control.html
index 203ddcd..16b9e50 100644
--- a/examples/custom-control.html
+++ b/examples/custom-control.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Custom Control Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var lon = 5;
@@ -45,15 +49,20 @@
     <body onload="init()">
         <h1 id="title">Custom Control Example</h1>
 
-          <div id="tags">
+        <div id="tags">
+            control, panel, rectangle
         </div>
 
         <p id="shortdesc">
-            Demonstrate the addition of a draggable rectangle to the OpenLayers window.
+            Demonstrate the addition of a rectangle to the OpenLayers window.
         </p>
       
         <div id="map" class="smallmap"></div>
 
-        <div id="docs"></div>
+        <div id="docs">
+            <p>The control allows you to draw a rectangle, that reports its coordinates
+            after creation. Hold down the shift key on your keyboard and draw a 
+            rectangle with the mouse.</p>
+        </div>
     </body>
 </html>
diff --git a/examples/custom-style.html b/examples/custom-style.html
index 729ae50..7b1f369 100644
--- a/examples/custom-style.html
+++ b/examples/custom-style.html
@@ -1,16 +1,20 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Custom Style Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             p {
                 width: 500px;
             }
             div.olControlMousePosition {
                 font-family: Verdana;
-                font-size: 0.5em;
+                font-size: 2em;
                 color: red;
             }
         </style>
@@ -37,6 +41,7 @@
         <h1 id="title">Custom Style Example</h1>
 
         <div id="tags">
+            styling, css, stylesheet, theming, theme
         </div>
 
         <p id="shortdesc">
diff --git a/examples/debug.html b/examples/debug.html
index a960bea..95a909b 100644
--- a/examples/debug.html
+++ b/examples/debug.html
@@ -1,9 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Debug Example</title>
-        <link rel="stylesheet" href="style.css" type="text/css" />        
+        <link rel="stylesheet" href="style.css" type="text/css">        
         <script src="../lib/Firebug/firebug.js"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
@@ -27,7 +29,9 @@
     <body>
         <h1 id="title">Debug Example</h1>
 
-        <div id="tags"></div>
+        <div id="tags">
+            debugging, error, fix, fixing, console, firebug, developers, advanced
+        </div>
 
         <p id="shortdesc">
             Demonstrate console calls to a Firebug console. Requires Firefox. Mostly for developers.
@@ -35,16 +39,16 @@
 
         <div id="docs">
             <p>To run OpenLayers in debug mode, include the following script
-            tag <b>before</b> the tag that loads OpenLayers:
+            tag <b>before</b> the tag that loads OpenLayers:</p>
 
             <pre>    <script src="../lib/Firebug/firebug.js"></script></pre>
 
-            The path to firebug.js must be relative to your
+            <p>The path to firebug.js must be relative to your
             html file.  With this script included calls to OpenLayers.Console
             will be displayed in the Firebug console.  For browsers without
             the Firebug extension, the script creates a Firebug Lite console.
             This console can be opened by hitting <b>F12</b> or <b>Ctrl+Shift+L</b>
-            (<b>?+Shift+L</b> on a Mac).  If you want the Firebug Lite console
+            (<b>Command+Shift+L</b> on a Mac).  If you want the Firebug Lite console
             to be open when the page loads, add <b>debug="true"</b> to the opening
             html tag of your page.  Open the console and click on the links below
             to see console calls.</p>
diff --git a/examples/document-drag.html b/examples/document-drag.html
index 9db32a1..7f64b2b 100644
--- a/examples/document-drag.html
+++ b/examples/document-drag.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Document Drag Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -24,14 +28,16 @@
   <body onload="init()">
     <h1 id="title">OpenLayers Document Drag Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        drag
+    </div>
 
     <div id="shortdesc">Keep on dragging even when the mouse cursor moves outside of the map</div>
 
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        This example shows how to make a map draggable outside of the map itself.
+        <p>This example shows how to make a map draggable outside of the map itself.</p>
     </div>
   </body>
 </html>
diff --git a/examples/donut.html b/examples/donut.html
new file mode 100644
index 0000000..4142b75
--- /dev/null
+++ b/examples/donut.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers Polygon Hole Digitizing</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <style>
+            #controlToggle li {
+                list-style: none;
+            }
+            .olControlAttribution {
+                font-size: 9px;
+                bottom: 2px;
+            }
+            #output {
+                margin: 1em;
+                font-size: 0.9em;
+            }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Drawing Holes in Polygons</h1>
+        <div id="tags">
+            draw polygon hole
+        </div>         
+        <p id="shortdesc">
+            The DrawFeature control can be used to digitize donut polygons.
+        </p>
+        
+        <div id="map" class="smallmap"></div>
+        <ul id="controlToggle">
+            <li>
+                <input type="radio" name="type" value="none" id="noneToggle"
+                       onclick="toggleControl(this);" checked="checked">
+                <label for="noneToggle">navigate</label>
+            </li>
+            <li>
+                <input type="radio" name="type" value="polygon" id="polygonToggle" onclick="toggleControl(this);">
+                <label for="polygonToggle">draw polygon</label>
+            </li>
+        </ul>
+        <div id="output"></div>
+        <div id="docs">
+            <p>
+                To digitize holes in polygons, hold down the <code>Alt</code> 
+                key and draw over an existing polygon.  By default, the 
+                <code>Shift</code> key triggers freehand drawing.  Use a 
+                combination of the <code>Shift</code> and <code>Alt</code> keys
+                to digitize holes in freehand mode.
+            </p>
+            <p>
+                See the <a href="donut.js" target="_blank">
+                donut.js source</a> for details on how this is done.
+            </p>
+        </div>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="donut.js"></script>
+    </body>
+</html>
diff --git a/examples/donut.js b/examples/donut.js
new file mode 100644
index 0000000..01ae57d
--- /dev/null
+++ b/examples/donut.js
@@ -0,0 +1,44 @@
+// allow testing of specific renderers via "?renderer=Canvas", etc
+var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.OSM(),
+        new OpenLayers.Layer.Vector("Vector Layer", {
+            renderers: renderer
+        })
+    ],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 1
+});
+
+var draw = new OpenLayers.Control.DrawFeature(
+    map.layers[1],
+    OpenLayers.Handler.Polygon,
+    {handlerOptions: {holeModifier: "altKey"}}
+);
+map.addControl(draw);
+
+// optionally listen for sketch events on the layer
+var output = document.getElementById("output");
+function updateOutput(event) {
+    window.setTimeout(function() {
+        output.innerHTML = event.type + " " + event.feature.id;
+    }, 100);
+}
+map.layers[1].events.on({
+    sketchmodified: updateOutput,
+    sketchcomplete: updateOutput
+})
+
+// add behavior to UI elements
+function toggleControl(element) {
+    if (element.value === "polygon" && element.checked) {
+        draw.activate();
+    } else {
+        draw.deactivate();
+    }
+}
+document.getElementById("noneToggle").checked = true;
diff --git a/examples/doubleSetCenter.html b/examples/doubleSetCenter.html
index a3fb1a2..eb7ffa0 100644
--- a/examples/doubleSetCenter.html
+++ b/examples/doubleSetCenter.html
@@ -1,18 +1,24 @@
+<!DOCTYPE html>
 <html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Double Set Center Example</title>
        
         <script src="../lib/OpenLayers.js"></script>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
     </head>
     <body>
         <h1 id="title">Double Set Center Example</h1>
 
-        <div id="tags"></div>
+        <div id="tags">
+            center, centering, cleanup
+        </div>
 
         <p id="shortdesc">
-            Demonstrate the behavior of two calls to set the center after instatiating the layer object.
+            Demonstrate the behavior of two calls to set the center after instantiating the layer object.
         </p>
 
         <div id="map" class="smallmap"></div>
diff --git a/examples/drag-feature.html b/examples/drag-feature.html
index 1e6d21c..1b2f649 100644
--- a/examples/drag-feature.html
+++ b/examples/drag-feature.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Drag Feature Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #controls {
                 width: 512px;
@@ -23,7 +27,13 @@
                 var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
                     "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'});
     
-                vectors = new OpenLayers.Layer.Vector("Vector Layer");
+                // allow testing of specific renderers via "?renderer=Canvas", etc
+                var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+                renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
+                vectors = new OpenLayers.Layer.Vector("Vector Layer", {
+                    renderers: renderer
+                });
 
                 map.addLayers([wms, vectors]);
                 map.addControl(new OpenLayers.Control.LayerSwitcher());
@@ -62,7 +72,9 @@
     <body onload="init()">
         <h1 id="title">Drag Feature Example</h1>
 
-        <div id="tags"></div>
+        <div id="tags">
+            point, line, linestring, polygon, digitizing, geometry, draw, drag
+        </div>
 
         <p id="shortdesc">
             Demonstrates point, line and polygon creation and editing.
diff --git a/examples/draw-feature.html b/examples/draw-feature.html
index a84791c..d292794 100644
--- a/examples/draw-feature.html
+++ b/examples/draw-feature.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Draw Feature Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #controlToggle li {
                 list-style: none;
@@ -62,12 +66,22 @@
                     }
                 }
             }
+
+            function allowPan(element) {
+                var stop = !element.checked;
+                for(var key in drawControls) {
+                    drawControls[key].handler.stopDown = stop;
+                    drawControls[key].handler.stopUp = stop;
+                }
+            }
         </script>
     </head>
     <body onload="init()">
         <h1 id="title">OpenLayers Draw Feature Example</h1>
 
-        <div id="tags"></div>
+        <div id="tags">
+            point, line, linestring, polygon, digitizing, geometry, draw, drag
+        </div>
 
         <p id="shortdesc">
             Demonstrate on-screen digitizing tools for point, line, and polygon creation.
@@ -93,15 +107,20 @@
                 <input type="radio" name="type" value="polygon" id="polygonToggle" onclick="toggleControl(this);" />
                 <label for="polygonToggle">draw polygon</label>
             </li>
+            <li>
+                <input type="checkbox" name="allow-pan" value="allow-pan" id="allowPanCheckbox" checked=true onclick="allowPan(this);" />
+                <label for="allowPanCheckbox">allow pan while drawing</label>
+            </li>
         </ul>
 
         <div id="docs">
-            <p>With the point drawing control active, click on the map to add a point.  You can drag the point
-            before letting the mouse up if you want to adjust the position.</p>
+            <p>With the point drawing control active, click on the map to add a point.</p>
             <p>With the line drawing control active, click on the map to add the points that make up your line.
             Double-click to finish drawing.</p>
             <p>With the polygon drawing control active, click on the map to add the points that make up your
             polygon.  Double-click to finish drawing.</p>
+            <p>With any drawing control active, paning the map can still be achieved.  Drag the map as
+            usual for that.</p>
             <p>Hold down the shift key while drawing to activate freehand mode.  While drawing lines or polygons
             in freehand mode, hold the mouse down and a point will be added with every mouse movement.<p>
         </div>
diff --git a/examples/draw-undo-redo.html b/examples/draw-undo-redo.html
new file mode 100644
index 0000000..40ad3e2
--- /dev/null
+++ b/examples/draw-undo-redo.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Undo/Redo Drawing Methods</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0;">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">Undo/Redo Drawing</h1>
+        <p id="shortdesc">
+            Demonstrates the use of undo & redo methods while drawing. 
+        </p>
+        <div id="map" class="smallmap"></div>
+
+        <div id="docs">
+            <p>
+                Use <code>Ctrl-Z</code> or <code>⌘-Z</code> to undo while drawing.  
+                Use <code>Ctrl-Y</code> or <code>⌘-Y</code> to redo what you have 
+                undone.  Use <code>Esc</code> to cancel the current sketch.
+            <p>
+                The <code>control.undo</code> method works on the current
+                sketch, removing the most recently added point.  
+                The <code>control.redo</code> method adds back items that were
+                removed from an undo.  To fully erase a sketch, call the 
+                <code>control.cancel</code> method.
+            </p><p>
+                View the <a href="draw-undo-redo.js" target="_blank">draw-undo-redo.js</a>
+                source to see how this is done.
+            </p>
+        </div>
+        
+        <script src="draw-undo-redo.js"></script>
+    </body>
+</html>
diff --git a/examples/draw-undo-redo.js b/examples/draw-undo-redo.js
new file mode 100644
index 0000000..73900ab
--- /dev/null
+++ b/examples/draw-undo-redo.js
@@ -0,0 +1,45 @@
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "Global Imagery",
+            "http://maps.opengeo.org/geowebcache/service/wms",
+            {layers: "bluemarble"},
+            {tileOrigin: new OpenLayers.LonLat(-180, -90)}
+        ),
+        new OpenLayers.Layer.Vector()
+    ],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 1
+});
+
+var draw = new OpenLayers.Control.DrawFeature(
+    map.layers[1], OpenLayers.Handler.Path
+);
+map.addControl(draw);
+draw.activate();
+
+OpenLayers.Event.observe(document, "keydown", function(evt) {
+    var handled = false;
+    switch (evt.keyCode) {
+        case 90: // z
+            if (evt.metaKey || evt.ctrlKey) {
+                draw.undo();
+                handled = true;
+            }
+            break;
+        case 89: // y
+            if (evt.metaKey || evt.ctrlKey) {
+                draw.redo();
+                handled = true;
+            }
+            break;
+        case 27: // esc
+            draw.cancel();
+            handled = true;
+            break;
+    }
+    if (handled) {
+        OpenLayers.Event.stop(evt);
+    }
+});
\ No newline at end of file
diff --git a/examples/dynamic-text-layer.html b/examples/dynamic-text-layer.html
index 6bc5edf..a361b73 100644
--- a/examples/dynamic-text-layer.html
+++ b/examples/dynamic-text-layer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Vector Behavior Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var map;
@@ -39,7 +43,13 @@
             // Needed only for interaction, not for the display.
             function onPopupClose(evt) {
                 // 'this' is the popup.
-                selectControl.unselect(this.feature);
+                var feature = this.feature;
+                if (feature.layer) { // The feature is not destroyed
+                    selectControl.unselect(feature);
+                } else { // After "moveend" or "refresh" events on POIs layer all 
+                         //     features have been destroyed by the Strategy.BBOX
+                    this.destroy();
+                }
             }
             function onFeatureSelect(evt) {
                 feature = evt.feature;
@@ -51,7 +61,7 @@
                                          null, true, onPopupClose);
                 feature.popup = popup;
                 popup.feature = feature;
-                map.addPopup(popup);
+                map.addPopup(popup, true);
             }
             function onFeatureUnselect(evt) {
                 feature = evt.feature;
@@ -66,25 +76,26 @@
     </head>
     <body onload="init()">
         <h1 id="title">Dynamic POIs via a Text Layer</h1>
+        <div id="tags">
+            poi, dynamic data, text, format, strategy, popup, select, selection
+        </div>
         <p id="shortdesc">
            Loading dynamic data from a text file. 
         </p>
         <div id="map" class="smallmap"></div>
         <div id="docs">
-            The vector layer shown uses the BBOX strategy, the HTTP protocol,
+            <p>The vector layer shown uses the BBOX strategy, the HTTP protocol,
             and the Text format.
             This setup appends "?bbox=west,south,east,north" to every
             request. This allows you to configure the location as something
             like 'textfile.php', and take the '?bbox=' parameter to select
-            data from a database or the like.
-<br /><br />
-            There is nothing about this example that limits it to text files;
-            you can do the same thing with KML, GeoJSON, etc.
-            <br /><br />
-            This is an alternative to something like the <a href="http://wiki.openstreetmap.org/index.php/OpenLayers_Dynamic_POI">OpenStreetMap "Dynamic POI"</a> example. The Layer is a standard vector layer, and interaction can be
+            data from a database or the like.</p>
+            <p>There is nothing about this example that limits it to text files;
+            you can do the same thing with KML, GeoJSON, etc.</p>
+            <p>This is an alternative to something like the <a href="http://wiki.openstreetmap.org/index.php/OpenLayers_Dynamic_POI">OpenStreetMap "Dynamic POI"</a> example. The Layer is a standard vector layer, and interaction can be
             configured via the SelectFeature control, as you can see in the 
             latter half of the code, which allows you to open a popup when
-            a feature is selected.
+            a feature is selected.</p>
         </div>
     </body>
 </html>
diff --git a/examples/editing-methods.html b/examples/editing-methods.html
new file mode 100644
index 0000000..eeab916
--- /dev/null
+++ b/examples/editing-methods.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Editing Methods</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0;">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">Editing Methods</h1>
+        <p id="shortdesc">
+            Demonstrates the use of editing methods for manipulating geometries 
+            while drawing.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <ul id="methods">
+            <li><a href="#" id="insertXY">insert x,y</a></li>
+            <li><a href="#" id="insertDeltaXY">insert dx,dy</a></li>
+            <li><a href="#" id="insertDirectionLength">insert direction/length</a></li>
+            <li><a href="#" id="insertDeflectionLength">insert deflection/length</a></li>            
+            <li><a href="#" id="finishSketch">finish sketch</a></li>
+            <li><a href="#" id="cancel">cancel sketch</a></li>
+        </ul>
+
+        <div id="docs">
+            <p>
+                The <code>control.insertXY</code> method inserts a point at the given
+                map coordinates (x, y) immediately prior to the most recent point
+                (under the mouse).  
+                The <code>control.insertDeltaXY</code> method inserts a point at 
+                the given offset values (dx, dy) from the previously added point.
+                The <code>control.insertDirectionLength</code> method inserts a 
+                point at offset direction and length from the previously added point.
+                Direction is measured counter-clockwise from the positive x-axis.
+                The <code>control.insertDeflectionLength</code> method inserts a 
+                point at offset deflection and length from the previously added point.
+                Deflection is measured counter-clockwise from the previous line 
+                segment.
+                The <code>control.finishSketch</code> method completes the current
+                sketch without adding the point under the user's mouse.  This 
+                allows a sketch to be finished without a double-click.
+                The <code>control.cancel</code> method discards the current 
+                sketch and leaves the control active.
+                The <code>control.insertXY</code> method may be called before 
+                any points are digitized manually.  The other methods have no 
+                effect until at least one point has been added to the sketch.
+            </p><p>
+                View the <a href="editing-methods.js" target="_blank">editing-methods.js</a>
+                source to see how this is done.
+            </p>
+        </div>
+        
+        <script src="editing-methods.js"></script>
+    </body>
+</html>
diff --git a/examples/editing-methods.js b/examples/editing-methods.js
new file mode 100644
index 0000000..6986a99
--- /dev/null
+++ b/examples/editing-methods.js
@@ -0,0 +1,83 @@
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "Global Imagery",
+            "http://maps.opengeo.org/geowebcache/service/wms",
+            {layers: "bluemarble"},
+            {tileOrigin: new OpenLayers.LonLat(-180, -90)}
+        ),
+        new OpenLayers.Layer.Vector()
+    ],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 1
+});
+
+var draw = new OpenLayers.Control.DrawFeature(
+    map.layers[1], OpenLayers.Handler.Path
+);
+map.addControl(draw);
+draw.activate();
+
+// handle clicks on method links
+$("insertXY").onclick = function() {
+    var values = parseInput(
+        window.prompt(
+            "Enter map coordinates for new point (e.g. '-111, 46')", "x, y"
+        )
+    );
+    if (values != null) {
+        draw.insertXY(values[0], values[1]);
+    }
+}
+$("insertDeltaXY").onclick = function() {
+    var values = parseInput(
+        window.prompt(
+            "Enter offset values for new point (e.g. '15, -10')", "dx, dy"
+        )
+    );
+    if (values != null) {
+        draw.insertDeltaXY(values[0], values[1]);
+    }
+}
+$("insertDirectionLength").onclick = function() {
+    var values = parseInput(
+        window.prompt(
+            "Enter direction and length offset values for new point (e.g. '-45, 10')", "direction, length"
+        )
+    );
+    if (values != null) {
+        draw.insertDirectionLength(values[0], values[1]);
+    }
+}
+$("insertDeflectionLength").onclick = function() {
+    var values = parseInput(
+        window.prompt(
+            "Enter deflection and length offset values for new point (e.g. '15, 20')", "deflection, length"
+        )
+    );
+    if (values != null) {
+        draw.insertDeflectionLength(values[0], values[1]);
+    }
+}
+$("cancel").onclick = function() {
+    draw.cancel();
+}
+$("finishSketch").onclick = function() {
+    draw.finishSketch();
+}
+
+function parseInput(text) {
+    var values = text.split(",");
+    if (values.length !== 2) {
+        values = null;
+    } else {
+        values[0] = parseFloat(values[0]);
+        values[1] = parseFloat(values[1]);
+        if (isNaN(values[0]) || isNaN(values[1])) {
+            window.alert("The two values must be numeric.");
+            values = null;
+        }
+    }
+    return values;
+}
\ No newline at end of file
diff --git a/examples/editingtoolbar-outside.html b/examples/editingtoolbar-outside.html
index 8ff6745..5acc625 100644
--- a/examples/editingtoolbar-outside.html
+++ b/examples/editingtoolbar-outside.html
@@ -1,15 +1,16 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Custom Editing Toolbar</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olControlEditingToolbar  {
             float:left;
-            right: 0px;
-            height: 30px; 
-            width: 150px;
+            width: 116px;
         }
     </style>
     <script src="../lib/Firebug/firebug.js"></script>
@@ -43,6 +44,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers EditingToolbar Outside Viewport</h1>
+    <div id="tags">
+        digitizing, point, line, linestring, polygon, editing, positioning, style
+    </div>
     <p id="shortdesc">
         Display an editing toolbar panel outside the map viewport.
     </p>
diff --git a/examples/editingtoolbar.html b/examples/editingtoolbar.html
index 88ea2b3..d317183 100644
--- a/examples/editingtoolbar.html
+++ b/examples/editingtoolbar.html
@@ -1,12 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Editing Toolbar Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <!--[if lte IE 6]>
+            <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css">
+        <![endif]-->
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
-        <script src="../lib/Firebug/debug.js"></script>
+        <script src="../lib/Firebug/firebug.js"></script>
         <script type="text/javascript">
             var lon = 5;
             var lat = 40;
@@ -33,7 +39,9 @@
     <body onload="init()">
         <h1 id="title">Editing Toolbar Example</h1>
 
-        <div id="tags"></div>
+        <div id="tags">
+            digitizing, point, line, linestring, polygon, editing
+        </div>
 
         <p id="shortdesc">
             Demonstrate polygon, polyline and point creation and editing tools.
diff --git a/examples/events.html b/examples/events.html
index 184b4ab..652dda0 100644
--- a/examples/events.html
+++ b/examples/events.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Event Handling</title>
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #panel {
                 margin: 5px;
@@ -18,7 +22,7 @@
             #output {
                 position: absolute;
                 left: 550px;
-                top: 40px;
+                top: 4em;
                 width: 350px;
                 height: 400px;
             }
@@ -136,6 +140,7 @@
         <h1 id="title">Event Handling</h1>
 
         <div id="tags">
+            event, events, handler, listener, cleanup
         </div>
 
         <p id="shortdesc">
diff --git a/examples/example-list.html b/examples/example-list.html
index 038b957..2d3530f 100644
--- a/examples/example-list.html
+++ b/examples/example-list.html
@@ -1,6 +1,9 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
+<!DOCTYPE html>
 <html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <!-- This is the example list source: if you are trying to look at the 
         source of an example, YOU ARE IN THE WRONG PLACE. If you want to view
         the source of just one example, you can typically choose 
@@ -9,17 +12,27 @@
         click on the link), and view source from there. -->  
         <title>OpenLayers Examples</title>
         <link rel="alternate" href="example-list.xml" type="application/atom+xml" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             html, body {
-                height: 100%;
-                overflow: hidden;
                 margin: 0;
                 padding: 0;
                 line-height: 1.25em;
             }
+            #logo {
+                text-shadow: 2px 2px 3px gray;
+                color: white;
+                vertical-align: middle;
+                position: absolute;
+                top: 5px;
+                left: 5px;
+                font-size: 34px;
+                font-family: "Trebuchet MS",Helvetica,Arial,sans-serif;
+            }
+            #logo img {
+                vertical-align: middle;
+            }
             .ex_container{
-                border-bottom: 1px solid #cccccc;
             }
             .ex_container a {
                 text-decoration: none;
@@ -34,6 +47,12 @@
                 font-weight: bold;
                 color: #333;
             }
+            .ex_tags{
+                display: inline;
+                font-size: smaller;
+                font-style: italic;
+                color: #333;
+            }
             .ex_filename {
                 font-weight: normal;
                 font-size: 0.8em;
@@ -49,20 +68,18 @@
                 display: none;
             }
             #toc {
-                width: 30%;
+                width: 100%;
                 height: 100%;
             }
             #filter {
+                position: fixed;
+                text-align: center;
                 top: 0px;
-                height: 50px;
-                padding: 10px 1em 10px 1em;
+                background: #9D9FA1;
+                width: 100%;
+                padding: 1.3em 0;
             }
             #examples {
-                border-top: 1px solid #cccccc;
-                position: absolute;
-                width: 30%;
-                top: 70px;
-                bottom: 0px;
                 overflow: auto;
                 list-style: none;
                 margin: 0;
@@ -72,11 +89,20 @@
                 list-style: none;
                 margin: 0;
                 padding: 0;
+                margin-top: 4em;
             }
             #examples ul li {
-                display: block;
-                margin: 0;
+                display: inline;
+                float: left;
+                width: 350px;
+                margin: 10px 0 0 10px;
                 padding: 0;
+                border: 1px solid #ddd;
+                border-radius: 3px;
+            }
+            #examples .mainlink {
+                height: 8em;
+                overflow: auto;
             }
             #exwin {
                 position: absolute;
@@ -88,12 +114,30 @@
                 border-left: 1px solid #cccccc;
                 margin: 0;
             }
+            @media only screen and (max-width: 600px) {
+                #examples ul {
+                    margin-top: 100px;
+                }
+                #filter {
+                    padding-top: 50px;
+                }
+                #examples ul li {
+                    margin-left: 0;
+                    border-radius: 0;
+                    border-width: 1px 0;
+                    width: 100%;
+                }
+                #examples .mainlink {
+                    height: auto;
+                }
+                #examples .ex_tags, #examples .ex_filename {
+                    display: none;
+                }
+            }
         </style>
         <script type="text/javascript" src="Jugl.js"></script>
         <script type="text/javascript" src="example-list.js"></script>
         <script type="text/javascript">
-            // import
-            var Jugl = window["http://jugl.tschaub.net/trunk/lib/Jugl.js"];
             var template, target;
 
             function listExamples(examples) {
@@ -127,7 +171,7 @@
                     for(var i=0; i<words.length; ++i) {
                         var word = words[i].toLowerCase()
                         var dict = info.index[word];
-                        if(dict) {
+                        var updateScores = function() {
                             for(exIndex in dict) {
                                 var count = dict[exIndex];
                                 if(scores[exIndex]) {
@@ -142,6 +186,18 @@
                                 }
                             }
                         }
+                        if(dict) {
+                            updateScores();
+                        } else {
+                            var r;
+                            for (idx in info.index) {
+                               r = new RegExp(word);
+                               if (r.test(idx)) {
+                                    dict = info.index[idx];
+                                    updateScores();
+                               }
+                            }
+                        }
                     }
                     examples = [];
                     for(var j in scores) {
@@ -195,10 +251,10 @@
                 }
             }
             window.onload = function() {
-                template = new Jugl.Template("template");
+                //document.getElementById('keywords').focus();
+                template = new jugl.Template("template");
                 target = document.getElementById("examples");
                 listExamples(info.examples);
-                document.getElementById("exwin").src = "../examples/example.html";
                 document.getElementById("keywords").onkeyup = inputChange
                 parseQuery();
             };
@@ -207,22 +263,26 @@
     <body>
         <div id="toc">
             <div id="filter">
+                <div id="logo">
+                <img src="http://www.openlayers.org/images/OpenLayers.trac.png"
+                 />
+                 OpenLayers
+             </div>
                 <p>
-                    <label for="keywords">Filter by keywords</label><br />
-                    <input type="text" id="keywords" />
-                    <span id="count"></span><br />
+                    <input autofocus placeholder="filter by keywords..." type="text" id="keywords" />
+                    <span id="count"></span>
                     <a href="javascript:void showAll();">show all</a>
                 </p>
             </div>
             <div id="examples"></div>
         </div>
-        <iframe id="exwin" name="exwin" frameborder="0"></iframe>        
         <div style="display: none;">
             <ul id="template">
                 <li class="ex_container" jugl:repeat="example examples">
-                    <a jugl:attributes="href example.link" target="exwin">
+                <a jugl:attributes="href example.link" class="mainlink"
+                    target="_blank">
                         <h5 class="ex_title">
-                            <span jugl:replace="example.title">title</span><br />
+                            <span jugl:replace="example.title">title</span><br>
                             <span class="ex_filename" jugl:content="'(' + example.example + ')'">filename</span>
                         </h5>
                         <div class="ex_description" jugl:content="example.shortdesc">
@@ -231,6 +291,9 @@
                         <p class="ex_classes" jugl:content="example.classes">
                             Related Classes go here
                         </p>
+                        <div class="ex_tags" jugl:content="'...tagged with ' + example.tags">
+                            
+                        </div>
                     </a>
                 </li>
             </ul>
diff --git a/examples/example-list.js b/examples/example-list.js
new file mode 100644
index 0000000..e69de29
diff --git a/examples/example.html b/examples/example.html
index ce4d178..84a0bc3 100644
--- a/examples/example.html
+++ b/examples/example.html
@@ -1,55 +1,25 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        // making this a global variable so that it is accessible for
-        // debugging/inspecting in Firebug
-        var map = null;
-
-        function init(){
-
-            map = new OpenLayers.Map('map');
-
-            var ol_wms = new OpenLayers.Layer.WMS(
-                "OpenLayers WMS",
-                "http://vmap0.tiles.osgeo.org/wms/vmap0",
-                {layers: 'basic'}
-            );
-
-            var jpl_wms = new OpenLayers.Layer.WMS(
-                "NASA Global Mosaic",
-                "http://t1.hypercube.telascience.org/cgi-bin/landsat7", 
-                {layers: "landsat7"}
-            );
-
-            var dm_wms = new OpenLayers.Layer.WMS(
-                "Canadian Data",
-                "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
-                {
-                    layers: "bathymetry,land_fn,park,drain_fn,drainage," +
-                            "prov_bound,fedlimit,rail,road,popplace",
-                    transparent: "true",
-                    format: "image/png"
-                },
-                {isBaseLayer: false, visibility: false}
-            );
-
-            map.addLayers([ol_wms, jpl_wms, dm_wms]);
-            map.addControl(new OpenLayers.Control.LayerSwitcher());
-            map.zoomToMaxExtent();
-        }
-    </script>
-  </head>
-  <body onload="init()">
-    <h1 id="title">OpenLayers Example</h1>
-    <div id="tags"></div>
-    <p id="shortdesc">
-        Demonstrate a simple map with an overlay that includes layer switching controls.
-    </p>
-    <div id="map" class="smallmap"></div>
-    <div id="docs"></div>
-  </body>
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers Example</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+    </head>
+    <body>
+        <h1 id="title">OpenLayers Example</h1>
+        <div id="tags">simple, basic</div>
+        <p id="shortdesc">
+            Demonstrate a simple map with an overlay that includes layer switching controls.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>This is a basic example demonstrating the use of a map with two layers and a few controls.</p>
+            <p>View the <a href="example.js" target="_blank">example.js</a> source to see how this is done.</p>
+        </div>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="example.js"></script>
+    </body>
 </html>
diff --git a/examples/example.js b/examples/example.js
new file mode 100644
index 0000000..d02e530
--- /dev/null
+++ b/examples/example.js
@@ -0,0 +1,23 @@
+var map = new OpenLayers.Map("map");
+
+var ol_wms = new OpenLayers.Layer.WMS(
+    "OpenLayers WMS",
+    "http://vmap0.tiles.osgeo.org/wms/vmap0",
+    {layers: "basic"}
+);
+
+var dm_wms = new OpenLayers.Layer.WMS(
+    "Canadian Data",
+    "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
+    {
+        layers: "bathymetry,land_fn,park,drain_fn,drainage," +
+                "prov_bound,fedlimit,rail,road,popplace",
+        transparent: "true",
+        format: "image/png"
+    },
+    {isBaseLayer: false, visibility: false}
+);
+
+map.addLayers([ol_wms, dm_wms]);
+map.addControl(new OpenLayers.Control.LayerSwitcher());
+map.zoomToMaxExtent();
diff --git a/examples/filter-strategy.html b/examples/filter-strategy.html
index 0bc4c17..c9eafa0 100644
--- a/examples/filter-strategy.html
+++ b/examples/filter-strategy.html
@@ -1,13 +1,15 @@
 <!DOCTYPE html>
 <html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Filter Strategy Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
         <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script>OpenLayers.ImgPath = "../img/";</script>
-        <script src="filter-strategy.js"></script>
         <style>
             .olControlAttribution {
                 font-size: 9px;
@@ -15,8 +17,11 @@
             }
         </style>
     </head>
-    <body onload="init()">
+    <body>
         <h1 id="title">Filter Strategy</h1>
+        <div id="tags">
+            filter, strategy, strategies, kml, advanced
+        </div>
         <p id="shortdesc">
             Demonstrates the filter strategy for limiting features passed to the layer.
         </p>
@@ -44,5 +49,6 @@
                 source to see how this is done
             </p>
         </div>
+        <script src="filter-strategy.js"></script>
     </body>
 </html>
diff --git a/examples/filter-strategy.js b/examples/filter-strategy.js
index 1c7802c..9f8d394 100644
--- a/examples/filter-strategy.js
+++ b/examples/filter-strategy.js
@@ -1,62 +1,11 @@
 var map, filter, filterStrategy;
-
+var animationTimer;
+var currentDate;
 var startDate = new Date(1272736800000); // lower bound of when values
 var endDate = new Date(1272737100000); // upper value of when values
 var step = 8; // sencods to advance each interval
 var interval = 0.125; // seconds between each step in the animation
 
-function init() {
-
-    // add behavior to elements
-    document.getElementById("start").onclick = startAnimation;
-    document.getElementById("stop").onclick = stopAnimation;
-    var spanEl = document.getElementById("span");
-
-    var mercator = new OpenLayers.Projection("EPSG:900913");
-    var geographic = new OpenLayers.Projection("EPSG:4326");
-    map = new OpenLayers.Map("map");
-    
-    var osm = new OpenLayers.Layer.OSM();
-    
-    filter = new OpenLayers.Filter.Comparison({
-        type: OpenLayers.Filter.Comparison.BETWEEN,
-        property: "when",
-        lowerBoundary: startDate,
-        upperBoundary: new Date(startDate.getTime() + (parseInt(spanEl.value, 10) * 1000))
-    });
-
-    filterStrategy = new OpenLayers.Strategy.Filter({filter: filter});
-
-    var flights = new OpenLayers.Layer.Vector("Aircraft Locations", {
-        projection: geographic,
-        strategies: [new OpenLayers.Strategy.Fixed(), filterStrategy],
-        protocol: new OpenLayers.Protocol.HTTP({
-            url: "kml-track.kml",
-            format: new OpenLayers.Format.KML({
-                extractTracks: true
-                //,extractStyles: true // use style from KML instead of styleMap below
-            })
-        }),
-        styleMap: new OpenLayers.StyleMap({
-            "default": new OpenLayers.Style({
-                graphicName: "circle",
-                pointRadius: 3,
-                fillOpacity: 0.25,
-                fillColor: "#ffcc66",
-                strokeColor: "#ff9933",
-                strokeWidth: 1
-            })
-        }),
-        renderers: ["Canvas", "SVG", "VML"]
-    });
-    
-    map.addLayers([osm, flights]);
-    map.setCenter(new OpenLayers.LonLat(-93.2735, 44.8349).transform(geographic, mercator), 8);
-    
-};
-
-var animationTimer;
-var currentDate;
 function startAnimation() {
     if (animationTimer) {
         stopAnimation(true);
@@ -87,3 +36,49 @@ function stopAnimation(reset) {
     }
 }
 
+// add behavior to elements
+document.getElementById("start").onclick = startAnimation;
+document.getElementById("stop").onclick = stopAnimation;
+var spanEl = document.getElementById("span");
+
+var mercator = new OpenLayers.Projection("EPSG:900913");
+var geographic = new OpenLayers.Projection("EPSG:4326");
+map = new OpenLayers.Map("map");
+
+var osm = new OpenLayers.Layer.OSM();
+
+filter = new OpenLayers.Filter.Comparison({
+    type: OpenLayers.Filter.Comparison.BETWEEN,
+    property: "when",
+    lowerBoundary: startDate,
+    upperBoundary: new Date(startDate.getTime() + (parseInt(spanEl.value, 10) * 1000))
+});
+
+filterStrategy = new OpenLayers.Strategy.Filter({filter: filter});
+
+var flights = new OpenLayers.Layer.Vector("Aircraft Locations", {
+    projection: geographic,
+    strategies: [new OpenLayers.Strategy.Fixed(), filterStrategy],
+    protocol: new OpenLayers.Protocol.HTTP({
+        url: "kml-track.kml",
+        format: new OpenLayers.Format.KML({
+            extractTracks: true
+            //,extractStyles: true // use style from KML instead of styleMap below
+        })
+    }),
+    styleMap: new OpenLayers.StyleMap({
+        "default": new OpenLayers.Style({
+            graphicName: "circle",
+            pointRadius: 3,
+            fillOpacity: 0.25,
+            fillColor: "#ffcc66",
+            strokeColor: "#ff9933",
+            strokeWidth: 1
+        })
+    }),
+    renderers: ["Canvas", "SVG", "VML"]
+});
+
+map.addLayers([osm, flights]);
+map.setCenter(new OpenLayers.LonLat(-93.2735, 44.8349).transform(geographic, mercator), 8);
+
diff --git a/examples/filter.html b/examples/filter.html
index 661ea87..866495f 100644
--- a/examples/filter.html
+++ b/examples/filter.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style>
     #in {
         width: 90%;
@@ -63,6 +67,10 @@
   </head>
   <body>
     <h1 id="title">Filter Encoding</h1>
+    <div id="tags">
+        filter, format, comparison, filter encoding, fe, logical, attribute,
+        attributive, spatial, advanced
+    </div>
     <p id="shortdesc">
         Using the filter format write out filter objects.
     </p>
@@ -88,11 +96,11 @@ filter = new OpenLayers.Filter.Logical({
     ]
 });
     </textarea>
-    <button id="write">write</button><br />
+    <button id="write">write</button><br>
     Filter Encoding 1.0
-    <textarea id="out0"></textarea><br />
+    <textarea id="out0"></textarea><br>
     Filter Encoding 1.1
-    <textarea id="out1"></textarea><br />
+    <textarea id="out1"></textarea><br>
     <p id="docs">
     </p>
   </body>
diff --git a/examples/fractional-zoom.html b/examples/fractional-zoom.html
index af5744a..b01c2d6 100644
--- a/examples/fractional-zoom.html
+++ b/examples/fractional-zoom.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -40,6 +44,7 @@
     <h1 id="title">Fractional Zoom Example</h1>
 
     <div id="tags">
+        zoomlevel, unlimited zoom, scale
     </div>
     <p id="shortdesc">
             Shows the use of a map with fractional (or non-discrete) zoom levels.
@@ -50,7 +55,7 @@
                id="fractional" checked="checked" onclick="update(this)" />
         <label for="fractional">Fractional Zoom</label>
         (zoom: <span id="zoom"></span>)
-        <br /><br />
+        <br><br>
     <div id="docs">
             <p>
             Setting the map.fractionalZoom property to true allows zooming to
diff --git a/examples/fullScreen.html b/examples/fullScreen.html
index 8cfe599..7a92deb 100644
--- a/examples/fullScreen.html
+++ b/examples/fullScreen.html
@@ -1,13 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Full Screen Example</title>        
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
-            body {
+            html, body, #map {
                 margin: 0;
-            }
-            #map {
                 width: 100%;
                 height: 100%;
             }
@@ -17,33 +19,13 @@
                 bottom: 1em;
                 left: 1em;
                 width: 512px;
+                z-index: 20000;
+                background-color: white;
+                padding: 0 0.5em 0.5em 0.5em;
             }
         </style>
         <script src="../lib/OpenLayers.js"></script>
-        <script type="text/javascript">
-            var map;
-            function init(){
-                map = new OpenLayers.Map('map');
-
-            var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
-                    "http://vmap0.tiles.osgeo.org/wms/vmap0",
-                    {layers: 'basic'} );
-            var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic",
-                "http://t1.hypercube.telascience.org/cgi-bin/landsat7", 
-                {layers: "landsat7"});
-
-                var dm_wms = new OpenLayers.Layer.WMS( "DM Solutions Demo",
-                    "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
-                    {layers: "bathymetry,land_fn,park,drain_fn,drainage," +
-                             "prov_bound,fedlimit,rail,road,popplace",
-                     transparent: "true", format: "image/png" });
-
-                map.addLayers([ol_wms, jpl_wms, dm_wms]);
-                map.addControl(new OpenLayers.Control.LayerSwitcher());
-                // map.setCenter(new OpenLayers.LonLat(0, 0), 0);
-                map.zoomToMaxExtent();
-            }
-        </script>
+        <script src="fullScreen.js"></script>
     </head>
     <body onload="init()">
         <div id="map"></div>
@@ -51,15 +33,20 @@
           <div id="text">
               <h1 id="title">Full Screen Example</h1>
 
-              <div id="tags"></div>
+              <div id="tags">
+                css, style, fullscreen, window, margin, padding, scrollbar
+              </div>
 
               <p id="shortdesc">
                 Demonstrate a map that fill the entire browser window.
             </p>
 
             <div id="docs">
-                This example uses CSS to define the dimensions of the map element in order to fill the screen.
-                When the user resizes the window, the map size changes correspondingly. No scroll bars!
+                <p>This example uses CSS to define the dimensions of the map element in order to fill the screen.
+                When the user resizes the window, the map size changes correspondingly. No scroll bars!</p>
+                <p>See the 
+                <a href="fullScreen.js" target="_blank">fullScreen.js source</a> 
+                to see how this is done.</p>
             </div>
         </div>
     </body>
diff --git a/examples/fullScreen.js b/examples/fullScreen.js
new file mode 100644
index 0000000..93ed57a
--- /dev/null
+++ b/examples/fullScreen.js
@@ -0,0 +1,15 @@
+var map;
+function init(){
+    map = new OpenLayers.Map('map');
+
+    var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+        "http://vmap0.tiles.osgeo.org/wms/vmap0",
+        {layers: 'basic'} );
+        var ol_wms_nobuffer = new OpenLayers.Layer.WMS( "OpenLayers WMS (no tile buffer)",
+        "http://vmap0.tiles.osgeo.org/wms/vmap0",
+        {layers: 'basic'}, {buffer: 0});
+
+    map.addLayers([ol_wms, ol_wms_nobuffer]);
+    map.addControl(new OpenLayers.Control.LayerSwitcher());
+    map.setCenter(new OpenLayers.LonLat(0, 0), 6);
+}
diff --git a/examples/game-accel-ball.html b/examples/game-accel-ball.html
new file mode 100644
index 0000000..75aa146
--- /dev/null
+++ b/examples/game-accel-ball.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Game: Bounce Ball</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script src="../lib/OpenLayers.js?mobile"></script>
+    <style type="text/css">
+      html, body { height: 100%; }
+      #shortdesc { display: none; }
+      #tags { display: none; }
+    </style>  
+
+    <script type="text/javascript">
+        var map, vlayer;
+        function adjustLocation(delta, feature) {
+            feature.geometry.move(delta.x, delta.y);
+            var me = map.maxExtent; 
+            var rad = 6;
+            if (feature.geometry.x > (me.right - rad)) { 
+                feature.geometry.x = me.right - rad;
+            } else if (feature.geometry.x < (me.left+rad)) {
+                feature.geometry.x = me.left+rad;
+            } 
+            if (feature.geometry.y > (me.top-rad)) {
+                feature.geometry.y = me.top-rad;
+            } else if (feature.geometry.y < (me.bottom+rad)) {
+                feature.geometry.y = me.bottom+rad;
+            }    
+            vlayer.drawFeature(feature);
+        }
+        function init() {
+            map = new OpenLayers.Map( 'map', 
+                {
+                 'maxExtent': new OpenLayers.Bounds(0, 0, $("map").clientWidth, $("map").clientHeight), 
+                 controls: [], 
+                 maxResolution: 'auto'} 
+            );
+            var layer = new OpenLayers.Layer("",
+                    {isBaseLayer: true} );
+            map.addLayer(layer);
+            map.zoomToMaxExtent();
+            vlayer = new OpenLayers.Layer.Vector();
+            var feature = new OpenLayers.Feature.Vector(
+                new OpenLayers.Geometry.Point(map.getCenter().lon, map.getCenter().lat));
+            vlayer.addFeatures(feature);    
+            map.addLayer(vlayer);
+            if (window.DeviceMotionEvent) {
+                window.addEventListener('devicemotion', function (evt) {
+                    var delta = null;
+                    if (typeof(evt.accelerationIncludingGravity) != 'undefined') {
+                        delta = {
+                            'x': evt.accelerationIncludingGravity.x * 3,
+                            'y': evt.accelerationIncludingGravity.y * 3,
+                            'z': evt.accelerationIncludingGravity.z
+                        }    
+                    }
+                    adjustLocation(delta, feature);
+                }, true);    
+            } else {
+                alert("This demo does not work on your browser.");
+            }    
+        }
+    </script>
+  </head>
+  <body onload="init()">
+    <h1 id="title">Accelerometer Example</h1>
+    <div id="tags">
+      mobile, game
+    </div>  
+    <div id="shortdesc">Simple acceleration demo; roll a vector feature around
+    on a map. (Only tested on iOS 4.)</div>
+
+    <div id="map" width="100%" height="100%" style="background-color: grey"></div>
+    <div id="docs">
+      <p>Demo works best when device is locked in portrait mode.</p> 
+    </div>
+  </body>
+</html>
diff --git a/examples/geojson.html b/examples/geojson.html
index 5197a71..528dd3c 100644
--- a/examples/geojson.html
+++ b/examples/geojson.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -57,6 +61,17 @@
   </head>
   <body onload="init()">
     <h1 id="title">GeoJSON Example</h1>
+    
+    <div id="tags">
+       JSON, GeoJSON
+    </div>
+
+      <p id="shortdesc">
+        Demonstrate the use of the GeoJSON format.
+    </p>
     <div id="map" class="smallmap"></div>
+    <div id="docs">
+        <p>This example uses the GeoJSON format.</p>
+    </div>
   </body>
 </html>
diff --git a/examples/geolocation.html b/examples/geolocation.html
new file mode 100644
index 0000000..673e086
--- /dev/null
+++ b/examples/geolocation.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers Geolocation</title>
+
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <style>
+            .olControlAttribution {
+                bottom: 3px;
+            }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Geolocation Example</h1>
+
+        <div id="tags">
+            geolocation, geolocate, mobile
+        </div>
+
+        <p id="shortdesc">
+            Track  current position and display it with its accuracy.
+        </p>
+
+        <div id="map" class="smallmap"></div>
+        <button id="locate">Locate me!</button>
+        <input type="checkbox" name="track" id="track">
+        <label for="track">Track my position</label>
+        <div id="docs">
+            <p>
+                View the <a href="geolocation.js" target="_blank">geolocation.js source</a>
+                to see how this is done.
+            </p>
+        </div>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="geolocation.js"></script>
+    </body>
+</html>
diff --git a/examples/geolocation.js b/examples/geolocation.js
new file mode 100644
index 0000000..1afc12d
--- /dev/null
+++ b/examples/geolocation.js
@@ -0,0 +1,113 @@
+var style = {
+    fillColor: '#000',
+    fillOpacity: 0.1,
+    strokeWidth: 0
+};
+
+var map = new OpenLayers.Map('map');
+var layer = new OpenLayers.Layer.OSM( "Simple OSM Map");
+var vector = new OpenLayers.Layer.Vector('vector');
+map.addLayers([layer, vector]);
+
+map.setCenter(
+    new OpenLayers.LonLat(-71.147, 42.472).transform(
+        new OpenLayers.Projection("EPSG:4326"),
+        map.getProjectionObject()
+    ), 12
+);
+
+var pulsate = function(feature) {
+    var point = feature.geometry.getCentroid(),
+        bounds = feature.geometry.getBounds(),
+        radius = Math.abs((bounds.right - bounds.left)/2),
+        count = 0,
+        grow = 'up';
+
+    var resize = function(){
+        if (count>16) {
+            clearInterval(window.resizeInterval);
+        }
+        var interval = radius * 0.03;
+        var ratio = interval/radius;
+        switch(count) {
+            case 4:
+            case 12:
+                grow = 'down'; break;
+            case 8:
+                grow = 'up'; break;
+        }
+        if (grow!=='up') {
+            ratio = - Math.abs(ratio);
+        }
+        feature.geometry.resize(1+ratio, point);
+        vector.drawFeature(feature);
+        count++;
+    };
+    window.resizeInterval = window.setInterval(resize, 50, point, radius);
+};
+
+var geolocate = new OpenLayers.Control.Geolocate({
+    bind: false,
+    geolocationOptions: {
+        enableHighAccuracy: false,
+        maximumAge: 0,
+        timeout: 7000
+    }
+});
+map.addControl(geolocate);
+var firstGeolocation = true;
+geolocate.events.register("locationupdated",geolocate,function(e) {
+    vector.removeAllFeatures();
+    var circle = new OpenLayers.Feature.Vector(
+        OpenLayers.Geometry.Polygon.createRegularPolygon(
+            new OpenLayers.Geometry.Point(e.point.x, e.point.y),
+            e.position.coords.accuracy/2,
+            40,
+            0
+        ),
+        {},
+        style
+    );
+    vector.addFeatures([
+        new OpenLayers.Feature.Vector(
+            e.point,
+            {},
+            {
+                graphicName: 'cross',
+                strokeColor: '#f00',
+                strokeWidth: 2,
+                fillOpacity: 0,
+                pointRadius: 10
+            }
+        ),
+        circle
+    ]);
+    if (firstGeolocation) {
+        map.zoomToExtent(vector.getDataExtent());
+        pulsate(circle);
+        firstGeolocation = false;
+        this.bind = true;
+    }
+});
+geolocate.events.register("locationfailed",this,function() {
+    OpenLayers.Console.log('Location detection failed');
+});
+
+$('locate').onclick = function() {
+    vector.removeAllFeatures();
+    geolocate.deactivate();
+    $('track').checked = false;
+    geolocate.watch = false;
+    firstGeolocation = true;
+    geolocate.activate();
+};
+$('track').onclick = function() {
+    vector.removeAllFeatures();
+    geolocate.deactivate();
+    if (this.checked) {
+        geolocate.watch = true;
+        firstGeolocation = true;
+        geolocate.activate();
+    }
+};
+$('track').checked = false;
diff --git a/examples/georss-flickr.html b/examples/georss-flickr.html
index 8c4426e..94da994 100644
--- a/examples/georss-flickr.html
+++ b/examples/georss-flickr.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olPopupContent {
             font-size: smaller;
@@ -94,7 +98,23 @@
   </head>
   <body onload="init()">
     <h1 id="title">GeoRSS from Flickr in OpenLayers</h1>
-    <p>The displayed GeoRSS feed has a <tt><media:thumbnail/></tt> property for each item. An extended <tt>createFeatureFromItem()</tt> function is used to add this attribute to the attributes hash of each feature read in by <tt>OpenLayers.Format.GeoRSS</tt>. The example is configured with a style to render each item with its thumbnail image. Also, to show how rules work, we defined a rule that if the title of an rss item contains "powder", it will be rendered larger than the others.</p>
+    <div id="tags">
+        georss, style, styling, marker, flickr, thumbnail, image, rule
+    </div>
+
+    <p id="shortdesc">
+        Display a flickr-feed on top of the map
+    </p>
+    
     <div id="map" class="smallmap"></div>
+    <div id="docs">
+    <p>The displayed GeoRSS feed has a <tt><media:thumbnail/></tt> 
+    property for each item. An extended <tt>createFeatureFromItem()</tt> 
+    function is used to add this attribute to the attributes hash of each 
+    feature read in by <tt>OpenLayers.Format.GeoRSS</tt>. The example is 
+    configured with a style to render each item with its thumbnail image. 
+    Also, to show how rules work, we defined a rule that if the title of an 
+    rss item contains "powder", it will be rendered larger than the others.</p>
+    </div>
   </body>
 </html>
diff --git a/examples/georss-markers.html b/examples/georss-markers.html
index 32e96e8..3800100 100644
--- a/examples/georss-markers.html
+++ b/examples/georss-markers.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers GeoRSS Marker Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -17,7 +21,7 @@
             map.addControl(new OpenLayers.Control.LayerSwitcher());
             var newl = new OpenLayers.Layer.GeoRSS( 'GeoRSS', 'georss.xml');
             map.addLayer(newl);
-            var yelp = new OpenLayers.Icon("http://openlayers.org/~crschmidt/yelp.png", new OpenLayers.Size(20,29));
+            var yelp = new OpenLayers.Icon("http://www.openlayers.org/images/OpenLayers.trac.png", new OpenLayers.Size(49,44));
             var newl = new OpenLayers.Layer.GeoRSS( 'Yelp GeoRSS', 'yelp-georss.xml', {'icon':yelp});
             map.addLayer(newl);
         }
@@ -26,7 +30,9 @@
   <body onload="init()">
     <h1 id="title">GeoRSS Marker Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        georss, style, styling, marker, flickr, image
+    </div>
 
     <p id="shortdesc">
         Demonstrate loading a GeoRSS feed using the GeoRSS parser.
diff --git a/examples/georss.html b/examples/georss.html
index 0bf866a..816fcf6 100644
--- a/examples/georss.html
+++ b/examples/georss.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers GeoRSS Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -29,7 +33,9 @@
   <body onload="init()">
     <h1 id="title">GeoRSS Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        georss, style, styling, marker
+    </div>
 
     <p id="shortdesc">
         Display a couple of locally cached georss feeds on an a basemap.
@@ -41,16 +47,16 @@
         <p>This demo uses the OpenLayers GeoRSS parser, which supports GeoRSS Simple and W3C GeoRSS. Only points are
         currently supported.  The OpenLayers GeoRSS parser will automatically connect an information bubble to the map
         markers, similar to Google maps.  In addition, the parser can use custom PNG icons for markers.  A sample GeoRSS
-        file (georss.xml) is included.
+        file (georss.xml) is included.</p>
 
         <form onsubmit="return false;">
                GeoRSS URL: <input type="text" id="url" size="50" value="georss.xml" />
-               <input type="submit" onclick="addUrl(); return false;" value="Load Feed" onsubmit="addUrl(); return false;" />
+               <input type="submit" onclick="addUrl(); return false;" value="Load Feed" onsubmit="addUrl(); return false;">
         </form>
 
-        <p>The above input box allows the input of a URL to a GeoRSS feed. This feed can be local to the HTML page --
+        <p>The above input box allows the input of a URL to a GeoRSS feed. This feed can be local to the HTML page —
         for example, entering 'georss.xml' will work by default, because there is a local file in the directory called
-        georss.xml -- or, with a properly set up ProxyHost variable (as is used here), it will be able to load any
+        georss.xml — or, with a properly set up ProxyHost variable (as is used here), it will be able to load any
         HTTP URL which contains GeoRSS and display it. Anything else will simply have no effect.</p>
     </div>
   </body>
diff --git a/examples/getfeature-wfs.html b/examples/getfeature-wfs.html
index 9141748..0f2096f 100644
--- a/examples/getfeature-wfs.html
+++ b/examples/getfeature-wfs.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <title>WFS: GetFeature Example (GeoServer)</title>
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
@@ -18,8 +22,8 @@
             });
             layer = new OpenLayers.Layer.WMS(
                 "States WMS/WFS",
-                "http://demo.opengeo.org/geoserver/ows",
-                {layers: 'topp:states', format: 'image/gif'}
+                "http://v2.suite.opengeo.org/geoserver/ows",
+                {layers: 'usa:states', format: 'image/gif'}
             );
             select = new OpenLayers.Layer.Vector("Selection", {styleMap: 
                 new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
@@ -57,6 +61,7 @@
 <h1 id="title">WFS GetFeature Example (GeoServer)</h1>
 
 <div id="tags">
+WFS, GetFeature
 </div>
 
 <p id="shortdesc">
@@ -75,9 +80,5 @@
         of GetFeature requests to be issued.
     </p>
 </div>
-  </body>
-</html>
-
-
-
-</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/examples/getfeatureinfo-control.html b/examples/getfeatureinfo-control.html
index 4943cdb..96993ff 100644
--- a/examples/getfeatureinfo-control.html
+++ b/examples/getfeatureinfo-control.html
@@ -1,9 +1,13 @@
+<!DOCTYPE html>
 <html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers WMS Feature Info Example (GeoServer)</title>
     <script src="../lib/OpenLayers.js"></script>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         ul, li {
             padding-left: 0px;
@@ -42,7 +46,7 @@
 
 
     </style>
-  <script defer="defer" type="text/javascript">
+    <script defer="defer" type="text/javascript">
     OpenLayers.ProxyHost = "proxy.cgi?url=";
     
     var map, infocontrols, water, highlightlayer;
@@ -155,12 +159,14 @@
     }
 
     // function toggle(key
-  </script>
+    </script>
   </head>
   <body onload="load()">
       <h1 id="title">Feature Info Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+        WMS, GetFeatureInfo
+      </div>
 
       <p id="shortdesc">
         Demonstrates the WMSGetFeatureInfo control for fetching information about a position from WMS (via GetFeatureInfo request).
diff --git a/examples/getfeatureinfo-popup.html b/examples/getfeatureinfo-popup.html
index 16476b7..cecdebe 100644
--- a/examples/getfeatureinfo-popup.html
+++ b/examples/getfeatureinfo-popup.html
@@ -1,9 +1,13 @@
+<!DOCTYPE html>
 <html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>GetFeatureInfo Popup</title>
     <script src="../lib/OpenLayers.js"></script>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script>
     OpenLayers.ProxyHost = "proxy.cgi?url=";
     
@@ -75,7 +79,9 @@
   <body onload="load()">
       <h1 id="title">Feature Info in Popup</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+        WMS, GetFeatureInfo, popup
+      </div>
 
       <p id="shortdesc">
         Demonstrates the WMSGetFeatureInfo control for fetching information
diff --git a/examples/getfeatureinfo.html b/examples/getfeatureinfo.html
deleted file mode 100644
index bfe56bf..0000000
--- a/examples/getfeatureinfo.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<html>
-  <head>
-    <title>OpenLayers Feature Info Example</title>
-    <script src="../lib/OpenLayers.js"></script>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <style type="text/css">
-        ul, li { padding-left: 0px; margin-left: 0px; }
-    </style>
-  </head>
-  <body>
-      <h1 id="title">Feature Info Example</h1>
-
-      <div id="tags"></div>
-
-      <p id="shortdesc">
-        Demonstrates sending a GetFeatureInfo query to an OWS. Returns information about a map feature in the side DIV.
-      </p>
-
-    <a id="permalink" href="">Permalink</a><br />
-
-    <div style="float:right;width:28%">
-        <h1 style="font-size:1.3em;">CIA Factbook</h1>
-        <p style="font-size:.8em;">Click a country to see statistics about the country below.</p>
-        <div id="nodeList">
-        </div>
-    </div>
-      <div id="map" class="smallmap"></div>
-
-  <script defer="defer" type="text/javascript">
-    OpenLayers.ProxyHost = "/dev/examples/proxy.cgi?url=";
-    var map = new OpenLayers.Map('map', {'maxResolution':'auto'});
-
-    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
-        "http://world.freemap.in/cgi-bin/mapserv?map=/www/freemap.in/world/map/factbook.map", {'layers': 'factbook'} );
-    map.addLayer(wms);
-    map.addControl(new OpenLayers.Control.Permalink('permalink'));
-    map.zoomToMaxExtent();
-    map.events.register('click', map, function (e) {
-            OpenLayers.Util.getElement('nodeList').innerHTML = "Loading... please wait...";
-            var url =  wms.getFullRequestString({
-                            REQUEST: "GetFeatureInfo",
-                            EXCEPTIONS: "application/vnd.ogc.se_xml",
-                            BBOX: wms.map.getExtent().toBBOX(),
-                            X: e.xy.x,
-                            Y: e.xy.y,
-                            INFO_FORMAT: 'text/html',
-                            QUERY_LAYERS: wms.params.LAYERS,
-                            WIDTH: wms.map.size.w,
-                            HEIGHT: wms.map.size.h});
-            OpenLayers.loadURL(url, '', this, setHTML);
-            OpenLayers.Event.stop(e);
-      });
-    function setHTML(response) {
-        OpenLayers.Util.getElement('nodeList').innerHTML = response.responseText;
-    }
-  </script>
-
-    <div id="docs">
-    </div>
-  </body>
-</html>
diff --git a/examples/gml-layer.html b/examples/gml-layer.html
index ae9ea0a..eea465d 100644
--- a/examples/gml-layer.html
+++ b/examples/gml-layer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
       <title>OpenLayers GML Layer Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -23,11 +27,13 @@
   <body onload="init()">
       <h1 id="title">GML Layer Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+        GML
+      </div>
 
       <p id="shortdesc">
           Loads locally stored GML vector data on a basemap. Includes GML example file.
-    </p>
+      </p>
 
     <div id="map" class="smallmap"></div>
 
diff --git a/examples/google-reproject.html b/examples/google-reproject.html
index 4272752..1606e6e 100644
--- a/examples/google-reproject.html
+++ b/examples/google-reproject.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Google with Overlay Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <!-- this gmaps key generated for http://openlayers.org/dev/ -->
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
     <script src="../lib/OpenLayers.js"></script>
@@ -37,7 +41,9 @@
   <body onload="init()">
     <h1 id="title">Google with Overlay Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        Google, overlay, mercator, reproject, cleanup
+    </div>
 
     <p id="shortdesc">
         Demonstrate a Google basemap used with boundary overlay layer.
@@ -46,12 +52,12 @@
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        An overlay in a Geographic projection can be stretched to somewhat
+        <p>An overlay in a Geographic projection can be stretched to somewhat
         line up with Google tiles (in a Mercator projection).  Results get
         worse farther from the equator.  Use the "reproject" option on a
         layer to get this behavior.  Use the sphericalMercator option on
         a Google layer to get proper overlays (with other layers in
-        Spherical Mercator).
+        Spherical Mercator).</p>
     </div>
   </body>
 </html>
diff --git a/examples/google-v3-alloverlays.html b/examples/google-v3-alloverlays.html
index 08b360b..10dcde4 100644
--- a/examples/google-v3-alloverlays.html
+++ b/examples/google-v3-alloverlays.html
@@ -1,6 +1,9 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Google (v3) Layer Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
@@ -11,6 +14,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">Google (v3) allOverlays Layer Example</h1>
+        <div id="tags">
+            Google, overlay
+        </div>
         <p id="shortdesc">
             Demonstrate use the Google Maps v3 API with allOverlays set to true on the map.
         </p>
diff --git a/examples/google-v3.html b/examples/google-v3.html
index 0b65073..c074bb6 100644
--- a/examples/google-v3.html
+++ b/examples/google-v3.html
@@ -1,21 +1,29 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Google (v3) Layer Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
         <link rel="stylesheet" href="style.css" type="text/css">
-        <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
+        <script src="http://maps.google.com/maps/api/js?v=3.5&sensor=false"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="google-v3.js"></script>
     </head>
     <body onload="init()">
         <h1 id="title">Google (v3) Layer Example</h1>
+        <div id="tags">
+            Google, api key, apikey
+        </div>
         <p id="shortdesc">
             Demonstrate use the Google Maps v3 API.
         </p>
         <div id="map" class="smallmap"></div>
         <div id="docs">
+            <p><input id="animate" type="checkbox" checked="checked">Animated
+                zoom (if supported by GMaps on your device)</input></p>
             <p>
                 If you use the Google Maps v3 API with a Google layer, you don't
                 need to include an API key.  This layer only works in the 
diff --git a/examples/google-v3.js b/examples/google-v3.js
index 9c173e3..4d4cd20 100644
--- a/examples/google-v3.js
+++ b/examples/google-v3.js
@@ -29,4 +29,12 @@ function init() {
         new OpenLayers.Projection("EPSG:4326"),
         map.getProjectionObject()
     ), 5);
+    
+    // add behavior to html
+    var animate = document.getElementById("animate");
+    animate.onclick = function() {
+        for (var i=map.layers.length-1; i>=0; --i) {
+            map.layers[i].animationEnabled = this.checked;
+        }
+    };
 }
diff --git a/examples/google.html b/examples/google.html
index 3adc50f..e6e20b2 100644
--- a/examples/google.html
+++ b/examples/google.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Google Layer Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="../theme/default/google.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <!-- this gmaps key generated for http://openlayers.org/dev/ -->
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
     <script src="../lib/OpenLayers.js"></script>
@@ -41,7 +45,9 @@
   <body onload="init()">
     <h1 id="title">Google Layer Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        Google
+    </div>
 
     <p id="shortdesc">
         Demonstrate use of the various types of Google layers.
diff --git a/examples/graphic-name.html b/examples/graphic-name.html
index cef30c2..033f71a 100644
--- a/examples/graphic-name.html
+++ b/examples/graphic-name.html
@@ -1,89 +1,42 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers Graphic Names</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        // user custom graphicname
-        
-        OpenLayers.Renderer.symbol.lightning = [0,0, 4,2, 6,0, 10,5, 6,3, 4,5, 0,0];
-        OpenLayers.Renderer.symbol.rectangle = [0,0, 4,0, 4,10, 0,10, 0,0];
-            
-        var map;
-
-        function init() {
-            map = new OpenLayers.Map('map');
-
-            // list of well-known graphic names
-            var graphics = ["star", "cross", "x", "square", "triangle", "circle", "lightning", "rectangle"];
-            
-            // Create one feature for each well known graphic.
-            // Give features a type attribute with the graphic name.
-            var num = graphics.length;
-            var slot = map.maxExtent.getWidth() / num;
-            var features = Array(num);
-            for(var i=0; i<graphics.length; ++i) {
-                lon = map.maxExtent.left + (i * slot) + (slot / 2);
-                features[i] = new OpenLayers.Feature.Vector(
-                    new OpenLayers.Geometry.Point(
-                        map.maxExtent.left + (i * slot) + (slot / 2), 0
-                    ), {
-                        type: graphics[i]
-                    }
-                );
-            }
-            
-            // Create a style map for painting the features.
-            // The graphicName property of the symbolizer is evaluated using
-            // the type attribute on each feature (set above).
-            var styles = new OpenLayers.StyleMap({
-                "default": {
-                    graphicName: "${type}",
-                    pointRadius: 10,
-                    strokeColor: "fuchsia",
-                    strokeWidth: 2,
-                    fillColor: "lime",
-                    fillOpacity: 0.6
-                },
-                "select": {
-                    pointRadius: 20,
-                    fillOpacity: 1,
-                    rotation: 45
-                }
-            });
-
-            // Create a vector layer and give it your style map.
-            var layer = new OpenLayers.Layer.Vector(
-                "Graphics", {styleMap: styles, isBaseLayer: true}
-            );
-            layer.addFeatures(features);
-            map.addLayer(layer);
-            
-            // Create a select feature control and add it to the map.
-            var select = new OpenLayers.Control.SelectFeature(layer, {hover: true});
-            map.addControl(select);
-            select.activate();
-            
-            map.setCenter(new OpenLayers.LonLat(0, 0), 0);
-        }
-    </script>
-  </head>
-  <body onload="init()">
-    <h1 id="title">Named Graphics Example</h1>
-
-    <div id="tags"></div>
-
-    <p id="shortdesc">
-        Shows how to use well-known graphic names.
-    </p>
-
-    <div id="map" class="smallmap"></div>
-
-    <div id="docs">
-        OpenLayers supports well-known names for a few graphics.  You can use
-        the names "star", "cross", "x", "square", "triangle", and "circle" as
-        the value for the graphicName property of a symbolizer.
-    </div>
-  </body>
-</html>
\ No newline at end of file
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <title>OpenLayers Graphic Names</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js" type="text/javascript"></script>
+        <script src="./graphic-name.js" type="text/javascript"></script>
+    </head>
+    <body onload="init();">
+        <h1 id="title">Named Graphics Example</h1>
+        <div id="tags">
+            vector, named graphic, star, cross, x, square, triangle, circle, style
+        </div>
+        <p id="shortdesc">
+            Shows how to use well-known graphic names.
+        </p>
+        <div id="map" class="smallmap">
+        </div>
+        <div id="docs">
+            <p>
+                OpenLayers supports well-known names for a few graphics.  You 
+                can use the names "star", "cross", 
+                "x", "square", "triangle", and 
+                "circle" as value for the graphicName property of a 
+                symbolizer.
+            </p>
+            <p>
+                The named symbols "lightning", "rectangle" 
+                and "church" are user defined.
+            </p>
+            <p>
+                See <a href="./graphic-name.js">graphic-name.js</a>
+                for the source code of this example.
+            </p>
+        </div>
+    </body>
+</html>
diff --git a/examples/graphic-name.js b/examples/graphic-name.js
new file mode 100644
index 0000000..9349ed2
--- /dev/null
+++ b/examples/graphic-name.js
@@ -0,0 +1,62 @@
+// user custom graphicname
+OpenLayers.Renderer.symbol.lightning = [0, 0, 4, 2, 6, 0, 10, 5, 6, 3, 4, 5, 0, 0];
+OpenLayers.Renderer.symbol.rectangle = [0, 0, 4, 0, 4, 10, 0, 10, 0, 0];
+OpenLayers.Renderer.symbol.church = [4, 0, 6, 0, 6, 4, 10, 4, 10, 6, 6, 6, 6, 14, 4, 14, 4, 6, 0, 6, 0, 4, 4, 4, 4, 0];
+var map;
+
+function init(){
+    map = new OpenLayers.Map('map', {
+        controls: []
+    });
+    
+    // list of well-known graphic names
+    var graphics = ["star", "cross", "x", "square", "triangle", "circle", "lightning", "rectangle", "church"];
+    
+    // Create one feature for each well known graphic.
+    // Give features a type attribute with the graphic name.
+    var num = graphics.length;
+    var slot = map.maxExtent.getWidth() / num;
+    var features = Array(num);
+    for (var i = 0; i < graphics.length; ++i) {
+        lon = map.maxExtent.left + (i * slot) + (slot / 2);
+        features[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(map.maxExtent.left + (i * slot) + (slot / 2), 0), {
+            type: graphics[i]
+        });
+    }
+    
+    // Create a style map for painting the features.
+    // The graphicName property of the symbolizer is evaluated using
+    // the type attribute on each feature (set above).
+    var styles = new OpenLayers.StyleMap({
+        "default": {
+            graphicName: "${type}",
+            pointRadius: 10,
+            strokeColor: "fuchsia",
+            strokeWidth: 2,
+            fillColor: "lime",
+            fillOpacity: 0.6
+        },
+        "select": {
+            pointRadius: 20,
+            fillOpacity: 1,
+            rotation: 45
+        }
+    });
+    
+    // Create a vector layer and give it your style map.
+    var layer = new OpenLayers.Layer.Vector("Graphics", {
+        styleMap: styles,
+        isBaseLayer: true
+    });
+    layer.addFeatures(features);
+    map.addLayer(layer);
+    
+    // Create a select feature control and add it to the map.
+    var select = new OpenLayers.Control.SelectFeature(layer, {
+        hover: true
+    });
+    map.addControl(select);
+    select.activate();
+    
+    map.zoomToMaxExtent();
+}
diff --git a/examples/graticule.html b/examples/graticule.html
index 2dcd458..6f993ac 100644
--- a/examples/graticule.html
+++ b/examples/graticule.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Graticule Example</title>
 
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #map {
                 width: 600px;
@@ -89,6 +93,7 @@
         <h1 id="title">Graticule Example</h1>
 
         <div id="tags">
+          graticule, grid
         </div>
 
         <p id="shortdesc">
diff --git a/examples/gutter.html b/examples/gutter.html
index d769388..ea53854 100644
--- a/examples/gutter.html
+++ b/examples/gutter.html
@@ -1,8 +1,12 @@
+<!DOCTYPE html>
 <html>
   <head>
-      <title>OpenLayers Gutter Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Gutter Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         p.caption {
             width: 512px;
@@ -33,7 +37,9 @@
   <body>
     <h1 id="title">Gutter Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        gutter, quality, tile
+    </div>
 
     <p id="shortdesc">
         Demonstrates map tiling artifacts, and OpenLayer's facility for correcting this distortion.
diff --git a/examples/highlight-feature.html b/examples/highlight-feature.html
index cf7869c..73cae24 100644
--- a/examples/highlight-feature.html
+++ b/examples/highlight-feature.html
@@ -1,8 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>SelectFeature Control for Select and Highlight</title> 
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css">
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controlToggle li {
             list-style: none;
@@ -70,6 +77,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Select and Highlight Feature Example</h1>
+    <div id="tags">
+        select, highlight, hover, onmouseover, click, vector
+    </div>
     <p id="shortdesc">
       Select features on click, highlight features on hover.
     </p>  
diff --git a/examples/hover-handler.html b/examples/hover-handler.html
index 695f479..84d7f1c 100644
--- a/examples/hover-handler.html
+++ b/examples/hover-handler.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Hover Handler Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />        
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">        
         <style type="text/css">
             #map {
                 width: 340px;
@@ -143,6 +147,7 @@
         <div id="west">
     
             <div id="tags">
+                hover, onmouseover, handler, listener, event, events
             </div>
     
             <p id="shortdesc">
diff --git a/examples/image-layer.html b/examples/image-layer.html
index fe0d542..3d9bbf2 100644
--- a/examples/image-layer.html
+++ b/examples/image-layer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-      <title>OpenLayers Image Layer Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Image Layer Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         p.caption {
             width: 512px;
@@ -47,7 +51,9 @@
   <body onload="init()">
     <h1 id="title">Image Layer Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        image, imagelayer
+    </div>
 
     <p id="shortdesc">
         Demonstrate a single non-tiled image as a selectable base layer.
diff --git a/examples/img/check-round-green.png b/examples/img/check-round-green.png
new file mode 100644
index 0000000..176fed1
Binary files /dev/null and b/examples/img/check-round-green.png differ
diff --git a/examples/img/check-round-grey.png b/examples/img/check-round-grey.png
new file mode 100644
index 0000000..dc90efb
Binary files /dev/null and b/examples/img/check-round-grey.png differ
diff --git a/examples/img/list.png b/examples/img/list.png
new file mode 100644
index 0000000..f214206
Binary files /dev/null and b/examples/img/list.png differ
diff --git a/examples/img/locate.png b/examples/img/locate.png
new file mode 100644
index 0000000..c61b499
Binary files /dev/null and b/examples/img/locate.png differ
diff --git a/examples/marker_shadow.png b/examples/img/marker_shadow.png
similarity index 100%
rename from examples/marker_shadow.png
rename to examples/img/marker_shadow.png
diff --git a/examples/img/minus1.png b/examples/img/minus1.png
new file mode 100644
index 0000000..df446c7
Binary files /dev/null and b/examples/img/minus1.png differ
diff --git a/examples/img/mobile-layers.png b/examples/img/mobile-layers.png
new file mode 100644
index 0000000..c4a6335
Binary files /dev/null and b/examples/img/mobile-layers.png differ
diff --git a/examples/img/mobile-loc.png b/examples/img/mobile-loc.png
new file mode 100644
index 0000000..c2d89a7
Binary files /dev/null and b/examples/img/mobile-loc.png differ
diff --git a/examples/img/mobile-zoombar.png b/examples/img/mobile-zoombar.png
new file mode 100644
index 0000000..ff8e049
Binary files /dev/null and b/examples/img/mobile-zoombar.png differ
diff --git a/examples/img/openlayers.png b/examples/img/openlayers.png
new file mode 100644
index 0000000..f7800fe
Binary files /dev/null and b/examples/img/openlayers.png differ
diff --git a/examples/popupMatrix.jpg b/examples/img/popupMatrix.jpg
similarity index 100%
rename from examples/popupMatrix.jpg
rename to examples/img/popupMatrix.jpg
diff --git a/examples/small.jpg b/examples/img/small.jpg
similarity index 100%
rename from examples/small.jpg
rename to examples/img/small.jpg
diff --git a/examples/thinlong.jpg b/examples/img/thinlong.jpg
similarity index 100%
rename from examples/thinlong.jpg
rename to examples/img/thinlong.jpg
diff --git a/examples/widelong.jpg b/examples/img/widelong.jpg
similarity index 100%
rename from examples/widelong.jpg
rename to examples/img/widelong.jpg
diff --git a/examples/wideshort.jpg b/examples/img/wideshort.jpg
similarity index 100%
rename from examples/wideshort.jpg
rename to examples/img/wideshort.jpg
diff --git a/examples/intersects.html b/examples/intersects.html
index 2c70648..31bdee0 100644
--- a/examples/intersects.html
+++ b/examples/intersects.html
@@ -1,8 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Geometry Intersections</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css">
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         html, body {
             margin: 0;
@@ -161,6 +168,9 @@
   <body onload="init()">
     <div id="leftcol">
         <h1 id="title">OpenLayers Geometry Intersection Example</h1>
+        <div id="tags">
+            intersection, geometry
+        </div>
         <p id="shortdesc">
             Use of geometry.intersects method for testing geometry intersections.
         </p>
@@ -172,11 +182,11 @@
         </div>
     </div>
     <div id="info">
-        Features
-        <input type="button" value="refresh" onclick="serialize();" /><br />
+        <p>Features</p>
+        <input type="button" value="refresh" onclick="serialize();"><br>
         <textarea id="features"></textarea>
-        Intersections
-        <input type="button" value="intersect all" onclick="intersect();" /><br />
+        <p>Intersections</p>
+        <input type="button" value="intersect all" onclick="intersect();"><br>
         <textarea id="intersections"></textarea>
     </div>
   </body>
diff --git a/examples/kamap.html b/examples/kamap.html
index d823922..9219375 100644
--- a/examples/kamap.html
+++ b/examples/kamap.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers KaMap Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -26,7 +30,9 @@
   <body onload="init()">
     <h1 id="title">KaMap Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        KaMap
+    </div>
 
     <p id="shortdesc">
         Demonstrate a tiled kamap layer as the base map, which can be pre-cached for higher performance.
diff --git a/examples/kinetic.html b/examples/kinetic.html
new file mode 100644
index 0000000..19919ae
--- /dev/null
+++ b/examples/kinetic.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>OpenLayers Kinetic Dragging Example</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+  </head>
+  <body>
+      <h1 id="title">Kinetic Dragging Example</h1>
+
+      <div id="tags">
+          kinetic, dragging
+      </div>
+
+      <p id="shortdesc">
+        Demonstrates Kinetic Dragging.
+      </p>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>
+            OpenLayers Kinetic Dragging inspired from <a href="http://www.tile5.org">Tile5</a>, and
+            <a href="http://code.google.com/p/kineticscrolling/">kineticscrolling</a> for Google Maps API V3.
+        </p><p>
+            As shown in this example Kinetic Dragging is enabled by setting
+            <code>enableKinetic</code> to true in the config object provided to the
+            <code>Control.DragPan</code> constructor. When using
+            <code>Control.Navigation</code> or <code>Control.TouchNavigation</code>
+            providing options to the underlying <code>Control.DragPan</code>
+            instance is done through the <code>dragPanOptions</code> config
+            property.
+        </p><p>
+            View the <a href="kinetic.js" target="_blank">kinetic.js source</a>
+            to see how this is done.
+        </p>
+    </div>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="kinetic.js"></script>
+  </body>
+</html>
diff --git a/examples/kinetic.js b/examples/kinetic.js
new file mode 100644
index 0000000..b61faa2
--- /dev/null
+++ b/examples/kinetic.js
@@ -0,0 +1,28 @@
+var map = new OpenLayers.Map({
+    div: "map",
+    resolutions: [0.087890625, 0.0439453125, 0.02197265625, 0.010986328125],
+    panDuration: 100,
+    controls: [
+        new OpenLayers.Control.Navigation(
+            {dragPanOptions: {enableKinetic: true}}
+        )
+    ]
+});
+var layer = new OpenLayers.Layer.TileCache("TileCache Layer",
+    ["http://c0.tilecache.osgeo.org/wms-c/cache/",
+     "http://c1.tilecache.osgeo.org/wms-c/cache/",
+     "http://c2.tilecache.osgeo.org/wms-c/cache/",
+     "http://c3.tilecache.osgeo.org/wms-c/cache/",
+     "http://c4.tilecache.osgeo.org/wms-c/cache/"],
+    "basic",
+    {
+        serverResolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625,
+                            0.0439453125, 0.02197265625, 0.010986328125,
+                            0.0054931640625, 0.00274658203125, 0.001373291015625,
+                            0.0006866455078125, 0.00034332275390625, 0.000171661376953125,
+                            0.0000858306884765625, 0.00004291534423828125, 0.000021457672119140625],
+        buffer: 4
+    }
+);
+map.addLayer(layer);
+map.setCenter(new OpenLayers.LonLat(0, 0), 0);
\ No newline at end of file
diff --git a/examples/kml-layer.html b/examples/kml-layer.html
index e4e8e8a..5ae07da 100644
--- a/examples/kml-layer.html
+++ b/examples/kml-layer.html
@@ -1,43 +1,36 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        var lon = 5;
-        var lat = 40;
-        var zoom = 5;
-        var map, layer;
-
-        function init(){
-            map = new OpenLayers.Map('map');
-            layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
-                    "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
-            map.addLayer(layer);
-            map.addLayer(new OpenLayers.Layer.GML("KML", "kml/lines.kml", 
-               {
-                format: OpenLayers.Format.KML, 
-                formatOptions: {
-                  extractStyles: true, 
-                  extractAttributes: true,
-                  maxDepth: 2
-                }
-               }));
-            map.zoomToExtent(new OpenLayers.Bounds(-112.306698,36.017792,-112.03204,36.18087));
-        }
-    </script>
-  </head>
-  <body onload="init()">
-      <h1 id="title">KML Layer Example</h1>
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+    </head>
+    <body>
+    <h1 id="title">KML Layer Example</h1>
 
-      <div id="tags"></div>
+    <div id="tags">KML</div>
 
-      <p id="shortdesc">
-          Demonstrates loading and displaying a KML file on top of a basemap.
+    <p id="shortdesc">
+        Demonstrates loading and displaying a KML file on top of a basemap.
     </p>
 
     <div id="map" class="smallmap"></div>
 
-    <div id="docs"></div>
-  </body>
+    <div id="docs">
+        <p>
+            A vector layer can be populated with features from a KML document
+            by configuring the layer with an HTTP protocol that points to the 
+            KML document and is configured with a KML format for parsing features.
+            The fixed strategy is used to load all features at once.
+        </p>
+        <p>
+            View the <a href="kml-layer.js" target="_blank">kml-layer.js</a>
+            source to see how this is done.
+        </p>
+    </div>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="kml-layer.js"></script>
+    </body>
 </html>
diff --git a/examples/kml-layer.js b/examples/kml-layer.js
new file mode 100644
index 0000000..1b0e85e
--- /dev/null
+++ b/examples/kml-layer.js
@@ -0,0 +1,22 @@
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
+            {layers: "basic"}
+        ),
+        new OpenLayers.Layer.Vector("KML", {
+            strategies: [new OpenLayers.Strategy.Fixed()],
+            protocol: new OpenLayers.Protocol.HTTP({
+                url: "kml/lines.kml",
+                format: new OpenLayers.Format.KML({
+                    extractStyles: true, 
+                    extractAttributes: true,
+                    maxDepth: 2
+                })
+            })
+        })
+    ],
+    center: new OpenLayers.LonLat(-112.169, 36.099),
+    zoom: 11
+});
diff --git a/examples/kml-pointtrack.html b/examples/kml-pointtrack.html
new file mode 100644
index 0000000..a3bad5a
--- /dev/null
+++ b/examples/kml-pointtrack.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers KML Track in a PointTrack Layer Example</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <style>
+            .olControlAttribution {
+                bottom: 2px;
+            }
+        </style>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="kml-pointtrack.js"></script>
+    </head>
+    <body onload="init()">
+        <h1 id="title">Parsing gx:Track in KML</h1>
+        <p id="shortdesc">
+            Demonstrates populating a PointTrack layer with gx:Track elements from KML.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                If a KML document contains <code><gx:Track></code> 
+                elements and the extractTracks property is set true on the 
+                parser, features will be created that represent track points.
+                These track points can easily be visualized as track lines with
+                a <code>PointTrack</code> layer, preserving the KML's original
+                styles.
+            </p>
+            <p>
+                View the <a href="kml-pointtrack.js" target="_blank">kml-pointtrack.js</a>
+                source to see how this is done.
+            </p>
+        </div>
+    </body>
+</html>
diff --git a/examples/kml-pointtrack.js b/examples/kml-pointtrack.js
new file mode 100644
index 0000000..47836f2
--- /dev/null
+++ b/examples/kml-pointtrack.js
@@ -0,0 +1,51 @@
+var map;
+
+function init() {
+
+    var mercator = new OpenLayers.Projection("EPSG:900913");
+    var geographic = new OpenLayers.Projection("EPSG:4326");
+
+    map = new OpenLayers.Map({
+        div: "map",
+        projection: mercator,
+        layers: [
+            new OpenLayers.Layer.OSM(),
+            new OpenLayers.Layer.PointTrack("Aircraft Tracks", {
+                projection: geographic,
+                strategies: [new OpenLayers.Strategy.Fixed()],
+                protocol: new OpenLayers.Protocol.HTTP({
+                    url: "kml-track.kml",
+                    format: new OpenLayers.Format.KML({
+                        extractTracks: true,
+                        extractStyles: true
+                    })
+                }),
+                dataFrom: OpenLayers.Layer.PointTrack.TARGET_NODE,
+                styleFrom: OpenLayers.Layer.PointTrack.TARGET_NODE,
+                eventListeners: {
+                    "beforefeaturesadded": function(e) {
+                        // group the tracks by fid and create one track for
+                        // every fid
+                        var fid, points = [], feature;
+                        for (var i=0, len=e.features.length; i<len; i++) {
+                            feature = e.features[i];
+                            if (feature.fid !== fid || i === len-1) {
+                                fid = feature.fid;
+                                this.addNodes(points, {silent: true});
+                                points = [];
+                            }
+                            points.push(feature);
+                        }
+                        return false;
+                    }
+                }
+            })
+        ],
+        center: new OpenLayers.LonLat(-93.2735, 44.8349).transform(geographic, mercator),
+        zoom: 8
+    });
+
+    map.addControl(new OpenLayers.Control.LayerSwitcher());
+    
+};
+
diff --git a/examples/kml-track.html b/examples/kml-track.html
index 02056c0..0f0032d 100644
--- a/examples/kml-track.html
+++ b/examples/kml-track.html
@@ -1,6 +1,9 @@
 <!DOCTYPE html>
 <html>
     <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers KLM Track Parsing Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
@@ -18,6 +21,9 @@
         <p id="shortdesc">
             Demonstrates parsing of gx:Track elements from KML.
         </p>
+        <div id="tags">
+            KML, parser, parsing, tracks
+        </div>
         <div id="map" class="smallmap"></div>
         <div id="docs">
             <p>
diff --git a/examples/kml-track.js b/examples/kml-track.js
index 5669847..1c6a809 100644
--- a/examples/kml-track.js
+++ b/examples/kml-track.js
@@ -27,7 +27,7 @@ function init() {
                         fillOpacity: 0.5,
                         fillColor: "#ffcc66",
                         strokeColor: "#666633",
-                        strokeWidth: 1,
+                        strokeWidth: 1
                     })
                 })
             })
diff --git a/examples/label-scale.html b/examples/label-scale.html
new file mode 100644
index 0000000..d6d32ed
--- /dev/null
+++ b/examples/label-scale.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Scale Dependent Labels</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script src="../lib/OpenLayers.js"></script>
+  </head>
+  <body>
+    <h1 id="title">Scale Dependent Labels Example</h1>
+    <div id="tags">
+        label, scale, stylemap
+    </div>
+    <p id="shortdesc">
+        Demonstrates how to use a StyleMap for displaying scale dependent labels.
+    </p>
+    <div id="map" class="smallmap"></div>
+    <div id="docs">
+        <p>
+            This example uses rule based styling to change the how features are
+            labeled at different scales.  An <code>OpenLayers.Rule</code> object
+            can have <code>minScaleDenominator</code> and 
+            <code>maxScaleDenominator</code> properties to control when the 
+            provided symbolizer should be used.
+        </p><p>
+            View the <a href="label-scale.js">source</a> to see how this is done.
+        </p>
+    </div>
+    <script src="label-scale.js"></script>
+  </body>
+</html>
diff --git a/examples/label-scale.js b/examples/label-scale.js
new file mode 100644
index 0000000..a46fe4b
--- /dev/null
+++ b/examples/label-scale.js
@@ -0,0 +1,72 @@
+// Create 50 random features, and give them a "type" attribute that
+// will be used for the label text.
+var features = new Array(50);
+for (var i=0; i<features.length; i++) {
+    features[i] = new OpenLayers.Feature.Vector(
+        new OpenLayers.Geometry.Point(
+            (360 * Math.random()) - 180, (180 * Math.random()) - 90
+        ), {
+            type: 5 + parseInt(5 * Math.random())
+        }
+    );
+}
+
+/**
+ * Create a style instance that is a collection of rules with symbolizers.
+ * Use a default symbolizer to extend symoblizers for all rules.
+ */
+var style = new OpenLayers.Style({
+    fillColor: "#ffcc66",
+    strokeColor: "#ff9933",
+    strokeWidth: 2,
+    label: "${type}",
+    fontColor: "#333333",
+    fontFamily: "sans-serif",
+    fontWeight: "bold"
+}, {
+    rules: [
+        new OpenLayers.Rule({
+            minScaleDenominator: 200000000,
+            symbolizer: {
+                pointRadius: 7,
+                fontSize: "9px"
+            }
+        }),
+        new OpenLayers.Rule({
+            maxScaleDenominator: 200000000,
+            minScaleDenominator: 100000000,
+            symbolizer: {
+                pointRadius: 10,
+                fontSize: "12px"
+            }
+        }),
+        new OpenLayers.Rule({
+            maxScaleDenominator: 100000000,
+            symbolizer: {
+                pointRadius: 13,
+                fontSize: "15px"
+            }
+        })
+    ]
+});
+
+// Create a vector layer and give it your style map.
+var points = new OpenLayers.Layer.Vector("Points", {
+    styleMap: new OpenLayers.StyleMap(style)
+});
+points.addFeatures(features);
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "OpenLayers WMS",
+            "http://vmap0.tiles.osgeo.org/wms/vmap0",
+            {layers: "basic"}
+        ),
+        points
+    ],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 1
+});
+
diff --git a/examples/late-render.html b/examples/late-render.html
index 5decaed..ed3f9da 100644
--- a/examples/late-render.html
+++ b/examples/late-render.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Late Rendering Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>    
     <script type="text/javascript">
     
@@ -24,7 +28,9 @@
   <body onload="init()">
     <h1 id="title">Late Rendering</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        creation, render, div
+    </div>
 
     <p id="shortdesc">
         Demonstrates how a map can be rendered to an empty container after
@@ -32,11 +38,11 @@
     </p>
     <div id="container_id" class="smallmap"></div>    
     <div id="docs">
-        In cases where you need to create a map first and render it to some
+        <p>In cases where you need to create a map first and render it to some
         container later, call the map constructor without a "div" argument.
         In this case, you can provide the options object as the first argument.
         To render your map to some container after construction, call the map's
-        render method with the container id.
+        render method with the container id.</p>
     </div>
   </body>
 </html>
diff --git a/examples/layer-opacity.html b/examples/layer-opacity.html
index b1a6686..5fc76a8 100644
--- a/examples/layer-opacity.html
+++ b/examples/layer-opacity.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
       <title>OpenLayers Layer Opacity Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         body {
             font-family: sans-serif;
@@ -65,7 +69,9 @@
   <body onload="init()">
     <h1 id="title">Layer Opacity Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        opacity, transparent, transparency
+    </div>
 
     <p id="shortdesc">
         Demonstrate a change in the opacity for an overlay layer.
diff --git a/examples/layerLoadMonitoring.html b/examples/layerLoadMonitoring.html
index 2de324a..a8a1768 100644
--- a/examples/layerLoadMonitoring.html
+++ b/examples/layerLoadMonitoring.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Layer Load Monitoring Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controls {
             float: left;
@@ -107,7 +111,9 @@
   <body onload="init()">
       <h1 id="title">Layer Load Monitoring Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+        monitor, loading
+      </div>
 
       <p id="shortdesc">
           Demonstrate a method for monitoring tile loading performance.
diff --git a/examples/layerswitcher.html b/examples/layerswitcher.html
index aaeb7c9..5e3f6b5 100644
--- a/examples/layerswitcher.html
+++ b/examples/layerswitcher.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
       <title>OpenLayers Layer Switcher Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -38,6 +42,7 @@
     <h1 id="title">Layer Switcher Example</h1>
 
     <div id="tags">
+        tree, layerswitcher, reposition
     </div>
 
     <p id="shortdesc">
diff --git a/examples/lite.html b/examples/lite.html
index 721811d..d4ae7e0 100644
--- a/examples/lite.html
+++ b/examples/lite.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Basic Single WMS Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -19,14 +23,17 @@
   <body onload="init()">
     <h1 id="title">Basic Single WMS Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        basic, simple, minimal, cleanup
+    </div>
 
     <div id="shortdesc">Show a Simple Map</div>
 
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        This example shows a very simple layout with minimal controls.  This example uses a single WMS base layer.
+        <p>This example shows a very simple layout with minimal controls.
+        This example uses a single WMS base layer.</p>
     </div>
   </body>
 </html>
diff --git a/examples/mapguide.html b/examples/mapguide.html
index e5a3e21..5ecc8b2 100644
--- a/examples/mapguide.html
+++ b/examples/mapguide.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers MapGuide Layer Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #map {
             width: 400px;
@@ -135,6 +139,7 @@
     <h1 id="title">MapGuide Layer Example</h1>
 
     <div id="tags">
+        MapGuide, basic
     </div>
 
     <p id="shortdesc">
diff --git a/examples/mapserver.html b/examples/mapserver.html
index 6d5411e..39e76de 100644
--- a/examples/mapserver.html
+++ b/examples/mapserver.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>MapServer Layer</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -25,11 +29,13 @@
   </head>
   <body onload="init()">
     <h1 id="title">MapServer Layer</h1>
-    <div id="tags"></div>
+    <div id="tags">UMN Mapserver, tile, tiled</div>
     <div id="shortdesc">Shows MapServer Layer</div>
     <div id="map" class="smallmap"></div>
     <div id="docs">
-        This is an example of using a MapServer Layer with a gutter parameter.  The gutter parameter is used to try to limit the edge effects between tiles.
+        <p>This is an example of using a MapServer Layer with a gutter
+        parameter.  The gutter parameter is used to try to limit the edge
+        effects between tiles.</p>
     </div>
   </body>
 </html>
diff --git a/examples/mapserver_untiled.html b/examples/mapserver_untiled.html
index 27fc954..d416532 100644
--- a/examples/mapserver_untiled.html
+++ b/examples/mapserver_untiled.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>MapServer Single Tile Mode</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #map {
             width: 100%;
@@ -25,11 +29,15 @@
   </head>
   <body>
     <h1 id="title">MapServer Single Tile Mode</h1>
-    <div id="tags"></div>
+    <div id="tags">
+        UMN Mapserver, basic, singleTile
+    </div>
     <div id="shortdesc">Shows single tile MapServer Layer</div>
     <div id="map" class="smallmap"></div>
     <div id="docs">
-        This shows an example of using a MapServer Layer in single tile mode.  Single tile mode can be useful when pulling data from dynamic sources.
+        <p>This shows an example of using a MapServer Layer in single tile
+        mode.  Single tile mode can be useful when pulling data from dynamic
+        sources.</p>
     </div>
   </body>
 </html>
diff --git a/examples/marker-shadow.html b/examples/marker-shadow.html
index a8b4018..7048255 100644
--- a/examples/marker-shadow.html
+++ b/examples/marker-shadow.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Vector Graphics with Shadows</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .smallmap {
             width: 300px;
@@ -31,13 +35,17 @@
         function init() {
             map = new OpenLayers.Map("map");
             
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
             layer = new OpenLayers.Layer.Vector(
                 "Marker Drop Shadows",
                 {
                     styleMap: new OpenLayers.StyleMap({
                         // Set the external graphic and background graphic images.
                         externalGraphic: "../img/marker-gold.png",
-                        backgroundGraphic: "./marker_shadow.png",
+                        backgroundGraphic: "./img/marker_shadow.png",
                         
                         // Makes sure the background graphic is placed correctly relative
                         // to the external graphic.
@@ -53,7 +61,8 @@
                         pointRadius: 10
                     }),
                     isBaseLayer: true,
-                    rendererOptions: {yOrdering: true}
+                    rendererOptions: {yOrdering: true},
+                    renderers: renderer
                 }
             );
             
@@ -107,6 +116,7 @@
         <h1 id="title">Marker Shadows using Background Graphics/Z-Indexes</h1>
 
         <div id="tags">
+            markers, shadow, style
         </div>
 
         <p id="shortdesc">
diff --git a/examples/markerResize.html b/examples/markerResize.html
index a6105c3..cb59bcf 100644
--- a/examples/markerResize.html
+++ b/examples/markerResize.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Resize a Marker</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -40,11 +44,16 @@
   </head>
   <body onload="init()">
     <h1 id="title">Resize a Marker</h1>
-    <div id="tags"></div>
+    <div id="tags">
+        animation, resizing, style, size
+    </div>
     <div id="shortdesc">Dynamically resize a marker</div>
     <div id="map" class="smallmap"></div>
     <div id="docs">
-        This example shows how to create a OpenLayers.Layer.Markers layer, add an icon, put it into a marker, and add the marker to the layer.  Once the marker has been added it is possible to use setSize() on the icon in order to resize the marker.
+        <p>This example shows how to create a OpenLayers.Layer.Markers layer,
+        add an icon, put it into a marker, and add the marker to the layer.
+        Once the marker has been added it is possible to use setSize() on the
+        icon in order to resize the marker.</p>
     </div>
     <div style="background-color:purple" onclick="resize()"> click to resize marker</div>
   </body>
diff --git a/examples/markers.html b/examples/markers.html
index cf988b6..7d9552f 100644
--- a/examples/markers.html
+++ b/examples/markers.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Markers Layer Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -43,11 +47,13 @@
   </head>
   <body onload="init()">
     <h1 id="title">Markers Layer Example</h1>
-    <div id="tags"></div>
+    <div id="tags">Marker, event, mousedown, popup, inco</div>
     <div id="shortdesc">Show markers layer with different markers</div>
     <div id="map" class="smallmap"></div>
     <div id="docs">
-        This is an example of an OpenLayers.Layers.Markers layer that shows some examples of adding markers.  Also demonstrated is registering a mousedown effect on a marker.
+        <p>This is an example of an OpenLayers.Layers.Markers layer that shows
+        some examples of adding markers.  Also demonstrated is registering a
+        mousedown effect on a marker.</p>
     </div>
   </body>
 </html>
diff --git a/examples/markersTextLayer.html b/examples/markersTextLayer.html
index 2a63c37..b8e1acb 100644
--- a/examples/markersTextLayer.html
+++ b/examples/markersTextLayer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Using a Layer.Text to display markers</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -25,6 +29,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Using a Layer.Text to display markers</h1>
+    <div id="tags">
+        textlayer, csv, tsv, basic, popup
+    </div>
     <p id="shortdesc">
       The Layer.Text class reads a Tab seperated values file and displays it as markers on
       the map.
diff --git a/examples/measure.html b/examples/measure.html
index 23e963c..ed3ea97 100644
--- a/examples/measure.html
+++ b/examples/measure.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controlToggle li {
             list-style: none;
@@ -132,10 +136,20 @@
                 control.geodesic = element.checked;
             }
         }
+        
+        function toggleImmediate(element) {
+            for(key in measureControls) {
+                var control = measureControls[key];
+                control.setImmediate(element.checked);
+            }
+        }
     </script>
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Measure Example</h1>
+    <div id="tags">
+        measuring, geodesic, area, length, distance
+    </div>
     <p id="shortdesc">
         Demonstrates the measure control to measure distances and areas.
     </p>
@@ -161,13 +175,19 @@
                 <input type="checkbox" name="geodesic" id="geodesicToggle" onclick="toggleGeodesic(this);" />
                 <label for="geodesicToggle">use geodesic measures</label>
             </li>
+            <li>
+                <input type="checkbox" name="immediate" id="immediateToggle" onclick="toggleImmediate(this);" />
+                <label for="immediateToggle">use immediate measures</label>
+            </li>
         </ul>
         <p>Note that the geometries drawn are planar geometries and the
         metrics returned by the measure control are planar measures by
         default.  If your map is in a geographic projection or you have the
         appropriate projection definitions to transform your geometries into
         geographic coordinates, you can set the "geodesic" property of the control
-        to true to calculate geodesic measures instead of planar measures.</p>
+        to true to calculate geodesic measures instead of planar measures.
+        Also you have the possibility to set the "immediate" property to true
+        to get a new calculated value once the mouse has been mooved.</p>
     </div>
   </body>
 </html>
diff --git a/examples/mm.html b/examples/mm.html
index 305d3c2..2fd524d 100644
--- a/examples/mm.html
+++ b/examples/mm.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>MultiMap</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #map {
             width: 100%;
@@ -12,7 +16,8 @@
     </style>
 
 
-    <script type="text/javascript" src="http://clients.multimap.com/API/maps/1.1/metacarta_04"></script>
+    <!-- multimap api key for http://(www.)openlayers.org -->
+    <script type="text/javascript" src="http://developer.multimap.com/API/maps/1.2/OA10072915821139765"></script>
 
 
     <script src="../lib/OpenLayers.js"></script>
@@ -50,6 +55,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">MultiMap Example</h1>
+    <div id="tags">
+        MultiMap, basic, cleanup
+    </div>
     <p id="shortdesc">
       An example of using the Layer.MultiMap class.
     </p>  
diff --git a/examples/mobile-base.js b/examples/mobile-base.js
new file mode 100644
index 0000000..f320581
--- /dev/null
+++ b/examples/mobile-base.js
@@ -0,0 +1,172 @@
+// API key for http://openlayers.org. Please get your own at
+// http://bingmapsportal.com/ and use that instead.
+var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
+
+// initialize map when page ready
+var map;
+var gg = new OpenLayers.Projection("EPSG:4326");
+var sm = new OpenLayers.Projection("EPSG:900913");
+
+var init = function (onSelectFeatureFunction) {
+
+    var vector = new OpenLayers.Layer.Vector("Vector Layer", {});
+
+    var sprintersLayer = new OpenLayers.Layer.Vector("Sprinters", {
+        styleMap: new OpenLayers.StyleMap({
+            externalGraphic: "img/mobile-loc.png",
+            graphicOpacity: 1.0,
+            graphicWith: 16,
+            graphicHeight: 26,
+            graphicYOffset: -26
+        })
+    });
+
+    var sprinters = getFeatures();
+    sprintersLayer.addFeatures(sprinters);
+
+    var selectControl = new OpenLayers.Control.SelectFeature(sprintersLayer, {
+        autoActivate:true,
+        onSelect: onSelectFeatureFunction});
+
+    var geolocate = new OpenLayers.Control.Geolocate({
+        id: 'locate-control',
+        geolocationOptions: {
+            enableHighAccuracy: false,
+            maximumAge: 0,
+            timeout: 7000
+        }
+    });
+    // create map
+    map = new OpenLayers.Map({
+        div: "map",
+        theme: null,
+        projection: sm,
+        units: "m",
+        numZoomLevels: 18,
+        maxResolution: 156543.0339,
+        maxExtent: new OpenLayers.Bounds(
+            -20037508.34, -20037508.34, 20037508.34, 20037508.34
+        ),
+        controls: [
+            new OpenLayers.Control.Attribution(),
+            new OpenLayers.Control.TouchNavigation({
+                dragPanOptions: {
+                    enableKinetic: true
+                }
+            }),
+            geolocate,
+            selectControl
+        ],
+        layers: [
+            new OpenLayers.Layer.OSM("OpenStreetMap", null, {
+                transitionEffect: 'resize'
+            }),
+            new OpenLayers.Layer.Bing({
+                key: apiKey,
+                type: "Road",
+                // custom metadata parameter to request the new map style - only useful
+                // before May 1st, 2011
+                metadataParams: {
+                    mapVersion: "v1"
+                },
+                name: "Bing Road",
+                transitionEffect: 'resize'
+            }),
+            new OpenLayers.Layer.Bing({
+                key: apiKey,
+                type: "Aerial",
+                name: "Bing Aerial",
+                transitionEffect: 'resize'
+            }),
+            new OpenLayers.Layer.Bing({
+                key: apiKey,
+                type: "AerialWithLabels",
+                name: "Bing Aerial + Labels",
+                transitionEffect: 'resize'
+            }),
+            vector,
+            sprintersLayer
+        ],
+        center: new OpenLayers.LonLat(0, 0),
+        zoom: 1
+    });
+
+    var style = {
+        fillOpacity: 0.1,
+        fillColor: '#000',
+        strokeColor: '#f00',
+        strokeOpacity: 0.6
+    };
+    geolocate.events.register("locationupdated", this, function(e) {
+        vector.removeAllFeatures();
+        vector.addFeatures([
+            new OpenLayers.Feature.Vector(
+                e.point,
+                {},
+                {
+                    graphicName: 'cross',
+                    strokeColor: '#f00',
+                    strokeWidth: 2,
+                    fillOpacity: 0,
+                    pointRadius: 10
+                }
+            ),
+            new OpenLayers.Feature.Vector(
+                OpenLayers.Geometry.Polygon.createRegularPolygon(
+                    new OpenLayers.Geometry.Point(e.point.x, e.point.y),
+                    e.position.coords.accuracy / 2,
+                    50,
+                    0
+                ),
+                {},
+                style
+            )
+        ]);
+        map.zoomToExtent(vector.getDataExtent());
+    });
+
+    function getFeatures() {
+        var features = {
+            "type": "FeatureCollection",
+            "features": [
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [1332700, 7906300]},
+                    "properties": {"Name": "Igor Tihonov", "Country":"Sweden", "City":"Gothenburg"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [790300, 6573900]},
+                    "properties": {"Name": "Marc Jansen", "Country":"Germany", "City":"Bonn"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [568600, 6817300]},
+                    "properties": {"Name": "Bart van den Eijnden", "Country":"Netherlands", "City":"Utrecht"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [-7909900, 5215100]},
+                    "properties": {"Name": "Christopher Schmidt", "Country":"United States of America", "City":"Boston"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [-937400, 5093200]},
+                    "properties": {"Name": "Jorge Gustavo Rocha", "Country":"Portugal", "City":"Braga"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [-355300, 7547800]},
+                    "properties": {"Name": "Jennie Fletcher ", "Country":"Scotland", "City":"Edinburgh"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [657068.53608487, 5712321.2472725]},
+                    "properties": {"Name": "Bruno Binet ", "Country":"France", "City":"Chambéry"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [667250.8958124, 5668048.6072737]},
+                    "properties": {"Name": "Eric Lemoine", "Country":"France", "City":"Theys"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [653518.03606319, 5721118.5122914]},
+                    "properties": {"Name": "Antoine Abt", "Country":"France", "City":"La Motte Servolex"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [657985.78042416, 5711862.6251028]},
+                    "properties": {"Name": "Pierre Giraud", "Country":"France", "City":"Chambéry"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [742941.93818208, 5861818.9477535]},
+                    "properties": {"Name": "Stéphane Brunner", "Country":"Switzerland", "City":"Paudex"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [736082.61064069, 5908165.4649505]},
+                    "properties": {"Name": "Frédéric Junod", "Country":"Switzerland", "City":"Montagny-près-Yverdon"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [771595.97057525, 5912284.7041793]},
+                    "properties": {"Name": "Cédric Moullet", "Country":"Switzerland", "City":"Payerne"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [744205.23922364, 5861277.319748]},
+                    "properties": {"Name": "Benoit Quartier", "Country":"Switzerland", "City":"Lutry"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [1717430.147101, 5954568.7127565]},
+                    "properties": {"Name": "Andreas Hocevar", "Country":"Austria", "City":"Graz"}},
+                { "type": "Feature", "geometry": {"type": "Point", "coordinates": [-12362007.067301,5729082.2365672]},
+                    "properties": {"Name": "Tim Schaub", "Country":"United States of America", "City":"Bozeman"}}
+            ]
+        };
+
+        var reader = new OpenLayers.Format.GeoJSON();
+
+        return reader.read(features);
+    }
+
+};
diff --git a/examples/mobile-drawing.html b/examples/mobile-drawing.html
new file mode 100644
index 0000000..18db95f
--- /dev/null
+++ b/examples/mobile-drawing.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Mobile Drawing</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="style.mobile.css" type="text/css">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <script src="../lib/OpenLayers.js?mobile"></script>
+        <script src="mobile-drawing.js"></script>
+        <style>
+            html, body {
+                margin: 0;
+                padding: 0;
+                height: 100%;
+            }
+            #map {
+                position: relative;
+                width: 100%;
+                height: 100%;
+            }
+            .olControlAttribution {
+                font-size: 10px;
+                bottom: 5px;
+                right: 5px;
+            }
+            div.olControlZoomPanel .olControlZoomInItemInactive,
+            div.olControlZoomPanel .olControlZoomOutItemInactive {
+                background: rgba(0,0,0,0.2);
+                position: absolute;
+            }
+            div.olControlZoomPanel .olControlZoomInItemInactive {
+                border-radius: 5px 5px 0 0;
+            }
+            div.olControlZoomPanel .olControlZoomOutItemInactive {
+                border-radius: 0 0 5px 5px ;
+                top: 37px;
+            }
+            div.olControlZoomPanel .olControlZoomOutItemInactive:after,
+            div.olControlZoomPanel .olControlZoomInItemInactive:after {
+                font-weight: bold;
+                content: '+';
+                font-size: 36px;
+                padding:  7px;
+                z-index: 2000;
+                color: #fff;
+                line-height: 1em;
+            }
+            div.olControlZoomPanel .olControlZoomOutItemInactive:after {
+                content: '–';
+                line-height: 0.9em;
+                padding: 0 8px;
+            }
+            div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
+                display: none;
+            }
+            .olControlEditingToolbar .olControlModifyFeatureItemInactive {
+                background-position: -1px -1px;
+            }
+            .olControlEditingToolbar .olControlModifyFeatureItemActive {
+                background-position: -1px -24px;
+            }
+            #title, #tags, #shortdesc {
+                display: none;
+            }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Mobile Drawing Example</h1>
+        <div id="tags">
+            mobile, drawing
+        </div>
+        <p id="shortdesc">
+            A full-screen map with drawing tools for mobile devices.
+        </p>
+        <div id="map"></div>
+        <script>
+            init();
+        </script>
+    </body>
+</html>
diff --git a/examples/mobile-drawing.js b/examples/mobile-drawing.js
new file mode 100644
index 0000000..3de462b
--- /dev/null
+++ b/examples/mobile-drawing.js
@@ -0,0 +1,64 @@
+function init() {
+
+    // create a vector layer for drawing
+    var vector = new OpenLayers.Layer.Vector('Vector Layer', {
+        styleMap: new OpenLayers.StyleMap({
+            temporary: OpenLayers.Util.applyDefaults({
+                pointRadius: 16
+            }, OpenLayers.Feature.Vector.style.temporary)
+        })
+    });
+
+    // OpenLayers' EditingToolbar internally creates a Navigation control, we
+    // want a TouchNavigation control here so we create our own editing toolbar
+    var toolbar = new OpenLayers.Control.Panel({
+        displayClass: 'olControlEditingToolbar'
+    });
+    toolbar.addControls([
+        // this control is just there to be able to deactivate the drawing
+        // tools
+        new OpenLayers.Control({
+            displayClass: 'olControlNavigation'
+        }),
+        new OpenLayers.Control.ModifyFeature(vector, {
+            vertexRenderIntent: 'temporary',
+            displayClass: 'olControlModifyFeature'
+        }),
+        new OpenLayers.Control.DrawFeature(vector, OpenLayers.Handler.Point, {
+            displayClass: 'olControlDrawFeaturePoint'
+        }),
+        new OpenLayers.Control.DrawFeature(vector, OpenLayers.Handler.Path, {
+            displayClass: 'olControlDrawFeaturePath'
+        }),
+        new OpenLayers.Control.DrawFeature(vector, OpenLayers.Handler.Polygon, {
+            displayClass: 'olControlDrawFeaturePolygon'
+        })
+    ]);
+
+    var osm = new OpenLayers.Layer.OSM();
+    osm.wrapDateLine = false;
+
+    map = new OpenLayers.Map({
+        div: 'map',
+        projection: 'EPSG:900913',
+        units: 'm',
+        numZoomLevels: 18,
+        maxResolution: 156543.0339,
+        maxExtent: new OpenLayers.Bounds(
+            -20037508.34, -20037508.34, 20037508.34, 20037508.34
+        ),
+        controls: [
+            new OpenLayers.Control.TouchNavigation(),
+            new OpenLayers.Control.ZoomPanel(),
+            toolbar
+        ],
+        layers: [osm, vector],
+        center: new OpenLayers.LonLat(0, 0),
+        zoom: 1,
+        theme: null
+    });
+
+    // activate the first control to render the "navigation icon"
+    // as active
+    toolbar.controls[0].activate();
+}
diff --git a/examples/mobile-jq.html b/examples/mobile-jq.html
new file mode 100644
index 0000000..040dbba
--- /dev/null
+++ b/examples/mobile-jq.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+        <title>OpenLayers with jQuery Mobile</title>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css">
+        <script src="http://code.jquery.com/jquery-1.5.min.js"></script>
+        <script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>
+        <link rel="stylesheet" href="style.mobile.css" type="text/css">
+        <link rel="stylesheet" href="style.mobile-jq.css" type="text/css">
+        <script src="../lib/OpenLayers.js?mobile"></script>
+        <script src="mobile-base.js"></script>
+        <script src="mobile-jq.js"></script>
+    </head>
+    <body>
+        <h1 id="title">OpenLayers with jQuery Mobile</h1>
+        <div id="tags">
+          mobile, jquery
+        </div>
+        <p id="shortdesc">
+          Using jQuery Mobile to display an OpenLayers map.
+        </p>
+
+        <div data-role="page" id="mappage">
+          <div data-role="content">
+            <div id="map"></div>
+          </div>
+
+          <div data-role="footer">
+            <a href="#searchpage" data-icon="search" data-role="button">Search</a>
+            <a href="#" id="locate" data-icon="locate" data-role="button">Locate</a>
+            <a href="#layerspage" data-icon="layers" data-role="button">Layers</a>
+          </div>
+          <div id="navigation" data-role="controlgroup" data-type="vertical">
+            <a href="#" data-role="button" data-icon="plus" id="plus"
+               data-iconpos="notext"></a>
+            <a href="#" data-role="button" data-icon="minus" id="minus"
+               data-iconpos="notext"></a>
+          </div>
+        </div>
+
+        <div data-role="page" id="searchpage">
+          <div data-role="header">
+            <h1>Search</h1>
+          </div>
+          <div data-role="fieldcontain">
+            <input type="search" name="query" id="query"
+                   value="" placeholder="Search for places"
+                   autocomplete="off"/>
+          </div>
+          <ul data-role="listview" data-inset="true" id="search_results"></ul> 
+        </div>
+
+        <div data-role="page" id="layerspage">
+          <div data-role="header">
+            <h1>Layers</h1>
+          </div>
+          <div data-role="content">
+            <ul data-role="listview" data-inset="true" data-theme="d" data-dividertheme="c" id="layerslist">
+            </ul>
+          </div>
+        </div>
+
+        <div id="popup" data-role="dialog">
+            <div data-position="inline" data-theme="d" data-role="header">
+                <h1>Details</h1>
+            </div>
+            <div data-theme="c" data-role="content">
+                <ul id="details-list" data-role="listview">
+                </ul>
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/examples/mobile-jq.js b/examples/mobile-jq.js
new file mode 100644
index 0000000..a7ef681
--- /dev/null
+++ b/examples/mobile-jq.js
@@ -0,0 +1,152 @@
+// Start with the map page
+window.location.replace(window.location.href.split("#")[0] + "#mappage");
+
+var selectedFeature = null;
+
+$(document).ready(function() {
+
+    // fix height of content
+    function fixContentHeight() {
+        var footer = $("div[data-role='footer']:visible"),
+            content = $("div[data-role='content']:visible:visible"),
+            viewHeight = $(window).height(),
+            contentHeight = viewHeight - footer.outerHeight();
+
+        if ((content.outerHeight() + footer.outerHeight()) !== viewHeight) {
+            contentHeight -= (content.outerHeight() - content.height() + 1);
+            content.height(contentHeight);
+        }
+
+        if (window.map) {
+            map.updateSize();
+        } else {
+            // initialize map
+            init(function(feature) { 
+                selectedFeature = feature; 
+                $.mobile.changePage("#popup", "pop"); 
+            });
+            initLayerList();
+        }
+    }
+    $(window).bind("orientationchange resize pageshow", fixContentHeight);
+    document.body.onload = fixContentHeight;
+
+    // Map zoom  
+    $("#plus").click(function(){
+        map.zoomIn();
+    });
+    $("#minus").click(function(){
+        map.zoomOut();
+    });
+    $("#locate").click(function(){
+        var control = map.getControlsBy("id", "locate-control")[0];
+        if (control.active) {
+            control.getCurrentLocation();
+        } else {
+            control.activate();
+        }
+    });
+    
+    $('#popup').live('pageshow',function(event, ui){
+        var li = "";
+        for(var attr in selectedFeature.attributes){
+            li += "<li><div style='width:25%;float:left'>" + attr + "</div><div style='width:75%;float:right'>" 
+            + selectedFeature.attributes[attr] + "</div></li>";
+        }
+        $("ul#details-list").empty().append(li).listview("refresh");
+    });
+
+    $('#searchpage').live('pageshow',function(event, ui){
+        $('#query').bind('change', function(e){
+            $('#search_results').empty();
+            if ($('#query')[0].value === '') {
+                return;
+            }
+            $.mobile.pageLoading();
+
+            // Prevent form send
+            e.preventDefault();
+
+            var searchUrl = 'http://ws.geonames.org/searchJSON?featureClass=P&maxRows=10';
+            searchUrl += '&name_startsWith=' + $('#query')[0].value;
+            $.getJSON(searchUrl, function(data) {
+                $.each(data.geonames, function() {
+                    var place = this;
+                    $('<li>')
+                        .hide()
+                        .append($('<h2 />', {
+                            text: place.name
+                        }))
+                        .append($('<p />', {
+                            html: '<b>' + place.countryName + '</b> ' + place.fcodeName
+                        }))
+                        .appendTo('#search_results')
+                        .click(function() {
+                            $.mobile.changePage('#mappage');
+                            var lonlat = new OpenLayers.LonLat(place.lng, place.lat);
+                            map.setCenter(lonlat.transform(gg, sm), 10);
+                        })
+                        .show();
+                });
+                $('#search_results').listview('refresh');
+                $.mobile.pageLoading(true);
+            });
+        });
+        // only listen to the first event triggered
+        $('#searchpage').die('pageshow', arguments.callee);
+    });
+
+});
+
+function initLayerList() {
+    $('#layerspage').page();
+    $('<li>', {
+            "data-role": "list-divider",
+            text: "Base Layers"
+        })
+        .appendTo('#layerslist');
+    var baseLayers = map.getLayersBy("isBaseLayer", true);
+    $.each(baseLayers, function() {
+        addLayerToList(this);
+    });
+
+    $('<li>', {
+            "data-role": "list-divider",
+            text: "Overlay Layers"
+        })
+        .appendTo('#layerslist');
+    var overlayLayers = map.getLayersBy("isBaseLayer", false);
+    $.each(overlayLayers, function() {
+        addLayerToList(this);
+    });
+    $('#layerslist').listview('refresh');
+    
+    map.events.register("addlayer", this, function(e) {
+        addLayerToList(e.layer);
+    });
+}
+
+function addLayerToList(layer) {
+    var item = $('<li>', {
+            "data-icon": "check",
+            "class": layer.visibility ? "checked" : ""
+        })
+        .append($('<a />', {
+            text: layer.name
+        })
+            .click(function() {
+                $.mobile.changePage('#mappage');
+                if (layer.isBaseLayer) {
+                    layer.map.setBaseLayer(layer);
+                } else {
+                    layer.setVisibility(!layer.getVisibility());
+                }
+            })
+        )
+        .appendTo('#layerslist');
+    layer.events.on({
+        'visibilitychanged': function() {
+            $(item).toggleClass('checked');
+        }
+    });
+}
diff --git a/examples/mobile-layers.html b/examples/mobile-layers.html
new file mode 100644
index 0000000..130f2a9
--- /dev/null
+++ b/examples/mobile-layers.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>OpenLayers Mobile Layers</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="style.mobile.css" type="text/css">
+    <script src="../lib/OpenLayers.js?mobile"></script>
+    <script src="mobile-layers.js"></script>
+    <style>
+        html, body {
+            margin: 0;
+            padding: 0;
+            height: 100%;
+            width: 100%;
+        }
+
+        @media only screen and (max-width: 600px) {
+            html, body {
+                height: 117%;
+            }
+        }
+
+        #map {
+            width: 100%;
+            position: relative;
+            height: 100%;
+        }
+
+        .olControlAttribution {
+            position: absolute;
+            font-size: 10px;
+            bottom: 0 !important;
+            right: 0 !important;
+            background: rgba(0, 0, 0, 0.1);
+            font-family: Arial;
+            padding: 2px 4px;
+            border-radius: 5px 0 0 0;
+        }
+
+        div.olControlZoomPanel .olControlZoomInItemInactive,
+        div.olControlZoomPanel .olControlZoomOutItemInactive {
+            background: rgba(0, 0, 0, 0.2);
+            position: absolute;
+        }
+
+        div.olControlZoomPanel .olControlZoomInItemInactive {
+            border-radius: 5px 5px 0 0;
+        }
+
+        div.olControlZoomPanel .olControlZoomOutItemInactive {
+            border-radius: 0 0 5px 5px;
+            top: 37px;
+        }
+
+        div.olControlZoomPanel .olControlZoomOutItemInactive:after,
+        div.olControlZoomPanel .olControlZoomInItemInactive:after {
+            font-weight: bold;
+            content: '+';
+            font-size: 36px;
+            padding: 7px;
+            z-index: 2000;
+            color: #fff;
+            line-height: 1em;
+        }
+
+        div.olControlZoomPanel .olControlZoomOutItemInactive:after {
+            content: '–';
+            line-height: 0.9em;
+            padding: 0 8px;
+        }
+
+        div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
+            display: none;
+        }
+
+        #title, #tags, #shortdesc {
+            display: none;
+        }
+    </style>
+</head>
+<body>
+<h1 id="title">Mobile example with various layer types</h1>
+
+<div id="tags">
+    mobile, WMS, WFS, KML
+</div>
+<p id="shortdesc">
+    A mobile example displaying various layer types: WMS, WFS, KML.
+</p>
+
+<div id="map"></div>
+<script>
+    init();
+</script>
+</body>
+</html>
diff --git a/examples/mobile-layers.js b/examples/mobile-layers.js
new file mode 100644
index 0000000..05e1f03
--- /dev/null
+++ b/examples/mobile-layers.js
@@ -0,0 +1,71 @@
+// initialize map when page ready
+var map;
+
+// Get rid of address bar on iphone/ipod
+var fixSize = function() {
+    window.scrollTo(0, 0);
+    document.body.style.height = '100%';
+    if (!(/(iphone|ipod)/.test(navigator.userAgent.toLowerCase()))) {
+        if (document.body.parentNode) {
+            document.body.parentNode.style.height = '100%';
+        }
+    }
+};
+setTimeout(fixSize, 700);
+setTimeout(fixSize, 1500);
+
+// allow testing of specific renderers via "?renderer=Canvas", etc
+var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
+OpenLayers.ProxyHost = "proxy.cgi?url=";
+
+function init() {
+
+    map = new OpenLayers.Map({
+        div: "map",
+        theme: null,
+        controls: [
+            new OpenLayers.Control.Attribution(),
+            new OpenLayers.Control.TouchNavigation({
+                dragPanOptions: {
+                    enableKinetic: true
+                }
+            }),
+            new OpenLayers.Control.ZoomPanel()
+        ]
+    });
+
+    var wms = new OpenLayers.Layer.WMS("OpenLayers WMS",
+        "http://vmap0.tiles.osgeo.org/wms/vmap0",
+        {layers: 'basic'},
+        {isBaseLayer: true, transitionEffect: 'resize'}
+    )
+
+    var kml = new OpenLayers.Layer.Vector("KML", {
+        projection: map.displayProjection,
+        strategies: [new OpenLayers.Strategy.Fixed()],
+        protocol: new OpenLayers.Protocol.HTTP({
+            url: "kml/sundials.kml",
+            format: new OpenLayers.Format.KML({
+                extractStyles: true,
+                extractAttributes: true
+            })
+        }),
+        renderers: renderer
+    });
+
+    var wfs = new OpenLayers.Layer.Vector("States", {
+        strategies: [new OpenLayers.Strategy.Fixed()],
+        protocol: new OpenLayers.Protocol.WFS({
+            url: "http://demo.opengeo.org/geoserver/wfs",
+            featureType: "states",
+            featureNS: "http://www.openplans.org/topp"
+        }),
+        renderers: renderer
+    });
+
+    map.addLayers([wms, wfs, kml]);
+
+    map.setCenter(new OpenLayers.LonLat(-104, 42), 3);
+};
diff --git a/examples/mobile-navigation.html b/examples/mobile-navigation.html
new file mode 100644
index 0000000..3d2ba59
--- /dev/null
+++ b/examples/mobile-navigation.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>Mobile Navigation Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.mobile.css" type="text/css" />
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <script type="text/javascript" src="../lib/OpenLayers.js?mobile"></script>
+    <script type="text/javascript" src="mobile-navigation.js"></script>
+  </head>
+  <body onload="init()">
+    <h1 id="title">Mobile Navigation</h1>
+
+    <div id="tags">
+        mobile, touch, drag, move, zoom, navigate
+    </div>
+
+    <div id="shortdesc">Demonstrate map navigation on mobile</div>
+
+    <div id="map" class="smallmap"></div>
+    <div id="docs">
+
+        <p>
+            This example demonstrates what OpenLayers provides for map
+            navigation on mobile devices.
+        </p>
+
+        <p>
+            The TouchNavigation control allows to pan the map with touch
+            gestures on the screen – "touchstart", "touchmove",
+            "touchend" sequences. It also allows to zoom in with double taps,
+            and to zoom out with two-finger single taps. The latter is only
+            available on devices supporting multi-touch. Note that in most
+            devices Android doesn't support multi-touch in the browser.
+        </p>
+
+        <p>
+            The ZoomPanel control provides + and - buttons for zooming in and
+            out. These buttons should work on any device, and the zoom out
+            button is especially needed for devices that don't support
+            multi-touch.
+        </p> 
+        <p>
+            See the <a href="mobile-navigation.js" target="_blank">mobile-navigation.js
+            source</a> to see how this is done.
+        </p> 
+    </div>
+  </body>
+</html>
diff --git a/examples/mobile-navigation.js b/examples/mobile-navigation.js
new file mode 100644
index 0000000..ce08b49
--- /dev/null
+++ b/examples/mobile-navigation.js
@@ -0,0 +1,29 @@
+var map;
+
+function init() {
+    map = new OpenLayers.Map({
+        div: "map",
+        theme: null,
+        projection: new OpenLayers.Projection("EPSG:900913"),
+        units: "m",
+        numZoomLevels: 18,
+        maxResolution: 156543.0339,
+        maxExtent: new OpenLayers.Bounds(
+            -20037508.34, -20037508.34, 20037508.34, 20037508.34
+        ),
+        controls: [
+            new OpenLayers.Control.TouchNavigation({
+                dragPanOptions: {
+                    enableKinetic: true
+                }
+            }),
+            new OpenLayers.Control.ZoomPanel()
+        ],
+        layers: [
+            new OpenLayers.Layer.OSM("OpenStreetMap", null, {
+                transitionEffect: 'resize'
+            })
+        ]
+    });
+    map.setCenter(new OpenLayers.LonLat(0, 0), 3);
+}
diff --git a/examples/mobile-sencha.html b/examples/mobile-sencha.html
new file mode 100644
index 0000000..f08efc4
--- /dev/null
+++ b/examples/mobile-sencha.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+        <meta name="apple-mobile-web-app-capable" content="yes"/>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <title>OpenLayers with Sencha Touch</title>
+        <script src="../lib/OpenLayers.js?mobile"></script>
+        <link rel="stylesheet" href="style.mobile.css" type="text/css">
+        <link rel="stylesheet" href="http://dev.sencha.com/deploy/touch/resources/css/sencha-touch.css">
+        <script src="http://dev.sencha.com/deploy/touch/sencha-touch.js"></script>
+        <script src="mobile-sencha.js"></script>
+        <script src="mobile-base.js"></script>
+        <style>
+            .searchList {
+                min-height: 150px;
+            }
+
+            .close-btn {
+                position: absolute;
+                right: 10px;
+                top: 10px;
+            }
+
+            img.minus {
+                -webkit-mask-image: url(img/minus1.png);
+            }
+
+            img.layers {
+                -webkit-mask-image: url(img/list.png);
+            }
+
+            .gx-layer-item {
+                margin-left: 10px;
+            }
+
+            #map {
+                width: 100%;
+                height: 100%;
+            }
+
+            .olControlAttribution {
+                font-size: 10px;
+                bottom: 5px;
+                right: 5px;
+            }
+
+            #title, #tags, #shortdesc {
+                display: none;
+            }
+        </style>
+        <script>
+
+        var app = new Ext.Application({
+            name: "ol",
+            launch: function() {
+                this.viewport = new Ext.Panel({
+                    fullscreen: true,
+                    dockedItems: [{
+                        dock: "bottom",
+                        xtype: "toolbar",
+                        ui: "light",
+                        layout: {
+                            pack: "center"
+                        },
+                        items: [{
+                            iconCls: "search",
+                            iconMask: true,
+                            handler: function() {
+                                // this is the app
+                                if (!app.searchFormPopupPanel) {
+                                    app.searchFormPopupPanel = new App.SearchFormPopupPanel({
+                                        map: map
+                                    });
+                                }
+                                app.searchFormPopupPanel.show('pop');
+                            }
+                        }, {
+                            iconCls: "locate",
+                            iconMask: true,
+                            handler: function() {
+                                var geolocate = map.getControlsBy("id", "locate-control")[0];
+                                if (geolocate.active) {
+                                    geolocate.getCurrentLocation();
+                                } else {
+                                    geolocate.activate();
+                                }
+                            }
+                        }, {
+                            xtype: "spacer"
+                        }, {
+                            iconMask: true,
+                            iconCls: "add",
+                            handler: function() {
+                                map.zoomIn();
+                            }
+                        }, {
+                            iconMask: true,
+                            iconCls: "minus",
+                            handler: function() {
+                                map.zoomOut();
+                            }
+                        }, {
+                            xtype: "spacer"
+                        }, {
+                            iconMask: true,
+                            iconCls: "layers",
+                            handler: function() {
+                                if (!app.popup) {
+                                    app.popup = new Ext.Panel({
+                                        floating: true,
+                                        modal: true,
+                                        centered: true,
+                                        hideOnMaskTap: true,
+                                        width: 240,
+                                        items: [{
+                                            xtype: 'app_layerlist',
+                                            map: map
+                                        }],
+                                        scroll: 'vertical'
+                                    });
+                                }
+                                app.popup.show('pop');
+                            }
+                        }]
+                    }],
+                    items: [
+                        {
+                            xtype: "component",
+                            scroll: false,
+                            monitorResize: true,
+                            id: "map",
+                            listeners: {
+                                render: function() {
+                                    var self = this;
+                                    init(function(feature) {
+                                        var htmlContent = "";
+                                        for (var property in feature.data) {
+                                            if (feature.data[property] != 'undefined') {
+                                                htmlContent = htmlContent + feature.data[property] + "<br>";
+                                            }
+                                        }
+                                        if (self.featurePopup) {
+                                            self.featurePopup.destroy();
+                                        }
+                                        self.featurePopup = new Ext.Panel({
+                                            floating: true,
+                                            modal: true,
+                                            centered: true,
+                                            hideOnMaskTap: true,
+                                            width: 240,
+                                            html: htmlContent,
+                                            scroll: 'vertical'
+                                        });
+                                        self.featurePopup.show();
+                                    })
+                                },
+                                resize: function() {
+                                    if (window.map) {
+                                        map.updateSize();
+                                    }
+                                },
+                                scope: {
+                                    featurePopup: null
+                                }
+                            }
+                        }
+                    ]
+                });
+            }
+        });
+        </script>
+    </head>
+    <body>
+        <h1 id="title">OpenLayers with Sencha Touch</h1>
+
+        <div id="tags">
+            mobile, sencha touch
+        </div>
+        <p id="shortdesc">
+            Using Sencha Touch to display an OpenLayers map.
+        </p>
+    </body>
+</html>
diff --git a/examples/mobile-sencha.js b/examples/mobile-sencha.js
new file mode 100644
index 0000000..1b79455
--- /dev/null
+++ b/examples/mobile-sencha.js
@@ -0,0 +1,198 @@
+Ext.ns('App');
+
+/**
+ * The model for the geonames records used in the search
+ */
+Ext.regModel('Geonames', {
+    fields: ['countryName', 'toponymName', 'name', 'lat', 'lng']
+});
+
+/**
+ * Custom class for the Search 
+ */
+App.SearchFormPopupPanel = Ext.extend(Ext.Panel, {
+    map: null,
+    floating: true,
+    modal: true,
+    centered: true,
+    hideOnMaskTap: true,
+    width: Ext.is.Phone ? undefined : 400,
+    height: Ext.is.Phone ? undefined : 400,
+    scroll: false,
+    layout: 'fit',
+    fullscreen: Ext.is.Phone ? true : undefined,
+    url: 'http://ws.geonames.org/searchJSON?',
+    errorText: 'Sorry, we had problems communicating with geonames.org. Please try again.',
+    errorTitle: 'Communication error',
+    maxResults: 6,
+    featureClass: "P",
+    
+    createStore: function(){
+        this.store = new Ext.data.Store({
+            model: 'Geonames',
+            proxy: {
+                type: 'scripttag',
+                timeout: 5000,
+                listeners: {
+                    exception: function(){
+                        this.hide();
+                        Ext.Msg.alert(this.errorTitle, this.errorText, Ext.emptyFn);
+                    },
+                    scope: this
+                },
+                url: this.url,
+                reader: {
+                    type: 'json',
+                    root: 'geonames'
+                }
+            }
+        });
+    },
+    
+    doSearch: function(searchfield, evt){
+        var q = searchfield.getValue();
+        this.store.load({
+            params: {
+                featureClass: this.featureClass,
+                maxRows: this.maxResults,
+                name_startsWith: encodeURIComponent(q)
+            }
+        });
+    },
+    
+    onItemTap: function(dataView, index, item, event){
+        var record = this.store.getAt(index);
+        var lon = record.get('lng');
+        var lat = record.get('lat');
+        var lonlat = new OpenLayers.LonLat(lon, lat);
+        map.setCenter(lonlat.transform(gg, sm), 12);
+        this.hide("pop");
+    },
+    
+    initComponent: function(){
+        this.createStore();
+        this.resultList = new Ext.List({
+            scroll: 'vertical',
+            cls: 'searchList',
+            loadingText: "Searching ...",
+            store: this.store,
+            itemTpl: '<div>{name} ({countryName})</div>',
+            listeners: {
+                itemtap: this.onItemTap,
+                scope: this
+            }
+        });
+        this.formContainer = new Ext.form.FormPanel({
+            scroll: false,
+            items: [{
+                xtype: 'button',
+                cls: 'close-btn',
+                ui: 'decline-small',
+                text: 'Close',
+                handler: function(){
+                    this.hide();
+                },
+                scope: this 
+            }, {
+                xtype: 'fieldset',
+                scroll: false,
+                title: 'Search for a place',
+                items: [{
+                    xtype: 'searchfield',
+                    label: 'Search',
+                    placeHolder: 'placename',
+                    listeners: {
+                        action: this.doSearch,
+                        scope: this
+                    }
+                },
+                    this.resultList
+                ]
+            }]
+        });
+        this.items = [{
+            xtype: 'panel',
+            layout: 'fit',
+            items: [this.formContainer]
+        }];
+        App.SearchFormPopupPanel.superclass.initComponent.call(this);
+    }
+});
+
+App.LayerList = Ext.extend(Ext.List, {
+    
+    map: null,
+    
+    createStore: function(){
+        Ext.regModel('Layer', {
+            fields: ['id', 'name', 'visibility', 'zindex']
+        });
+        var data = [];
+        Ext.each(this.map.layers, function(layer){
+            if (layer.displayInLayerSwitcher === true) {
+                var visibility = layer.isBaseLayer ? (this.map.baseLayer == layer) : layer.getVisibility();
+                data.push({
+                    id: layer.id,
+                    name: layer.name,
+                    visibility: visibility,
+                    zindex: layer.getZIndex()
+                });
+            }
+        });
+        return new Ext.data.Store({
+            model: 'Layer',
+            sorters: 'zindex',
+            data: data
+        });
+    },
+    
+    initComponent: function(){
+        this.store = this.createStore();
+        this.itemTpl = new Ext.XTemplate(
+            '<tpl if="visibility == true">', 
+                '<img width="20" src="img/check-round-green.png">', 
+            '</tpl>', 
+            '<tpl if="visibility == false">', 
+                '<img width="20" src="img/check-round-grey.png">', 
+            '</tpl>', 
+            '<span class="gx-layer-item">{name}</span>'
+        );
+        this.listeners = {
+            itemtap: function(dataview, index, item, e){
+                var record = dataview.getStore().getAt(index);
+                var layer = this.map.getLayersBy("id", record.get("id"))[0];
+                if (layer.isBaseLayer) {
+                    this.map.setBaseLayer(layer);
+                }
+                else {
+                    layer.setVisibility(!layer.getVisibility());
+                }
+                record.set("visibility", layer.getVisibility());
+            }
+        };
+        this.map.events.on({
+            "changelayer": this.onChangeLayer,
+            scope: this
+        });
+        App.LayerList.superclass.initComponent.call(this);
+    },
+
+    findLayerRecord: function(layer){
+        var found;
+        this.store.each(function(record){
+            if (record.get("id") === layer.id) {
+                found = record;
+            }
+        }, this);
+        return found;
+    },
+    
+    onChangeLayer: function(evt){
+        if (evt.property == "visibility") {
+            var record = this.findLayerRecord(evt.layer);
+            record.set("visibility", evt.layer.getVisibility());
+        }
+    }
+    
+});
+Ext.reg('app_layerlist', App.LayerList);
diff --git a/examples/mobile.html b/examples/mobile.html
new file mode 100644
index 0000000..708eb8b
--- /dev/null
+++ b/examples/mobile.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Mobile</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="style.mobile.css" type="text/css">
+        <script src="../lib/OpenLayers.js?mobile"></script>
+        <script src="mobile.js"></script>
+        <style>
+            html, body {
+                margin  : 0;
+                padding : 0;
+                height  : 100%;
+                width   : 100%;
+            }
+            @media only screen and (max-width: 600px) {
+                html, body {
+                    height  : 117%;
+                }
+            }
+            #map {
+                width    : 100%;
+                position : relative;
+                height   : 100%;
+            }
+            .olControlAttribution {
+                position      : absolute;
+                font-size     : 10px;
+                bottom        : 0 !important;
+                right         : 0 !important;
+                background    : rgba(0,0,0,0.1);
+                font-family   : Arial;
+                padding       : 2px 4px;
+                border-radius : 5px 0 0 0;
+            }
+            div.olControlZoomPanel .olControlZoomInItemInactive,
+            div.olControlZoomPanel .olControlZoomOutItemInactive {
+                background: rgba(0,0,0,0.2);
+                position: absolute;
+            }
+            div.olControlZoomPanel .olControlZoomInItemInactive {
+                border-radius: 5px 5px 0 0;
+            }
+            div.olControlZoomPanel .olControlZoomOutItemInactive {
+                border-radius: 0 0 5px 5px ;
+                top: 37px;
+            }
+            div.olControlZoomPanel .olControlZoomOutItemInactive:after ,
+            div.olControlZoomPanel .olControlZoomInItemInactive:after{
+                font-weight: bold;
+                content   : '+';
+                font-size : 36px;
+                padding:  7px;
+                z-index: 2000;
+                color     : #fff;
+                line-height: 1em;
+            }
+            div.olControlZoomPanel .olControlZoomOutItemInactive:after{
+                content: '–';
+                line-height: 0.9em;
+                padding: 0 8px;
+            }
+            div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
+                display: none;
+            }
+            #title, #tags, #shortdesc {
+                display: none;
+            }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Basic Mobile Example</h1>
+        <div id="tags">
+            mobile
+        </div>
+        <p id="shortdesc">
+            A basic full-screen map for mobile devices.
+        </p>
+        <div id="map"></div>
+        <script>
+            init();
+        </script>
+    </body>
+</html>
diff --git a/examples/mobile.js b/examples/mobile.js
new file mode 100644
index 0000000..094647a
--- /dev/null
+++ b/examples/mobile.js
@@ -0,0 +1,39 @@
+// initialize map when page ready
+var map;
+
+// Get rid of address bar on iphone/ipod
+var fixSize = function() {
+    window.scrollTo(0,0);
+    document.body.style.height = '100%';
+    if (!(/(iphone|ipod)/.test(navigator.userAgent.toLowerCase()))) {
+        if (document.body.parentNode) {
+            document.body.parentNode.style.height = '100%';
+        }
+    }
+};
+setTimeout(fixSize, 700);
+setTimeout(fixSize, 1500);
+
+var init = function () {
+    // create map
+    map = new OpenLayers.Map({
+        div: "map",
+        theme: null,
+        controls: [
+            new OpenLayers.Control.Attribution(),
+            new OpenLayers.Control.TouchNavigation({
+                dragPanOptions: {
+                    enableKinetic: true
+                }
+            }),
+            new OpenLayers.Control.ZoomPanel()
+        ],
+        layers: [
+            new OpenLayers.Layer.OSM("OpenStreetMap", null, {
+                transitionEffect: 'resize'
+            })
+        ],
+        center: new OpenLayers.LonLat(742000, 5861000),
+        zoom: 3
+    });
+};
diff --git a/examples/modify-feature.html b/examples/modify-feature.html
index b09ad35..8cec230 100644
--- a/examples/modify-feature.html
+++ b/examples/modify-feature.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Modify Feature</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controls {
             width: 512px;
@@ -14,7 +18,6 @@
             list-style: none;
         }
     </style>
-    <script src="../lib/Firebug/firebug.js"></script>
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, vectors, controls;
@@ -23,24 +26,33 @@
             var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", 
                 "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'}); 
             OpenLayers.Feature.Vector.style['default']['strokeWidth'] = '2';
-            vectors = new OpenLayers.Layer.Vector("Vector Layer");
+
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
+            vectors = new OpenLayers.Layer.Vector("Vector Layer", {
+                renderers: renderer
+            });
 
             map.addLayers([wms, vectors]);
             map.addControl(new OpenLayers.Control.LayerSwitcher());
             map.addControl(new OpenLayers.Control.MousePosition());
             
-            function report(event) {
-                OpenLayers.Console.log(event.type, event.feature ? event.feature.id : event.components);
+            if (console && console.log) {
+                function report(event) {
+                    console.log(event.type, event.feature ? event.feature.id : event.components);
+                }
+                vectors.events.on({
+                    "beforefeaturemodified": report,
+                    "featuremodified": report,
+                    "afterfeaturemodified": report,
+                    "vertexmodified": report,
+                    "sketchmodified": report,
+                    "sketchstarted": report,
+                    "sketchcomplete": report
+                });
             }
-            vectors.events.on({
-                "beforefeaturemodified": report,
-                "featuremodified": report,
-                "afterfeaturemodified": report,
-                "vertexmodified": report,
-                "sketchmodified": report,
-                "sketchstarted": report,
-                "sketchcomplete": report
-            });
             controls = {
                 point: new OpenLayers.Control.DrawFeature(vectors,
                             OpenLayers.Handler.Point),
@@ -106,6 +118,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Modify Feature Example</h1>
+    <div id="tags">
+        vertices, digitizing, draw, drawing
+    </div>
     <div id="shortdesc">A demonstration of the ModifyFeature control for editing vector features.</div>
     <div id="map" class="smallmap"></div>
     <div id="controls">
diff --git a/examples/mouse-position.html b/examples/mouse-position.html
index c9427a6..4e78e9b 100644
--- a/examples/mouse-position.html
+++ b/examples/mouse-position.html
@@ -1,10 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" debug="true">
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>MousePosition Control</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -29,12 +31,17 @@
   </head>
   <body onload="init()">
     <h1 id="title">MousePosition Control</h1>
+    <div id="tags">
+        coordinate
+    </div>
     <p id="shortdesc">
       Use the MousePosition Control to display the coordinates of the cursor
       inside or outside the map div.
     </p>  
     <div id="map" class="smallmap"></div>
     <div id="coords"></div>
-    <p>Moving your mouse to the upper left corner of this map should return 'x=0,y=0' -- in the past, it didn't in IE. If it returns 2,2, consider it a bug, and report it.</p> 
+    <p>Moving your mouse to the upper left corner of this map should return
+    'x=0,y=0' -- in the past, it didn't in IE. If it returns 2,2, consider it a
+    bug, and report it.</p> 
   </body>
 </html>
diff --git a/examples/mousewheel-interval.html b/examples/mousewheel-interval.html
index 0d5172b..ce8d6a6 100644
--- a/examples/mousewheel-interval.html
+++ b/examples/mousewheel-interval.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Mousewheel Interval Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -33,7 +37,9 @@
   <body onload="init()">
     <h1 id="title">OpenLayers Mousewheel Interval Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        performance, zoom by wheel
+    </div>
 
     <div id="shortdesc">Let OpenLayers send less tile requests to the server when wheel-zooming.</div>
 
diff --git a/examples/multimap-mercator.html b/examples/multimap-mercator.html
index 1131004..48b2dd9 100644
--- a/examples/multimap-mercator.html
+++ b/examples/multimap-mercator.html
@@ -1,8 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>MultiMap SphericalMercator</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #map {
             width: 100%;
@@ -54,6 +61,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">MultiMap Mercator Example</h1>
+    <div id="tags">
+        MultiMap, basic, cleanup
+    </div>
     <p id="shortdesc">
       This sphericalMercator example using multimap demonstrates that the
       multimap layer does not fully support the sphericalMercator projection at
diff --git a/examples/multiserver.html b/examples/multiserver.html
index 4ec7072..4b7654c 100644
--- a/examples/multiserver.html
+++ b/examples/multiserver.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Tiles from Multiple Servers</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -27,6 +31,7 @@
     <h1 id="title">Multiple Server URLS</h1>
 
   <div id="tags">
+    performance, multiple urls, request
   </div>
   <p id="shortdesc">
       Load your tiles faster by pointing to the same server, but with different urls
@@ -34,7 +39,13 @@
 
     <div id="map" class="smallmap"></div>
     <div id="docs">
-    Browsers typically limit the number of concurrent requests to the same server, based on hostname. In order to ake tiles load more quickly, it often makes sense to distribute requests over multiple hostnames to achieve more concurrency. Typically, browsers perform best with 3 different hostnames -- your performance may vary. (For example, if your server can't handle more than 2 requests simultaneously, then additional hostnames will not help you.)    
+    <p>Browsers typically limit the number of concurrent requests to the same
+    server, based on hostname. In order to ake tiles load more quickly, it
+    often makes sense to distribute requests over multiple hostnames to achieve
+    more concurrency. Typically, browsers perform best with 3 different
+    hostnames -- your performance may vary. (For example, if your server can't
+    handle more than 2 requests simultaneously, then additional hostnames will
+    not help you.)</p>    
    </div>
    
   </body>
diff --git a/examples/multitouch.html b/examples/multitouch.html
new file mode 100644
index 0000000..442b24a
--- /dev/null
+++ b/examples/multitouch.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+  <head>
+   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+   <title>Multitouch Test</title>
+  </head>
+  <body>
+   <div style="width:80%; height: 80%; border: 1px solid black; font-size: 5em;" id="box">
+   </div>
+   Touch inside the box. On a touch enabled browser, you will get the number
+   of detected touch events. If the box is red, your browser does not support
+   touch events.
+  <script>
+    var box = document.getElementById("box");
+    box.addEventListener("touchstart", function(evt) {
+        box.innerHTML = evt.touches.length;
+        evt.preventDefault();
+    });    
+    box.addEventListener("touchmove", function(evt) {
+        box.innerHTML = evt.touches.length;
+        evt.preventDefault();
+    });    
+    if (!(typeof box.ontouchstart != 'undefined')) { 
+        box.style.backgroundColor = "red";
+    }    
+  </script>
+  </body>
+</html>  
diff --git a/examples/mvs.html b/examples/mvs.html
index bacd5de..e26b012 100644
--- a/examples/mvs.html
+++ b/examples/mvs.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <html>
 <!-- 
      This probably needs to be renamed index.html for deployment.
@@ -5,6 +6,9 @@
      directory it is in.
 -->
 <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
 
     <!-- this gmaps key generated for http://openlayers.org/dev/ -->
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA9XNhd8q0UdwNC7YSO4YZghSPUCi5aRYVveCcVYxzezM4iaj_gxQ9t-UajFL70jfcpquH5l1IJ-Zyyw'></script>
diff --git a/examples/navigation-control.html b/examples/navigation-control.html
index d41b2df..661c42c 100644
--- a/examples/navigation-control.html
+++ b/examples/navigation-control.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Navigation Control</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -21,14 +25,20 @@
   <body onload="init()">
     <h1 id="title">Navigation Control</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        drag, move, zoom, navigate
+    </div>
 
     <div id="shortdesc">Demonstrate Navigation Control features</div>
 
     <div id="map" class="smallmap"></div>
     <a href="#" onclick="nav.enableZoomWheel();return false">Turn on Wheel Zoom</a> | <a href="#" onclick="nav.disableZoomWheel(); return false;">Turn off Wheel Zoom</a>
     <div id="docs">
-        This example demonstrates a couple features of the Navigation control. The Navigation control controls most map dragging, movement, zooming, etc. In this case, we have a demonstration of how to create a navigation control with no zoom wheel action, which can then be enabled or disabled by the user.
+        <p>This example demonstrates a couple features of the Navigation
+        control. The Navigation control controls most map dragging, movement,
+        zooming, etc. In this case, we have a demonstration of how to create a
+        navigation control with no zoom wheel action, which can then be enabled
+        or disabled by the user.</p>
     </div>
   </body>
 </html>
diff --git a/examples/navigation-history.html b/examples/navigation-history.html
index 2698c3e..e93007d 100644
--- a/examples/navigation-history.html
+++ b/examples/navigation-history.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Navigation History Example</title>
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style>
             #panel {
                 right: 0px;
@@ -44,6 +48,7 @@
         <h1 id="title">Map Navigation History Example</h1>
 
         <div id="tags">
+            history, basic
         </div>
 
         <p id="shortdesc">
diff --git a/examples/navtoolbar-alwaysZoom.html b/examples/navtoolbar-alwaysZoom.html
index a50be7e..7976918 100644
--- a/examples/navtoolbar-alwaysZoom.html
+++ b/examples/navtoolbar-alwaysZoom.html
@@ -1,11 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
 	<head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
 		<title>A navToolbar with an alwaysZoom ZoomBox</title>
-		<link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-	    <link rel="stylesheet" href="style.css" type="text/css" />
+		<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+	    <link rel="stylesheet" href="style.css" type="text/css">
 		<!-- Override the position of the toolbar to make it fit in a small map -->
 		<style type='text/css'>     
-			.olControlNavToolbar div { 
+			.olControlNavToolbar {
 			  top: 150px;
 			}
     	</style>  
@@ -45,9 +49,9 @@
 				     */
 				    draw: function() {
 				        var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
-				        this.activateControl(this.controls[0]);
+                        this.defaultControl = this.controls[0];
 				        return div;
-				    },
+				    }
 				});
 				
 				var map;
@@ -70,6 +74,9 @@
 	</head>
 	<body onload="init()">
 		<h1 id="title">A navToolbar with an alwaysZoom ZoomBox</h1>
+        <div id="tags">
+            navigation toolbar
+        </div>
 		<p id="shortdesc">
        		Demo of a custom NavToolbar which uses a zoomBox tool that always zoom in even when the zoom box is too big.
     	</p> 
diff --git a/examples/navtoolbar-outsidemap.html b/examples/navtoolbar-outsidemap.html
index bea6415..f41142b 100644
--- a/examples/navtoolbar-outsidemap.html
+++ b/examples/navtoolbar-outsidemap.html
@@ -1,17 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Custom Navigation Toolbar</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <style type="text/css">
-        #paneldiv {
-            height: 80px;
-        }
-        #paneldiv div { 
-            top: 10px; 
-        }
-        
-    </style>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -33,6 +28,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Navigation Toolbar: Outside the Map</h1>
+    <div id="tags">
+        navigation toolbar, style, position, div
+    </div>
     <div id="map" class="smallmap"></div>
     <div id="paneldiv" class="olControlNavToolbar"></div>
     <div id="docs">
diff --git a/examples/navtoolbar.html b/examples/navtoolbar.html
index a38bdc3..e4de88f 100644
--- a/examples/navtoolbar.html
+++ b/examples/navtoolbar.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <title>NavToolbar Demo</title>
     <style type='text/css'>    
         #map {
@@ -30,6 +34,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">NavToolbar Demo</h1>
+    <div id="tags">
+        navigation toolbar, basic
+    </div>
     <p id="shortdesc">
        Demo the NavToolbar, a subclass of Control.Panel which shows icons for
        navigation.
diff --git a/examples/notile.html b/examples/notile.html
deleted file mode 100644
index 5cc9896..0000000
--- a/examples/notile.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>OpenLayers: Single Tile</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        var map;
-        function init(){
-            map = new OpenLayers.Map('mapDiv', {maxResolution: 'auto'});
-
-            var old_ol_wms = new OpenLayers.Layer.WMS.Untiled( "WMS.Untiled", 
-                "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} );
-            old_ol_wms.addOptions({isBaseLayer: true});
-            
-            var new_ol_wms = new OpenLayers.Layer.WMS( "WMS w/singleTile", 
-                "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'}, 
-                { singleTile: true, ratio: 1 } );
-            new_ol_wms.addOptions({isBaseLayer: true});
-
-            map.addLayers([old_ol_wms, new_ol_wms]);
-            map.addControl(new OpenLayers.Control.LayerSwitcher());
-            map.setCenter(new OpenLayers.LonLat(6.5, 40.5), 4);
-        }
-    </script>
-  </head>
-  <body onload="init()">
-    <h1 id="title">Untiled Example</h1>
-    <p id="shortdesc">
-      Create an untiled WMS layer using the singleTile: true, option or the deprecated
-      WMS.Untiled layer.
-    </p>  
-    <div id="mapDiv" class="smallmap"></div>
-    <p> The first layer is an old OpenLayers.Layer.WMS.Untiled layer, using 
-        a default ratio value of 1.5.
-    <p> The second layer is an OpenLayers.Layer.WMS layer with singleTile set
-        to true, and with a ratio of 1.    
-  </body>
-</html>
diff --git a/examples/openls.html b/examples/openls.html
new file mode 100644
index 0000000..257ef61
--- /dev/null
+++ b/examples/openls.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta name="apple-mobile-web-app-capable" content="yes"/>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <title>OpenLS: Geocoding Example</title>
+    <script type="text/javascript" src="../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        var map, layer;
+
+        function init() {
+            OpenLayers.ProxyHost = "proxy.cgi?url=";
+            map = new OpenLayers.Map('map', {
+                controls: [
+                    new OpenLayers.Control.PanZoom(),
+                    new OpenLayers.Control.Permalink(),
+                    new OpenLayers.Control.Navigation()
+                ]
+            });
+            layer = new OpenLayers.Layer.OSM("OpenStreetMap", null, {
+                transitionEffect: 'resize'
+            });
+            map.addLayers([layer]);
+            map.zoomToMaxExtent();
+        }
+        function submitform() {
+            var queryString = document.forms[0].query.value;
+            OpenLayers.Request.POST({
+                url: "http://www.openrouteservice.org/php/OpenLSLUS_Geocode.php",
+                scope: this,
+                failure: this.requestFailure,
+                success: this.requestSuccess,
+                headers: {"Content-Type": "application/x-www-form-urlencoded"},
+                data: "FreeFormAdress=" + encodeURIComponent(queryString) + "&MaxResponse=1"
+            });
+        }
+        function requestSuccess(response) {
+            var format = new OpenLayers.Format.XLS();
+            var output = format.read(response.responseXML);
+            if (output.responseLists[0]) {
+                var geometry = output.responseLists[0].features[0].geometry;
+                var foundPosition = new OpenLayers.LonLat(geometry.x, geometry.y).transform(
+                        new OpenLayers.Projection("EPSG:4326"),
+                        map.getProjectionObject()
+                        );
+                map.setCenter(foundPosition, 16);
+            } else {
+                alert("Sorry, no address found");
+            }
+        }
+        function requestFailure(response) {
+            alert("An error occurred while communicating with the OpenLS service. Please try again.");
+        }
+
+    </script>
+</head>
+<body onload="init()">
+<h1 id="title">OpenLS Geocoding Example</h1>
+
+<div id="tags">
+    OpenLS, XLS, Geocoding
+</div>
+
+<p id="shortdesc">
+    Show how to use an OpenLS service.
+</p>
+
+<form name="input" action="javascript: submitform();" method="post">
+    <label for="query">Search for address:</label> <input type="text" id="query" size=50 name="query"
+                                                          value="Rue des Berges 37 Payerne"/>
+    <input type="submit" value="Submit"/>
+</form>
+
+<br>
+
+<div id="map" class="smallmap"></div>
+
+
+<div id="docs">
+    <p>
+        Geocoding example using the http://www.openrouteservice.org/ OpenLS service. Recenter to the first item of the results.
+    </p>
+</div>
+</body>
+</html>
diff --git a/examples/ordering.html b/examples/ordering.html
index 2536bd0..7cb3f2b 100644
--- a/examples/ordering.html
+++ b/examples/ordering.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Z-Ordering and Y-Ordering of Vector Features</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .smallmap {
             width: 300px;
@@ -30,6 +34,10 @@
         function initYOrderMap() {
             var map = new OpenLayers.Map("yorder");
             
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
             var layer = new OpenLayers.Layer.Vector(
                 "Y-Order",
                 {
@@ -39,7 +47,8 @@
                         graphicZIndex: GOLD_Z_INDEX
                     }),
                     isBaseLayer: true,
-                    rendererOptions: {yOrdering: true}
+                    rendererOptions: {yOrdering: true},
+                    renderers: renderer
                 }
             );
             
@@ -168,6 +177,7 @@
         <h1 id="title">Z-Index/Y-Order Example</h1>
 
         <div id="tags">
+            stack, stacking, zindex, ordering
         </div>
 
         <p id="shortdesc">
diff --git a/examples/osm-google.html b/examples/osm-google.html
index 1973864..3578246 100644
--- a/examples/osm-google.html
+++ b/examples/osm-google.html
@@ -1,11 +1,14 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers OSM and Google Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
         <link rel="stylesheet" href="style.css" type="text/css">
-        <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
+        <script src="http://maps.google.com/maps/api/js?v=3.3&sensor=false"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="osm-google.js"></script>
     </head>
@@ -14,6 +17,9 @@
         <p id="shortdesc">
             Demonstrate use of an OSM layer and a Google layer as base layers.
         </p>
+        <div id="tags">
+            openstreetmap google
+        </div>
         <div id="map" class="smallmap"></div>
         <div id="docs">
             <p>
diff --git a/examples/osm-layer.html b/examples/osm-layer.html
index cd16e75..58f8158 100644
--- a/examples/osm-layer.html
+++ b/examples/osm-layer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: OSM Layer</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style>
         #map {
             height: 350px;
@@ -104,6 +108,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Advanced OSM Layer</h1>
+    <div id="tags">
+        openstreetmap advanced
+    </div>
     <div id="map" class="smallmap"></div>
     <div id="download">
       <ul>
diff --git a/examples/osm.html b/examples/osm.html
index d14a1bb..519c396 100644
--- a/examples/osm.html
+++ b/examples/osm.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Basic Single WMS Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -22,14 +26,16 @@
   <body onload="init()">
     <h1 id="title">Basic OSM Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        openstreetmap basic
+    </div>
 
     <div id="shortdesc">Show a Simple OSM Map</div>
 
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        This example shows a very simple OSM layout with minimal controls. 
+        <p>This example shows a very simple OSM layout with minimal controls.</p> 
     </div>
   </body>
 </html>
diff --git a/examples/outOfRangeMarkers.html b/examples/outOfRangeMarkers.html
index 4870410..7e64237 100644
--- a/examples/outOfRangeMarkers.html
+++ b/examples/outOfRangeMarkers.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
 <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Using maxResolution to control overlays</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style>
         #map {
             height: 350px;
@@ -51,6 +55,9 @@
 
  <body onload="init()">
     <h1 id="title">Using maxResolution to control overlays</h1>
+    <div id="tags">
+        cleanup
+    </div>
     <p id="shortdesc">
       See how to control the maximum resolution for a markers layer, 
       causing it to not be displayed beyond a certain point.
diff --git a/examples/overviewmap.html b/examples/overviewmap.html
index aa0d781..7ae1ee8 100644
--- a/examples/overviewmap.html
+++ b/examples/overviewmap.html
@@ -1,8 +1,11 @@
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Overview Map Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js" type="text/javascript"></script>
         <style>
         #map1 {
@@ -21,6 +24,7 @@
         <h1 id="title">Overview Map</h1>
 
         <div id="tags">
+            overview, mapOptions, basic
         </div>
         <p id="shortdesc">
             Enable a small Overview Map that moves/interacts with your main map.
diff --git a/examples/pan-zoom-panels.html b/examples/pan-zoom-panels.html
index 3685df3..0c48498 100644
--- a/examples/pan-zoom-panels.html
+++ b/examples/pan-zoom-panels.html
@@ -1,7 +1,10 @@
 <html>
 <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Pan and Zoom Panels</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
 
     <!-- 
       -- Special stylesheet inclusion for ie6, which doesn't handle the alpha 
@@ -14,7 +17,7 @@
         <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
     <![endif]-->
 
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script type="text/javascript" src="../lib/OpenLayers.js"></script>
     <script>
     var map;
@@ -78,8 +81,11 @@
 </head>
 <body onload='init();'>
     <h1 id="title">Pan and Zoom Panels</h1>
-    <div id="tags"></div>
-    <p id="shortdesc">Customizable pan and zoom panels</p>
+    <div id="tags">
+        panning, zooming, panel, CSS, style
+    </div>
+    <p id="shortdesc">
+    Customizable pan and zoom panels
     </p>
     <div id="map" class="smallmap"></div>
     <p id="docs">
diff --git a/examples/panel.html b/examples/panel.html
index 8155550..685bdac 100644
--- a/examples/panel.html
+++ b/examples/panel.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Control Panel</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olControlPanel div { 
           display:block;
@@ -92,6 +96,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Custom Control.Panel</h1>
+    <div id="tags">
+        panels, CSS, style, basic
+    </div>
     <p id="shortdesc">
       Create a custom control.panel, styled entirely with
       CSS, and add your own controls to it.
diff --git a/examples/point-grid.html b/examples/point-grid.html
new file mode 100644
index 0000000..4cff89d
--- /dev/null
+++ b/examples/point-grid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Point Grid Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <style type="text/css">
+        .olControlAttribution {
+            left: 5px;
+            bottom: 5px; 
+        }
+    </style>
+  </head>
+  <body>
+    <h1 id="title">Point Grid Example</h1>
+
+    <div id="tags">
+        point grid
+    </div>
+
+    <div id="shortdesc">Use a PointGrid layer to display a grid of regularly spaced points</div>
+
+    <div id="map" class="smallmap"></div>
+    
+    Grid rotation:
+    <select name="rotation" id="rotation">
+        <option value="-45">-45</option>
+        <option value="-30">-30</option>
+        <option value="-15">-15</option>
+        <option value="0">0</option>
+        <option value="15">15</option>
+        <option value="30">30</option>
+        <option value="45">45</option>
+    </select>
+
+     
+    Grid spacing:
+    <select name="dx" id="dx">
+        <option value="10">10</option>
+        <option value="15">15</option>
+        <option value="20">20</option>
+        <option value="25">25</option>
+        <option value="30">30</option>
+    </select> x
+    <select name="dy" id="dy">
+        <option value="10">10</option>
+        <option value="15">15</option>
+        <option value="20">20</option>
+        <option value="25">25</option>
+        <option value="30">30</option>
+    </select>
+
+     
+    Max points:
+    <select name="max" id="max">
+        <option value="150">150</option>
+        <option value="250">250</option>
+        <option value="350">350</option>
+    </select>
+
+    <div class="docs">
+        <p>
+            This example demonstrates a <code>OpenLayers.Layer.PointGrid</code>
+            layer to render a regularly spaced grid of point features.
+        </p><p>
+            See the <a href="point-grid.js" target="_blank">
+            point-grid.js source</a> to see how this is done.
+        </p>
+    </div>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="point-grid.js"></script>
+  </body>
+</html>
diff --git a/examples/point-grid.js b/examples/point-grid.js
new file mode 100644
index 0000000..e3a29e8
--- /dev/null
+++ b/examples/point-grid.js
@@ -0,0 +1,33 @@
+var points = new OpenLayers.Layer.PointGrid({
+    isBaseLayer: true, dx: 15, dy: 15
+});
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [points],
+    center: new OpenLayers.LonLat(0, 0),
+    zoom: 2
+});
+
+var rotation = document.getElementById("rotation");
+rotation.value = String(points.rotation);
+rotation.onchange = function() {
+    points.setRotation(Number(rotation.value));
+}
+
+var dx = document.getElementById("dx");
+var dy = document.getElementById("dy");
+dx.value = String(points.dx);
+dy.value = String(points.dy);
+dx.onchange = function() {
+    points.setSpacing(Number(dx.value), Number(dy.value));
+}
+dy.onchange = function() {
+    points.setSpacing(Number(dx.value), Number(dy.value));
+}
+
+var max = document.getElementById("max");
+max.value = String(points.maxFeatures);
+max.onchange = function() {
+    points.setMaxFeatures(Number(max.value));
+}
diff --git a/examples/point-track-markers.html b/examples/point-track-markers.html
index 71ce675..0cb2c5d 100644
--- a/examples/point-track-markers.html
+++ b/examples/point-track-markers.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Point Track Markers</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer, rss, lineFeatures, popup;
@@ -53,7 +57,11 @@
   </head>
   <body onload="init()">
     <h1 id="title">GeoRSS PointTrack in OpenLayers</h1>
-    <p style="font-size:.9em;">This demo uses OpenLayers.Layer.GeoRSS and OpenLayers.Layer.PointTrack. The track is created by connecting the points of the GeoRSS feed.</a></p>
+    <div id="tags">
+        GeoRSS, PointTrack
+    </div>
+    <p id="shortdesc">This demo uses OpenLayers.Layer.GeoRSS and OpenLayers.Layer.PointTrack.</p>
+    <p style="font-size:.9em;">The track is created by connecting the points of the GeoRSS feed.</a></p>
     <form onsubmit="return false;">
    GeoRSS URL: <input type="text" id="url" size="50" /><input type="submit" onclick="addUrl(); return false;" value="Load Feed" onsubmit="addUrl(); return false;" />
     </form>  
diff --git a/examples/popupMatrix.html b/examples/popupMatrix.html
index 1395c04..4a2280e 100644
--- a/examples/popupMatrix.html
+++ b/examples/popupMatrix.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml" debug="true">
+<!DOCTYPE html>
+<html debug="true">
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Popup Mayhem</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #map {
             width: 900px;
@@ -81,7 +85,7 @@
 
             layer = new OpenLayers.Layer.Image(
                 "popupMatrix", 
-                "popupMatrix.jpg", 
+                "img/popupMatrix.jpg", 
                 new OpenLayers.Bounds(-82.5,-71.5,97.5,67.5),
                 new OpenLayers.Size(1024,768)
             );
@@ -107,52 +111,52 @@
             //anchored popup small contents no autosize
             ll = new OpenLayers.LonLat(-55,20);
             popupClass = OpenLayers.Popup.Anchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup small contents no autosize closebox
             var ll = new OpenLayers.LonLat(-50,20);
             popupClass = OpenLayers.Popup.Anchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored popup small contents autosize
             ll = new OpenLayers.LonLat(-40,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup small contents autosize closebox
             ll = new OpenLayers.LonLat(-35,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored popup small contents autosize minsize
             ll = new OpenLayers.LonLat(-25,20);
             popupClass = AutoSizeAnchoredMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup small contents autosize minsize closebox
             ll = new OpenLayers.LonLat(-20,20);
             popupClass = AutoSizeAnchoredMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored popup small contents autosize maxsize
             ll = new OpenLayers.LonLat(-10,20);
             popupClass = AutoSizeAnchoredMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup small contents autosize maxsize closebox
             ll = new OpenLayers.LonLat(-5,20);
             popupClass = AutoSizeAnchoredMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
@@ -184,39 +188,39 @@
             //anchored popup wide short fixed contents autosize
             ll = new OpenLayers.LonLat(35,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="wideshort.jpg"></img>';
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup wide short fixed contents autosize closebox
             ll = new OpenLayers.LonLat(40,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="wideshort.jpg"></img>';
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored popup thin long fixed contents autosize
             ll = new OpenLayers.LonLat(50,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="thinlong.jpg"></img>';
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup thin long fixed contents autosize closebox
             ll = new OpenLayers.LonLat(55,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="thinlong.jpg"></img>';
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored popup wide long fixed contents autosize
             ll = new OpenLayers.LonLat(65,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img  src="widelong.jpg"></img>' 
+            popupContentHTML = '<img  src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored popup wide long fixed contents autosize closebox
             ll = new OpenLayers.LonLat(70,20);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img  src="widelong.jpg"></img>' 
+            popupContentHTML = '<img  src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
         //
@@ -226,52 +230,52 @@
             //anchored popup small contents no autosize overflow
             var ll = new OpenLayers.LonLat(-55,15);
             popupClass = OpenLayers.Popup.Anchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup small contents no autosize closebox overflow
             var ll = new OpenLayers.LonLat(-50,15);
             popupClass = OpenLayers.Popup.Anchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored popup small contents autosize overflow
             ll = new OpenLayers.LonLat(-40,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup small contents autosize closebox overflow
             ll = new OpenLayers.LonLat(-35,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored popup small contents autosize minsize overflow
             ll = new OpenLayers.LonLat(-25,15);
             popupClass = AutoSizeAnchoredMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup small contents autosize minsize closebox overflow
             ll = new OpenLayers.LonLat(-20,15);
             popupClass = AutoSizeAnchoredMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored popup small contents autosize maxsize overflow
             ll = new OpenLayers.LonLat(-10,15);
             popupClass = AutoSizeAnchoredMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup small contents autosize maxsize closebox overflow
             ll = new OpenLayers.LonLat(-5,15);
             popupClass = AutoSizeAnchoredMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
@@ -303,39 +307,39 @@
             //anchored popup wide short fixed contents autosize overflow
             ll = new OpenLayers.LonLat(35,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup wide short fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(40,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored popup thin long fixed contents autosize overflow
             ll = new OpenLayers.LonLat(50,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup thin long fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(55,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored popup wide long fixed contents autosize overflow
             ll = new OpenLayers.LonLat(65,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored popup wide long fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(70,15);
             popupClass = AutoSizeAnchored;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
@@ -346,52 +350,52 @@
             //anchored bubble popup small contents no autosize
             var ll = new OpenLayers.LonLat(-55,5);
             popupClass = OpenLayers.Popup.AnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents no autosize closebox
             var ll = new OpenLayers.LonLat(-50,5);
             popupClass = OpenLayers.Popup.AnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup small contents autosize
             ll = new OpenLayers.LonLat(-40,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents autosize closebox
             ll = new OpenLayers.LonLat(-35,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup small contents autosize minsize
             ll = new OpenLayers.LonLat(-25,5);
             popupClass = AutoSizeAnchoredBubbleMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents autosize minsize closebox
             ll = new OpenLayers.LonLat(-20,5);
             popupClass = AutoSizeAnchoredBubbleMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup small contents autosize maxsize
             ll = new OpenLayers.LonLat(-10,5);
             popupClass = AutoSizeAnchoredBubbleMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents autosize maxsize closebox
             ll = new OpenLayers.LonLat(-5,5);
             popupClass = AutoSizeAnchoredBubbleMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
@@ -424,39 +428,39 @@
             //anchored bubble popup wide short fixed contents autosize
             ll = new OpenLayers.LonLat(35,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored bubble popup wide short fixed contents autosize closebox
             ll = new OpenLayers.LonLat(40,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup thin long fixed contents autosize
             ll = new OpenLayers.LonLat(50,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored bubble popup thin long fixed contents autosize closebox
             ll = new OpenLayers.LonLat(55,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup wide long fixed contents autosize
             ll = new OpenLayers.LonLat(65,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored bubble popup wide long fixed contents autosize closebox
             ll = new OpenLayers.LonLat(70,5);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
           //
@@ -466,52 +470,52 @@
               //anchored bubble popup small contents no autosize
             var ll = new OpenLayers.LonLat(-55,0);
             popupClass = OpenLayers.Popup.AnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
               //anchored bubble popup small contents no autosize closebox
             var ll = new OpenLayers.LonLat(-50,0);
             popupClass = OpenLayers.Popup.AnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup small contents autosize
             ll = new OpenLayers.LonLat(-40,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup small contents autosize closebox
             ll = new OpenLayers.LonLat(-35,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup small contents autosize minsize
             ll = new OpenLayers.LonLat(-25,0);
             popupClass = AutoSizeAnchoredBubbleMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup small contents autosize minsize closebox
             ll = new OpenLayers.LonLat(-20,0);
             popupClass = AutoSizeAnchoredBubbleMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup small contents autosize maxsize
             ll = new OpenLayers.LonLat(-10,0);
             popupClass = AutoSizeAnchoredBubbleMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup small contents autosize maxsize closebox
             ll = new OpenLayers.LonLat(-5,0);
             popupClass = AutoSizeAnchoredBubbleMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
@@ -544,39 +548,39 @@
             //anchored bubble popup wide short fixed contents autosize overflow
             ll = new OpenLayers.LonLat(35,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup wide short fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(40,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup thin long fixed contents autosize overflow
             ll = new OpenLayers.LonLat(50,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup thin long fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(55,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup wide long fixed contents autosize overflow
             ll = new OpenLayers.LonLat(65,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup wide long fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(70,0);
             popupClass = AutoSizeAnchoredBubble;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
    //FRAMED
@@ -588,52 +592,52 @@
               //anchored bubble popup small contents no autosize
             var ll = new OpenLayers.LonLat(-55,-15);
             popupClass = OpenLayers.Popup.FramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
               //anchored bubble popup small contents no autosize closebox
             var ll = new OpenLayers.LonLat(-50,-15);
             popupClass = OpenLayers.Popup.FramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup small contents autosize
             ll = new OpenLayers.LonLat(-40,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents autosize closebox
             ll = new OpenLayers.LonLat(-35,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup small contents autosize minsize
             ll = new OpenLayers.LonLat(-25,-15);
             popupClass = AutoSizeFramedCloudMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents autosize minsize closebox
             ll = new OpenLayers.LonLat(-20,-15);
             popupClass = AutoSizeFramedCloudMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup small contents autosize maxsize
             ll = new OpenLayers.LonLat(-10,-15);
             popupClass = AutoSizeFramedCloudMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false);
 
             //anchored bubble popup small contents autosize maxsize closebox
             ll = new OpenLayers.LonLat(-5,-15);
             popupClass = AutoSizeFramedCloudMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
@@ -666,39 +670,39 @@
             //anchored bubble popup wide short fixed contents autosize
             ll = new OpenLayers.LonLat(35,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored bubble popup wide short fixed contents autosize closebox
             ll = new OpenLayers.LonLat(40,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup thin long fixed contents autosize
             ll = new OpenLayers.LonLat(50,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored bubble popup thin long fixed contents autosize closebox
             ll = new OpenLayers.LonLat(55,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
 
             //anchored bubble popup wide long fixed contents autosize
             ll = new OpenLayers.LonLat(65,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML);
 
             //anchored bubble popup wide long fixed contents autosize closebox
             ll = new OpenLayers.LonLat(70,-15);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true);
 
           //
@@ -708,52 +712,52 @@
               //anchored bubble popup small contents no autosize
             var ll = new OpenLayers.LonLat(-55,-20);
             popupClass = OpenLayers.Popup.FramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
               //anchored bubble popup small contents no autosize closebox
             var ll = new OpenLayers.LonLat(-50,-20);
             popupClass = OpenLayers.Popup.FramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup small contents autosize
             ll = new OpenLayers.LonLat(-40,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup small contents autosize closebox
             ll = new OpenLayers.LonLat(-35,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup small contents autosize minsize
             ll = new OpenLayers.LonLat(-25,-20);
             popupClass = AutoSizeFramedCloudMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup small contents autosize minsize closebox
             ll = new OpenLayers.LonLat(-20,-20);
             popupClass = AutoSizeFramedCloudMinSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup small contents autosize maxsize
             ll = new OpenLayers.LonLat(-10,-20);
             popupClass = AutoSizeFramedCloudMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup small contents autosize maxsize closebox
             ll = new OpenLayers.LonLat(-5,-20);
             popupClass = AutoSizeFramedCloudMaxSize;
-            popupContentHTML = '<img src="small.jpg"></img>';
+            popupContentHTML = '<img src="img/small.jpg"></img>';
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
@@ -786,39 +790,39 @@
             //anchored bubble popup wide short fixed contents autosize overflow
             ll = new OpenLayers.LonLat(35,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup wide short fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(40,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="wideshort.jpg"></img>' 
+            popupContentHTML = '<img src="img/wideshort.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup thin long fixed contents autosize overflow
             ll = new OpenLayers.LonLat(50,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup thin long fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(55,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="thinlong.jpg"></img>' 
+            popupContentHTML = '<img src="img/thinlong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
 
 
             //anchored bubble popup wide long fixed contents autosize overflow
             ll = new OpenLayers.LonLat(65,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, false, true);
 
             //anchored bubble popup wide long fixed contents autosize closebox overflow
             ll = new OpenLayers.LonLat(70,-20);
             popupClass = AutoSizeFramedCloud;
-            popupContentHTML = '<img src="widelong.jpg"></img>' 
+            popupContentHTML = '<img src="img/widelong.jpg"></img>' 
             addMarker(ll, popupClass, popupContentHTML, true, true);
  
 
@@ -870,6 +874,7 @@
   <h1 id="title">Popup Matrix</h1>
 
   <div id="tags">
+  popup, popups
   </div>
       <p id="shortdesc">
           All kinds of different popup configurations.
@@ -878,16 +883,16 @@
       <div id="map" class="smallmap"></div>
 
         <!-- preloading these images so the autosize will work correctly -->
-        <img src="wideshort.jpg" style="position:absolute; top:-5000px; left: -5000px"></img>
-        <img src="widelong.jpg" style="position:absolute; top:-5000px; left: -5000px"></img>
-        <img src="thinlong.jpg" style="position:absolute; top:-5000px; left: -5000px"></img>
+        <img src="img/wideshort.jpg" style="position:absolute; top:-5000px; left: -5000px"></img>
+        <img src="img/widelong.jpg" style="position:absolute; top:-5000px; left: -5000px"></img>
+        <img src="img/thinlong.jpg" style="position:absolute; top:-5000px; left: -5000px"></img>
 
        <p> All of the images in this file a pre-cached, meaning they are 
            loaded immediately when you load the page (they are just placed 
            far offscreen, that's why you don't see them). 
        </p>
        <br>    
-       <p> The only image that is *not* preloaded is small.jpg, the brazilian
+       <p> The only image that is *not* preloaded is img/small.jpg, the brazilian
            flag. We do this in order to test out to make sure that our auto-sizing
              code does in fact activate itself as the images load. To verify 
              this, clear your cache and reload this example page. Click on 
@@ -896,7 +901,7 @@
              tiny and you can only see a corner of it, then this code is broken.
         </p>
 
-      <br/>      
+      <br>      
 
       
    </div>
diff --git a/examples/popups.html b/examples/popups.html
index 93b3ed9..3620043 100644
--- a/examples/popups.html
+++ b/examples/popups.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
@@ -108,6 +112,7 @@
   <h1 id="title">Popup Mayhem</h1>
 
   <div id="tags">
+    popup, popups
   </div>
   <p id="shortdesc">
       All kinds of ways to create and interact with Popups.
diff --git a/examples/projected-map.html b/examples/projected-map.html
index 2c7e2a5..0e9c87c 100644
--- a/examples/projected-map.html
+++ b/examples/projected-map.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Non-Geographic Projection</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
     #map {
     width: 100%;
@@ -56,6 +60,7 @@
   <h1 id="title">Layer Projections</h1>
 
   <div id="tags">
+    projection, reprojection, epsg, basic
   </div>
   <p id="shortdesc">
       Use different (not default) projections with your map 
diff --git a/examples/protocol-gears.html b/examples/protocol-gears.html
index f98dcfa..23799ec 100644
--- a/examples/protocol-gears.html
+++ b/examples/protocol-gears.html
@@ -1,7 +1,14 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .float-left {
             float: left;
@@ -218,6 +225,7 @@
     <h1 id="title">Gears Protocol Example</h1>
 
     <div id="tags">
+        Google, Gears
     </div>
     <p id="shortdesc">
         Shows the usage of the Gears protocol.
diff --git a/examples/proxy.cgi b/examples/proxy.cgi
index 8b494d7..c668218 100755
--- a/examples/proxy.cgi
+++ b/examples/proxy.cgi
@@ -20,8 +20,8 @@ allowedHosts = ['www.openlayers.org', 'openlayers.org',
                 'prototype.openmnnd.org', 'geo.openplans.org',
                 'sigma.openplans.org', 'demo.opengeo.org',
                 'www.openstreetmap.org', 'sample.azavea.com',
-                'v-swe.uni-muenster.de:8080', 
-                'vmap0.tiles.osgeo.org']
+                'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080', 
+                'vmap0.tiles.osgeo.org', 'www.openrouteservice.org']
 
 method = os.environ["REQUEST_METHOD"]
 
diff --git a/examples/regular-polygons.html b/examples/regular-polygons.html
index bf80b22..f2725dd 100644
--- a/examples/regular-polygons.html
+++ b/examples/regular-polygons.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Regular Polygon Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         p {
             width: 512px;
@@ -73,6 +77,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Regular Polygon Example</h1>
+    <div id="tags">
+        vector, feature, regularpolygon, drawing, draw, advanced
+    </div>     
     <p id="shortdesc">
       Shows how to use the RegularPolygon handler to draw features with
       different numbers of sides.
diff --git a/examples/resize-features.html b/examples/resize-features.html
index 07e4c92..521d501 100644
--- a/examples/resize-features.html
+++ b/examples/resize-features.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Resize Features Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         p {
             width: 500px;
@@ -80,6 +84,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Resize Features Programatically</h1>
+    <div id="tags">
+        vector, feature, resizing, resize
+    </div>    
     <p id="shortdesc">
       Demonstration of how to use the geometry resize methods to
       change feature sizes programatically.
diff --git a/examples/restricted-extent.html b/examples/restricted-extent.html
index 427ddc9..5117453 100644
--- a/examples/restricted-extent.html
+++ b/examples/restricted-extent.html
@@ -1,13 +1,17 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Restricted Extent Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/Firebug/firebug.js"></script>
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map = null;
-        var extent = new OpenLayers.Bounds(-180, -90, 180, 90);
+        var extent = new OpenLayers.Bounds(8, 44.5, 19, 50);
 
         function init() {
             var options = {
@@ -22,7 +26,7 @@
             ); 
 
             map.addLayers([wms]);
-            map.setCenter(extent, 1);
+            map.zoomToExtent(extent);
             document.getElementById("toggle").checked = true;
         }
         
@@ -37,6 +41,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Restricted Extent Example</h1>
+    <div id="tags">
+        map, restrict, restrictedextent, extent
+    </div>    
     <p id="shortdesc">
       Don't let users drag outside the map extent: instead, limit dragging such
       that the extent of the layer is the maximum viewable area.
@@ -63,8 +70,8 @@
         <input type="checkbox" id="toggle" checked="checked"
                onclick="toggleRestrictedExtent();" />
         <label for="toggle">
-            Toggle restricted extent (to [-180, -90, 180, 90]).
+            Toggle restricted extent (to [8, 44.5, 19, 50]).
         </label>
     
   </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/examples/rotate-features.html b/examples/rotate-features.html
index 1aa981e..8a8eb02 100644
--- a/examples/rotate-features.html
+++ b/examples/rotate-features.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Rotate Features Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         p {
             width: 500px;
@@ -94,8 +98,9 @@
   <body onload="init()">
     <h1 id="title">Rotate vector features</h1>
 
-  <div id="tags">
-  </div>
+    <div id="tags">
+        vector, feature, rotating, rotation, rotate, advanced
+    </div>
   <p id="shortdesc">
       Details on how to create and rotate vector features programmatically
   </p>
diff --git a/examples/select-feature-multilayer.html b/examples/select-feature-multilayer.html
index 23cc97e..58c1ade 100644
--- a/examples/select-feature-multilayer.html
+++ b/examples/select-feature-multilayer.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>SelectFeature Control on multiple vector layers</title> 
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controlToggle li {
             list-style: none;
@@ -106,6 +110,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Select Feature on Multiple Layers Example</h1>
+    <div id="tags">
+        vector, feature, selecting, selection, advanced
+    </div>     
     <p id="shortdesc">
       Select a feature on click with the Control.SelectFeature on multiple 
       vector layers.
diff --git a/examples/select-feature-openpopup.html b/examples/select-feature-openpopup.html
index 0f24e95..cdd0e41 100644
--- a/examples/select-feature-openpopup.html
+++ b/examples/select-feature-openpopup.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Open Popup on Layer.Vector</title> 
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controlToggle li {
             list-style: none;
@@ -19,7 +23,7 @@
             popup = new OpenLayers.Popup.FramedCloud("chicken", 
                                      feature.geometry.getBounds().getCenterLonLat(),
                                      null,
-                                     "<div style='font-size:.8em'>Feature: " + feature.id +"<br />Area: " + feature.geometry.getArea()+"</div>",
+                                     "<div style='font-size:.8em'>Feature: " + feature.id +"<br>Area: " + feature.geometry.getArea()+"</div>",
                                      null, true, onPopupClose);
             feature.popup = popup;
             map.addPopup(popup);
@@ -71,6 +75,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Open Popup on Layer.Vector</h1> 
+    <div id="tags">
+        vector, feature, selecting, selection, popup
+    </div>    
     <p id="shortdesc">
       Using a Control.SelectFeature, open a popup on click.
     </p>
diff --git a/examples/select-feature.html b/examples/select-feature.html
index e04c028..00325a4 100644
--- a/examples/select-feature.html
+++ b/examples/select-feature.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>SelectFeature Control on Layer.Vector</title> 
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #controlToggle li {
             list-style: none;
@@ -20,14 +24,20 @@
                 {layers: 'basic'}
             ); 
 
-            var vectors = new OpenLayers.Layer.Vector("Vector Layer");
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
+            var vectors = new OpenLayers.Layer.Vector("Vector Layer", {
+                renderers: renderer
+            });
             vectors.events.on({
                 'featureselected': function(feature) {
                     $('counter').innerHTML = this.selectedFeatures.length;
                 },
                 'featureunselected': function(feature) {
                     $('counter').innerHTML = this.selectedFeatures.length;
-                },
+                }
             });
 
             map.addLayers([wmsLayer, vectors]);
@@ -100,6 +110,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Select Feature Example</h1>
+    <div id="tags">
+        vector, feature, selecting, selection, advanced
+    </div>        
     <p id="shortdesc">
       Select a feature on hover or click with the Control.SelectFeature on a
       vector layer.
diff --git a/examples/setextent.html b/examples/setextent.html
index c0c18e1..5cf5685 100644
--- a/examples/setextent.html
+++ b/examples/setextent.html
@@ -1,12 +1,17 @@
 <html>
 <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
 <title>Setting a visual Extent</title>
-<link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
 <script src="../lib/OpenLayers.js"></script>
 </head>
 <body>
 <h1 id="title">Setting a Visual Extent</h1>
+<div id="tags">
+    boxes, box, marker
+</div>
 <p id='shortdesc'>
   Use a boxes layer to visually display the area of interest indicated by a user.
 </p>
diff --git a/examples/simplify-linestring.html b/examples/simplify-linestring.html
new file mode 100644
index 0000000..15160a0
--- /dev/null
+++ b/examples/simplify-linestring.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <title>Simplify a LineString geometry</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <style type="text/css">
+        #map, #map-simplify {
+            height: 400px;
+            width: 400px;
+            margin: 5px !important;
+            float: left;
+        }
+        #info {
+            width: 300px;
+            float: left;
+        }
+        #docs {
+            clear: both;
+        }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Simplify a LineString geometry</h1>
+        <div id="tags">
+            Douglas-Peucker, Douglas, Peucker, Peuker, tolerance
+        </div>
+        <p id="shortdesc">
+            Shows the usage of the method "simplify" that implements 
+			the Douglas-Peucker algorithm to remove "insignificant" 
+			vertices from LineString geometries.
+        </p>
+        <div id="control-simplify">
+            <label for="tolerance">Tolerance factor:</label>
+            <input name="tolerance" id="tolerance" type="number" min="0" max="1" step="0.02" value="0.1">
+            <input type="button" id="simplify" value="Simplify LineString">
+            <input type="button" id="animation" value="Start animation">
+        </div>
+        <div id="map" class="smallmap">
+        </div>
+        <div id="map-simplify" class="smallmap">
+        </div>
+        <div id="info">
+        </div>
+        <div id="docs">
+            <p>
+                Instances of OpenLayers.Geometry.LineString have a method simplify,
+                that can be used to simplify linestring geometries.
+                Simplification sometimes is useful to enhance the perfomance of 
+                vector rendering or to reduce complexity of geometries. This 
+                might be especially handy when viewing geometries a small 
+                scales.  
+            </p>
+            <p>
+                OpenLayers.Geometry.LineString::simplify is a recursive 
+				implementation of the famous Douglas-Peucker algorithm. It is 
+				controlled by a tolerance factor that defines the threshold for 
+				vertices to be considered "insignificant" for the 
+                general structure of the geometry.                
+            </p>
+            <p>
+                The LineString on the left map can be simplified according to 
+                the tolerance value one enters in the form-field above the maps.
+                Use a value between 0 and 1 for best results. If you navigate 
+                the left map, the right map will show the same location to make 
+                it easier to spot the differeces between the LineStrings.
+            </p>
+            <p>
+                You can also use the button "Start animation" to get 
+                results for increasing tolerance-factors from 0.02 to 1.0. The
+                animation can be paused by clicking on the button "Stop
+                animation". 
+            </p>
+            <p>
+                The LineString represents a part of the coastline of 
+                <a href="http://www.openstreetmap.org/?lat=54.7309684753418&lon=83.1809234619141&zoom=11">this 
+                place southeast of Novosibirsk in Russia</a> — found via 
+                <a href="http://ryba4.com/python/ramer-douglas-peucker">an
+                example implementation of the algorithm in python</a>.
+            </p>
+            <p>
+                For a detailled explanation of the algorithm see 
+                <a href="http://en.wikipedia.org/wiki/Douglas-Peucker_algorithm">the
+                Wikipedia article</a> or the original publication: David Douglas 
+                & Thomas Peucker, "Algorithms for the reduction of the 
+                number of points required to represent a digitized line or its 
+                caricature", The Canadian Cartographer 10(2), 112-122 (1973) 
+                (<a href="http://dx.doi.org/10.3138/FM57-6770-U75U-7727">DOI: 
+                10.3138/FM57-6770-U75U-7727</a>).
+            </p>
+            <p>See <a href="simplify-linestring.js">simplify-linestring.js</a>
+                for the source code of this example.</p>
+        </div>
+        <script type="text/javascript" src="../lib/OpenLayers.js">
+        </script>
+        <script type="text/javascript" src="./simplify-linestring.js">
+        </script>
+    </body>
+</html>
diff --git a/examples/simplify-linestring.js b/examples/simplify-linestring.js
new file mode 100644
index 0000000..3f4c6f6
--- /dev/null
+++ b/examples/simplify-linestring.js
@@ -0,0 +1,599 @@
+// global variables
+var map, map2;
+
+// wrap the instanciation code in an anonymous function that gets executed
+// immedeately
+(function(){
+    // style the vectorlayer
+    var styleMap = new OpenLayers.StyleMap({
+        'default': new OpenLayers.Style({
+            strokeColor: "#333333",
+            strokeWidth: 1.2,
+            strokeOpacity: 1
+        })
+    });
+    
+    // the vectorlayer
+    var vectorlayer = new OpenLayers.Layer.Vector('Vectorlayer', {
+        isBaseLayer: true,
+        styleMap: styleMap
+    });
+    
+    var original = OpenLayers.Geometry.fromWKT("LINESTRING(" +
+        "6.247872 11.316756," +
+        "6.338566 11.316756," +
+        "6.633323 11.205644," +
+        "6.724018 11.205644," +
+        "6.792039 11.205644," +
+        "7.154817 11.372311," +
+        "7.313532 11.400089," +
+        "7.381553 11.344533," +
+        "7.336206 11.288978," +
+        "7.200164 11.288978," +
+        "7.154817 11.261200," +
+        "7.132143 11.233422," +
+        "7.154817 11.150089," +
+        "7.268185 11.177867," +
+        "7.313532 11.122311," +
+        "7.404227 11.150089," +
+        "7.472248 11.094533," +
+        "7.767005 10.900089," +
+        "7.758951 10.864989," +
+        "7.752684 10.837656," +
+        "7.426900 10.927867," +
+        "6.519955 10.927867," +
+        "6.429261 10.900089," +
+        "6.315893 10.955644," +
+        "6.270545 10.955644," +
+        "6.247872 10.927867," +
+        "6.111830 11.011200," +
+        "6.066483 11.066756," +
+        "5.862420 11.038978," +
+        "5.817073 10.955644," +
+        "5.771726 10.900089," +
+        "5.862420 10.761200," +
+        "5.975788 10.733422," +
+        "6.157177 10.566756," +
+        "6.247872 10.511200," +
+        "6.293219 10.427867," +
+        "6.315893 10.233422," +
+        "6.315893 10.177867," +
+        "6.542629 9.844533," +
+        "6.587976 9.761200," +
+        "6.610650 9.288978," +
+        "6.542629 9.066756," +
+        "6.565303 8.900089," +
+        "6.519955 8.816756," +
+        "6.542629 8.761200," +
+        "6.565303 8.733422," +
+        "6.429261 8.427867," +
+        "6.474608 8.316756," +
+        "6.724018 8.288978," +
+        "6.882733 8.538978," +
+        "6.973428 8.594533," +
+        "6.996101 8.622311," +
+        "7.200164 8.650089," +
+        "7.290859 8.650089," +
+        "7.426900 8.483422," +
+        "7.404227 8.455644," +
+        "7.245511 8.511200," +
+        "6.996101 8.427867," +
+        "7.041449 8.372311," +
+        "7.154817 8.455644," +
+        "7.200164 8.455644," +
+        "7.245511 8.455644," +
+        "7.381553 8.316756," +
+        "7.381553 8.261200," +
+        "7.404227 8.233422," +
+        "7.494921 8.205644," +
+        "7.767005 8.288978," +
+        "7.948394 8.233422," +
+        "8.016415 8.261200," +
+        "8.197804 8.094533," +
+        "8.084435 7.816756," +
+        "8.152456 7.733422," +
+        "8.175130 7.650089," +
+        "8.175130 7.511200," +
+        "8.311172 7.427867," +
+        "8.311172 7.372311," +
+        "8.651276 7.372311," +
+        "8.923360 7.316756," +
+        "8.900686 7.261200," +
+        "8.809991 7.261200," +
+        "8.472735 7.171122," +
+        "8.333845 7.038978," +
+        "8.282022 6.981100," +
+        "8.254778 6.848911," +
+        "8.265824 6.816756," +
+        "8.239206 6.711211," +
+        "8.219743 6.612067," +
+        "8.130227 6.433044," +
+        "8.084435 6.316756," +
+        "8.107109 6.288978," +
+        "7.948394 6.177867," +
+        "7.925720 5.983422," +
+        "7.857699 5.816756," +
+        "7.835026 5.788978," +
+        "7.857699 5.511200," +
+        "7.812352 5.400089," +
+        "7.812352 5.344533," +
+        "7.812352 5.177867," +
+        "8.084435 4.733422," +
+        "8.107109 4.622311," +
+        "7.857699 4.344533," +
+        "7.630963 4.261200," +
+        "7.540268 4.177867," +
+        "7.494921 4.150089," +
+        "7.449574 4.150089," +
+        "7.404227 4.150089," +
+        "7.336206 4.094533," +
+        "7.313532 4.066756," +
+        "7.041449 4.011200," +
+        "6.905407 3.955644," +
+        "6.950754 3.900089," +
+        "7.200164 3.927867," +
+        "7.630963 3.872311," +
+        "7.721657 3.872311," +
+        "7.948394 3.788978," +
+        "7.993741 3.705644," +
+        "7.971067 3.677867," +
+        "7.925720 3.622311," +
+        "8.175130 3.705644," +
+        "8.401866 3.650089," +
+        "8.492561 3.650089," +
+        "8.605929 3.538978," +
+        "8.651276 3.566756," +
+        "8.855339 3.372311," +
+        "8.900686 3.316756," +
+        "8.900686 3.150089," +
+        "8.787318 2.900089," +
+        "8.787318 2.844533," +
+        "8.946033 2.816756," +
+        "8.991380 2.788978," +
+        "9.014054 2.705644," +
+        "8.886928 2.524989," +
+        "8.832665 2.538978," +
+        "8.809991 2.455644," +
+        "8.923360 2.538978," +
+        "9.014054 2.400089," +
+        "9.308811 2.288978," +
+        "9.399506 2.261200," +
+        "9.512874 2.122311," +
+        "9.535548 1.983422," +
+        "9.512874 1.955644," +
+        "9.467527 1.816756," +
+        "9.036728 1.816756," +
+        "8.991380 1.927867," +
+        "8.946033 1.955644," +
+        "8.900686 1.983422," +
+        "8.946033 2.122311," +
+        "8.968707 2.150089," +
+        "9.195443 1.927867," +
+        "9.354158 1.955644," +
+        "9.376832 2.038978," +
+        "9.376832 2.094533," +
+        "9.240790 2.205644," +
+        "9.195443 2.205644," +
+        "9.263464 2.150089," +
+        "9.240790 2.122311," +
+        "9.195443 2.122311," +
+        "9.104749 2.122311," +
+        "8.900686 2.316756," +
+        "8.787318 2.344533," +
+        "8.696623 2.372311," +
+        "8.651276 2.427867," +
+        "8.719297 2.455644," +
+        "8.787318 2.650089," +
+        "8.832665 2.705644," +
+        "8.605929 2.677867," +
+        "8.537908 2.788978," +
+        "8.333845 2.788978," +
+        "7.925720 2.316756," +
+        "7.925720 2.261200," +
+        "7.903046 2.233422," +
+        "7.857699 2.233422," +
+        "7.857699 2.177867," +
+        "7.789678 1.983422," +
+        "7.812352 1.788978," +
+        "7.948394 1.538978," +
+        "7.971067 1.511200," +
+        "8.129783 1.511200," +
+        "8.243151 1.594533," +
+        "8.333845 1.594533," +
+        "8.424540 1.622311," +
+        "8.515234 1.566756," +
+        "8.673950 1.400089," +
+        "8.771174 1.291756," +
+        "8.828938 1.119878," +
+        "8.762504 0.972544," +
+        "9.238614 0.759633," +
+        "9.492323 0.627022," +
+        "9.820891 0.644711," +
+        "10.376567 0.800622," +
+        "10.651961 1.085978," +
+        "10.762173 1.132022," +
+        "10.943045 1.095989," +
+        "11.256739 0.999878," +
+        "11.576074 0.761611," +
+        "11.768247 0.425211," +
+        "11.960165 0.074778," +
+        "11.953907 0.000000," +
+        "11.629411 0.258767," +
+        "11.229920 0.582278," +
+        "11.001633 0.564300," +
+        "10.868476 0.447478," +
+        "10.633849 0.541833," +
+        "10.513370 0.672133," +
+        "11.188700 0.820078," +
+        "11.194014 0.859656," +
+        "11.118212 0.905822," +
+        "10.874860 0.930311," +
+        "10.427319 0.716522," +
+        "10.023620 0.374211," +
+        "9.434614 0.360144," +
+        "8.455131 0.859544," +
+        "8.180481 0.920500," +
+        "7.902529 1.115078," +
+        "7.823108 1.269800," +
+        "7.830482 1.403778," +
+        "7.791937 1.496744," +
+        "7.767005 1.538978," +
+        "7.676310 1.622311," +
+        "7.653637 1.650089," +
+        "7.585616 1.955644," +
+        "7.562942 1.983422," +
+        "7.562942 2.233422," +
+        "7.608289 2.400089," +
+        "7.630963 2.427867," +
+        "7.608289 2.538978," +
+        "7.585616 2.566756," +
+        "7.653637 2.705644," +
+        "7.630963 2.816756," +
+        "7.336206 3.011200," +
+        "7.290859 3.011200," +
+        "7.245511 3.011200," +
+        "7.041449 2.955644," +
+        "6.928081 2.816756," +
+        "6.928081 2.733422," +
+        "6.905407 2.622311," +
+        "6.860060 2.677867," +
+        "6.814712 2.677867," +
+        "6.678671 2.677867," +
+        "6.678671 2.733422," +
+        "6.769365 2.733422," +
+        "6.814712 2.733422," +
+        "6.792039 2.788978," +
+        "6.293219 3.066756," +
+        "6.225198 3.122311," +
+        "6.202525 3.233422," +
+        "6.134504 3.344533," +
+        "5.907767 3.261200," +
+        "5.862420 3.288978," +
+        "6.043809 3.427867," +
+        "6.021136 3.483422," +
+        "5.975788 3.483422," +
+        "5.930441 3.511200," +
+        "5.953115 3.566756," +
+        "5.975788 3.594533," +
+        "5.749052 3.788978," +
+        "5.703705 3.788978," +
+        "5.635684 3.788978," +
+        "5.703705 3.844533," +
+        "5.703705 4.011200," +
+        "5.499642 4.011200," +
+        "5.862420 4.372311," +
+        "5.975788 4.427867," +
+        "6.021136 4.427867," +
+        "6.089156 4.538978," +
+        "6.111830 4.566756," +
+        "6.089156 4.650089," +
+        "5.998462 4.650089," +
+        "5.817073 4.788978," +
+        "5.771726 4.816756," +
+        "5.681031 4.816756," +
+        "5.749052 4.927867," +
+        "5.749052 5.038978," +
+        "5.839747 5.177867," +
+        "5.998462 5.233422," +
+        "6.225198 5.233422," +
+        "6.270545 5.233422," +
+        "6.383914 5.288978," +
+        "6.406587 5.372311," +
+        "6.429261 5.400089," +
+        "6.587976 5.483422," +
+        "6.670626 5.490000," +
+        "6.700845 5.564100," +
+        "6.860060 5.927867," +
+        "6.860060 6.038978," +
+        "6.950754 6.205644," +
+        "6.973428 6.316756," +
+        "7.041449 6.344533," +
+        "7.064122 6.455644," +
+        "7.116072 6.541989," +
+        "7.114313 6.603667," +
+        "7.025305 6.741422," +
+        "6.736924 6.701367," +
+        "6.641658 6.741467," +
+        "6.500574 6.761389," +
+        "6.435410 6.733422," +
+        "6.224291 6.728556," +
+        "6.191759 6.738989," +
+        "6.099124 6.755000," +
+        "6.041805 6.749733," +
+        "6.001672 6.742967," +
+        "5.905382 6.718300," +
+        "5.817073 6.677867," +
+        "5.611713 6.686622," +
+        "5.401366 6.864333," +
+        "5.386274 6.927867," +
+        "5.356608 6.981811," +
+        "5.404095 7.111822," +
+        "5.561958 7.216133," +
+        "5.660643 7.244722," +
+        "5.366149 7.489478," +
+        "5.340927 7.511200," +
+        "5.114998 7.592867," +
+        "4.870667 7.692033," +
+        "4.746560 7.781856," +
+        "4.708060 7.760867," +
+        "4.692225 7.802500," +
+        "4.607090 7.849044," +
+        "4.481324 7.879711," +
+        "4.340031 8.093378," +
+        "4.181171 8.158044," +
+        "4.116415 8.200800," +
+        "4.081135 8.195278," +
+        "4.090912 8.272500," +
+        "4.032232 8.378311," +
+        "3.779566 8.791278," +
+        "3.769654 8.849022," +
+        "3.598177 8.955178," +
+        "3.576828 9.059633," +
+        "3.527037 9.066756," +
+        "3.498069 9.082022," +
+        "3.541865 9.174211," +
+        "3.542409 9.234411," +
+        "3.576275 9.262711," +
+        "3.582279 9.287744," +
+        "3.390995 9.316756," +
+        "3.209606 9.344533," +
+        "3.100836 9.367511," +
+        "2.957466 9.370756," +
+        "2.870844 9.366222," +
+        "2.777211 9.285222," +
+        "2.744851 9.285900," +
+        "2.775397 9.294867," +
+        "2.832661 9.341156," +
+        "2.868114 9.373300," +
+        "2.869502 9.400089," +
+        "2.794434 9.420178," +
+        "2.714423 9.440078," +
+        "2.641124 9.441944," +
+        "2.572096 9.428378," +
+        "2.548379 9.418600," +
+        "2.573130 9.388211," +
+        "2.563126 9.333567," +
+        "2.535855 9.320067," +
+        "2.517670 9.282778," +
+        "2.479488 9.260278," +
+        "2.483125 9.239067," +
+        "2.464034 9.224278," +
+        "2.468586 9.180556," +
+        "2.443129 9.168989," +
+        "2.439084 9.147456," +
+        "2.448389 9.129344," +
+        "2.444897 9.109600," +
+        "2.450720 9.097256," +
+        "2.444897 9.080389," +
+        "2.447808 9.045822," +
+        "2.424536 9.024011," +
+        "2.415811 9.000133," +
+        "2.442457 8.957422," +
+        "2.429887 8.946567," +
+        "2.455028 8.894556," +
+        "2.435936 8.879078," +
+        "2.413136 8.853411," +
+        "2.410805 8.836944," +
+        "2.412202 8.822133," +
+        "2.387533 8.789544," +
+        "2.386608 8.776044," +
+        "2.398706 8.757278," +
+        "2.373103 8.739511," +
+        "2.387070 8.769467," +
+        "2.375434 8.784611," +
+        "2.358674 8.785922," +
+        "2.337270 8.793167," +
+        "2.365195 8.790533," +
+        "2.399169 8.821478," +
+        "2.396376 8.837933," +
+        "2.408946 8.879078," +
+        "2.432218 8.894878," +
+        "2.414995 8.963022," +
+        "2.390961 8.983722," +
+        "2.340091 8.969389," +
+        "2.332091 8.946244," +
+        "2.340091 8.927722," +
+        "2.332091 8.912289," +
+        "2.316093 8.904067," +
+        "2.311730 8.874744," +
+        "2.288975 8.861244," +
+        "2.247727 8.856233," +
+        "2.233180 8.861889," +
+        "2.209436 8.859233," +
+        "2.231003 8.871144," +
+        "2.265911 8.873200," +
+        "2.277548 8.869600," +
+        "2.290635 8.873711," +
+        "2.299360 8.904578," +
+        "2.268088 8.909622," +
+        "2.247727 8.925256," +
+        "2.225734 8.920756," +
+        "2.208747 8.909622," +
+        "2.203768 8.921811," +
+        "2.214352 8.931822," +
+        "2.197138 8.933811," +
+        "2.148725 8.907478," +
+        "2.134577 8.904844," +
+        "2.113354 8.917222," +
+        "2.095107 8.918800," +
+        "2.079961 8.912944," +
+        "2.060761 8.913356," +
+        "2.034577 8.902656," +
+        "1.983589 8.895400," +
+        "2.033997 8.913356," +
+        "2.062502 8.918700," +
+        "2.092758 8.929811," +
+        "2.148090 8.928756," +
+        "2.168397 8.937878," +
+        "2.146421 8.965533," +
+        "2.182173 8.943933," +
+        "2.201537 8.951311," +
+        "2.239138 8.938400," +
+        "2.267063 8.944989," +
+        "2.284939 8.925767," +
+        "2.306887 8.926022," +
+        "2.311086 8.936356," +
+        "2.296312 8.952489," +
+        "2.317254 8.981122," +
+        "2.334939 9.003844," +
+        "2.374500 9.014044," +
+        "2.386136 9.034778," +
+        "2.401962 9.044656," +
+        "2.418723 9.044889," +
+        "2.426287 9.054878," +
+        "2.411739 9.063522," +
+        "2.426867 9.099311," +
+        "2.398362 9.125233," +
+        "2.373339 9.121944," +
+        "2.403595 9.134289," +
+        "2.417680 9.165778," +
+        "2.425860 9.192778," +
+        "2.423783 9.231400," +
+        "2.400330 9.237022," +
+        "2.419494 9.243567," +
+        "2.429815 9.246711," +
+        "2.449495 9.245489," +
+        "2.457676 9.289856," +
+        "2.481311 9.298211," +
+        "2.488585 9.334211," +
+        "2.520255 9.353822," +
+        "2.520400 9.369944," +
+        "2.494960 9.432511," +
+        "2.463671 9.469200," +
+        "2.406950 9.500578," +
+        "2.240907 9.536433," +
+        "2.129969 9.569467," +
+        "2.031530 9.607422," +
+        "1.932328 9.658044," +
+        "1.835167 9.695656," +
+        "1.746196 9.760744," +
+        "1.667446 9.789667," +
+        "1.575400 9.797622," +
+        "1.562104 9.828722," +
+        "1.531422 9.846800," +
+        "1.415859 9.888744," +
+        "1.315206 9.942167," +
+        "1.175573 10.083667," +
+        "1.147394 10.090267," +
+        "1.118064 10.086567," +
+        "0.990883 9.998400," +
+        "0.778930 9.990856," +
+        "0.592924 10.033144," +
+        "0.507490 10.125422," +
+        "0.419562 10.320811," +
+        "0.375403 10.344533," +
+        "0.276464 10.431189," +
+        "0.220170 10.534911," +
+        "0.181271 10.571000," +
+        "0.153745 10.620156," +
+        "0.114973 10.653889," +
+        "0.103274 10.707756," +
+        "0.097914 10.761511," +
+        "0.076256 10.811522," +
+        "0.061935 10.867833," +
+        "0.000000 10.960167)"
+    );
+    vectorlayer.addFeatures([new OpenLayers.Feature.Vector(original)]);
+    var maxExtent = vectorlayer.getDataExtent();
+    // instanciate the map
+    map = new OpenLayers.Map("map", {
+        fractionalZoom: true, 
+        maxExtent: maxExtent,
+        layers: [vectorlayer]
+    });
+    map.zoomToMaxExtent();
+    map.events.register('moveend', map, function(){
+        map2.setCenter(map.getCenter(), map.getZoom());
+    });
+    
+    
+    var vectorlayer2 = new OpenLayers.Layer.Vector('Vectorlayer simplified', {
+        isBaseLayer: true,
+        styleMap: styleMap
+    });
+    
+    map2 =  new OpenLayers.Map("map-simplify", {
+        fractionalZoom: true, 
+        maxExtent: maxExtent,
+        controls: [],
+        layers: [vectorlayer2]
+    });
+    map2.zoomToExtent(maxExtent);
+    
+    // Control behaviour
+    var lastValue = 0.1;
+    var simplify = function() {
+        var min = 0;
+        var max = 1;
+        var givenVal= parseFloat(document.getElementById('tolerance').value);
+        var useVal = lastValue;
+        if (!isNaN(givenVal)) {
+            if (givenVal >= min && givenVal <= max) {
+                useVal = givenVal;
+            } else {
+                useVal = (givenVal < min) ? min : max;
+            }
+        }
+        document.getElementById('tolerance').value = useVal;
+        vectorlayer2.removeFeatures(vectorlayer2.features);
+        var newLineString = original.simplify(useVal);
+        vectorlayer2.addFeatures([new OpenLayers.Feature.Vector(newLineString)]);
+        var originalVerticesCnt = original.getVertices().length;
+        var simplifiedVerticesCnt = newLineString.getVertices().length;
+        var infotxt = '<ul><li>Original LineString: <strong>';
+        infotxt +=  originalVerticesCnt + ' vertices</strong></li>';
+        infotxt += ' <li>Simplified geometry: <strong>' + simplifiedVerticesCnt + ' vertices</strong></li>';
+        infotxt += ' <li>Decreased by <strong>' + (((originalVerticesCnt-simplifiedVerticesCnt)/originalVerticesCnt)*100).toFixed(2) + ' per cent</strong></li></ul>';
+        document.getElementById('info').innerHTML = infotxt;
+        lastValue = useVal;
+    };
+    document.getElementById('tolerance').value = lastValue;
+    document.getElementById('simplify').onclick = simplify;
+    simplify();
+    
+    var animationInterval;
+    var animationHandler = function(){
+        if (this.value === 'Start animation') {
+            document.getElementById('simplify').disabled = true;
+            document.getElementById('animation').value = "Stop animation";
+            animationInterval = window.setInterval(function(){
+                var tolerance = parseFloat(document.getElementById('tolerance').value);
+                if (tolerance < 1) {
+                    tolerance+=0.02;
+                } else {
+                    tolerance = 0.02;
+                }
+                document.getElementById('tolerance').value = tolerance.toFixed(2);
+                simplify();
+            }, 500);
+            simplify();
+        } else {
+            if (animationInterval) {
+                window.clearInterval(animationInterval);
+            }
+            document.getElementById('simplify').disabled = false;
+            document.getElementById('animation').value = "Start animation";
+        }
+    };
+    document.getElementById('animation').onclick = animationHandler;
+})();
diff --git a/examples/single-tile.html b/examples/single-tile.html
new file mode 100644
index 0000000..1a6d869
--- /dev/null
+++ b/examples/single-tile.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers: Single Tile</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+    </head>
+    <body>
+        <h1 id="title">Single Tile Example</h1>
+        <div id="tags">tile, ratio, singleTile, performance</div>
+        <p id="shortdesc">
+            Use the singleTile option on gridded layers to request a single tile.
+        </p>  
+        <div id="mapDiv" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                This map demonstrates the use of the singleTile property as an
+                alternative to the default tiled behavior of layers.  The first
+                layer in the map is a WMS layer with the singleTile option set
+                true.  The second layer is a WMS layer with the default options.
+            </p>
+            <p>
+                View the <a href="single-tile.js" target="_blank">single-tile.js</a>
+                source to see how this is done.
+            </p>
+        </div>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="single-tile.js"></script>
+    </body>
+</html>
diff --git a/examples/single-tile.js b/examples/single-tile.js
new file mode 100644
index 0000000..26d94f0
--- /dev/null
+++ b/examples/single-tile.js
@@ -0,0 +1,20 @@
+var map = new OpenLayers.Map({
+    div: "mapDiv",
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "Single Tile", 
+            "http://vmap0.tiles.osgeo.org/wms/vmap0",
+            {layers: "basic"}, 
+            {singleTile: true, ratio: 1}
+        ), 
+        new OpenLayers.Layer.WMS(
+            "Multiple Tiles", 
+            "http://vmap0.tiles.osgeo.org/wms/vmap0",
+            {layers: "basic"}
+        )
+    ],
+    center: new OpenLayers.LonLat(6.5, 40.5),
+    zoom: 4
+});
+
+map.addControl(new OpenLayers.Control.LayerSwitcher());
diff --git a/examples/sld-parser.html b/examples/sld-parser.html
index 56a6c83..14f87ea 100644
--- a/examples/sld-parser.html
+++ b/examples/sld-parser.html
@@ -1,9 +1,12 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers SLD Parser</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <style>
             #input {
@@ -18,7 +21,9 @@
     </head>
     <body>
         <h1 id="title">SLD Parser</h1>
-
+        <div id="tags">
+            sld, sldselect, styling, style, parser, cleanup
+        </div>
         <div id="shortdesc">Parsing Styled Layer Descriptor (SLD) documents with the SLD format.</div>
 
         <textarea id="input">paste SLD here</textarea><br>
diff --git a/examples/sld.html b/examples/sld.html
index e81fc03..4667ba3 100644
--- a/examples/sld.html
+++ b/examples/sld.html
@@ -1,96 +1,20 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
-    <script src="../lib/Firebug/firebug.js"></script>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <!--script src="../lib/Firebug/firebug.js"></script-->
     <script src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        
-        var map, sld, gmlLayers;
-        var format = new OpenLayers.Format.SLD();
-        function init() {
-
-            map = new OpenLayers.Map('map');
-            map.addControl(new OpenLayers.Control.LayerSwitcher());
-
-            OpenLayers.loadURL("tasmania/sld-tasmania.xml", null, null, complete);
-
-        }
-        
-        function getDefaultStyle(sld, layerName) {
-            var styles = sld.namedLayers[layerName].userStyles;
-            var style;
-            for(var i=0; i<styles.length; ++i) {
-                style = styles[i];
-                if(style.isDefault) {
-                    break;
-                }
-            }
-            return style;
-        }
-
-        function complete(req) {
-
-            sld = format.read(req.responseXML || req.responseText);
-            var hoverStyle = sld.namedLayers["WaterBodies"].userStyles[1];
-            hoverStyle.defaultStyle = OpenLayers.Util.extend(
-                {}, OpenLayers.Feature.Vector.style["select"]
-            );
-
-            gmlLayers = [
-                // use the sld UserStyle named "Default Styler"
-                new OpenLayers.Layer.GML(
-                    "StateBoundaries",
-                    "tasmania/TasmaniaStateBoundaries.xml",
-                    {
-                        styleMap: new OpenLayers.StyleMap(
-                            getDefaultStyle(sld, "Land")
-                        ),
-                        isBaseLayer: true
-                    }
-                ),
-                new OpenLayers.Layer.GML(
-                    "Roads",
-                    "tasmania/TasmaniaRoads.xml",
-                    {styleMap: new OpenLayers.StyleMap(getDefaultStyle(sld, "Roads"))}
-                ),
-                new OpenLayers.Layer.GML(
-                    "WaterBodies",
-                    "tasmania/TasmaniaWaterBodies.xml",
-                    {
-                        styleMap: new OpenLayers.StyleMap({
-                            "default": getDefaultStyle(sld, "WaterBodies"),
-                            "select": hoverStyle
-                        })
-                    }
-                ),
-                new OpenLayers.Layer.GML(
-                    "Cities",
-                    "tasmania/TasmaniaCities.xml",
-                    {styleMap: new OpenLayers.StyleMap(getDefaultStyle(sld, "Cities"))}
-                )
-            ];
-            
-            map.addLayers(gmlLayers);
-            map.zoomToExtent(new OpenLayers.Bounds(143,-39,150,-45));
-            
-            var hover = new OpenLayers.Control.SelectFeature(
-                gmlLayers[2], {hover: true}
-            );
-            map.addControl(hover);
-            hover.activate();
-        }
-        
-        // set a new style when the radio button changes
-        function setStyle(index) {
-            gmlLayers[2].styleMap.styles["default"] = sld.namedLayers["WaterBodies"].userStyles[index];
-            // change the style of the features of the WaterBodies layer
-            gmlLayers[2].redraw();
-        }
-    </script>
+    <script src="sld.js"></script>
   </head>
   <body onload="init()">
     <h1 id="title">Styled Layer Descriptor (SLD) Example</h1>
+    <div id="tags">
+        vector, feature, sld, styling, style
+    </div>
     <p id="shortdesc">
         Parsing SLD and applying styles to a vector layer.
     </p>
@@ -98,19 +22,10 @@
     <p id="docs">This example uses a <a target="_blank" href="tasmania/sld-tasmania.xml">SLD
     file</a> to style the vector features. To construct layers that use styles
     from SLD, create a StyleMap for the layer that uses one of the userStyles in the
-    namedLayers object of the return from format.read().</p>
+    namedLayers object of the return from format.read(). Look at the <a href="sld.js">sld.js source</a>
+    to see how this is done.</p>
     <p>Select a new style for the WaterBodies layer below:</p>
-    <form>
-      <input type="radio" name="style" onclick="setStyle(this.value)" checked="checked" value="0">Default Styler (zoom in to see more features)</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="3">Styler Test PropertyIsEqualTo</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="4">Styler Test WATER_TYPE</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="5">Styler Test PropertyIsGreaterThanOrEqualTo</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="6">Styler Test PropertyIsLessThanOrEqualTo</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="7">Styler Test PropertyIsGreaterThan</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="8">Styler Test PropertyIsLessThan</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="9">Styler Test PropertyIsLike</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="10">Styler Test PropertyIsBetween</input><br/>
-      <input type="radio" name="style" onclick="setStyle(this.value)" value="11">Styler Test FeatureId</input><br/>
-    </form>
+    <ul id="style_chooser">
+    </ul>
   </body>
 </html>
diff --git a/examples/sld.js b/examples/sld.js
new file mode 100644
index 0000000..888a9c6
--- /dev/null
+++ b/examples/sld.js
@@ -0,0 +1,102 @@
+var map, sld, waterBodies;
+var format = new OpenLayers.Format.SLD();
+function init() {
+
+    map = new OpenLayers.Map('map', {allOverlays: true});
+    var layers = createLayers();
+    map.addLayers(layers);
+
+    waterBodies = layers[2];
+    map.addControl(new OpenLayers.Control.SelectFeature(
+        waterBodies, {hover: true, autoActivate: true}
+    ));
+    map.addControl(new OpenLayers.Control.LayerSwitcher());
+
+    OpenLayers.Request.GET({
+        url: "tasmania/sld-tasmania.xml",
+        success: complete
+    });
+}
+
+// handler for the OpenLayers.Request.GET function in the init method
+function complete(req) {
+    sld = format.read(req.responseXML || req.responseText);
+    buildStyleChooser();
+    setLayerStyles();
+    
+    map.zoomToExtent(new OpenLayers.Bounds(143,-39,150,-45));
+}
+
+function createLayers() {
+    // the name of each layer matches a NamedLayer name in the SLD document
+    var layerData = [{
+        name: "Land",
+        url: "tasmania/TasmaniaStateBoundaries.xml"
+    }, {
+        name: "Roads",
+        url: "tasmania/TasmaniaRoads.xml"
+    }, {
+        name: "WaterBodies",
+        url: "tasmania/TasmaniaWaterBodies.xml"
+    }, {
+        name: "Cities",
+        url: "tasmania/TasmaniaCities.xml"
+    }];
+
+    var layers = [];
+    for (var i=0,ii=layerData.length; i<ii; ++i) {
+        layers.push(new OpenLayers.Layer.Vector(
+            layerData[i].name, {
+                protocol: new OpenLayers.Protocol.HTTP({
+                    url: layerData[i].url,
+                    format: new OpenLayers.Format.GML.v2()
+                }),
+                strategies: [new OpenLayers.Strategy.Fixed()],
+                // empty style map, will be populated in setLayerStyles
+                styleMap: new OpenLayers.StyleMap()
+            }
+        ));
+    }
+    return layers;
+}
+
+function setLayerStyles() {
+    // set the default style for each layer from sld
+    for (var l in sld.namedLayers) {
+        var styles = sld.namedLayers[l].userStyles, style;
+        for (var i=0,ii=styles.length; i<ii; ++i) {
+            style = styles[i];
+            if (style.isDefault) {
+                map.getLayersByName(l)[0].styleMap.styles["default"] = style;
+                break;
+            }
+        }
+    }
+    // select style for mouseover on WaterBodies objects
+    waterBodies.styleMap.styles.select = sld.namedLayers["WaterBodies"].userStyles[1];
+}
+
+// add a radio button for each userStyle
+function buildStyleChooser() {
+    var styles = sld.namedLayers["WaterBodies"].userStyles;
+    var chooser = document.getElementById("style_chooser"), input, li;
+    for (var i=0,ii=styles.length; i<ii; ++i) {
+        input = document.createElement("input");
+        input.type = "radio";
+        input.name = "style";
+        input.value = i;
+        input.checked = i == 0;
+        input.onclick = function() { setStyle(this.value); };
+        li = document.createElement("li");
+        li.appendChild(input);
+        li.appendChild(document.createTextNode(styles[i].title));
+        chooser.appendChild(li);
+    }
+}
+
+// set a new style when the radio button changes
+function setStyle(index) {
+    waterBodies.styleMap.styles["default"] = sld.namedLayers["WaterBodies"].userStyles[index];
+    // apply the new style of the features of the Water Bodies layer
+    waterBodies.redraw();
+}
diff --git a/examples/snap-grid.html b/examples/snap-grid.html
new file mode 100644
index 0000000..b6b592d
--- /dev/null
+++ b/examples/snap-grid.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Snap Grid Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+    <style type="text/css">
+        .olControlAttribution {
+            left: 5px;
+            bottom: 5px; 
+        }
+        .olControlEditingToolbar .olControlModifyFeatureItemInactive { 
+            background-position: -1px -1px;
+        }
+        .olControlEditingToolbar .olControlModifyFeatureItemActive { 
+            background-position: -1px -24px;
+        }
+    </style>
+  </head>
+  <body>
+    <h1 id="title">Snap Grid Example</h1>
+
+    <div id="tags">
+        snap grid
+    </div>
+
+    <div id="shortdesc">Use a PointGrid layer and a Snapping control to snap to a grid of regularly spaced points</div>
+
+    <div id="map" class="smallmap"></div>
+    
+    Grid rotation:
+    <select name="rotation" id="rotation">
+        <option value="-45">-45</option>
+        <option value="-30">-30</option>
+        <option value="-15">-15</option>
+        <option value="0">0</option>
+        <option value="15">15</option>
+        <option value="30">30</option>
+        <option value="45">45</option>
+    </select>
+
+     
+    Grid spacing:
+    <select name="spacing" id="spacing">
+        <option value="150">150</option>
+        <option value="300">300</option>
+        <option value="600">600</option>
+        <option value="1200">1200</option>
+        <option value="2400">2400</option>
+    </select>
+
+     
+    Max points:
+    <select name="max" id="max">
+        <option value="150">150</option>
+        <option value="250">250</option>
+        <option value="350">350</option>
+    </select>
+
+    <div class="docs">
+        <p>
+            This example demonstrates feature editing with snapping to a regular
+            grid.  The map is configured with a <code>OpenLayers.Layer.PointGrid</code>
+            layer and a <code>OpenLayers.Control.Snapping</code> agent.  For the
+            best performance, the point grid layer should not made visible.
+            Snapping still works with layers that are not visible.
+        </p><p>
+            See the <a href="snap-grid.js" target="_blank">
+            snap-grid.js source</a> to see how this is done.
+        </p>
+    </div>
+
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="snap-grid.js"></script>
+  </body>
+</html>
diff --git a/examples/snap-grid.js b/examples/snap-grid.js
new file mode 100644
index 0000000..81a72da
--- /dev/null
+++ b/examples/snap-grid.js
@@ -0,0 +1,81 @@
+var points = new OpenLayers.Layer.PointGrid({
+    name: "Snap Grid",
+    dx: 600, dy: 600,
+    styleMap: new OpenLayers.StyleMap({
+        pointRadius: 1,
+        strokeColor: "#3333ff",
+        strokeWidth: 1,
+        fillOpacity: 1,
+        fillColor: "#ffffff",
+        graphicName: "square"
+    })
+});
+
+var lines = new OpenLayers.Layer.Vector("Lines", {
+    styleMap: new OpenLayers.StyleMap({
+        pointRadius: 3,
+        strokeColor: "#ff3300",
+        strokeWidth: 3,
+        fillOpacity: 0
+    })
+});
+
+var map = new OpenLayers.Map({
+    div: "map",
+    layers: [new OpenLayers.Layer.OSM(), points, lines],
+    controls: [
+        new OpenLayers.Control.Navigation(),
+        new OpenLayers.Control.LayerSwitcher(),
+        new OpenLayers.Control.Attribution()
+    ],
+    restrictedExtent: new OpenLayers.Bounds(
+        1035374, 7448940, 1074510, 7468508
+    ),
+    center: new OpenLayers.LonLat(1054942, 7458724),
+    zoom: 13
+});
+
+// configure the snapping agent
+var snap = new OpenLayers.Control.Snapping({
+    layer: lines,
+    targets: [{
+        layer: points,
+        tolerance: 15
+    }]
+});
+snap.activate();
+
+// add some editing tools to a panel
+var panel = new OpenLayers.Control.Panel({
+    displayClass: "olControlEditingToolbar"
+});
+var draw = new OpenLayers.Control.DrawFeature(
+    lines, OpenLayers.Handler.Path,
+    {displayClass: "olControlDrawFeaturePath", title: "Draw Features"}
+);
+modify = new OpenLayers.Control.ModifyFeature(
+    lines, {displayClass: "olControlModifyFeature", title: "Modify Features"}
+);
+panel.addControls([
+    new OpenLayers.Control.Navigation({title: "Navigate"}),
+    modify, draw
+]);
+map.addControl(panel);
+
+var rotation = document.getElementById("rotation");
+rotation.value = String(points.rotation);
+rotation.onchange = function() {
+    points.setRotation(Number(rotation.value));
+}
+
+var spacing = document.getElementById("spacing");
+spacing.value = String(points.dx);
+spacing.onchange = function() {
+    points.setSpacing(Number(spacing.value));
+}
+
+var max = document.getElementById("max");
+max.value = String(points.maxFeatures);
+max.onchange = function() {
+    points.setMaxFeatures(Number(max.value));
+}
diff --git a/examples/snap-split.html b/examples/snap-split.html
index ca3e657..95b9fa3 100644
--- a/examples/snap-split.html
+++ b/examples/snap-split.html
@@ -1,19 +1,26 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <title>Snapping & Splitting</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>Snapping & Splitting</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olControlEditingToolbar .olControlModifyFeatureItemInactive { 
-            background-position: -1px 0px ;                                                                   
+            background-position: -1px -1px;
         }
         .olControlEditingToolbar .olControlModifyFeatureItemActive { 
-            background-position: -1px -23px ;                                                                   
+            background-position: -1px -24px;
         }
         label.head {
             font-weight: bold;
             padding: 1em 0 0.1em 0;
-            border-bottom: 1px solid grey;
+            border-bottom: 1px solid gray;
         }
         td {
             padding: 0.25em 1em;
@@ -90,6 +97,10 @@
                 })
             });
 
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
             // create three vector layers
             vectors = new OpenLayers.Layer.Vector("Lines", {
                 isBaseLayer: true,
@@ -101,7 +112,8 @@
                 styleMap: styles,
                 maxExtent: new OpenLayers.Bounds(
                     1549471.9221, 6403610.94, 1550001.32545, 6404015.8
-                )
+                ),
+                renderers: renderer
             });
             map.addLayer(vectors);
             
@@ -232,9 +244,12 @@
   </head>
   <body onload="init()">
     <h1 id="title">Snapping & Splitting Example</h1>
+    <div id="tags">
+        vector, feature, splitting, snapping, stylemap, advanced
+    </div>    
     <div id="shortdesc">A demonstration snapping and splitting while editing vector features.</div>
     <div id="map" class="smallmap"></div>
-    <br/>
+    <br>
     <input type="checkbox" id="snap_toggle" />
     <label for="snap_toggle" class="head">Enable Snapping</label>
     <table id="snap_options">
@@ -250,7 +265,7 @@
             </tr>
         </tbody>
     </table>
-    <br />
+    <br>
     <input type="checkbox" id="split_toggle" />
     <label for="split_toggle" class="head">Enable Splitting</label>
     <table id="split_options">
@@ -261,7 +276,7 @@
             </tr>
         </tbody>
     </table>
-    <br />
+    <br>
     <button id="clear">clear</button> Clear all features.
   </body>
 </html>
diff --git a/examples/snapping.html b/examples/snapping.html
index cd808c9..6747e89 100644
--- a/examples/snapping.html
+++ b/examples/snapping.html
@@ -1,14 +1,21 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Snapping</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olControlEditingToolbar .olControlModifyFeatureItemInactive { 
-            background-position: -1px 0px ;                                                                   
+            background-position: -1px -1px;
         }
         .olControlEditingToolbar .olControlModifyFeatureItemActive { 
-            background-position: -1px -23px ;                                                                   
+            background-position: -1px -24px;
         }
         table {
             padding: 1em 0 1em;
@@ -164,7 +171,7 @@
             });
             draw = new OpenLayers.Control.DrawFeature(
                 poly, OpenLayers.Handler.Polygon,
-                {displayClass: "olControlDrawFeaturePoint", title: "Draw Features"}
+                {displayClass: "olControlDrawFeaturePoint", title: "Draw Features", handlerOptions: {holeModifier: "altKey"}}
             );
             modify = new OpenLayers.Control.ModifyFeature(
                 poly, {displayClass: "olControlModifyFeature", title: "Modify Features"}
@@ -272,9 +279,12 @@
   </head>
   <body onload="init()">
     <h1 id="title">Snapping Example</h1>
+    <div id="tags">
+        vector, feature, snapping, stylemap, advanced
+    </div>      
     <div id="shortdesc">A demonstration snapping while editing vector features.</div>
     <div id="map" class="smallmap"></div>
-    <br/>
+    <br>
     <label for="editable">Editable Layer:</label>
     <select id="editable" name="editable">
         <option value="poly">polygons</option>
diff --git a/examples/sos.html b/examples/sos.html
index d3b6266..096d19d 100644
--- a/examples/sos.html
+++ b/examples/sos.html
@@ -1,6 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>SOS Client Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
     .sosmap {
         width: 768px;
@@ -77,11 +83,13 @@
             showPopup: function(response) {
                 this.count++;
                 var output = this.obsformat.read(response.responseXML || response.responseText);
-                this.html += '<tr>';
-                this.html += '<td width="100">'+this.getTitleForObservedProperty(output.measurements[0].observedProperty)+'</td>';
-                this.html += '<td>'+output.measurements[0].samplingTime.timeInstant.timePosition+'</td>';
-                this.html += '<td>'+output.measurements[0].result.value + ' ' + output.measurements[0].result.uom + '</td>';
-                this.html += '</tr>';
+                if (output.measurements.length > 0) {
+                    this.html += '<tr>';
+                    this.html += '<td width="100">'+this.getTitleForObservedProperty(output.measurements[0].observedProperty)+'</td>';
+                    this.html += '<td>'+output.measurements[0].samplingTime.timeInstant.timePosition+'</td>';
+                    this.html += '<td>'+output.measurements[0].result.value + ' ' + output.measurements[0].result.uom + '</td>';
+                    this.html += '</tr>';
+                }
                 // check if we are done
                 if (this.count === this.numRequests) {
                     var html = '<table cellspacing="10"><tbody>';
@@ -131,12 +139,13 @@
                         responseMode: 'inline',
                         procedure: feature.attributes.id,
                         offering: name,
-                        observedProperty: offering.observedProperties[0],
+                        observedProperties: offering.observedProperties,
                         responseFormat: this.responseFormat
                     });
                     OpenLayers.Request.POST({
                         url: this.url,
                         scope: this,
+                        failure: this.showPopup,
                         success: this.showPopup,
                         data: xml
                     });
@@ -165,6 +174,7 @@
     <h1 id="title">SOS client example</h1>
 
     <div id="tags">
+        sos, sensor, observation, popup, advanced
     </div>
         <p id="shortdesc">
             Shows how to connect OpenLayers to a Sensor Observation Service (SOS)
diff --git a/examples/spherical-mercator.html b/examples/spherical-mercator.html
index 7327b05..099ad03 100644
--- a/examples/spherical-mercator.html
+++ b/examples/spherical-mercator.html
@@ -1,8 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Spherical Mercator</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         .olControlAttribution { bottom: 0px!important }
         #map {
@@ -22,107 +29,111 @@
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
 
-        // make map available for easy debugging
-        var map;
-
-        // increase reload attempts 
-        OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
-
-        function init(){
-            var options = {
-                projection: new OpenLayers.Projection("EPSG:900913"),
-                displayProjection: new OpenLayers.Projection("EPSG:4326"),
-                units: "m",
-                numZoomLevels: 18,
-                maxResolution: 156543.0339,
-                maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
-                                                 20037508, 20037508.34)
-            };
-            map = new OpenLayers.Map('map', options);
-
-            // create Google Mercator layers
-            var gmap = new OpenLayers.Layer.Google(
-                "Google Streets",
-                {'sphericalMercator': true}
-            );
-            var gsat = new OpenLayers.Layer.Google(
-                "Google Satellite",
-                {type: G_SATELLITE_MAP, 'sphericalMercator': true, numZoomLevels: 22}
-            );
-            var ghyb = new OpenLayers.Layer.Google(
-                "Google Hybrid",
-                {type: G_HYBRID_MAP, 'sphericalMercator': true}
-            );
-
-            // create Virtual Earth layers
-            var veroad = new OpenLayers.Layer.VirtualEarth(
-                "Virtual Earth Roads",
-                {'type': VEMapStyle.Road, 'sphericalMercator': true}
-            );
-            var veaer = new OpenLayers.Layer.VirtualEarth(
-                "Virtual Earth Aerial",
-                {'type': VEMapStyle.Aerial, 'sphericalMercator': true}
-            );
-            var vehyb = new OpenLayers.Layer.VirtualEarth(
-                "Virtual Earth Hybrid",
-                {'type': VEMapStyle.Hybrid, 'sphericalMercator': true}
-            );
-
-            // create Yahoo layer
-            var yahoo = new OpenLayers.Layer.Yahoo(
-                "Yahoo Street",
-                {'sphericalMercator': true}
-            );
-            var yahoosat = new OpenLayers.Layer.Yahoo(
-                "Yahoo Satellite",
-                {'type': YAHOO_MAP_SAT, 'sphericalMercator': true}
-            );
-            var yahoohyb = new OpenLayers.Layer.Yahoo(
-                "Yahoo Hybrid",
-                {'type': YAHOO_MAP_HYB, 'sphericalMercator': true}
-            );
-
-            // create OSM layer
-            var mapnik = new OpenLayers.Layer.OSM();
-            // create OAM layer
-            var oam = new OpenLayers.Layer.XYZ(
-                "OpenAerialMap",
-                "http://tile.openaerialmap.org/tiles/1.0.0/openaerialmap-900913/${z}/${x}/${y}.png",
-                {
-                    sphericalMercator: true
-                }
-            );
-
-            // create OSM layer
-            var osmarender = new OpenLayers.Layer.OSM(
-                "OpenStreetMap (Tiles at Home)",
-                "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png"
-            );
-
-
-            // create WMS layer
-            var wms = new OpenLayers.Layer.WMS(
-                "World Map",
-                "http://world.freemap.in/tiles/",
-                {'layers': 'factbook-overlay', 'format':'png'},
-                {
-                    'opacity': 0.4, visibility: false,
-                    'isBaseLayer': false,'wrapDateLine': true
-                }
-            );
-
-            // create a vector layer for drawing
-            var vector = new OpenLayers.Layer.Vector("Editable Vectors");
-
-            map.addLayers([gmap, gsat, ghyb, veroad, veaer, vehyb,
-                           yahoo, yahoosat, yahoohyb, oam, mapnik, osmarender,
-                           wms, vector]);
-            map.addControl(new OpenLayers.Control.LayerSwitcher());
-            map.addControl(new OpenLayers.Control.EditingToolbar(vector));
-            map.addControl(new OpenLayers.Control.Permalink());
-            map.addControl(new OpenLayers.Control.MousePosition());
-            if (!map.getCenter()) {map.zoomToMaxExtent()}
+// make map available for easy debugging
+var map;
+
+// increase reload attempts 
+OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
+
+function init(){
+    var maxExtent = new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508),
+        restrictedExtent = maxExtent.clone(),
+        maxResolution = 156543.0339;
+    
+    var options = {
+        projection: new OpenLayers.Projection("EPSG:900913"),
+        displayProjection: new OpenLayers.Projection("EPSG:4326"),
+        units: "m",
+        numZoomLevels: 18,
+        maxResolution: maxResolution,
+        maxExtent: maxExtent,
+        restrictedExtent: restrictedExtent
+    };
+    map = new OpenLayers.Map('map', options);
+
+    // create Google Mercator layers
+    var gmap = new OpenLayers.Layer.Google(
+        "Google Streets",
+        {sphericalMercator: true}
+    );
+    var gsat = new OpenLayers.Layer.Google(
+        "Google Satellite",
+        {type: G_SATELLITE_MAP, sphericalMercator: true, numZoomLevels: 22}
+    );
+    var ghyb = new OpenLayers.Layer.Google(
+        "Google Hybrid",
+        {type: G_HYBRID_MAP, sphericalMercator: true}
+    );
+
+    // create Virtual Earth layers
+    var veroad = new OpenLayers.Layer.VirtualEarth(
+        "Virtual Earth Roads",
+        {'type': VEMapStyle.Road, sphericalMercator: true}
+    );
+    var veaer = new OpenLayers.Layer.VirtualEarth(
+        "Virtual Earth Aerial",
+        {'type': VEMapStyle.Aerial, sphericalMercator: true}
+    );
+    var vehyb = new OpenLayers.Layer.VirtualEarth(
+        "Virtual Earth Hybrid",
+        {'type': VEMapStyle.Hybrid, sphericalMercator: true}
+    );
+
+    // create Yahoo layer
+    var yahoo = new OpenLayers.Layer.Yahoo(
+        "Yahoo Street",
+        {sphericalMercator: true}
+    );
+    var yahoosat = new OpenLayers.Layer.Yahoo(
+        "Yahoo Satellite",
+        {'type': YAHOO_MAP_SAT, sphericalMercator: true}
+    );
+    var yahoohyb = new OpenLayers.Layer.Yahoo(
+        "Yahoo Hybrid",
+        {'type': YAHOO_MAP_HYB, sphericalMercator: true}
+    );
+
+    // create OSM layer
+    var mapnik = new OpenLayers.Layer.OSM();
+    // create OAM layer
+    var oam = new OpenLayers.Layer.XYZ(
+        "OpenAerialMap",
+        "http://tile.openaerialmap.org/tiles/1.0.0/openaerialmap-900913/${z}/${x}/${y}.png",
+        {
+            sphericalMercator: true
         }
+    );
+
+    // create OSM layer
+    var osmarender = new OpenLayers.Layer.OSM(
+        "OpenStreetMap (Tiles at Home)",
+        "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png"
+    );
+
+
+    // create WMS layer
+    var wms = new OpenLayers.Layer.WMS(
+        "World Map",
+        "http://world.freemap.in/tiles/",
+        {'layers': 'factbook-overlay', 'format':'png'},
+        {
+            'opacity': 0.4, visibility: false,
+            'isBaseLayer': false,'wrapDateLine': true
+        }
+    );
+
+    // create a vector layer for drawing
+    var vector = new OpenLayers.Layer.Vector("Editable Vectors");
+
+    map.addLayers([gmap, gsat, ghyb, veroad, veaer, vehyb,
+                   yahoo, yahoosat, yahoohyb, oam, mapnik, osmarender,
+                   wms, vector]);
+    map.addControl(new OpenLayers.Control.LayerSwitcher());
+    map.addControl(new OpenLayers.Control.EditingToolbar(vector));
+    map.addControl(new OpenLayers.Control.Permalink());
+    map.addControl(new OpenLayers.Control.MousePosition());
+    if (!map.getCenter()) {map.zoomToMaxExtent()}
+}
 
     </script>
   </head>
@@ -130,6 +141,7 @@
     <h1 id="title">OpenLayers Spherical Mercator Example</h1>
 
     <div id="tags">
+        spherical, mercator, osm, xyz, google, virtual earth, yahoo, tms, tile
     </div>
     <p id="shortdesc">
         Shows the use of the Spherical Mercator Layers, for overlaying 
diff --git a/examples/split-feature.html b/examples/split-feature.html
index 4effe06..7a434ea 100644
--- a/examples/split-feature.html
+++ b/examples/split-feature.html
@@ -1,9 +1,13 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>Split Feature Example</title>
         
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style>
             /* avoid pink tiles */
             .olImageLoadError {
@@ -66,9 +70,10 @@
                     }
                 });
                 map.addControl(split);
-                split.activate();
+
                 map.zoomToMaxExtent();
 
+                split.activate();
             }
             
             function flashFeatures(features, index) {
@@ -93,16 +98,19 @@
     </head>
     <body onload="init()">
         <h1 id="title">OpenLayers Split Feature Example</h1>
+        <div id="tags">
+            vector, feature, splitting, split, stylemap
+        </div>          
         <p id="shortdesc">
             Demonstrates splitting of line features.
         </p>
         <div id="map" class="smallmap"></div>    
         <div id="docs">
-            The split control can be configured to listen for edits on any vector layer
+            <p>The split control can be configured to listen for edits on any vector layer
             or it can allow for creation of temporary sketch features.  Modified or
             newly drawn features will be used to split existing features on any target
             layer.  This example shows the split control configured to use temporary
-            sketches for the split.
+            sketches for the split.</p>
         </div>
     </body>
 </html>
diff --git a/examples/strategy-bbox.html b/examples/strategy-bbox.html
index 18fd0bf..3b53c77 100644
--- a/examples/strategy-bbox.html
+++ b/examples/strategy-bbox.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers BBOX Strategy Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var map, photos;
@@ -51,6 +55,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">BBOX Strategy Example</h1>
+        <div id="tags">
+            vector, feature, stylemap, wfs, bbox, strategy, cleanup
+        </div>    
         <p id="shortdesc">
             Uses a BBOX strategy to request features within a bounding box.
         </p>
diff --git a/examples/strategy-cluster-extended.html b/examples/strategy-cluster-extended.html
new file mode 100644
index 0000000..51d3e87
--- /dev/null
+++ b/examples/strategy-cluster-extended.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>Extended clustering example</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <style type="text/css">
+            label {
+                cursor: pointer
+            }
+            
+            #wrap {
+                width: 925px;
+                margin: 10px;
+            }
+            
+            #strategy-chooser, #generalinfo, #info {
+                width: 400px;
+                padding: 0;
+                float: right;
+                clear: right;
+                margin-bottom: 4px;
+            }
+            
+            #map {
+                float: left;
+            }
+        </style>
+    </head>
+    <body>
+        <h1 id="title">Extended clustering</h1>
+        <div id="tags">
+            cluster, advanced
+        </div>
+        <p id="shortdesc">
+            Shows the usage of custom classes for a fine grained control about 
+            the clustering behaviour.
+        </p>
+        <div id="wrap">
+            <div id="map" class="smallmap">
+            </div>
+            <div id="strategy-chooser">
+                <p>
+                    Select the desired clustering strategy:
+                </p>
+                <label>
+                    <input type="radio" name="strategy" value="none" id="no-strategy" checked="checked">No strategy
+                </label>
+                <br>
+                <label>
+                    <input type="radio" name="strategy" value="cluster" id="cluster-strategy">Simple cluster-strategy
+                </label>
+                <br>
+                <label>
+                    <input type="radio" name="strategy" value="attribute-cluster" id="attributive-cluster-strategy">Attributive cluster-strategy
+                </label>
+                <br>
+                <label>
+                    <input type="radio" name="strategy" value="rule-cluster" id="rulebased-cluster-strategy">Rulebased cluster-strategy
+                </label>
+            </div>
+            <div id="generalinfo">
+            </div>
+            <div id="info">
+            </div>
+        </div>
+        <div id="docs" style="clear: both; padding-top: 10px">
+            <p>
+                The vectorlayer in this example contains random data with an 
+                attribute "clazz" that can take the values 1, 2, 3 and 4. The  
+                features with clazz = 4 are considered more important than the 
+                others.
+            </p>
+            <p>
+                The radiobuttons on the right of the map control the 
+                cluster strategy to be applied to the features.
+            </p>
+            <ul>
+                <li>
+                    <strong>No strategy</strong>
+                    means that all features are 
+                    rendered, no clustering shall be applied
+                </li>
+                <li>
+                    <strong>Simple cluster-strategy</strong>
+                    applies the cluster 
+                    strategy with default options to the layer. You should notice 
+                    that many of the important features with clazz = 4 are getting
+                    lost, since clustering happens regardless of feature attributes
+                </li>
+                <li>
+                    <strong>Attributive cluster-strategy</strong>
+                    uses a 
+                    customized cluster strategy. This strategy is configured to 
+                    cluster features of the same clazz only. You should be able to see all 
+                    red points (clazz = 4) even though the data is clustered. A 
+                    cluster now contains only features of the same clazz.
+                </li>
+                <li>
+                    <strong>Rulebased cluster-strategy</strong>
+                    uses another 
+                    customized cluster strategy. This strategy is configured to  
+                    cluster features that follow a certain rule only. In this case only  
+                    features with a clazz different from 4 are considered as 
+                    candidates for clustering. That means that usually you have fewer 
+                    clusters on the map, yet all with clazz = 4 are easily 
+                    distinguishable
+                </li>
+            </ul>
+            <p>
+                Hover over the features to get a short infomation about the 
+                feature or cluster of features. 
+            </p>
+        </div>
+        <p>
+            View the <a href="strategy-cluster-extended.js" target="_blank">strategy-cluster-extended.js</a>
+            source to see how this is done.
+        </p>
+        <script type="text/javascript" src="../lib/OpenLayers.js"></script>
+        <script type="text/javascript" src="strategy-cluster-extended.js"></script>
+    </body>
+</html>
diff --git a/examples/strategy-cluster-extended.js b/examples/strategy-cluster-extended.js
new file mode 100644
index 0000000..70928c4
--- /dev/null
+++ b/examples/strategy-cluster-extended.js
@@ -0,0 +1,247 @@
+/**
+ * Class: OpenLayers.Strategy.AttributeCluster
+ * Strategy for vector feature clustering based on feature attributes.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Strategy.Cluster>
+ */
+OpenLayers.Strategy.AttributeCluster = OpenLayers.Class(OpenLayers.Strategy.Cluster, {
+    /**
+     * the attribute to use for comparison
+     */
+    attribute: null,
+    /**
+     * Method: shouldCluster
+     * Determine whether to include a feature in a given cluster.
+     *
+     * Parameters:
+     * cluster - {<OpenLayers.Feature.Vector>} A cluster.
+     * feature - {<OpenLayers.Feature.Vector>} A feature.
+     *
+     * Returns:
+     * {Boolean} The feature should be included in the cluster.
+     */
+    shouldCluster: function(cluster, feature) {
+        var cc_attrval = cluster.cluster[0].attributes[this.attribute];
+        var fc_attrval = feature.attributes[this.attribute];
+        var superProto = OpenLayers.Strategy.Cluster.prototype;
+        return cc_attrval === fc_attrval && 
+               superProto.shouldCluster.apply(this, arguments);
+    },
+    CLASS_NAME: "OpenLayers.Strategy.AttributeCluster"
+});
+
+/**
+ * Class: OpenLayers.Strategy.RuleCluster
+ * Strategy for vector feature clustering according to a given rule.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Strategy.Cluster>
+ */
+OpenLayers.Strategy.RuleCluster = OpenLayers.Class(OpenLayers.Strategy.Cluster, {
+    /**
+     * the rule to use for comparison
+     */
+    rule: null,
+    /**
+     * Method: shouldCluster
+     * Determine whether to include a feature in a given cluster.
+     *
+     * Parameters:
+     * cluster - {<OpenLayers.Feature.Vector>} A cluster.
+     * feature - {<OpenLayers.Feature.Vector>} A feature.
+     *
+     * Returns:
+     * {Boolean} The feature should be included in the cluster.
+     */
+    shouldCluster: function(cluster, feature) {
+        var superProto = OpenLayers.Strategy.Cluster.prototype;
+        return this.rule.evaluate(cluster.cluster[0]) &&
+               this.rule.evaluate(feature) &&
+               superProto.shouldCluster.apply(this, arguments);
+    },
+    CLASS_NAME: "OpenLayers.Strategy.RuleCluster"
+});
+
+
+// global variables
+var map, vectorlayer, features, stylemap, select;
+
+// wrap the instanciation code in an anonymous function that gets executed
+// immeadeately
+(function(){
+
+    // The function that gets called on feature selection: shows information 
+    // about the feature/cluser in a div on the page 
+	var showInformation = function(evt){
+        var feature = evt.feature;
+		var info = 'Last hovered feature:<br>';
+		if (feature.cluster) {
+			info += '  Cluster of ' + feature.attributes.count + ' features:';
+			var clazzes = {
+				'1': 0,
+				'2': 0,
+				'3': 0,
+				'4': 0
+			};
+			for (var i = 0; i < feature.attributes.count; i++) {
+				var feat = feature.cluster[i];
+				clazzes[feat.attributes.clazz]++;
+			}
+			for (var j=1; j<=4; j++) {
+				var plural_s = (clazzes[j] !== 1) ? 's' : '';
+				info += '<br>    • clazz ' + j + ': ' + clazzes[j] + ' feature' + plural_s;
+			}
+		} else {
+			info += '  Single feature of clazz = ' + feature.attributes.clazz;
+		}
+		$('info').innerHTML = info;
+    };
+
+	// The function that gets called on feature selection. Shows information 
+    // about the number of "points" on the map.
+	var updateGeneralInformation = function() {
+		var info = 'Currently ' + vectorlayer.features.length + ' points are shown on the map.';
+		$('generalinfo').innerHTML = info;
+	};
+	
+	// instanciate the map
+	map = new OpenLayers.Map("map");
+    
+	// background WMS
+    var ol_wms = new OpenLayers.Layer.WMS("OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {
+        layers: "basic"
+    });
+    
+	// context to style the vectorlayer
+    var context = {
+        getColor: function(feature){
+            var color = '#aaaaaa';
+			if (feature.attributes.clazz && feature.attributes.clazz === 4) {
+				color = '#ee0000';
+			} else if(feature.cluster) {
+				var onlyFour = true;
+				for (var i = 0; i < feature.cluster.length; i++) {
+					if (onlyFour && feature.cluster[i].attributes.clazz !== 4) {
+						onlyFour = false;
+					}
+				}
+				if (onlyFour === true) {
+					color = '#ee0000';
+				}
+			}
+			return color;
+        }
+    };
+	
+    // style the vectorlayer
+    stylemap = new OpenLayers.StyleMap({
+        'default': new OpenLayers.Style({
+            pointRadius: 5,
+            fillColor: "${getColor}",
+            fillOpacity: 0.7,
+            strokeColor: "#666666",
+            strokeWidth: 1,
+            strokeOpacity: 1,
+			graphicZIndex: 1
+        }, {
+            context: context
+        }),
+		'select' : new OpenLayers.Style({
+            pointRadius: 5,
+            fillColor: "#ffff00",
+            fillOpacity: 1,
+            strokeColor: "#666666",
+            strokeWidth: 1,
+            strokeOpacity: 1,
+			graphicZIndex: 2
+        })
+    });
+    
+    // the vectorlayer
+    vectorlayer = new OpenLayers.Layer.Vector('Vectorlayer', {styleMap: stylemap, strategies: []});
+    
+	// the select control
+	select = new OpenLayers.Control.SelectFeature(
+        vectorlayer, {hover: true}
+    );
+    map.addControl(select);
+    select.activate();
+    vectorlayer.events.on({"featureselected": showInformation});
+	
+    map.addLayers([ol_wms, vectorlayer]);
+    map.addControl(new OpenLayers.Control.LayerSwitcher());
+    map.zoomToMaxExtent();
+    
+    features = [];
+    // adding lots of features:
+    for (var i = 0; i < 700; i++) {
+        var r1 = Math.random();
+        var r2 = Math.random();
+        var r3 = Math.random();
+        var r4 = Math.random();
+        var px = r1 * 180 * ((r2 < 0.5) ? -1 : 1); 
+        var py = r3 * 90 * ((r4 < 0.5) ? -1 : 1);
+        var p = new OpenLayers.Geometry.Point(px, py);
+        var clazz = (i % 10 === 0) ? 4 : Math.ceil(r4 * 3);
+        var f = new OpenLayers.Feature.Vector(p, {clazz: clazz});
+        features.push(f);
+    }
+    vectorlayer.addFeatures(features);
+    updateGeneralInformation();
+
+    // the behaviour and methods for the radioboxes    
+    var changeStrategy = function() {
+        var strategies = [];
+        // this is the checkbox
+        switch(this.value) {
+            case 'cluster':
+                // standard clustering
+				strategies.push(new OpenLayers.Strategy.Cluster());
+                break;
+            case 'attribute-cluster':
+                // use the custom class: only cluster features of the same clazz
+				strategies.push(new OpenLayers.Strategy.AttributeCluster({
+                    attribute:'clazz'
+                }));
+                break;
+            case 'rule-cluster':
+                // use the custom class: only cluster features that have a 
+				// clazz smaller than 4
+				strategies.push(new OpenLayers.Strategy.RuleCluster({
+                    rule: new OpenLayers.Rule({
+                        filter: new OpenLayers.Filter.Comparison({
+                            type: OpenLayers.Filter.Comparison.LESS_THAN,
+                            property: "clazz",
+                            value: 4
+                        })
+                    })
+                }));
+                break;
+        }
+		// remove layer and control
+        map.removeLayer(vectorlayer);
+		map.removeControl(select);
+		// rebuild layer
+        vectorlayer = new OpenLayers.Layer.Vector('Vectorlayer', {styleMap: stylemap, strategies: strategies});
+        map.addLayer( vectorlayer );
+        vectorlayer.addFeatures(features);
+        // rebuild select control
+		select = new OpenLayers.Control.SelectFeature(
+	        vectorlayer, {hover: true}
+	    );
+	    map.addControl(select);
+	    select.activate();
+	    vectorlayer.events.on({"featureselected": showInformation});
+		// update meta information
+		updateGeneralInformation();
+    };
+	// bind the behviour to the radios
+    var inputs = document.getElementsByTagName('input');
+    for( var cnt = 0; cnt < inputs.length; cnt++) {
+      var input = inputs[cnt];
+      if (input.name === 'strategy') {
+         input.onclick = changeStrategy;
+      }
+    }
+})();
diff --git a/examples/strategy-cluster-threshold.html b/examples/strategy-cluster-threshold.html
index 4144459..31c79ce 100644
--- a/examples/strategy-cluster-threshold.html
+++ b/examples/strategy-cluster-threshold.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Cluster Strategy Threshold</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             ul {
                 list-style: none;
@@ -116,6 +120,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">Cluster Strategy Threshold</h1>
+        <div id="tags">
+            vector, feature, stylemap, wfs, cluster, strategy, cleanup
+        </div>         
         <p id="shortdesc">
             Demonstrates the use of the cluster strategy threshold property.
         </p>
@@ -128,7 +135,7 @@
             cluster.  The threshold determines the minimum number of features to
             be considered a cluster.</p>
         </div>
-        <br />
+        <br>
         <p>Cluster details: <span id="output">hover over a feature to see details.</span></p>
         <ul>
             <li>
diff --git a/examples/strategy-cluster.html b/examples/strategy-cluster.html
index d275261..4934423 100644
--- a/examples/strategy-cluster.html
+++ b/examples/strategy-cluster.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Cluster Strategy Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #photos {
                 height: 100px;
@@ -66,7 +70,6 @@
         <script src="animator.js"></script>
         <script type="text/javascript">
             var map, template;
-            var Jugl = window["http://jugl.tschaub.net/trunk/lib/Jugl.js"];
             OpenLayers.ProxyHost = (window.location.host == "localhost") ?
                 "/cgi-bin/proxy.cgi?url=" : "proxy.cgi?url=";
 
@@ -135,7 +138,7 @@
                 map.setCenter(new OpenLayers.LonLat(0, 0), 1);
                 
                 // template setup
-                template = new Jugl.Template("template");
+                template = new jugl.Template("template");
 
             }
             
@@ -168,6 +171,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">Cluster Strategy Example</h1>
+        <div id="tags">
+            vector, feature, stylemap, wfs, cluster, strategy, cleanup
+        </div>         
         <p id="shortdesc">
             Uses a cluster strategy to render points representing clusters of features.
         </p>
diff --git a/examples/strategy-paging.html b/examples/strategy-paging.html
index abefa51..c51518a 100644
--- a/examples/strategy-paging.html
+++ b/examples/strategy-paging.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Paging Strategy Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
             var map, photos, paging;
@@ -61,6 +65,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">Paging Strategy Example</h1>
+        <div id="tags">
+            vector, feature, stylemap, wfs, paging, strategy, cleanup
+        </div>        
         <p id="shortdesc">
             Uses a paging strategy to cache large batches of features and render a page at a time.
         </p>
@@ -68,7 +75,7 @@
         Displaying page <span id="num">0</span> of <span id="count">...</span>
         <button id="prev" disabled="disabled" onclick="paging.pagePrevious();">previous</button>
         <button id="next" disabled="disabled" onclick="paging.pageNext();">next</button>
-        <br /><br />
+        <br><br>
         <div id="docs">
             <p>The Paging strategy lets you apply client side paging for protocols
             that do not support paging on the server.  In this case, the protocol requests a
diff --git a/examples/style-rules.html b/examples/style-rules.html
index f70cd3e..987b01e 100644
--- a/examples/style-rules.html
+++ b/examples/style-rules.html
@@ -1,14 +1,20 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Rule Based Style</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script src="style-rules.js"></script>
     </head>
     <body onload="init()">
         <h1 id="title">Rule Based Style</h1>
-        
+        <div id="tags">
+            vector, feature, stylemap, filter, comparison
+        </div>        
         <p id="shortdesc">
             Use rule based styling to use different symbolizers for different
             feature groups.
diff --git a/examples/style.css b/examples/style.css
index d1da62e..d2a9ce1 100644
--- a/examples/style.css
+++ b/examples/style.css
@@ -84,3 +84,56 @@ h6 {
 #docs p {
     margin-bottom: 0.5em;
 }
+/* mobile specific */
+ at media only screen and (max-width: 600px) {
+    body {
+        height           : 100%;
+        margin           : 0;
+        padding          : 0;
+        width            : 100%;
+    }
+    #map {
+        background : #7391ad;
+        width      : 100%;
+    }
+    #map {
+        border : 0;
+        height : 250px;
+    }
+    #title {
+        font-size   : 1.3em;
+        line-height : 2em;
+        text-indent : 1em;
+        margin      : 0;
+        padding     : 0;
+    }
+    #docs {
+        bottom     : 0;
+        padding    : 1em;
+    }
+    #shortdesc {
+        color      : #aaa;
+        font-size  : 0.8em;
+        padding    : 1em;
+        text-align : right;
+    }
+    #tags {
+        display : none;
+    }
+}
+ at media only screen and (orientation: landscape) and (max-width: 600px) {
+    #shortdesc {
+       float: right;
+       width: 25%;
+    }
+    #map {
+        width: 70%;
+    }
+    #docs {
+        font-size: 12px;
+    }
+}
+body {
+    -webkit-text-size-adjust: none;
+}
+
diff --git a/examples/style.mobile-jq.css b/examples/style.mobile-jq.css
new file mode 100644
index 0000000..418542f
--- /dev/null
+++ b/examples/style.mobile-jq.css
@@ -0,0 +1,62 @@
+html ,
+body {
+    margin: 0;
+    padding: 0;
+    height: 100%;
+}
+.ui-content {
+    padding: 0;
+}
+.ui-footer {
+    text-align: center;
+    padding: 5px 0;
+}
+.portrait, .portrait #mappage {
+    min-height: 0;
+}
+/*.portrait, .portrait .ui-page{*/
+    /*min-height: 0;*/
+/*}*/
+#mappage, #mappage .ui-content, #map {
+    width: 100%;
+    height: 100%;
+}
+.olControlAttribution {
+    font-size: 10px;
+    bottom: 5px;
+    right: 5px;
+}
+#navigation {
+    position: absolute;
+    bottom: 70px;
+    left: 10px;
+    z-index: 1000;
+}
+#navigation .ui-btn-icon-notext {
+    display: block;
+    padding: 7px 6px 7px 8px;
+}
+#title, #tags, #shortdesc {
+    display: none;
+}
+.ui-icon-check {
+    opacity: 0.3;
+}
+.checked .ui-icon-check {
+    opacity: 1;
+}
+.ui-icon-locate {
+    background-image: url(img/locate.png);
+}
+.ui-icon-layers {
+    background-image: url(img/openlayers.png);
+}
+.ui-content .ui-listview-inset, #search_results {
+    margin: 1em;
+}
+.ui-content .ui-listview {
+    margin: 0px;
+}
+#details-list li{
+	padding:15px 10px;
+}
diff --git a/examples/style.mobile.css b/examples/style.mobile.css
new file mode 100644
index 0000000..d9e9425
--- /dev/null
+++ b/examples/style.mobile.css
@@ -0,0 +1,25 @@
+div.olControlZoomPanel {
+    height: 108px
+    width: 36px;
+    position: absolute;
+    top: 20px;
+    left: 20px;
+}
+div.olControlZoomPanel div {
+    width: 36px;
+    height: 36px;
+    background-image: url(img/mobile-zoombar.png);
+    left: 0;
+}
+div.olControlZoomPanel .olControlZoomInItemInactive {
+    top: 0;
+    background-position: 0 0;
+}
+div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
+    top: 36px;
+    background-position: 0 -36px;
+}
+div.olControlZoomPanel .olControlZoomOutItemInactive {
+    top: 72px;
+    background-position: 0 -72px;
+}
diff --git a/examples/stylemap.html b/examples/stylemap.html
index 3d70818..6e712e8 100644
--- a/examples/stylemap.html
+++ b/examples/stylemap.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers StyleMap</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -68,7 +72,9 @@
   <body onload="init()">
     <h1 id="title">StyleMap Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        vector, feature, stylemap
+    </div>
 
     <p id="shortdesc">
         Shows how to use a StyleMap to style features with rule based styling.
diff --git a/examples/styles-context.html b/examples/styles-context.html
index b59b821..e9e35bc 100644
--- a/examples/styles-context.html
+++ b/examples/styles-context.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Vector Styles</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -30,12 +34,17 @@
                 );
             }
             
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+            
             // create the layer styleMap with a simple symbolizer template
             var layer1 = new OpenLayers.Layer.Vector('Points', {
                 styleMap: new OpenLayers.StyleMap({
                     pointRadius: "${type}", // based on feature.attributes.type
                     fillColor: "#666666"
-                })
+                }),
+                renderers: renderer
             });
             layer1.addFeatures(features);
 
@@ -59,17 +68,18 @@
                     var region = parseInt((feature.geometry.x + 180) / 120);
                     return colors[region];
                 },
-                getType: function(feature) {
-                    return feature.attributes["type"];
+                getSize: function(feature) {
+                    return feature.attributes["type"] / map.getResolution() * .703125;
                 }
             };
             var template = {
-                pointRadius: "${getType}", // using context.getType(feature)
+                pointRadius: "${getSize}", // using context.getSize(feature)
                 fillColor: "${getColor}" // using context.getColor(feature)
             };
             var style = new OpenLayers.Style(template, {context: context});
             var layer2 = new OpenLayers.Layer.Vector('Points', {
-                styleMap: new OpenLayers.StyleMap(style)
+                styleMap: new OpenLayers.StyleMap(style),
+                renderers: renderer
             });
             layer2.addFeatures(features);
 
@@ -81,7 +91,9 @@
   <body onload="init()">
     <h1 id="title">Feature Styles Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        vector, feature, stylemap
+    </div>
 
     <p id="shortdesc">
         To style features with a custom function that evaluates each feature, use
diff --git a/examples/styles-rotation.html b/examples/styles-rotation.html
index e441125..ed21448 100644
--- a/examples/styles-rotation.html
+++ b/examples/styles-rotation.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Styles Rotation Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js" type="text/javascript"></script>
     <script type="text/javascript">
         
@@ -71,6 +75,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Rotation Style Example</h1>
+    <div id="tags">
+        vector, feature, stylemap, rotation, cleanup
+    </div>    
     <p id="shortdesc">
         Use the rotation property of a point symbolizer to rotate
         point symbolizers.
diff --git a/examples/styles-unique.html b/examples/styles-unique.html
index e2b6fe8..0d2e1ec 100644
--- a/examples/styles-unique.html
+++ b/examples/styles-unique.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Styles Unique Value Styles Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -89,7 +93,9 @@
   <body onload="init()">
     <h1 id="title">Unique Value Styles Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        vector, feature, stylemap, uniquevalue, cleanup
+    </div>
 
     <p id="shortdesc">
         Shows how to create a style based on unique feature attribute values (markers)
diff --git a/examples/sundials-spherical-mercator.html b/examples/sundials-spherical-mercator.html
index 40929e4..38f7b93 100644
--- a/examples/sundials-spherical-mercator.html
+++ b/examples/sundials-spherical-mercator.html
@@ -1,11 +1,18 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Sundials on a Spherical Mercator Map</title>
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
 
     <style type="text/css">
+        html, body {
+            height: 100%;
+        }
         #map {
             width: 100%;
             height: 80%;
@@ -31,15 +38,7 @@
                                                  20037508.34, 20037508.34)
             };
             map = new OpenLayers.Map('map', options);
-            var mapnik = new OpenLayers.Layer.TMS(
-                "OpenStreetMap (Mapnik)",
-                "http://tile.openstreetmap.org/",
-                {
-                    type: 'png', getURL: osm_getTileURL,
-                    displayOutsideMaxExtent: true,
-                    attribution: '<a href="http://www.openstreetmap.org/">OpenStreetMap</a>'
-                }
-            );
+            var mapnik = new OpenLayers.Layer.OSM("OpenStreetMap (Mapnik)");
             var gmap = new OpenLayers.Layer.Google("Google", {sphericalMercator:true});
             var sundials = new OpenLayers.Layer.Vector("KML", {
                 projection: map.displayProjection,
@@ -96,26 +95,14 @@
                 delete feature.popup;
             }
         }
-        function osm_getTileURL(bounds) {
-            var res = this.map.getResolution();
-            var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
-            var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
-            var z = this.map.getZoom();
-            var limit = Math.pow(2, z);
-
-            if (y < 0 || y >= limit) {
-                return OpenLayers.Util.getImagesLocation() + "404.png";
-            } else {
-                x = ((x % limit) + limit) % limit;
-                return this.url + z + "/" + x + "/" + y + "." + this.type;
-            }
-        }
     </script>
   </head>
   <body onload="init()">
       <h1 id="title">OSM + Google Maps + KML Reprojection</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+          osm, kml, spherical, mercator, reprojection, feature, popup, advanced
+      </div>
 
       <p id="shortdesc">
           Demonstrates loading and displaying a KML file on top of OpenStreetMap (OSM) and Google Maps data. Loads data from a KML file of sundials.
diff --git a/examples/sundials.html b/examples/sundials.html
index cc07ca9..b718755 100644
--- a/examples/sundials.html
+++ b/examples/sundials.html
@@ -1,9 +1,16 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
 
     <style type="text/css">
+        html, body {
+            height: 100%;
+        }
         #map {
             width: 100%;
             height: 80%;
@@ -62,7 +69,7 @@
             // Javascript.
             var content = "<h2>"+feature.attributes.name + "</h2>" + feature.attributes.description;
             if (content.search("<script") != -1) {
-                content = "Content contained Javascript! Escaped content below.<br />" + content.replace(/</g, "<");
+                content = "Content contained Javascript! Escaped content below.<br>" + content.replace(/</g, "<");
             }
             popup = new OpenLayers.Popup.FramedCloud("chicken", 
                                      feature.geometry.getBounds().getCenterLonLat(),
@@ -85,7 +92,9 @@
   <body onload="init()">
       <h1 id="title">KML Layer Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+          kml, popup, feature
+      </div>
 
       <p id="shortdesc">
           Demonstrates loading and displaying a KML file on top of a basemap.
diff --git a/examples/symbolizers-fill-stroke-graphic.html b/examples/symbolizers-fill-stroke-graphic.html
index 8e8296a..f28c8c2 100644
--- a/examples/symbolizers-fill-stroke-graphic.html
+++ b/examples/symbolizers-fill-stroke-graphic.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Fill, Stroke, and Graphic Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js" type="text/javascript"></script>
     <script type="text/javascript">
         var map;
@@ -26,7 +30,8 @@
                                 symbolizer: {
                                     graphic: false,
                                     label: "Label for invisible point",
-                                    labelSelect: true
+                                    labelSelect: true,
+                                    fontStyle: "italic"
                                 },
                                 filter: new OpenLayers.Filter.Comparison({
                                     type: "==",
@@ -120,7 +125,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Example</h1>
-    <div id="tags"></div>
+    <div id="tags">
+        vector, feature, symbolizer, filter, comparison, labeling
+    </div>
     <p id="shortdesc">
         Demonstrate fill, stroke, and graphic property of symbolizers.
     </p>
diff --git a/examples/tasmania/sld-tasmania.xml b/examples/tasmania/sld-tasmania.xml
index 0b174f0..1c41225 100644
--- a/examples/tasmania/sld-tasmania.xml
+++ b/examples/tasmania/sld-tasmania.xml
@@ -10,7 +10,7 @@
     <sld:Name>WaterBodies</sld:Name>
     <sld:UserStyle>
       <sld:Name>Default Styler</sld:Name>
-      <sld:Title>Default Styler</sld:Title>
+      <sld:Title>Default Styler (zoom in to see more objects)</sld:Title>
       <sld:Abstract></sld:Abstract>
       <sld:IsDefault>1</sld:IsDefault>
       <sld:FeatureTypeStyle>
diff --git a/examples/teleportation.html b/examples/teleportation.html
index d1a4b86..3154c56 100644
--- a/examples/teleportation.html
+++ b/examples/teleportation.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Teleporter Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     
     <style type="text/css">
@@ -49,7 +53,9 @@
   <body onload="init()">
     <h1 id="title">Map "Teleportation" and Rendering</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        map, rendering
+    </div>
 
     <p id="shortdesc">Call the map's render method to change its container.</p>
 
@@ -61,10 +67,10 @@
     <input type="button" onclick="teleport()" value="Teleport!"></input>
 
     <div id="docs">
-        This example demonstrates how a map can be rendered initially in one
+        <p>This example demonstrates how a map can be rendered initially in one
         container and then moved to a new container.  At any point after map
         construction, the map's render method can be called with the id of
-        an empty container, moving the map to the new container.
+        an empty container, moving the map to the new container.</p>
     </div>
   </body>
 </html>
diff --git a/examples/tile-origin.html b/examples/tile-origin.html
new file mode 100644
index 0000000..78339d4
--- /dev/null
+++ b/examples/tile-origin.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers Tile Origin Example</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+    </head>
+    <body>
+        <h1 id="title">Tile Origin</h1>
+        <div id="tags">
+            grid, tileOrigin
+        </div>
+        <p id="shortdesc">
+            Demonstrates the use of the tileExtent property to differentiate 
+            between the maximum extent and the tile extent for a layer.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                This example uses a layer that requests map tiles from a WMS
+                that only generates image responses for requests that align with
+                a particular tile lattice.  In this case, the layer's 
+                <code>maxExtent</code> does not align with that tile lattice.  
+                To configure the layer with a tile extent that conforms to the 
+                tile origin configured on the server, use the layer's 
+                <code>tileOrigin</code> property.
+            </p><p>
+                View the <a href="tile-origin.js" target="_blank">tile-origin.js</a>
+                source to see how this is done
+            </p>
+        </div>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="tile-origin.js"></script>
+    </body>
+</html>
diff --git a/examples/tile-origin.js b/examples/tile-origin.js
new file mode 100644
index 0000000..61c5b8e
--- /dev/null
+++ b/examples/tile-origin.js
@@ -0,0 +1,16 @@
+var map = new OpenLayers.Map({
+    div: "map",
+    maxExtent: new OpenLayers.Bounds(-130, 30, -80, 55),
+    maxResolution: 360 / 256 / Math.pow(2, 4),
+    numZoomLevels: 12,
+    layers: [
+        new OpenLayers.Layer.WMS(
+            "Global Imagery",
+            "http://maps.opengeo.org/geowebcache/service/wms",
+            {layers: "bluemarble"},
+            {tileOrigin: new OpenLayers.LonLat(-180, -90)}
+        )
+    ],
+    center: new OpenLayers.LonLat(-110, 45),
+    zoom: 0
+});
diff --git a/examples/tilecache.html b/examples/tilecache.html
index 0db39aa..dc3202d 100644
--- a/examples/tilecache.html
+++ b/examples/tilecache.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers TileCache Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -44,7 +48,9 @@
   <body onload="init()">
       <h1 id="title">TileCache Example</h1>
 
-      <div id="tags"></div>
+      <div id="tags">
+          tile, cache, tilecache, wmsc, wms-c
+      </div>
 
       <p id="shortdesc">
         Demonstrates a TileCache layer that loads tiles from from a web
@@ -54,10 +60,10 @@
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        This layer should be used for web accessible disk-based caches only.
+        <p>This layer should be used for web accessible disk-based caches only.
         It is not used to request new tiles from TileCache.  Note that you
         should specify resolutions explicitly on this layer so that they match
-        your TileCache configuration.
+        your TileCache configuration.</p>
     </div>
   </body>
 </html>
diff --git a/examples/tms.html b/examples/tms.html
index d1e4678..ef4bf8c 100644
--- a/examples/tms.html
+++ b/examples/tms.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Tiled Map Service Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -34,7 +38,9 @@
   <body onload="init()">
       <h1 id="title">Tiled Map Service Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        tile, cache, tms
+    </div>
 
     <p id="shortdesc">
         Demonstrate the initialization and modification of a Tiled Map Service layer.
@@ -43,9 +49,9 @@
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        URL of TMS (Should end in /): <input type="text" id="url" size="60" value="http://tilecache.osgeo.org/wms-c/Basic.py/" /> layer_name <input type="text" id="layer" value="basic" /> <select id="type"><option>jpg</option><option>png</option></select> <input type="submit" onclick="addTMS()"/><br />
+        URL of TMS (Should end in /): <input type="text" id="url" size="60" value="http://tilecache.osgeo.org/wms-c/Basic.py/" /> layer_name <input type="text" id="layer" value="basic" /> <select id="type"><option>jpg</option><option>png</option></select> <input type="submit" onclick="addTMS()"/><br>
         <p>
-        Example: http://tilecache.osgeo.org/wms-c/Basic.py/, basic, jpg<br />
+        Example: http://tilecache.osgeo.org/wms-c/Basic.py/, basic, jpg<br>
         The first input must be an HTTP URL pointing to a TMS instance. The second
         input must be a layer name available from that instance, and the third must
         be the output format used by that layer. (Any other behavior will result in
diff --git a/examples/transform-feature.html b/examples/transform-feature.html
index e058e71..6c562f0 100644
--- a/examples/transform-feature.html
+++ b/examples/transform-feature.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Transformation Box</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js" type="text/javascript"></script>
     <script type="text/javascript">
         var map, control;
@@ -81,6 +85,7 @@
 <h1 id="title">Vector Feature Transformation Box Example</h1>
 
 <div id="tags">
+    vector, feature, transformation, stylemap
 </div>
 <p id="shortdesc">
     Shows the use of the TransformFeature control.
diff --git a/examples/transition.html b/examples/transition.html
index e0b26ee..6404c4c 100644
--- a/examples/transition.html
+++ b/examples/transition.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Transitions Example</title>
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -41,6 +45,9 @@
   </head>
   <body onload="init()">
     <h1 id="title">Transition Example</h1>
+    <div id="tags">
+        transition, resize, tile, singletile
+    </div>    
     <p id="shortdesc">
         Demonstrates the use of transition effects in tiled and untiled layers.
     </p>
diff --git a/examples/urban.html b/examples/urban.html
index c626341..8c9f247 100644
--- a/examples/urban.html
+++ b/examples/urban.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-      <title>OpenLayers WorldWind Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers WorldWind Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -24,7 +28,9 @@
   <body onload="init()">
     <h1 id="title">WorldWind Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        worldwind, cleanup
+    </div>
 
     <p id="shortdesc">
         Demonstrate the use of a NASA WorldWind base layer.
diff --git a/examples/ve-novibrate.html b/examples/ve-novibrate.html
index 2775583..6be2943 100644
--- a/examples/ve-novibrate.html
+++ b/examples/ve-novibrate.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml"> 
-  <head> 
-      <title>OpenLayers Virtual Earth Example</title> 
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" /> 
-    <link rel="stylesheet" href="style.css" type="text/css" /> 
+<!DOCTYPE html>
+<html> 
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes"> 
+    <title>OpenLayers Virtual Earth Example</title> 
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css"> 
+    <link rel="stylesheet" href="style.css" type="text/css"> 
     <script src='http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1'></script> 
  
     <script src="../lib/OpenLayers.js"></script> 
@@ -46,7 +50,9 @@
   <body onload="init()"> 
     <h1 id="title">Virtual Earth Example</h1> 
  
-    <div id="tags"></div> 
+    <div id="tags">
+        panning, virtual earth, panzoom, panmethod, panduration
+    </div> 
  
     <p id="shortdesc"> 
         When using the PanZoom buttons with VirtualEarth, some 'drift' is 
diff --git a/examples/ve.html b/examples/ve.html
index 0dad53a..7b9bad8 100644
--- a/examples/ve.html
+++ b/examples/ve.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-      <title>OpenLayers Virtual Earth Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Virtual Earth Example</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src='http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1'></script>
 
     <script src="../lib/OpenLayers.js"></script>
@@ -52,7 +56,9 @@
   <body onload="init()">
     <h1 id="title">Virtual Earth Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        virtual earth, marker
+    </div>
 
     <p id="shortdesc">
         Demonstrates the use of a Virtual Earth base layer.
diff --git a/examples/vector-features-with-text.html b/examples/vector-features-with-text.html
index 634478f..cbdba66 100644
--- a/examples/vector-features-with-text.html
+++ b/examples/vector-features-with-text.html
@@ -1,8 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE HTML>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Labeled Features Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -27,7 +30,8 @@
                     fillOpacity: 0.5,
                     pointRadius: 6,
                     pointerEvents: "visiblePainted",
-                    label : "name: ${name}, age: ${age}",
+                    // label with \n linebreaks
+                    label : "name: ${name}\n\nage: ${age}",
                     
                     fontColor: "${favColor}",
                     fontSize: "12px",
@@ -111,20 +115,22 @@
             
             map.addLayer(vectorLayer);
             vectorLayer.drawFeature(multiFeature);
-            map.setCenter(new OpenLayers.LonLat(point.x, point.y), 3);
+            map.setCenter(new OpenLayers.LonLat(-109.370078125, 43.39484375), 4);
             vectorLayer.addFeatures([pointFeature, polygonFeature, multiFeature, labelOffsetFeature, nullFeature ]);
         }
     </script>
   </head>
   <body onload="init()">
     <h1 id="title">OpenLayers Labeled features example</h1>
-    <div id="tags"></div>
+    <div id="tags">
+        vector, feature, labeling, symbolizer
+    </div>
     <p id="shortdesc">
         Label vector features with a text symbolizer.
     </p>
     <div id="map" class="smallmap"></div>
     <div id="docs">
-    This example shows drawing simple vector features with a label
+    <p>This example shows drawing simple vector features with a label.</p>
     </div>
   </body>
 </html>
diff --git a/examples/vector-features.html b/examples/vector-features.html
index 0cfa608..0a48a30 100644
--- a/examples/vector-features.html
+++ b/examples/vector-features.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Vector Features</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js" type="text/javascript"></script>
     <script type="text/javascript">
         var map;
@@ -13,6 +17,10 @@
                     "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
             map.addLayer(layer);
 
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
             /*
              * Layer style
              */
@@ -63,9 +71,12 @@
             style_mark.graphicYOffset = -style_mark.graphicHeight;
             style_mark.externalGraphic = "../img/marker.png";
             // graphicTitle only works in Firefox and Internet Explorer
-			style_mark.graphicTitle = "this is a test tooltip";
+            style_mark.graphicTitle = "this is a test tooltip";
 
-            var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", {style: layer_style});
+            var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", {
+                style: layer_style,
+                renderers: renderer
+            });
 
             // create a point feature
             var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
@@ -112,6 +123,7 @@
 <h1 id="title">Drawing Simple Vector Features Example</h1>
 
 <div id="tags">
+    vector, feature
 </div>
 <p id="shortdesc">
     Shows the use of the shows drawing simple vector features, in different styles.
diff --git a/examples/vector-formats.html b/examples/vector-formats.html
index 9ebeedc..7848cf3 100644
--- a/examples/vector-formats.html
+++ b/examples/vector-formats.html
@@ -1,8 +1,15 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Vector Formats</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <!--[if lte IE 6]>
+        <link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
+    <![endif]-->
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         input, select, textarea {
             font: 0.9em Verdana, Arial, sans-serif;
@@ -172,6 +179,7 @@
         <h1 id="title">Vector Formats Example</h1>
 
         <div id="tags">
+            vector, geojson, atom, kml, georss, gml, wkt, advanced, spherical, mercator
         </div>
         <p id="shortdesc">
             Shows the wide variety of vector formats that open layers supports.
@@ -196,18 +204,18 @@
             <label for="prettyPrint">Pretty print</label>
             <input id="prettyPrint" type="checkbox"
                    name="prettyPrint" value="1" />
-            <br />
+            <br>
             Input Projection: <select id="inproj" onchange='updateFormats()'>
               <option value="EPSG:4326" selected="selected">EPSG:4326</option>
               <option value="EPSG:900913">Spherical Mercator</option>
-            </select> <br /> 
+            </select> <br> 
             Output Projection: <select id="outproj" onchange='updateFormats()'>
               <option value="EPSG:4326" selected="selected">EPSG:4326</option>
               <option value="EPSG:900913">Spherical Mercator</option>
             </select> 
-            <br /> 
+            <br> 
             <textarea id="text">paste text here...</textarea>
-            <br />
+            <br>
             <input type="button" value="add feature" onclick="deserialize();" />
         </div>
 
diff --git a/examples/web-mercator.html b/examples/web-mercator.html
index f1e602e..cfa307f 100644
--- a/examples/web-mercator.html
+++ b/examples/web-mercator.html
@@ -1,9 +1,12 @@
 <!DOCTYPE HTML>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers: Web Mercator</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
 
         <script src="../lib/OpenLayers.js"></script>
@@ -13,6 +16,7 @@
         <h1 id="title">OpenLayers Spherical Mercator Example</h1>
 
         <div id="tags">
+            sperical, mercator, epsg, projection
         </div>
         <p id="shortdesc">
             Shows the use of layers in spherical or web mercator using different
diff --git a/examples/wfs-filter.html b/examples/wfs-filter.html
index 2c6466d..be256c0 100644
--- a/examples/wfs-filter.html
+++ b/examples/wfs-filter.html
@@ -1,6 +1,9 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers WFS Protocol with Filter</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
         <link rel="stylesheet" href="../theme/default/google.css" type="text/css">
@@ -10,6 +13,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">WFS Protocol and Filter</h1>
+        <div id="tags">
+            filter, wfs, comparison
+        </div>
         <p id="shortdesc">
             Demonstrates the use of a filter in making GetFeature requests using the WFS protocol.
         </p>
diff --git a/examples/wfs-protocol-transactions.html b/examples/wfs-protocol-transactions.html
index 642a8f5..390c62a 100644
--- a/examples/wfs-protocol-transactions.html
+++ b/examples/wfs-protocol-transactions.html
@@ -1,15 +1,25 @@
+<!DOCTYPE html>
 <html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
     <script src="../lib/OpenLayers.js"></script>
+    <!--[if lte IE 6]>
+        <style>
+            .customEditingToolbar {
+                width: 200px;
+            }
+        </style>
+    <![endif]-->   
     <style>
         .customEditingToolbar {
             float: right;
             right: 0px;
             height: 30px; 
-            width: 200px;
         }
         .customEditingToolbar div {
             float: right;
@@ -62,7 +72,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">WFS Transaction Example</h1>
-        <div id="tags"></div>
+        <div id="tags">
+            wfs, wfst, wfs-t, advanced
+        </div>
         <p id="shortdesc">
             Shows the use of the WFS Transactions (WFS-T).
         </p>
@@ -75,8 +87,11 @@
             <p>
                 Use the tools to create, modify, and delete (in order from left
                 to right) features. Use the save tool (picture of a disk) to
-                save your changes. Use the navigation tool (hand) to stop
-                editing and use the mouse for map navigation.
+                save your changes.
+            </p>
+            <p>
+                To deactivate "drawing" or "modifying" depress the
+                corresponding button.
             </p>
             <p>
                 See the <a href="wfs-protocol-transactions.js" target="_blank">
diff --git a/examples/wfs-protocol-transactions.js b/examples/wfs-protocol-transactions.js
index a5a6a7c..1f61958 100644
--- a/examples/wfs-protocol-transactions.js
+++ b/examples/wfs-protocol-transactions.js
@@ -29,16 +29,22 @@ var DeleteFeature = OpenLayers.Class(OpenLayers.Control, {
 });
 
 function init() {
+
+    var extent = new OpenLayers.Bounds(
+        -11593508, 5509847, -11505759, 5557774
+    );
+
+
     map = new OpenLayers.Map('map', {
         projection: new OpenLayers.Projection("EPSG:900913"),
         displayProjection: new OpenLayers.Projection("EPSG:4326"),
         units: "m",
-        maxResolution: 156543.0339,
-        maxExtent: new OpenLayers.Bounds(
-            -11593508, 5509847, -11505759, 5557774
-        ),
+        maxResolution: 20037508.34 / 128,
+        maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508),
+        restrictedExtent: extent,
         controls: [
-            new OpenLayers.Control.PanZoom()
+            new OpenLayers.Control.PanZoom(),
+            new OpenLayers.Control.Navigation()
         ]
     });
     var gphy = new OpenLayers.Layer.Google(
@@ -47,7 +53,7 @@ function init() {
     );
 
     var saveStrategy = new OpenLayers.Strategy.Save();
-
+    
     wfs = new OpenLayers.Layer.Vector("Editable Features", {
         strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
         projection: new OpenLayers.Projection("EPSG:4326"),
@@ -64,12 +70,9 @@ function init() {
    
     map.addLayers([gphy, wfs]);
 
-    var panel = new OpenLayers.Control.Panel(
-        {'displayClass': 'customEditingToolbar'}
-    );
-    
-    var navigate = new OpenLayers.Control.Navigation({
-        title: "Pan Map"
+    var panel = new OpenLayers.Control.Panel({
+        displayClass: 'customEditingToolbar',
+        allowDepress: true
     });
     
     var draw = new OpenLayers.Control.DrawFeature(
@@ -99,9 +102,8 @@ function init() {
         displayClass: "olControlSaveFeatures"
     });
 
-    panel.addControls([navigate, save, del, edit, draw]);
-    panel.defaultControl = navigate;
+    panel.addControls([save, del, edit, draw]);
     map.addControl(panel);
-    map.zoomToMaxExtent();
+    map.zoomToExtent(extent, true);
 }
 
diff --git a/examples/wfs-protocol.html b/examples/wfs-protocol.html
index eede085..97752a5 100644
--- a/examples/wfs-protocol.html
+++ b/examples/wfs-protocol.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers Vector Behavior Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/Firebug/firebug.js"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script type="text/javascript">
@@ -32,6 +36,9 @@
     </head>
     <body onload="init()">
         <h1 id="title">Vector Behavior Example</h1>
+        <div id="tags">
+            wfs, vector
+        </div>
         <p id="shortdesc">
             Uses a BBOX strategy, WFS protocol, and GML format.
         </p>
diff --git a/examples/wfs-reprojection.html b/examples/wfs-reprojection.html
index da87c88..ceae053 100644
--- a/examples/wfs-reprojection.html
+++ b/examples/wfs-reprojection.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>WFS Reprojection Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ"></script>
         <script src="wfs-reprojection.js"></script>
@@ -10,6 +14,7 @@
     <body onload="init()">
         <h1 id="title">WFS Reprojection Example</h1>
         <div id="tags">
+            reprojection, styling, stylemap, wfs, vector, advanced
         </div>
         <p id="shortdesc">
             Shows the use of the client side reprojection support. 
diff --git a/examples/wfs-snap-split.html b/examples/wfs-snap-split.html
index b58c489..0b71da0 100644
--- a/examples/wfs-snap-split.html
+++ b/examples/wfs-snap-split.html
@@ -1,14 +1,23 @@
 <html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
+    <!--[if lte IE 6]>
+        <style>
+            .customEditingToolbar {
+                width: 200px;
+            }
+        </style>
+    <![endif]--> 
     <style>
         .customEditingToolbar {
             float: right;
             right: 0px;
             height: 30px; 
-            width: 200px;
         }
         .customEditingToolbar div {
             float: right;
@@ -88,29 +97,23 @@
         });
 
         function init() {
-            OpenLayers.ProxyHost= "proxy.cgi?url=";
-            map = new OpenLayers.Map('map', {
-                maxResolution: 156543.03390625,
+            OpenLayers.ProxyHost = "proxy.cgi?url=";
+            map = new OpenLayers.Map({
+                div: "map",
+                maxResolution: 156543.0339,
+                maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508),
                 restrictedExtent: new OpenLayers.Bounds(
-                    -11560239, 5541115, -11560239, 5542338
-                ),
-                maxExtent: new OpenLayers.Bounds(
-                    -2.003750834E7,-2.003750834E7,
-                    2.003750834E7,2.003750834E7
+                    -11563906, 5540550, -11559015, 5542996
                 ),
                 projection: new OpenLayers.Projection("EPSG:900913"),
+                units: "m",
                 controls: [
-                    new OpenLayers.Control.PanZoom()
+                    new OpenLayers.Control.PanZoom(),
+                    new OpenLayers.Control.Navigation()
                 ]
             });
 
-            var wms = new OpenLayers.Layer.WMS(
-                "Base Layer", "http://demo.opengeo.org/geoserver_openstreetmap/gwc/service/wms",
-                {
-                    layers: 'openstreetmap',
-                    format: 'image/png'
-                }
-            );
+            var osm = new OpenLayers.Layer.OSM();
             var styles = new OpenLayers.StyleMap({
                 "default": new OpenLayers.Style(null, {
                     rules: [
@@ -178,7 +181,7 @@
                 })
             }); 
            
-            map.addLayers([wms, wfs]);
+            map.addLayers([osm, wfs]);
 
             // configure the snapping agent
             var snap = new OpenLayers.Control.Snapping({layer: wfs});
@@ -202,9 +205,10 @@
             split.activate();
 
             // add some editing tools to a panel
-            var panel = new OpenLayers.Control.Panel(
-                {displayClass: 'customEditingToolbar'}
-            );
+            var panel = new OpenLayers.Control.Panel({
+                displayClass: 'customEditingToolbar',
+                allowDepress: true
+            });
             var draw = new OpenLayers.Control.DrawFeature(
                 wfs, OpenLayers.Handler.Path,
                 {
@@ -232,13 +236,11 @@
 
 
             panel.addControls([
-                new OpenLayers.Control.Navigation(),
                 save, del, modify, draw
             ]);
             
-            panel.defaultControl = panel.controls[0];
             map.addControl(panel);
-            map.zoomTo(15);
+            map.setCenter(new OpenLayers.LonLat(-11561460.5, 5541773), 15);
         }
 
         function flashFeatures(features, index) {
@@ -266,6 +268,7 @@
     <h1 id="title">Snap/Split and Persist via WFS</h1>
     
     <div id="tags">
+        snapping, splitting, wfs, wfst, wfs-t, advanced
     </div>
     <p id="shortdesc">
         Shows snapping, splitting, and use of the WFS Transactions (WFS-T).
@@ -278,8 +281,9 @@
         updating, or deleting of existing features.</p>
         <p>Use the tools to create, modify, and delete (in order from left
         to right) features.  Use the save tool (picture of a disk) to
-        save your changes.  Use the navigation tool (hand) to stop editing
-        and use the mouse for map navigation.</p>
+        save your changes.</p>
+        <p>To deactivate "drawing" or "modifying" depress the corresponding
+        button.</p>
     </div>
 
 </body>
diff --git a/examples/wfs-spatial-filter.html b/examples/wfs-spatial-filter.html
new file mode 100644
index 0000000..d6acead
--- /dev/null
+++ b/examples/wfs-spatial-filter.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers WFS Protocol with Filter</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">WFS Protocol and Filter</h1>
+        <div id="tags">
+            filter, wfs, spatial
+        </div>
+        <p id="shortdesc">
+            Demonstrates the use of a spatial filter in making GetFeature requests using the WFS protocol.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                If a vector layer has a filter and the protocol supports server-side filtering,
+                the filter will be serialized in requests for features.  The WFS protocol can be
+                used with a vector layer to serialize a filter using OGC Filter Encoding.
+            </p><p>
+                This example has a draw control that is always active.  When you draw a polygon
+                on the map, the filter for the main vector layer will be updated, and features
+                that intersect your drawn polygon will be requested.
+            </p><p>
+                See the <a href="wfs-spatial-filter.js" target="_blank">source</a> 
+                for details on how this is done.
+            </p>
+        </div>
+        <script src="wfs-spatial-filter.js"></script>
+    </body>
+</html>
diff --git a/examples/wfs-spatial-filter.js b/examples/wfs-spatial-filter.js
new file mode 100644
index 0000000..4ca9fd5
--- /dev/null
+++ b/examples/wfs-spatial-filter.js
@@ -0,0 +1,36 @@
+OpenLayers.ProxyHost= "proxy.cgi?url=";
+var map = new OpenLayers.Map('map');
+var wms = new OpenLayers.Layer.WMS(
+    "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
+    {layers: "basic"}
+);
+
+var layer = new OpenLayers.Layer.Vector("WFS", {
+    strategies: [new OpenLayers.Strategy.BBOX()],
+    protocol: new OpenLayers.Protocol.WFS({
+        url:  "http://demo.opengeo.org/geoserver/wfs",
+        featureType: "tasmania_roads",
+        featureNS: "http://www.openplans.org/topp"
+    })
+});
+
+map.addLayers([wms, layer]);
+map.setCenter(new OpenLayers.LonLat(146.7, -41.8), 6);
+
+var drawings = new OpenLayers.Layer.Vector();
+map.addLayer(drawings);
+var draw = new OpenLayers.Control.DrawFeature(drawings, OpenLayers.Handler.Polygon);
+map.addControl(draw);
+draw.activate();
+
+drawings.events.on({
+    beforefeatureadded: function(event) {
+        var geometry = event.feature.geometry;
+        layer.filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.INTERSECTS,
+            value: event.feature.geometry
+        });
+        layer.refresh({force: true});
+        return false;
+    }
+});
diff --git a/examples/wfs-states.html b/examples/wfs-states.html
index 768e794..655acd4 100644
--- a/examples/wfs-states.html
+++ b/examples/wfs-states.html
@@ -1,14 +1,20 @@
+<!DOCTYPE html>
 <html>
     <head>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <title>WFS: United States (GeoServer)</title>
         <script src="../lib/OpenLayers.js"></script>
         <script src="wfs-states.js"></script>
     </head>
     <body onload="init()">
         <h1 id="title">WFS United States (GeoServer) Example</h1>
-        <div id="tags"></div>
+        <div id="tags">
+            wfs, vector
+        </div>
         <p id="shortdesc">
             Shows the use of the WFS United States (GeoServer). 
         </p>
diff --git a/examples/wfs-states.js b/examples/wfs-states.js
index e8f183f..7f31513 100644
--- a/examples/wfs-states.js
+++ b/examples/wfs-states.js
@@ -10,13 +10,18 @@ function init() {
     );
     map.addLayer(base);
 
+    // allow testing of specific renderers via "?renderer=Canvas", etc
+    var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+    renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
     var wfs = new OpenLayers.Layer.Vector("States", {
         strategies: [new OpenLayers.Strategy.BBOX()],
         protocol: new OpenLayers.Protocol.WFS({
             url: "http://demo.opengeo.org/geoserver/wfs",
             featureType: "states",
             featureNS: "http://www.openplans.org/topp"
-        })
+        }),
+        renderers: renderer
     });
     map.addLayer(wfs);
 
diff --git a/examples/wmc.html b/examples/wmc.html
index 4ad971f..a8c1fda 100644
--- a/examples/wmc.html
+++ b/examples/wmc.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <style type="text/css">
         #wmc {
             width: 90%;
@@ -24,21 +28,12 @@
         var doc, context, map;
         
         function init() {
-            var options = {
-                maxExtent: new OpenLayers.Bounds(-130, 14, -60, 55)
-            };
-            map = new OpenLayers.Map("map", options);
+            map = new OpenLayers.Map("map");
 
-            var jpl = new OpenLayers.Layer.WMS(
-                "NASA Global Mosaic",
-                "http://t1.hypercube.telascience.org/cgi-bin/landsat7", 
-                {layers: "landsat7"},
-                {
-                    maxExtent: new OpenLayers.Bounds(-130, 14, -60, 55),
-                    maxResolution: 0.1,
-                    numZoomLevels: 4,
-                    minResolution: 0.02
-                }
+            var gwc = new OpenLayers.Layer.WMS(
+                "Global Imagery",
+                "http://maps.opengeo.org/geowebcache/service/wms",
+                {layers: "bluemarble"}
             );
 
             var vmap = new OpenLayers.Layer.WMS(
@@ -88,9 +83,9 @@
                 }
             );
 
-            map.addLayers([jpl, vmap, roads, nexrad]);
+            map.addLayers([gwc, vmap, roads, nexrad]);
             map.addControl(new OpenLayers.Control.LayerSwitcher());
-            map.setCenter(new OpenLayers.LonLat(-95, 34.5), 1);
+            map.setCenter(new OpenLayers.LonLat(-95, 34.5), 4);
         };
         
         function readWMC(merge) {
@@ -130,21 +125,22 @@
     <h1 id="title">WMC Example</h1>
 
     <div id="tags">
+        wmc, parser, advanced, cleanup
     </div>
     <p id="shortdesc">
            Shows parsing of Web Map Context documents.
     </p>
     <div id="map" class="smallmap"></div>
-        <button onclick="writeWMC();">write</button><br />
-        <button onclick="readWMC();">read as new map</button> with the following extra map options : <input type="text" id="mapOptions" value='{"div": "map", "allOverlays": true}'/><br />
-        <button onclick="readWMC(true);">read and merge</button><br />
-        <button onclick="pasteWMC();">try with another WMC document</button><br />
+        <button onclick="writeWMC();">write</button><br>
+        <button onclick="readWMC();">read as new map</button> with the following extra map options : <input type="text" id="mapOptions" value='{"div": "map", "allOverlays": true}'/><br>
+        <button onclick="readWMC(true);">read and merge</button><br>
+        <button onclick="pasteWMC();">try with another WMC document</button><br>
         <textarea id="wmc">paste WMC doc here</textarea>
     <div id="docs">
-        This is an example of parsing WMC documents. <br />
+        <p>This is an example of parsing WMC documents. <br>
         The format class has a layerOptions property, which can be used
         to control the default options of the layer when it is created
-        by the parser.
+        by the parser.</p>
     </div>
   </body>
 </html>
diff --git a/examples/wms-long-url.html b/examples/wms-long-url.html
new file mode 100644
index 0000000..023345b
--- /dev/null
+++ b/examples/wms-long-url.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>WMS with POST Requests to Avoid Long URLs</title>
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
+  </head>
+  <body>
+    <h1 id="title">WMS with POST Requests to Avoid Long URLs</h1>
+
+    <div id="tags">
+        sld, sld_body, post, iframe, advanced
+    </div>
+
+    <div id="shortdesc">Render tiles in IMG or IFRAME elements, depending on
+        the complexity of the GetMap request</div>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>The <code>maxGetUrlLength</code> property of the layer's
+            <code>tileOptions</code> option causes tiles to be requested using
+            HTTP POST when the length of the GET url would exceed the specified
+            length (2048 characters is recommended). In real life applications,
+            this happens often when using the SLD_BODY request parameter for
+            inline styling.
+        </p><p>
+            <input type="radio" name="group" id="longurl" checked="checked">
+            Long URL - POST requests
+            <br>
+            <input type="radio" name="group" id="shorturl">
+            Short URL - GET requests
+        </p><p>
+            View the <a href="wms-long-url.js" target="_blank">wms-long-url.js</a>
+            source to see how this is done.
+        </p>
+    </div>
+    <script src="../lib/OpenLayers.js"></script>
+    <script src="wms-long-url.js"></script>
+  </body>
+</html>
diff --git a/examples/wms-long-url.js b/examples/wms-long-url.js
new file mode 100644
index 0000000..ecbda39
--- /dev/null
+++ b/examples/wms-long-url.js
@@ -0,0 +1,26 @@
+// a long text that we set as dummy param (makeTheUrlLong) to make the url long
+var longText = new Array(205).join("1234567890");
+
+var map = new OpenLayers.Map( 'map' );
+var base = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+    "http://vmap0.tiles.osgeo.org/wms/vmap0",
+    {layers: 'basic', makeTheUrlLong: longText},
+    {tileOptions: {maxGetUrlLength: 2048}}
+);
+var overlay = new OpenLayers.Layer.WMS("Overlay",
+    "http://suite.opengeo.org/geoserver/wms",
+    {layers: "usa:states", transparent: true, makeTheUrlLong: longText},
+    {ratio: 1, singleTile: true, tileOptions: {maxGetUrlLength: 2048}}
+);
+map.addLayers([base, overlay]);
+map.zoomToMaxExtent();
+
+// add behavior to dom elements
+document.getElementById("longurl").onclick = function() {
+    base.mergeNewParams({makeTheUrlLong: longText});
+    overlay.mergeNewParams({makeTheUrlLong: longText});
+};
+document.getElementById("shorturl").onclick = function() {
+    base.mergeNewParams({makeTheUrlLong: null});
+    overlay.mergeNewParams({makeTheUrlLong: null});
+};
diff --git a/examples/wms-untiled.html b/examples/wms-untiled.html
index 36540e8..1d3c4dc 100644
--- a/examples/wms-untiled.html
+++ b/examples/wms-untiled.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -28,6 +32,7 @@
     <h1 id="title"> WMS Untiled Example</h1>
 
     <div id="tags">
+        singletile, tile
     </div>
         <p id="shortdesc">
             Shows an example of an "untiled" WMS layer, which requests a single
diff --git a/examples/wms-v13.html b/examples/wms-v13.html
index 11909a5..b917e75 100644
--- a/examples/wms-v13.html
+++ b/examples/wms-v13.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, map2;
@@ -36,6 +40,7 @@
     <h1 id="title"> WMS version 1.3 (axis order) Example</h1>
 
     <div id="tags">
+        axis order, wms 1.3
     </div>
         <p id="shortdesc">
             Shows an example of the influence of axis order on WMS 1.3 GetMap requests.
@@ -43,10 +48,10 @@
         <div id="map" class="smallmap"></div>
         <div id="map2" class="smallmap"></div>
         <div id="docs">
-        WMS version 1.3 introduced the axis order sequence, so that for e.g. EPSG:4326 the bbox coordinate
+        <p>WMS version 1.3 introduced the axis order sequence, so that for e.g. EPSG:4326 the bbox coordinate
         values need to be flipped (LatLon instead of LonLat). The first map uses the incorrect (WMS 1.1) axis
         order against a WMS 1.3 service, resulting in corrupted maps. The second map shows how to correctly
-        request a map in EPSG:4326 against a WMS 1.3 service.
+        request a map in EPSG:4326 against a WMS 1.3 service.</p>
         </div>
   </body>
 </html>
diff --git a/examples/wms.html b/examples/wms.html
index 1be54eb..1f0668f 100644
--- a/examples/wms.html
+++ b/examples/wms.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 5;
@@ -24,6 +28,7 @@
     <h1 id="title">WMS Example</h1>
 
     <div id="tags">
+        wms, layer, singletile
     </div>
     <p id="shortdesc">
         Shows the basic use of openlayers using a WMS layer
@@ -32,8 +37,9 @@
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-        This is an example of how to add an WMS layer to the OpenLayers window. The images are tiled in this instance if you wanted to not use a tiled WMS
-        please use this example and pass the option �singleTile� as true.
+        <p>This is an example of how to add an WMS layer to the OpenLayers
+        window. The images are tiled in this instance. If you wanted to not use
+        a tiled WMS, "singleTile" option to true like shown in this example.</p>
     </div>
   </body>
 </html>
diff --git a/examples/wmst.html b/examples/wmst.html
index cfd71f8..8d1e891 100644
--- a/examples/wmst.html
+++ b/examples/wmst.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: WMS + Time</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, ia_wms;
@@ -38,6 +42,7 @@
   <body onload="init()">
      <h1 id="title"> WMS Time Example</h1>
         <div id="tags">
+            wmst, wms-t
         </div>
         <p id="shortdesc">
             Shows the use of the layer WMS-T (time) layer</a>
@@ -45,8 +50,11 @@
     <input size="4" type='text' id='year' value="2005" onchange="update_date()"/>-<input size="2" type="text" id="month" value="08" onchange="update_date()"/>-<input size="2" type="text" id="day" value="29" onchange="update_date()" />T<input type="text" size="2" id="hour" value="13" onchange="update_date()" />:<input type="text" size="2" id="minute" value="00" onchange="update_date()" />:00
     <div id="map" class="smallmap"></div>
     <div id="docs">
-            WMS-T example: update the times, and the radar image will change. Uses Layer.mergeNewParams to update the date element with the strings from the input fields every time one of them is changed.
-            The inputs below describe a timestamp: The minute increments can only be updated in units of 5.
+        <p>WMS-T example: update the times, and the radar image will change.
+        Uses Layer.mergeNewParams to update the date element with the strings
+        from the input fields every time one of them is changed. The inputs
+        above describe a timestamp: The minute increments can only be updated
+        in units of 5.</p>
     </div>
   </body>
 </html>
diff --git a/examples/wmts-capabilities.html b/examples/wmts-capabilities.html
index b3a210b..21b3cae 100644
--- a/examples/wmts-capabilities.html
+++ b/examples/wmts-capabilities.html
@@ -1,9 +1,12 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers WMTS Capabilities Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/Firebug/firebug.js"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="wmts-capabilities.js"></script>
@@ -15,7 +18,9 @@
     </head>
     <body onload="init();">
         <h1 id="title">Web Map Tile Service (WMTS) Capabilities Parsing</h1>
-        
+        <div id="tags">
+            wmts, capabilities, getcapabilities
+        </div>         
         <p id="shortdesc">
             The WMTS Capabilities format allows for parsing of capabilities
             documents from OGC Web Map Tile Service (WMTS) version 1.0.0 
diff --git a/examples/wmts-getfeatureinfo.html b/examples/wmts-getfeatureinfo.html
index 2e50322..453eb5f 100644
--- a/examples/wmts-getfeatureinfo.html
+++ b/examples/wmts-getfeatureinfo.html
@@ -1,9 +1,12 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers WMTS GetFeatureInfo Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/Firebug/firebug.js"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="wmts-getfeatureinfo.js"></script>
@@ -43,7 +46,9 @@
     </head>
     <body onload="init();">
         <h1 id="title">WMTS GetFeatureInfo Control</h1>
-        
+        <div id="tags">
+            wmts, tile, cache, getfeatureinfo
+        </div>        
         <p id="shortdesc">
             The WMTSGetFeatureInfo control allows retrieval of information about
             features displayed in a WMTS layer.
diff --git a/examples/wmts.html b/examples/wmts.html
index fbdddc8..922df8c 100644
--- a/examples/wmts.html
+++ b/examples/wmts.html
@@ -1,9 +1,12 @@
 <!DOCTYPE html>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers WMTS Example</title>
         <link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/Firebug/firebug.js"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="wmts.js"></script>
@@ -15,7 +18,9 @@
     </head>
     <body onload="init();">
         <h1 id="title">Web Map Tile Service (WMTS) Layer</h1>
-        
+        <div id="tags">
+            wmts
+        </div>         
         <p id="shortdesc">
             The WMTS layer allows viewing of tiles from a server implementing
             the OGC Web Map Tile Service (WMTS) standard version 1.0.0.
diff --git a/examples/worldwind.html b/examples/worldwind.html
index 3f4bcea..3038c5b 100644
--- a/examples/worldwind.html
+++ b/examples/worldwind.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, ol_wms, ww, ww2;
@@ -30,6 +34,7 @@
         <h1 id="title">WorldWind layers Example</h1>
 
         <div id="tags">
+            worldwind, tile
         </div>
         <p id="shortdesc">
             Shows the use of the Tiled WorldWind layers.
@@ -38,8 +43,16 @@
         <div id="map" class="smallmap"></div>
 
         <div id="docs">
-            This is a demonstration of using Tiled WorldWind layers. WorldWind requires you to define a "LZTD" -- the 3rd param of the constructor -- and the number of zoom levels it supports. When a worldwind layer is not visible at a given tile level, and empty tile is placed there instead. Note that the maxResolution of the map times 512px, must be a multiple of a power of two different from the LZTD -- in this case, .28125 * 512 is 144, which is 36*4, and 2.25*64.
-            This example has a 'Bathy' layer, visible as you zoom out, and a 'landsat' layer, visible as you zoom in, both visible at zoom level 6.
+            <p>This is a demonstration of using Tiled WorldWind layers.
+            WorldWind requires you to define a "LZTD" -- the 3rd param of the
+            constructor -- and the number of zoom levels it supports. When a
+            worldwind layer is not visible at a given tile level, and empty
+            tile is placed there instead. Note that the maxResolution of the
+            map times 512px, must be a multiple of a power of two different
+            from the LZTD -- in this case, .28125 * 512 is 144, which is 36*4,
+            and 2.25*64. This example has a 'Bathy' layer, visible as you zoom
+            out, and a 'landsat' layer, visible as you zoom in, both visible at
+            zoom level 6.</p>
         </div>
       </body>
 </html>
diff --git a/examples/wrapDateLine.html b/examples/wrapDateLine.html
index f93e080..52a39a6 100644
--- a/examples/wrapDateLine.html
+++ b/examples/wrapDateLine.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Wrap Date Line</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map;
@@ -23,7 +27,7 @@
                 {layers: "bathymetry,land_fn,park,drain_fn,drainage," +
                          "prov_bound,fedlimit,rail,road,popplace",
                  transparent: "true", format: "image/png"},
-                {wrapDateLine: true, reproject: false});
+                {wrapDateLine: true});
 
             /* WW doesn't quite work yet */
             ww = new OpenLayers.Layer.WorldWind( "LANDSAT",
@@ -43,10 +47,9 @@
   <body onload="init()">
     <h1 id="title">Wrapping the Date Line</h1>
     <div id="tags">
-      Related to:
-        <a href="http://dev.openlayers.org/docs/OpenLayers/Layer/WMS.html">Layer.WMS</a>,
-        <a href="http://dev.openlayers.org/docs2/OpenLayers/Layer/MapServer.html">Layer.MapServer</a>,
-        <a href="http://dev.openlayers.org/docs2/OpenLayers/Layer.html#wrapDateLine">wrapDateLine</a>
+        WMS,
+        MapServer,
+        wrapDateLine
     </div>
 
     <p id="shortdesc">Shows how to work around dateline issues, by wrapping the dateline on a number of layer types.</p>
diff --git a/examples/xhtml.html b/examples/xhtml.html
index 4ced3bf..b4decfb 100644
--- a/examples/xhtml.html
+++ b/examples/xhtml.html
@@ -1,16 +1,20 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-        "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta name="apple-mobile-web-app-capable" content="yes"/>
 <title>XHTML Example</title>
-<link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+<link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
 <script src="../lib/OpenLayers.js" type="text/javascript"></script>
 </head>
 <body style="width:100%">
     <h1 id="title">XHTML Example</h1>
 
     <div id="tags">
+        xhtml
     </div>
     <p id="shortdesc">
         Shows openlayers running in a XHTML 1.0 Strict Doctype
diff --git a/examples/xml.html b/examples/xml.html
index fd1b441..696229b 100644
--- a/examples/xml.html
+++ b/examples/xml.html
@@ -1,10 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-        "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>XML Parsing Example</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <style type="text/css">
             #output {
                 font-family: monospace;
@@ -37,8 +39,11 @@
         var doc = null;
 
         function init() {
-            var url = "xml/features.xml";
-            OpenLayers.loadURL(url, null, null, loadSuccess, loadFailure);
+            OpenLayers.Request.GET({
+                url: "xml/features.xml",
+                success: loadSuccess,
+                failure: loadFailure
+            });
         }
 
         function loadSuccess(request) {
@@ -112,6 +117,7 @@
             <h1 id="title">XML Format Example</h1>
 
             <div id="tags">
+                xml
             </div>
 
             <p id="shortdesc">
@@ -131,7 +137,7 @@
                         <p>Status: <b>XML document <span id="loadStatus">loading..</span>.</b></p>
                         <p>After the XML document loads, see the result of a few of the methods
                         below.  Assume that you start with the following code:
-                        <br />
+                        <br>
                         <span class="code">
                             var format = new OpenLayers.Format.XML();
                         </span>
diff --git a/examples/xyz-esri.html b/examples/xyz-esri.html
index cee2014..7bcef7f 100644
--- a/examples/xyz-esri.html
+++ b/examples/xyz-esri.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Basic ESRI Map Cache Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var map, layer;
@@ -21,14 +25,17 @@
   <body onload="init()">
     <h1 id="title">Basic ESRI Map Cache Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        XYZ, layer, tile
+    </div>
 
     <div id="shortdesc">Show a Simple ESRI map using the layer from <a href="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_LandBase_WebMercator/MapServer">ESRI's server</a>. </div>
 
     <div id="map" class="smallmap"></div>
 
     <div id="docs">
-       Show the use of the XYZ layer to access a map cache provided in spherical mercator by ESRI.  
+       <p>Show the use of the XYZ layer to access a map cache provided in
+       spherical mercator by ESRI.</p>
     </div>
   </body>
 </html>
diff --git a/examples/xyz-offset.html b/examples/xyz-offset.html
index 8ba464e..b751fa5 100644
--- a/examples/xyz-offset.html
+++ b/examples/xyz-offset.html
@@ -1,15 +1,20 @@
 <!DOCTYPE HTML>
 <html>
     <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
         <title>OpenLayers XYZ with Offset</title>
-        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-        <link rel="stylesheet" href="style.css" type="text/css" />
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
         <script src="../lib/OpenLayers.js"></script>
         <script src="xyz-offset.js"></script>
     </head>
     <body onload="init()">
         <h1 id="title">XYZ Layer with Offset</h1>
-        
+        <div id="tags">
+            XYZ, layer, tile
+        </div>        
         <div id="shortdesc">Using a limited set of levels from an XYZ layer with zoomOffset.</div>
         
         <div id="map" class="smallmap"></div>
diff --git a/examples/yahoo.html b/examples/yahoo.html
index 3c52ba3..6a584c7 100644
--- a/examples/yahoo.html
+++ b/examples/yahoo.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers: Yahoo Layer</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers"></script>
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
@@ -28,6 +32,7 @@
     <h1 id="title">Yahoo Base Layer Example</h1>
 
         <div id="tags">
+            yahoo, layer
         </div>
 
         <p id="shortdesc">
@@ -37,9 +42,10 @@
         <div id="map" class="smallmap"></div>
 
         <div id="docs">
-            This is an example of how to add a yahoo layer to the OpenLayers window.  In order to enable a
-            yahoo layer. Also shown in this example is the LayerSwitcher() control for toggling between both the yahoo layer and
-            the open layer WMS.
+            <p>This is an example of how to add a yahoo layer to the OpenLayers
+            window.  In order to enable a yahoo layer, also shown in this
+            example is the LayerSwitcher() control for toggling between both
+            the yahoo layer and the OSGeo WMS.
         </div>
 
   </body>
diff --git a/examples/zoomLevels.html b/examples/zoomLevels.html
index 39ca3dc..d4eb1b1 100644
--- a/examples/zoomLevels.html
+++ b/examples/zoomLevels.html
@@ -1,7 +1,11 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
         var lon = 50;
@@ -45,6 +49,7 @@
     <h1 id="title">Zoom Level</h1>
 
     <div id="tags">
+        zoom, zoomlevel, resolution, scale, cleanup
     </div>
 
     <p id="shortdesc">
@@ -62,9 +67,9 @@
         </p>
         <p>
         Default units for Scale are in inches. Resolution is specified in map units
-        per pixel where the default map units are decimal degrees(dd).<br/>
+        per pixel where the default map units are decimal degrees(dd).<br>
         scale = resolution * OpenLayers.INCHES_PER_UNIT[units] *
-                    OpenLayers.DOTS_PER_INCH <br/>
+                    OpenLayers.DOTS_PER_INCH <br>
         You can either set the scale or the resolution, there is no need to set both.
         </p>
         <p>
diff --git a/examples/zoomify.html b/examples/zoomify.html
index d3fb305..3bec55b 100644
--- a/examples/zoomify.html
+++ b/examples/zoomify.html
@@ -1,8 +1,12 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
     <title>OpenLayers Zoomify Example</title>
-    <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
-    <link rel="stylesheet" href="style.css" type="text/css" />
+    <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="style.css" type="text/css">
     <script src="../lib/OpenLayers.js"></script>
     <script type="text/javascript">
 
@@ -42,7 +46,9 @@
   <body onload="init()">
       <h1 id="title">Zoomify Layer Example</h1>
 
-    <div id="tags"></div>
+    <div id="tags">
+        zoomify, layer
+    </div>
 
     <p id="shortdesc">
         Demo of a layer with Zoomify tiles.
@@ -52,14 +58,14 @@
 
     <div id="docs">
 	    <p>
-	    Demonstration of the Zoomify layer in OpenLayers.<br />
+	    Demonstration of the Zoomify layer in OpenLayers.<br>
 	 	You can have a look at <a href="http://almor.mzk.cz/moll/AA22/103.html">Zoomify viewer for this picture</a>, which is using the same <a href="http://almor.mzk.cz/moll/AA22/0103/">tiles</a>.
 	    </p>
 		<p>
-		For change to our own image you have to specify 'url' (zoomifyImagePath in Zoomify terminology) and 'size' ('width' and 'height' from ImageProperty.xml file).<br />
-		Custom tiles can be easily generated with original <a href="http://www.zoomify.com/">Zoomify software</a> like with freely available <a href="http://www.zoomify.com/express.htm">ZoomifyerEZ</a> or with Adobe PhotoShop CS3 (it has built in support for export into Zoomify tiles).<br />
-		There is also a <a href="http://sourceforge.net/projects/zoomifyimage/">ZoomifyImage SourceForge Project</a>, a tile cutter available under GPL license.<br />
-		Zoomify tiles can be also served dynamically on the server side from JPEG2000 masters using <a href="http://dltj.org/article/introducing-j2ktilerenderer/">J2KTileRender</a> with available integration for DSpace and soon for Fedora Digital Repository.<br/>
+		For change to our own image you have to specify 'url' (zoomifyImagePath in Zoomify terminology) and 'size' ('width' and 'height' from ImageProperty.xml file).<br>
+		Custom tiles can be easily generated with original <a href="http://www.zoomify.com/">Zoomify software</a> like with freely available <a href="http://www.zoomify.com/express.htm">ZoomifyerEZ</a> or with Adobe PhotoShop CS3 (it has built in support for export into Zoomify tiles).<br>
+		There is also a <a href="http://sourceforge.net/projects/zoomifyimage/">ZoomifyImage SourceForge Project</a>, a tile cutter available under GPL license.<br>
+		Zoomify tiles can be also served dynamically on the server side from JPEG2000 masters using <a href="http://dltj.org/article/introducing-j2ktilerenderer/">J2KTileRender</a> with available integration for DSpace and soon for Fedora Digital Repository.<br>
 		<a href="http://iipimage.sourceforge.net/">IIPImage server</a> can serve Zoomify tiles dynamically from TIFF files.
 		</p>
 		<p>
diff --git a/img/cloud-popup-relative.png b/img/cloud-popup-relative.png
index 1215a36..c9fd4c4 100755
Binary files a/img/cloud-popup-relative.png and b/img/cloud-popup-relative.png differ
diff --git a/img/drag-rectangle-off.png b/img/drag-rectangle-off.png
index fc6daf4..382a81d 100644
Binary files a/img/drag-rectangle-off.png and b/img/drag-rectangle-off.png differ
diff --git a/img/drag-rectangle-on.png b/img/drag-rectangle-on.png
index 7f783ce..2ed2d5b 100644
Binary files a/img/drag-rectangle-on.png and b/img/drag-rectangle-on.png differ
diff --git a/img/east-mini.png b/img/east-mini.png
index 0707567..ecedc5e 100644
Binary files a/img/east-mini.png and b/img/east-mini.png differ
diff --git a/img/layer-switcher-maximize.png b/img/layer-switcher-maximize.png
index 8d7bb16..f346086 100644
Binary files a/img/layer-switcher-maximize.png and b/img/layer-switcher-maximize.png differ
diff --git a/img/layer-switcher-minimize.png b/img/layer-switcher-minimize.png
index e80bf21..b4aab0b 100644
Binary files a/img/layer-switcher-minimize.png and b/img/layer-switcher-minimize.png differ
diff --git a/img/marker-blue.png b/img/marker-blue.png
index 83a90b4..f5b4efc 100644
Binary files a/img/marker-blue.png and b/img/marker-blue.png differ
diff --git a/img/marker-gold.png b/img/marker-gold.png
index 2ff9ec5..0b62f96 100644
Binary files a/img/marker-gold.png and b/img/marker-gold.png differ
diff --git a/img/marker-green.png b/img/marker-green.png
index 17168f1..c36b164 100644
Binary files a/img/marker-green.png and b/img/marker-green.png differ
diff --git a/img/marker.png b/img/marker.png
index ccd1913..ea3e59a 100644
Binary files a/img/marker.png and b/img/marker.png differ
diff --git a/img/measuring-stick-off.png b/img/measuring-stick-off.png
index 70c2dff..efbf63f 100644
Binary files a/img/measuring-stick-off.png and b/img/measuring-stick-off.png differ
diff --git a/img/measuring-stick-on.png b/img/measuring-stick-on.png
index cdb8f34..2d41c84 100644
Binary files a/img/measuring-stick-on.png and b/img/measuring-stick-on.png differ
diff --git a/img/north-mini.png b/img/north-mini.png
index a8a0b40..dfd7211 100644
Binary files a/img/north-mini.png and b/img/north-mini.png differ
diff --git a/img/panning-hand-off.png b/img/panning-hand-off.png
index 4c912ac..d1c593e 100644
Binary files a/img/panning-hand-off.png and b/img/panning-hand-off.png differ
diff --git a/img/panning-hand-on.png b/img/panning-hand-on.png
index 6094c64..9b7e064 100644
Binary files a/img/panning-hand-on.png and b/img/panning-hand-on.png differ
diff --git a/img/slider.png b/img/slider.png
index 23afd57..4335364 100644
Binary files a/img/slider.png and b/img/slider.png differ
diff --git a/img/south-mini.png b/img/south-mini.png
index 6c4ac8a..2970875 100644
Binary files a/img/south-mini.png and b/img/south-mini.png differ
diff --git a/img/west-mini.png b/img/west-mini.png
index db5f420..363cd3d 100644
Binary files a/img/west-mini.png and b/img/west-mini.png differ
diff --git a/img/zoom-minus-mini.png b/img/zoom-minus-mini.png
index f9b63ab..8f0d77f 100644
Binary files a/img/zoom-minus-mini.png and b/img/zoom-minus-mini.png differ
diff --git a/img/zoom-plus-mini.png b/img/zoom-plus-mini.png
index eecf2eb..a73ab4e 100644
Binary files a/img/zoom-plus-mini.png and b/img/zoom-plus-mini.png differ
diff --git a/img/zoom-world-mini.png b/img/zoom-world-mini.png
index 2159dde..aebf22d 100644
Binary files a/img/zoom-world-mini.png and b/img/zoom-world-mini.png differ
diff --git a/img/zoombar.png b/img/zoombar.png
index 959f01a..47110ab 100644
Binary files a/img/zoombar.png and b/img/zoombar.png differ
diff --git a/lib/Firebug/firebugx.js b/lib/Firebug/firebugx.js
index 4c8b30f..f0a34df 100644
--- a/lib/Firebug/firebugx.js
+++ b/lib/Firebug/firebugx.js
@@ -1,9 +1,10 @@
+(function() {
+    if (!window.console || !console.firebug) {
+        var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
+        "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
 
-if (!window.console || !console.firebug) {
-    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
-    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
-
-    window.console = {};
-    for (var i = 0; i < names.length; ++i)
-        window.console[names[i]] = function() {}
-}
+        window.console = {};
+        for (var i = 0; i < names.length; ++i)
+            window.console[names[i]] = function() {}
+    }
+})();
diff --git a/lib/OpenLayers.js b/lib/OpenLayers.js
index 8b710a7..ea25d93 100644
--- a/lib/OpenLayers.js
+++ b/lib/OpenLayers.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -7,63 +7,81 @@
  * @requires OpenLayers/BaseTypes.js
  * @requires OpenLayers/Lang/en.js
  * @requires OpenLayers/Console.js
- */ 
+ */
+ 
+/*
+ * TODO: In 3.0, we will stop supporting build profiles that include
+ * OpenLayers.js. This means we will not need the singleFile and scriptFile
+ * variables, because we don't have to handle the singleFile case any more.
+ */
 
 (function() {
     /**
      * Before creating the OpenLayers namespace, check to see if
      * OpenLayers.singleFile is true.  This occurs if the
      * OpenLayers/SingleFile.js script is included before this one - as is the
-     * case with single file builds.
+     * case with old single file build profiles that included both
+     * OpenLayers.js and OpenLayers/SingleFile.js.
      */
     var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);
     
     /**
-     * Cache for the script location returned from
-     * OpenLayers._getScriptLocation
+     * Relative path of this script.
      */
-    var scriptLocation;
-    
+    var scriptName = (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js";
+
+    /*
+     * If window.OpenLayers isn't set when this script (OpenLayers.js) is
+     * evaluated (and if singleFile is false) then this script will load
+     * *all* OpenLayers scripts. If window.OpenLayers is set to an array
+     * then this script will attempt to load scripts for each string of
+     * the array, using the string as the src of the script.
+     *
+     * Example:
+     * (code)
+     *     <script type="text/javascript">
+     *         window.OpenLayers = [
+     *             "OpenLayers/Util.js",
+     *             "OpenLayers/BaseTypes.js"
+     *         ];
+     *     </script>
+     *     <script type="text/javascript" src="../lib/OpenLayers.js"></script>
+     * (end)
+     * In this example OpenLayers.js will load Util.js and BaseTypes.js only.
+     */
+    var jsFiles = window.OpenLayers;
+
     /**
      * Namespace: OpenLayers
      * The OpenLayers object provides a namespace for all things OpenLayers
      */
     window.OpenLayers = {
-        
-        /**
-         * Property: _scriptName
-         * {String} Relative path of this script.
-         */
-        _scriptName: (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js",
-
         /**
-         * Function: _getScriptLocation
-         * Return the path to this script.
+         * Method: _getScriptLocation
+         * Return the path to this script. This is also implemented in
+         * OpenLayers/SingleFile.js
          *
          * Returns:
          * {String} Path to this script
          */
-        _getScriptLocation: function () {
-            if (scriptLocation != undefined) {
-                return scriptLocation;
-            }
-            scriptLocation = "";            
-            var isOL = new RegExp("(^|(.*?\\/))(" + OpenLayers._scriptName + ")(\\?|$)");
-         
-            var scripts = document.getElementsByTagName('script');
-            for (var i=0, len=scripts.length; i<len; i++) {
-                var src = scripts[i].getAttribute('src');
-                if (src) {
-                    var match = src.match(isOL);
-                    if(match) {
-                        scriptLocation = match[1];
+        _getScriptLocation: (function() {
+            var r = new RegExp("(^|(.*?\\/))(" + scriptName + ")(\\?|$)"),
+                s = document.getElementsByTagName('script'),
+                src, m, l = "";
+            for(var i=0, len=s.length; i<len; i++) {
+                src = s[i].getAttribute('src');
+                if(src) {
+                    var m = src.match(r);
+                    if(m) {
+                        l = m[1];
                         break;
                     }
                 }
             }
-            return scriptLocation;
-        }
+            return (function() { return l; });
+        })()
     };
+
     /**
      * OpenLayers.singleFile is a flag indicating this file is being included
      * in a Single File Library build of the OpenLayers Library.
@@ -73,271 +91,289 @@
      * 
      * When we *are* part of a SFL build we do not dynamically include the 
      * OpenLayers library code as it will be appended at the end of this file.
-      */
+     */
     if(!singleFile) {
-        var jsfiles = new Array(
-            "OpenLayers/Util.js",
-            "OpenLayers/BaseTypes.js",
-            "OpenLayers/BaseTypes/Class.js",
-            "OpenLayers/BaseTypes/Bounds.js",
-            "OpenLayers/BaseTypes/Element.js",
-            "OpenLayers/BaseTypes/LonLat.js",
-            "OpenLayers/BaseTypes/Pixel.js",
-            "OpenLayers/BaseTypes/Size.js",
-            "OpenLayers/Console.js",
-            "OpenLayers/Tween.js",
-            "Rico/Corner.js",
-            "Rico/Color.js",
-            "OpenLayers/Ajax.js",
-            "OpenLayers/Events.js",
-            "OpenLayers/Request.js",
-            "OpenLayers/Request/XMLHttpRequest.js",
-            "OpenLayers/Projection.js",
-            "OpenLayers/Map.js",
-            "OpenLayers/Layer.js",
-            "OpenLayers/Icon.js",
-            "OpenLayers/Marker.js",
-            "OpenLayers/Marker/Box.js",
-            "OpenLayers/Popup.js",
-            "OpenLayers/Tile.js",
-            "OpenLayers/Tile/Image.js",
-            "OpenLayers/Tile/Image/IFrame.js",
-            "OpenLayers/Tile/WFS.js",
-            "OpenLayers/Layer/Image.js",
-            "OpenLayers/Layer/SphericalMercator.js",
-            "OpenLayers/Layer/EventPane.js",
-            "OpenLayers/Layer/FixedZoomLevels.js",
-            "OpenLayers/Layer/Google.js",
-            "OpenLayers/Layer/Google/v3.js",
-            "OpenLayers/Layer/VirtualEarth.js",
-            "OpenLayers/Layer/Yahoo.js",
-            "OpenLayers/Layer/HTTPRequest.js",
-            "OpenLayers/Layer/Grid.js",
-            "OpenLayers/Layer/MapGuide.js",
-            "OpenLayers/Layer/MapServer.js",
-            "OpenLayers/Layer/MapServer/Untiled.js",
-            "OpenLayers/Layer/KaMap.js",
-            "OpenLayers/Layer/KaMapCache.js",
-            "OpenLayers/Layer/MultiMap.js",
-            "OpenLayers/Layer/Markers.js",
-            "OpenLayers/Layer/Text.js",
-            "OpenLayers/Layer/WorldWind.js",
-            "OpenLayers/Layer/ArcGIS93Rest.js",
-            "OpenLayers/Layer/WMS.js",
-            "OpenLayers/Layer/WMS/Untiled.js",
-            "OpenLayers/Layer/WMS/Post.js",
-            "OpenLayers/Layer/WMTS.js",
-            "OpenLayers/Layer/ArcIMS.js",
-            "OpenLayers/Layer/GeoRSS.js",
-            "OpenLayers/Layer/Boxes.js",
-            "OpenLayers/Layer/XYZ.js",
-            "OpenLayers/Layer/TMS.js",
-            "OpenLayers/Layer/TileCache.js",
-            "OpenLayers/Layer/Zoomify.js",
-            "OpenLayers/Popup/Anchored.js",
-            "OpenLayers/Popup/AnchoredBubble.js",
-            "OpenLayers/Popup/Framed.js",
-            "OpenLayers/Popup/FramedCloud.js",
-            "OpenLayers/Feature.js",
-            "OpenLayers/Feature/Vector.js",
-            "OpenLayers/Feature/WFS.js",
-            "OpenLayers/Handler.js",
-            "OpenLayers/Handler/Click.js",
-            "OpenLayers/Handler/Hover.js",
-            "OpenLayers/Handler/Point.js",
-            "OpenLayers/Handler/Path.js",
-            "OpenLayers/Handler/Polygon.js",
-            "OpenLayers/Handler/Feature.js",
-            "OpenLayers/Handler/Drag.js",
-            "OpenLayers/Handler/RegularPolygon.js",
-            "OpenLayers/Handler/Box.js",
-            "OpenLayers/Handler/MouseWheel.js",
-            "OpenLayers/Handler/Keyboard.js",
-            "OpenLayers/Control.js",
-            "OpenLayers/Control/Attribution.js",
-            "OpenLayers/Control/Button.js",
-            "OpenLayers/Control/ZoomBox.js",
-            "OpenLayers/Control/ZoomToMaxExtent.js",
-            "OpenLayers/Control/DragPan.js",
-            "OpenLayers/Control/Navigation.js",
-            "OpenLayers/Control/MouseDefaults.js",
-            "OpenLayers/Control/MousePosition.js",
-            "OpenLayers/Control/OverviewMap.js",
-            "OpenLayers/Control/KeyboardDefaults.js",
-            "OpenLayers/Control/PanZoom.js",
-            "OpenLayers/Control/PanZoomBar.js",
-            "OpenLayers/Control/ArgParser.js",
-            "OpenLayers/Control/Permalink.js",
-            "OpenLayers/Control/Scale.js",
-            "OpenLayers/Control/ScaleLine.js",
-            "OpenLayers/Control/Snapping.js",
-            "OpenLayers/Control/Split.js",
-            "OpenLayers/Control/LayerSwitcher.js",
-            "OpenLayers/Control/DrawFeature.js",
-            "OpenLayers/Control/DragFeature.js",
-            "OpenLayers/Control/ModifyFeature.js",
-            "OpenLayers/Control/Panel.js",
-            "OpenLayers/Control/SelectFeature.js",
-            "OpenLayers/Control/NavigationHistory.js",
-            "OpenLayers/Control/Measure.js",
-            "OpenLayers/Control/WMSGetFeatureInfo.js",
-            "OpenLayers/Control/WMTSGetFeatureInfo.js",
-            "OpenLayers/Control/Graticule.js",
-            "OpenLayers/Control/TransformFeature.js",
-            "OpenLayers/Control/SLDSelect.js",
-            "OpenLayers/Geometry.js",
-            "OpenLayers/Geometry/Rectangle.js",
-            "OpenLayers/Geometry/Collection.js",
-            "OpenLayers/Geometry/Point.js",
-            "OpenLayers/Geometry/MultiPoint.js",
-            "OpenLayers/Geometry/Curve.js",
-            "OpenLayers/Geometry/LineString.js",
-            "OpenLayers/Geometry/LinearRing.js",        
-            "OpenLayers/Geometry/Polygon.js",
-            "OpenLayers/Geometry/MultiLineString.js",
-            "OpenLayers/Geometry/MultiPolygon.js",
-            "OpenLayers/Geometry/Surface.js",
-            "OpenLayers/Renderer.js",
-            "OpenLayers/Renderer/Elements.js",
-            "OpenLayers/Renderer/SVG.js",
-            "OpenLayers/Renderer/Canvas.js",
-            "OpenLayers/Renderer/VML.js",
-            "OpenLayers/Layer/Vector.js",
-            "OpenLayers/Layer/Vector/RootContainer.js",
-            "OpenLayers/Strategy.js",
-            "OpenLayers/Strategy/Filter.js",
-            "OpenLayers/Strategy/Fixed.js",
-            "OpenLayers/Strategy/Cluster.js",
-            "OpenLayers/Strategy/Paging.js",
-            "OpenLayers/Strategy/BBOX.js",
-            "OpenLayers/Strategy/Save.js",
-            "OpenLayers/Strategy/Refresh.js",
-            "OpenLayers/Filter.js",
-            "OpenLayers/Filter/FeatureId.js",
-            "OpenLayers/Filter/Logical.js",
-            "OpenLayers/Filter/Comparison.js",
-            "OpenLayers/Filter/Spatial.js",
-            "OpenLayers/Protocol.js",
-            "OpenLayers/Protocol/HTTP.js",
-            "OpenLayers/Protocol/SQL.js",
-            "OpenLayers/Protocol/SQL/Gears.js",
-            "OpenLayers/Protocol/WFS.js",
-            "OpenLayers/Protocol/WFS/v1.js",
-            "OpenLayers/Protocol/WFS/v1_0_0.js",
-            "OpenLayers/Protocol/WFS/v1_1_0.js",
-            "OpenLayers/Protocol/SOS.js",
-            "OpenLayers/Protocol/SOS/v1_0_0.js",
-            "OpenLayers/Layer/PointTrack.js",
-            "OpenLayers/Layer/GML.js",
-            "OpenLayers/Style.js",
-            "OpenLayers/Style2.js",
-            "OpenLayers/StyleMap.js",
-            "OpenLayers/Rule.js",
-            "OpenLayers/Format.js",
-            "OpenLayers/Format/XML.js",
-            "OpenLayers/Format/Context.js",
-            "OpenLayers/Format/ArcXML.js",
-            "OpenLayers/Format/ArcXML/Features.js",
-            "OpenLayers/Format/GML.js",
-            "OpenLayers/Format/GML/Base.js",
-            "OpenLayers/Format/GML/v2.js",
-            "OpenLayers/Format/GML/v3.js",
-            "OpenLayers/Format/Atom.js",
-            "OpenLayers/Format/KML.js",
-            "OpenLayers/Format/GeoRSS.js",
-            "OpenLayers/Format/WFS.js",
-            "OpenLayers/Format/WFSCapabilities.js",
-            "OpenLayers/Format/WFSCapabilities/v1.js",
-            "OpenLayers/Format/WFSCapabilities/v1_0_0.js",
-            "OpenLayers/Format/WFSCapabilities/v1_1_0.js",
-            "OpenLayers/Format/WFSDescribeFeatureType.js",
-            "OpenLayers/Format/WMSDescribeLayer.js",
-            "OpenLayers/Format/WMSDescribeLayer/v1_1.js",
-            "OpenLayers/Format/WKT.js",
-            "OpenLayers/Format/OSM.js",
-            "OpenLayers/Format/GPX.js",
-            "OpenLayers/Format/Filter.js",
-            "OpenLayers/Format/Filter/v1.js",
-            "OpenLayers/Format/Filter/v1_0_0.js",
-            "OpenLayers/Format/Filter/v1_1_0.js",
-            "OpenLayers/Format/SLD.js",
-            "OpenLayers/Format/SLD/v1.js",
-            "OpenLayers/Format/SLD/v1_0_0.js",
-            "OpenLayers/Format/OWSCommon/v1.js",
-            "OpenLayers/Format/OWSCommon/v1_0_0.js",
-            "OpenLayers/Format/OWSCommon/v1_1_0.js",
-            "OpenLayers/Format/CSWGetDomain.js",
-            "OpenLayers/Format/CSWGetDomain/v2_0_2.js",
-            "OpenLayers/Format/CSWGetRecords.js",
-            "OpenLayers/Format/CSWGetRecords/v2_0_2.js",
-            "OpenLayers/Format/WFST.js",
-            "OpenLayers/Format/WFST/v1.js",
-            "OpenLayers/Format/WFST/v1_0_0.js",
-            "OpenLayers/Format/WFST/v1_1_0.js",
-            "OpenLayers/Format/Text.js",
-            "OpenLayers/Format/JSON.js",
-            "OpenLayers/Format/GeoJSON.js",
-            "OpenLayers/Format/WMC.js",
-            "OpenLayers/Format/WMC/v1.js",
-            "OpenLayers/Format/WMC/v1_0_0.js",
-            "OpenLayers/Format/WMC/v1_1_0.js",
-            "OpenLayers/Format/WMSCapabilities.js",
-            "OpenLayers/Format/WMSCapabilities/v1.js",
-            "OpenLayers/Format/WMSCapabilities/v1_1.js",
-            "OpenLayers/Format/WMSCapabilities/v1_1_0.js",
-            "OpenLayers/Format/WMSCapabilities/v1_1_1.js",
-            "OpenLayers/Format/WMSCapabilities/v1_3.js",
-            "OpenLayers/Format/WMSCapabilities/v1_3_0.js",
-            "OpenLayers/Format/WMSGetFeatureInfo.js",
-            "OpenLayers/Format/SOSCapabilities.js",
-            "OpenLayers/Format/SOSCapabilities/v1_0_0.js",
-            "OpenLayers/Format/SOSGetObservation.js",
-            "OpenLayers/Format/SOSGetFeatureOfInterest.js",
-            "OpenLayers/Format/OWSContext.js",
-            "OpenLayers/Format/OWSContext/v0_3_1.js",
-            "OpenLayers/Format/WMTSCapabilities.js",
-            "OpenLayers/Format/WMTSCapabilities/v1_0_0.js",
-            "OpenLayers/Layer/WFS.js",
-            "OpenLayers/Control/GetFeature.js",
-            "OpenLayers/Control/MouseToolbar.js",
-            "OpenLayers/Control/NavToolbar.js",
-            "OpenLayers/Control/PanPanel.js",
-            "OpenLayers/Control/Pan.js",
-            "OpenLayers/Control/ZoomIn.js",
-            "OpenLayers/Control/ZoomOut.js",
-            "OpenLayers/Control/ZoomPanel.js",
-            "OpenLayers/Control/EditingToolbar.js",
-            "OpenLayers/Symbolizer.js",
-            "OpenLayers/Symbolizer/Point.js",
-            "OpenLayers/Symbolizer/Line.js",
-            "OpenLayers/Symbolizer/Polygon.js",
-            "OpenLayers/Symbolizer/Text.js",
-            "OpenLayers/Symbolizer/Raster.js",
-            "OpenLayers/Lang.js",
-            "OpenLayers/Lang/en.js"
-        ); // etc.
-
-        var agent = navigator.userAgent;
-        var docWrite = (agent.match("MSIE") || agent.match("Safari"));
-        if(docWrite) {
-            var allScriptTags = new Array(jsfiles.length);
+        if (!jsFiles) {
+            jsFiles = [
+                "OpenLayers/BaseTypes/Class.js",
+                "OpenLayers/Util.js",
+                "OpenLayers/BaseTypes.js",
+                "OpenLayers/BaseTypes/Bounds.js",
+                "OpenLayers/BaseTypes/Date.js",
+                "OpenLayers/BaseTypes/Element.js",
+                "OpenLayers/BaseTypes/LonLat.js",
+                "OpenLayers/BaseTypes/Pixel.js",
+                "OpenLayers/BaseTypes/Size.js",
+                "OpenLayers/Console.js",
+                "OpenLayers/Tween.js",
+                "OpenLayers/Kinetic.js",
+                "Rico/Corner.js",
+                "Rico/Color.js",
+                "OpenLayers/Ajax.js",
+                "OpenLayers/Events.js",
+                "OpenLayers/Request.js",
+                "OpenLayers/Request/XMLHttpRequest.js",
+                "OpenLayers/Projection.js",
+                "OpenLayers/Map.js",
+                "OpenLayers/Layer.js",
+                "OpenLayers/Icon.js",
+                "OpenLayers/Marker.js",
+                "OpenLayers/Marker/Box.js",
+                "OpenLayers/Popup.js",
+                "OpenLayers/Tile.js",
+                "OpenLayers/Tile/Image.js",
+                "OpenLayers/Tile/Image/IFrame.js",
+                "OpenLayers/Tile/WFS.js",
+                "OpenLayers/Layer/Image.js",
+                "OpenLayers/Layer/SphericalMercator.js",
+                "OpenLayers/Layer/EventPane.js",
+                "OpenLayers/Layer/FixedZoomLevels.js",
+                "OpenLayers/Layer/Google.js",
+                "OpenLayers/Layer/Google/v3.js",
+                "OpenLayers/Layer/VirtualEarth.js",
+                "OpenLayers/Layer/Yahoo.js",
+                "OpenLayers/Layer/HTTPRequest.js",
+                "OpenLayers/Layer/Grid.js",
+                "OpenLayers/Layer/MapGuide.js",
+                "OpenLayers/Layer/MapServer.js",
+                "OpenLayers/Layer/MapServer/Untiled.js",
+                "OpenLayers/Layer/KaMap.js",
+                "OpenLayers/Layer/KaMapCache.js",
+                "OpenLayers/Layer/MultiMap.js",
+                "OpenLayers/Layer/Markers.js",
+                "OpenLayers/Layer/Text.js",
+                "OpenLayers/Layer/WorldWind.js",
+                "OpenLayers/Layer/ArcGIS93Rest.js",
+                "OpenLayers/Layer/WMS.js",
+                "OpenLayers/Layer/WMS/Untiled.js",
+                "OpenLayers/Layer/WMS/Post.js",
+                "OpenLayers/Layer/WMTS.js",
+                "OpenLayers/Layer/ArcIMS.js",
+                "OpenLayers/Layer/GeoRSS.js",
+                "OpenLayers/Layer/Boxes.js",
+                "OpenLayers/Layer/XYZ.js",
+                "OpenLayers/Layer/Bing.js",
+                "OpenLayers/Layer/TMS.js",
+                "OpenLayers/Layer/TileCache.js",
+                "OpenLayers/Layer/Zoomify.js",
+                "OpenLayers/Layer/ArcGISCache.js",
+                "OpenLayers/Popup/Anchored.js",
+                "OpenLayers/Popup/AnchoredBubble.js",
+                "OpenLayers/Popup/Framed.js",
+                "OpenLayers/Popup/FramedCloud.js",
+                "OpenLayers/Feature.js",
+                "OpenLayers/Feature/Vector.js",
+                "OpenLayers/Feature/WFS.js",
+                "OpenLayers/Handler.js",
+                "OpenLayers/Handler/Click.js",
+                "OpenLayers/Handler/Hover.js",
+                "OpenLayers/Handler/Point.js",
+                "OpenLayers/Handler/Path.js",
+                "OpenLayers/Handler/Polygon.js",
+                "OpenLayers/Handler/Feature.js",
+                "OpenLayers/Handler/Drag.js",
+                "OpenLayers/Handler/Pinch.js",
+                "OpenLayers/Handler/RegularPolygon.js",
+                "OpenLayers/Handler/Box.js",
+                "OpenLayers/Handler/MouseWheel.js",
+                "OpenLayers/Handler/Keyboard.js",
+                "OpenLayers/Control.js",
+                "OpenLayers/Control/Attribution.js",
+                "OpenLayers/Control/Button.js",
+                "OpenLayers/Control/ZoomBox.js",
+                "OpenLayers/Control/ZoomToMaxExtent.js",
+                "OpenLayers/Control/DragPan.js",
+                "OpenLayers/Control/Navigation.js",
+                "OpenLayers/Control/PinchZoom.js",
+                "OpenLayers/Control/TouchNavigation.js",
+                "OpenLayers/Control/MouseDefaults.js",
+                "OpenLayers/Control/MousePosition.js",
+                "OpenLayers/Control/OverviewMap.js",
+                "OpenLayers/Control/KeyboardDefaults.js",
+                "OpenLayers/Control/PanZoom.js",
+                "OpenLayers/Control/PanZoomBar.js",
+                "OpenLayers/Control/ArgParser.js",
+                "OpenLayers/Control/Permalink.js",
+                "OpenLayers/Control/Scale.js",
+                "OpenLayers/Control/ScaleLine.js",
+                "OpenLayers/Control/Snapping.js",
+                "OpenLayers/Control/Split.js",
+                "OpenLayers/Control/LayerSwitcher.js",
+                "OpenLayers/Control/DrawFeature.js",
+                "OpenLayers/Control/DragFeature.js",
+                "OpenLayers/Control/ModifyFeature.js",
+                "OpenLayers/Control/Panel.js",
+                "OpenLayers/Control/SelectFeature.js",
+                "OpenLayers/Control/NavigationHistory.js",
+                "OpenLayers/Control/Measure.js",
+                "OpenLayers/Control/WMSGetFeatureInfo.js",
+                "OpenLayers/Control/WMTSGetFeatureInfo.js",
+                "OpenLayers/Control/Graticule.js",
+                "OpenLayers/Control/TransformFeature.js",
+                "OpenLayers/Control/SLDSelect.js",
+                "OpenLayers/Geometry.js",
+                "OpenLayers/Geometry/Rectangle.js",
+                "OpenLayers/Geometry/Collection.js",
+                "OpenLayers/Geometry/Point.js",
+                "OpenLayers/Geometry/MultiPoint.js",
+                "OpenLayers/Geometry/Curve.js",
+                "OpenLayers/Geometry/LineString.js",
+                "OpenLayers/Geometry/LinearRing.js",
+                "OpenLayers/Geometry/Polygon.js",
+                "OpenLayers/Geometry/MultiLineString.js",
+                "OpenLayers/Geometry/MultiPolygon.js",
+                "OpenLayers/Geometry/Surface.js",
+                "OpenLayers/Renderer.js",
+                "OpenLayers/Renderer/Elements.js",
+                "OpenLayers/Renderer/NG.js",
+                "OpenLayers/Renderer/SVG.js",
+                "OpenLayers/Renderer/SVG2.js",
+                "OpenLayers/Renderer/Canvas.js",
+                "OpenLayers/Renderer/VML.js",
+                "OpenLayers/Layer/Vector.js",
+                "OpenLayers/Layer/PointGrid.js",
+                "OpenLayers/Layer/Vector/RootContainer.js",
+                "OpenLayers/Strategy.js",
+                "OpenLayers/Strategy/Filter.js",
+                "OpenLayers/Strategy/Fixed.js",
+                "OpenLayers/Strategy/Cluster.js",
+                "OpenLayers/Strategy/Paging.js",
+                "OpenLayers/Strategy/BBOX.js",
+                "OpenLayers/Strategy/Save.js",
+                "OpenLayers/Strategy/Refresh.js",
+                "OpenLayers/Filter.js",
+                "OpenLayers/Filter/FeatureId.js",
+                "OpenLayers/Filter/Logical.js",
+                "OpenLayers/Filter/Comparison.js",
+                "OpenLayers/Filter/Spatial.js",
+                "OpenLayers/Filter/Function.js",                
+                "OpenLayers/Protocol.js",
+                "OpenLayers/Protocol/HTTP.js",
+                "OpenLayers/Protocol/SQL.js",
+                "OpenLayers/Protocol/SQL/Gears.js",
+                "OpenLayers/Protocol/WFS.js",
+                "OpenLayers/Protocol/WFS/v1.js",
+                "OpenLayers/Protocol/WFS/v1_0_0.js",
+                "OpenLayers/Protocol/WFS/v1_1_0.js",
+                "OpenLayers/Protocol/Script.js",
+                "OpenLayers/Protocol/SOS.js",
+                "OpenLayers/Protocol/SOS/v1_0_0.js",
+                "OpenLayers/Layer/PointTrack.js",
+                "OpenLayers/Layer/GML.js",
+                "OpenLayers/Style.js",
+                "OpenLayers/Style2.js",
+                "OpenLayers/StyleMap.js",
+                "OpenLayers/Rule.js",
+                "OpenLayers/Format.js",
+                "OpenLayers/Format/QueryStringFilter.js",
+                "OpenLayers/Format/XML.js",
+                "OpenLayers/Format/XML/VersionedOGC.js",
+                "OpenLayers/Format/Context.js",
+                "OpenLayers/Format/ArcXML.js",
+                "OpenLayers/Format/ArcXML/Features.js",
+                "OpenLayers/Format/GML.js",
+                "OpenLayers/Format/GML/Base.js",
+                "OpenLayers/Format/GML/v2.js",
+                "OpenLayers/Format/GML/v3.js",
+                "OpenLayers/Format/Atom.js",
+                "OpenLayers/Format/KML.js",
+                "OpenLayers/Format/GeoRSS.js",
+                "OpenLayers/Format/WFS.js",
+                "OpenLayers/Format/WFSCapabilities.js",
+                "OpenLayers/Format/WFSCapabilities/v1.js",
+                "OpenLayers/Format/WFSCapabilities/v1_0_0.js",
+                "OpenLayers/Format/WFSCapabilities/v1_1_0.js",
+                "OpenLayers/Format/WFSDescribeFeatureType.js",
+                "OpenLayers/Format/WMSDescribeLayer.js",
+                "OpenLayers/Format/WMSDescribeLayer/v1_1.js",
+                "OpenLayers/Format/WKT.js",
+                "OpenLayers/Format/CQL.js",
+                "OpenLayers/Format/OSM.js",
+                "OpenLayers/Format/GPX.js",
+                "OpenLayers/Format/Filter.js",
+                "OpenLayers/Format/Filter/v1.js",
+                "OpenLayers/Format/Filter/v1_0_0.js",
+                "OpenLayers/Format/Filter/v1_1_0.js",
+                "OpenLayers/Format/SLD.js",
+                "OpenLayers/Format/SLD/v1.js",
+                "OpenLayers/Format/SLD/v1_0_0.js",
+                "OpenLayers/Format/OWSCommon.js",
+                "OpenLayers/Format/OWSCommon/v1.js",
+                "OpenLayers/Format/OWSCommon/v1_0_0.js",
+                "OpenLayers/Format/OWSCommon/v1_1_0.js",
+                "OpenLayers/Format/CSWGetDomain.js",
+                "OpenLayers/Format/CSWGetDomain/v2_0_2.js",
+                "OpenLayers/Format/CSWGetRecords.js",
+                "OpenLayers/Format/CSWGetRecords/v2_0_2.js",
+                "OpenLayers/Format/WFST.js",
+                "OpenLayers/Format/WFST/v1.js",
+                "OpenLayers/Format/WFST/v1_0_0.js",
+                "OpenLayers/Format/WFST/v1_1_0.js",
+                "OpenLayers/Format/Text.js",
+                "OpenLayers/Format/JSON.js",
+                "OpenLayers/Format/GeoJSON.js",
+                "OpenLayers/Format/WMC.js",
+                "OpenLayers/Format/WMC/v1.js",
+                "OpenLayers/Format/WMC/v1_0_0.js",
+                "OpenLayers/Format/WMC/v1_1_0.js",
+                "OpenLayers/Format/WCSGetCoverage.js",
+                "OpenLayers/Format/WMSCapabilities.js",
+                "OpenLayers/Format/WMSCapabilities/v1.js",
+                "OpenLayers/Format/WMSCapabilities/v1_1.js",
+                "OpenLayers/Format/WMSCapabilities/v1_1_0.js",
+                "OpenLayers/Format/WMSCapabilities/v1_1_1.js",
+                "OpenLayers/Format/WMSCapabilities/v1_3.js",
+                "OpenLayers/Format/WMSCapabilities/v1_3_0.js",
+                "OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js",
+                "OpenLayers/Format/WMSGetFeatureInfo.js",
+                "OpenLayers/Format/SOSCapabilities.js",
+                "OpenLayers/Format/SOSCapabilities/v1_0_0.js",
+                "OpenLayers/Format/SOSGetFeatureOfInterest.js",
+                "OpenLayers/Format/SOSGetObservation.js",
+                "OpenLayers/Format/OWSContext.js",
+                "OpenLayers/Format/OWSContext/v0_3_1.js",
+                "OpenLayers/Format/WMTSCapabilities.js",
+                "OpenLayers/Format/WMTSCapabilities/v1_0_0.js",
+                "OpenLayers/Format/WPSCapabilities.js",
+                "OpenLayers/Format/WPSCapabilities/v1_0_0.js",
+                "OpenLayers/Format/WPSDescribeProcess.js",
+                "OpenLayers/Format/WPSExecute.js",
+                "OpenLayers/Format/XLS.js",
+                "OpenLayers/Format/XLS/v1.js",
+                "OpenLayers/Format/XLS/v1_1_0.js",
+                "OpenLayers/Format/OGCExceptionReport.js",
+                "OpenLayers/Layer/WFS.js",
+                "OpenLayers/Control/GetFeature.js",
+                "OpenLayers/Control/MouseToolbar.js",
+                "OpenLayers/Control/NavToolbar.js",
+                "OpenLayers/Control/PanPanel.js",
+                "OpenLayers/Control/Pan.js",
+                "OpenLayers/Control/ZoomIn.js",
+                "OpenLayers/Control/ZoomOut.js",
+                "OpenLayers/Control/ZoomPanel.js",
+                "OpenLayers/Control/EditingToolbar.js",
+                "OpenLayers/Control/Geolocate.js",
+                "OpenLayers/Symbolizer.js",
+                "OpenLayers/Symbolizer/Point.js",
+                "OpenLayers/Symbolizer/Line.js",
+                "OpenLayers/Symbolizer/Polygon.js",
+                "OpenLayers/Symbolizer/Text.js",
+                "OpenLayers/Symbolizer/Raster.js",
+                "OpenLayers/Lang.js",
+                "OpenLayers/Lang/en.js"
+            ]; // etc.
         }
-        var host = OpenLayers._getScriptLocation() + "lib/";    
-        for (var i=0, len=jsfiles.length; i<len; i++) {
-            if (docWrite) {
-                allScriptTags[i] = "<script src='" + host + jsfiles[i] +
+
+        // use "parser-inserted scripts" for guaranteed execution order
+        // http://hsivonen.iki.fi/script-execution/
+        var scriptTags = new Array(jsFiles.length);
+        var host = OpenLayers._getScriptLocation() + "lib/";
+        for (var i=0, len=jsFiles.length; i<len; i++) {
+            scriptTags[i] = "<script src='" + host + jsFiles[i] +
                                    "'></script>"; 
-            } else {
-                var s = document.createElement("script");
-                s.src = host + jsfiles[i];
-                var h = document.getElementsByTagName("head").length ? 
-                           document.getElementsByTagName("head")[0] : 
-                           document.body;
-                h.appendChild(s);
-            }
         }
-        if (docWrite) {
-            document.write(allScriptTags.join(""));
+        if (scriptTags.length > 0) {
+            document.write(scriptTags.join(""));
         }
     }
 })();
@@ -345,4 +381,4 @@
 /**
  * Constant: VERSION_NUMBER
  */
-OpenLayers.VERSION_NUMBER="OpenLayers 2.10 -- $Revision: 10721 $";
+OpenLayers.VERSION_NUMBER="Release 2.11";
diff --git a/lib/OpenLayers/Ajax.js b/lib/OpenLayers/Ajax.js
index 479dfd2..9223502 100644
--- a/lib/OpenLayers/Ajax.js
+++ b/lib/OpenLayers/Ajax.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 /**
  * @requires OpenLayers/Request/XMLHttpRequest.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 OpenLayers.ProxyHost = "";
@@ -45,8 +46,8 @@ OpenLayers.nullHandler = function(request) {
 
 /** 
  * APIFunction: OpenLayers.loadURL
- * Background load a document.  For more flexibility in using XMLHttpRequest,
- *     see the <OpenLayers.Request> methods.
+ * Background load a document.
+ * *Deprecated*.  Use <OpenLayers.Request.GET> method instead.
  *
  * Parameters:
  * uri - {String} URI of source doc
diff --git a/lib/OpenLayers/BaseTypes.js b/lib/OpenLayers/BaseTypes.js
index e73d8bd..f1fdd2e 100644
--- a/lib/OpenLayers/BaseTypes.js
+++ b/lib/OpenLayers/BaseTypes.js
@@ -1,16 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/BaseTypes/Class.js
- * @requires OpenLayers/BaseTypes/LonLat.js
- * @requires OpenLayers/BaseTypes/Size.js
- * @requires OpenLayers/BaseTypes/Pixel.js
- * @requires OpenLayers/BaseTypes/Bounds.js
- * @requires OpenLayers/BaseTypes/Element.js
- * @requires OpenLayers/Lang/en.js
+ * @requires OpenLayers/Lang.js
  * @requires OpenLayers/Console.js
  */
  
@@ -31,7 +25,7 @@ OpenLayers.String = {
      * 
      * Parameters:
      * str - {String} The string to test.
-     * sub - {Sring} The substring to look for.
+     * sub - {String} The substring to look for.
      *  
      * Returns:
      * {Boolean} The first string starts with the second.
@@ -159,20 +153,20 @@ OpenLayers.String = {
     },
 
     /**
-     * Property: OpenLayers.String.tokenRegEx
+     * Property: tokenRegEx
      * Used to find tokens in a string.
      * Examples: ${a}, ${a.b.c}, ${a-b}, ${5}
      */
     tokenRegEx:  /\$\{([\w.]+?)\}/g,
     
     /**
-     * Property: OpenLayers.String.numberRegEx
+     * Property: numberRegEx
      * Used to test strings as numbers.
      */
     numberRegEx: /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/,
     
     /**
-     * APIFunction: OpenLayers.String.isNumeric
+     * APIFunction: isNumeric
      * Determine whether a string contains only a numeric value.
      *
      * Examples:
@@ -210,7 +204,7 @@ if (!String.prototype.startsWith) {
      * *Deprecated*. Whether or not a string starts with another string. 
      * 
      * Parameters:
-     * sStart - {Sring} The string we're testing for.
+     * sStart - {String} The string we're testing for.
      *  
      * Returns:
      * {Boolean} Whether or not this string starts with the string passed in.
@@ -464,7 +458,17 @@ OpenLayers.Function = {
      */
     True : function() {
         return true;
-    }
+    },
+    
+    /**
+     * APIFunction: Void
+     * A reusable function that returns ``undefined``.
+     *
+     * Returns:
+     * {undefined}
+     */
+    Void: function() {}
+
 };
 
 if (!Function.prototype.bind) {
@@ -560,123 +564,3 @@ OpenLayers.Array = {
     }
     
 };
-
-/**
- * Namespace: OpenLayers.Date
- * Contains implementations of Date.parse and date.toISOString that match the 
- *     ECMAScript 5 specification for parsing RFC 3339 dates.
- *     http://tools.ietf.org/html/rfc3339
- */
-OpenLayers.Date = {
-    
-    /**
-     * APIMethod: toISOString
-     * Generates a string representing a date.  The format of the string follows 
-     *     the profile of ISO 8601 for date and time on the Internet (see 
-     *     http://tools.ietf.org/html/rfc3339).  If the toISOString method is 
-     *     available on the Date prototype, that is used.  The toISOString
-     *     method for Date instances is defined in ECMA-262.
-     *
-     * Parameters:
-     * date - {Date} A date object.
-     *
-     * Returns:
-     * {String} A string representing the date (e.g. 
-     *     "2010-08-07T16:58:23.123Z").  If the date does not have a valid time
-     *     (i.e. isNaN(date.getTime())) this method returns the string "Invalid
-     *     Date".  The ECMA standard says the toISOString method should throw
-     *     RangeError in this case, but Firefox returns a string instead.  For
-     *     best results, use isNaN(date.getTime()) to determine date validity
-     *     before generating date strings.  
-     */
-    toISOString: (function() {
-        if ("toISOString" in Date.prototype) {
-            return function(date) {
-                return date.toISOString();
-            }
-        } else {
-            function pad(num, len) {
-                var str = num + "";
-                while (str.length < len) {
-                    str = "0" + str;
-                }
-                return str;
-            }
-            return function(date) {
-                var str;
-                if (isNaN(date.getTime())) {
-                    // ECMA-262 says throw RangeError, Firefox returns 
-                    // "Invalid Date"
-                    str = "Invalid Date";
-                } else {
-                    str = 
-                        date.getUTCFullYear() + "-" +
-                        pad(date.getUTCMonth() + 1, 2) + "-" +
-                        pad(date.getUTCDate(), 2) + "T" +
-                        pad(date.getUTCHours(), 2) + ":" +
-                        pad(date.getUTCMinutes(), 2) + ":" +
-                        pad(date.getUTCSeconds(), 2) + "." +
-                        pad(date.getUTCMilliseconds(), 3) + "Z";
-                }
-                return str;
-            }
-        }
-
-    })(),
-    
-    /**
-     * APIMethod: parse
-     * Generate a date object from a string.  The format for the string follows
-     *     the profile of ISO 8601 for date and time on the Internet (see 
-     *     http://tools.ietf.org/html/rfc3339).  If the parse method on 
-     *     the Date constructor returns a valid date for the given string,
-     *     that method is used.
-     *
-     * Parameters:
-     * str - {String} A string representing the date (e.g. 
-     *     "2010", "2010-08", "2010-08-07", "2010-08-07T16:58:23.123Z",
-     *     "2010-08-07T11:58:23.123-06").
-     * 
-     * Returns:
-     * {Date} A date object.  If the string could not be parsed, an invalid
-     *     date is returned (i.e. isNaN(date.getTime())).
-     */
-    parse: function(str) {
-        var date;
-        // first check if the native parse method can parse it
-        var elapsed = Date.parse(str);
-        if (!isNaN(elapsed)) {
-            date = new Date(elapsed);
-        } else {
-            var match = str.match(/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|(?:[+-]\d{1,2}(?::(\d{2}))?)))?$/);
-            var date;
-            if (match && (match[1] || match[7])) { // must have at least year or time
-                var year = parseInt(match[1], 10) || 0;
-                var month = (parseInt(match[2], 10) - 1) || 0;
-                var day = parseInt(match[3], 10) || 1;
-                date = new Date(Date.UTC(year, month, day));
-                // optional time
-                var type = match[7];
-                if (type) {
-                    var hours = parseInt(match[4], 10);
-                    var minutes = parseInt(match[5], 10);
-                    var secFrac = parseFloat(match[6]);
-                    var seconds = secFrac | 0;
-                    var milliseconds = Math.round(1000 * (secFrac - seconds));
-                    date.setUTCHours(hours, minutes, seconds, milliseconds);
-                    // check offset
-                    if (type !== "Z") {
-                        var hoursOffset = parseInt(type, 10);
-                        var minutesOffset = parseInt(match[8]) || 0;
-                        var offset = -1000 * (60 * (hoursOffset * 60) + minutesOffset * 60);
-                        date = new Date(date.getTime() + offset);
-                    }
-                }
-            } else {
-                date = new Date("invalid");
-            }
-        }
-        return date;
-    }
-
-};
\ No newline at end of file
diff --git a/lib/OpenLayers/BaseTypes/Bounds.js b/lib/OpenLayers/BaseTypes/Bounds.js
index 9412807..e33c496 100644
--- a/lib/OpenLayers/BaseTypes/Bounds.js
+++ b/lib/OpenLayers/BaseTypes/Bounds.js
@@ -1,10 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -14,10 +16,12 @@
  * you should make sure you set them before using the bounds for anything.
  * 
  * Possible use case:
- * > bounds = new OpenLayers.Bounds();
- * > bounds.extend(new OpenLayers.LonLat(4,5));
- * > bounds.extend(new OpenLayers.LonLat(5,6));
- * > bounds.toBBOX(); // returns 4,5,5,6
+ * (code)
+ *     bounds = new OpenLayers.Bounds();
+ *     bounds.extend(new OpenLayers.LonLat(4,5));
+ *     bounds.extend(new OpenLayers.LonLat(5,6));
+ *     bounds.toBBOX(); // returns 4,5,5,6
+ * (end)
  */
 OpenLayers.Bounds = OpenLayers.Class({
 
@@ -119,11 +123,9 @@ OpenLayers.Bounds = OpenLayers.Class({
      * 
      * Returns:
      * {String} String representation of bounds object. 
-     *          (ex.<i>"left-bottom=(5,42) right-top=(10,45)"</i>)
      */
     toString:function() {
-        return ( "left-bottom=(" + this.left + "," + this.bottom + ")"
-                 + " right-top=(" + this.right + "," + this.top + ")" );
+        return [this.left, this.bottom, this.right, this.top].join(",");
     },
 
     /**
@@ -153,7 +155,7 @@ OpenLayers.Bounds = OpenLayers.Class({
      * 
      * Returns:
      * {String} Simple String representation of bounds object.
-     *          (ex. <i>"5,42,10,45"</i>)
+     *          (e.g. <i>"5,42,10,45"</i>)
      */
     toBBOX:function(decimal, reverseAxisOrder) {
         if (decimal== null) {
@@ -247,7 +249,7 @@ OpenLayers.Bounds = OpenLayers.Class({
     },
 
     /**
-     * Method: scale
+     * APIMethod: scale
      * Scales the bounds around a pixel or lonlat. Note that the new 
      *     bounds may return non-integer properties, even if a pixel
      *     is passed. 
@@ -258,10 +260,9 @@ OpenLayers.Bounds = OpenLayers.Class({
      *          Default is center.
      *
      * Returns:
-     * {<OpenLayers.Bound>} A new bounds that is scaled by ratio
+     * {<OpenLayers.Bounds>} A new bounds that is scaled by ratio
      *                      from origin.
      */
-
     scale: function(ratio, origin){
         if(origin == null){
             origin = this.getCenterLonLat();
@@ -558,6 +559,8 @@ OpenLayers.Bounds = OpenLayers.Class({
      * Parameters:
      * maxExtent - {<OpenLayers.Bounds>}
      * options - {Object} Some possible options are:
+     *
+     * Allowed Options:
      *                    leftTolerance - {float} Allow for a margin of error 
      *                                            with the 'left' value of this 
      *                                            bound.
@@ -612,15 +615,16 @@ OpenLayers.Bounds = OpenLayers.Class({
  *     parameter string
  * 
  * Parameters: 
- * str - {String}Comma-separated bounds string. (ex. <i>"5,42,10,45"</i>)
+ * str - {String}Comma-separated bounds string. (e.g. <i>"5,42,10,45"</i>)
+ * reverseAxisOrder - {Boolean} Does the string use reverse axis order?
  * 
  * Returns:
  * {<OpenLayers.Bounds>} New bounds object built from the 
  *                       passed-in String.
  */
-OpenLayers.Bounds.fromString = function(str) {
+OpenLayers.Bounds.fromString = function(str, reverseAxisOrder) {
     var bounds = str.split(",");
-    return OpenLayers.Bounds.fromArray(bounds);
+    return OpenLayers.Bounds.fromArray(bounds, reverseAxisOrder);
 };
 
 /** 
@@ -629,13 +633,19 @@ OpenLayers.Bounds.fromString = function(str) {
  *     from an array
  * 
  * Parameters:
- * bbox - {Array(Float)} Array of bounds values (ex. <i>[5,42,10,45]</i>)
+ * bbox - {Array(Float)} Array of bounds values (e.g. <i>[5,42,10,45]</i>)
+ * reverseAxisOrder - {Boolean} Does the array use reverse axis order?
  *
  * Returns:
  * {<OpenLayers.Bounds>} New bounds object built from the passed-in Array.
  */
-OpenLayers.Bounds.fromArray = function(bbox) {
-    return new OpenLayers.Bounds(parseFloat(bbox[0]),
+OpenLayers.Bounds.fromArray = function(bbox, reverseAxisOrder) {
+    return reverseAxisOrder === true ?
+           new OpenLayers.Bounds(parseFloat(bbox[1]),
+                                 parseFloat(bbox[0]),
+                                 parseFloat(bbox[3]),
+                                 parseFloat(bbox[2])) :
+           new OpenLayers.Bounds(parseFloat(bbox[0]),
                                  parseFloat(bbox[1]),
                                  parseFloat(bbox[2]),
                                  parseFloat(bbox[3]));
diff --git a/lib/OpenLayers/BaseTypes/Class.js b/lib/OpenLayers/BaseTypes/Class.js
index 5145fef..a1f3495 100644
--- a/lib/OpenLayers/BaseTypes/Class.js
+++ b/lib/OpenLayers/BaseTypes/Class.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/SingleFile.js
+ */
+
+/**
  * Constructor: OpenLayers.Class
  * Base class used to construct all other classes. Includes support for 
  *     multiple inheritance. 
@@ -13,59 +17,36 @@
  *     will be removed.
  * 
  * To create a new OpenLayers-style class, use the following syntax:
- * > var MyClass = OpenLayers.Class(prototype);
+ * (code)
+ *     var MyClass = OpenLayers.Class(prototype);
+ * (end)
  *
  * To create a new OpenLayers-style class with multiple inheritance, use the
  *     following syntax:
- * > var MyClass = OpenLayers.Class(Class1, Class2, prototype);
- * Note that instanceof reflection will only reveil Class1 as superclass.
- * Class2 ff are mixins.
+ * (code)
+ *     var MyClass = OpenLayers.Class(Class1, Class2, prototype);
+ * (end)
+ * 
+ * Note that instanceof reflection will only reveal Class1 as superclass.
  *
  */
 OpenLayers.Class = function() {
-    var Class = function() {
-        /**
-         * This following condition can be removed at 3.0 - this is only for
-         * backwards compatibility while the Class.inherit method is still
-         * in use.  So at 3.0, the following three lines would be replaced with
-         * simply:
-         * this.initialize.apply(this, arguments);
-         */
-        if (arguments && arguments[0] != OpenLayers.Class.isPrototype) {
-            this.initialize.apply(this, arguments);
-        }
-    };
-    var extended = {};
-    var parent, initialize, Type;
-    for(var i=0, len=arguments.length; i<len; ++i) {
-        Type = arguments[i];
-        if(typeof Type == "function") {
-            // make the class passed as the first argument the superclass
-            if(i == 0 && len > 1) {
-                initialize = Type.prototype.initialize;
-                // replace the initialize method with an empty function,
-                // because we do not want to create a real instance here
-                Type.prototype.initialize = function() {};
-                // the line below makes sure that the new class has a
-                // superclass
-                extended = new Type();
-                // restore the original initialize method
-                if(initialize === undefined) {
-                    delete Type.prototype.initialize;
-                } else {
-                    Type.prototype.initialize = initialize;
-                }
-            }
-            // get the prototype of the superclass
-            parent = Type.prototype;
-        } else {
-            // in this case we're extending with the prototype
-            parent = Type;
-        }
-        OpenLayers.Util.extend(extended, parent);
+    var len = arguments.length;
+    var P = arguments[0];
+    var F = arguments[len-1];
+
+    var C = typeof F.initialize == "function" ?
+        F.initialize :
+        function(){ P.prototype.initialize.apply(this, arguments); };
+
+    if (len > 1) {
+        var newArgs = [C, P].concat(
+                Array.prototype.slice.call(arguments).slice(1, len-1), F);
+        OpenLayers.inherit.apply(null, newArgs);
+    } else {
+        C.prototype = F;
     }
-    Class.prototype = extended;
-    return Class;
+    return C;
 };
 
 /**
@@ -90,7 +71,6 @@ OpenLayers.Class.create = function() {
     };
 };
 
-
 /**
  * APIFunction: inherit
  * *Deprecated*.  Old method to inherit from one or more OpenLayers style
@@ -102,15 +82,82 @@ OpenLayers.Class.create = function() {
  * Returns:
  * An object prototype
  */
-OpenLayers.Class.inherit = function () {
-    var superClass = arguments[0];
-    var proto = new superClass(OpenLayers.Class.isPrototype);
-    for (var i=1, len=arguments.length; i<len; i++) {
-        if (typeof arguments[i] == "function") {
-            var mixin = arguments[i];
-            arguments[i] = new mixin(OpenLayers.Class.isPrototype);
+OpenLayers.Class.inherit = function (P) {
+    var C = function() {
+       P.call(this);
+    };
+    var newArgs = [C].concat(Array.prototype.slice.call(arguments));
+    OpenLayers.inherit.apply(null, newArgs);
+    return C.prototype;
+};
+
+/**
+ * Function: OpenLayers.inherit
+ *
+ * Parameters:
+ * C - {Object} the class that inherits
+ * P - {Object} the superclass to inherit from
+ *
+ * In addition to the mandatory C and P parameters, an arbitrary number of
+ * objects can be passed, which will extend C.
+ */
+OpenLayers.inherit = function(C, P) {
+   var F = function() {};
+   F.prototype = P.prototype;
+   C.prototype = new F;
+   var i, l, o;
+   for(i=2, l=arguments.length; i<l; i++) {
+       o = arguments[i];
+       if(typeof o === "function") {
+           o = o.prototype;
+       }
+       OpenLayers.Util.extend(C.prototype, o);
+   }
+};
+
+/**
+ * APIFunction: extend
+ * Copy all properties of a source object to a destination object.  Modifies
+ *     the passed in destination object.  Any properties on the source object
+ *     that are set to undefined will not be (re)set on the destination object.
+ *
+ * Parameters:
+ * destination - {Object} The object that will be modified
+ * source - {Object} The object with properties to be set on the destination
+ *
+ * Returns:
+ * {Object} The destination object.
+ */
+OpenLayers.Util = OpenLayers.Util || {};
+OpenLayers.Util.extend = function(destination, source) {
+    destination = destination || {};
+    if (source) {
+        for (var property in source) {
+            var value = source[property];
+            if (value !== undefined) {
+                destination[property] = value;
+            }
+        }
+
+        /**
+         * IE doesn't include the toString property when iterating over an object's
+         * properties with the for(property in object) syntax.  Explicitly check if
+         * the source has its own toString property.
+         */
+
+        /*
+         * FF/Windows < 2.0.0.13 reports "Illegal operation on WrappedNative
+         * prototype object" when calling hawOwnProperty if the source object
+         * is an instance of window.Event.
+         */
+
+        var sourceIsEvt = typeof window.Event == "function"
+                          && source instanceof window.Event;
+
+        if (!sourceIsEvt
+           && source.hasOwnProperty && source.hasOwnProperty("toString")) {
+            destination.toString = source.toString;
         }
-        OpenLayers.Util.extend(proto, arguments[i]);
     }
-    return proto;
+    return destination;
 };
diff --git a/lib/OpenLayers/BaseTypes/Date.js b/lib/OpenLayers/BaseTypes/Date.js
new file mode 100644
index 0000000..47ab010
--- /dev/null
+++ b/lib/OpenLayers/BaseTypes/Date.js
@@ -0,0 +1,118 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the Clear BSD license.
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * Namespace: OpenLayers.Date
+ * Contains implementations of Date.parse and date.toISOString that match the
+ *     ECMAScript 5 specification for parsing RFC 3339 dates.
+ *     http://tools.ietf.org/html/rfc3339
+ */
+OpenLayers.Date = {
+
+    /**
+     * APIMethod: toISOString
+     * Generates a string representing a date.  The format of the string follows
+     *     the profile of ISO 8601 for date and time on the Internet (see
+     *     http://tools.ietf.org/html/rfc3339).  If the toISOString method is
+     *     available on the Date prototype, that is used.  The toISOString
+     *     method for Date instances is defined in ECMA-262.
+     *
+     * Parameters:
+     * date - {Date} A date object.
+     *
+     * Returns:
+     * {String} A string representing the date (e.g.
+     *     "2010-08-07T16:58:23.123Z").  If the date does not have a valid time
+     *     (i.e. isNaN(date.getTime())) this method returns the string "Invalid
+     *     Date".  The ECMA standard says the toISOString method should throw
+     *     RangeError in this case, but Firefox returns a string instead.  For
+     *     best results, use isNaN(date.getTime()) to determine date validity
+     *     before generating date strings.
+     */
+    toISOString: (function() {
+        if ("toISOString" in Date.prototype) {
+            return function(date) {
+                return date.toISOString();
+            };
+        } else {
+            function pad(num, len) {
+                var str = num + "";
+                while (str.length < len) {
+                    str = "0" + str;
+                }
+                return str;
+            }
+            return function(date) {
+                var str;
+                if (isNaN(date.getTime())) {
+                    // ECMA-262 says throw RangeError, Firefox returns
+                    // "Invalid Date"
+                    str = "Invalid Date";
+                } else {
+                    str =
+                        date.getUTCFullYear() + "-" +
+                        pad(date.getUTCMonth() + 1, 2) + "-" +
+                        pad(date.getUTCDate(), 2) + "T" +
+                        pad(date.getUTCHours(), 2) + ":" +
+                        pad(date.getUTCMinutes(), 2) + ":" +
+                        pad(date.getUTCSeconds(), 2) + "." +
+                        pad(date.getUTCMilliseconds(), 3) + "Z";
+                }
+                return str;
+            };
+        }
+
+    })(),
+
+    /**
+     * APIMethod: parse
+     * Generate a date object from a string.  The format for the string follows
+     *     the profile of ISO 8601 for date and time on the Internet (see
+     *     http://tools.ietf.org/html/rfc3339).  We don't call the native
+     *     Date.parse because of inconsistency between implmentations.  In
+     *     Chrome, calling Date.parse with a string that doesn't contain any
+     *     indication of the timezone (e.g. "2011"), the date is interpreted
+     *     in local time.  On Firefox, the assumption is UTC.
+     *
+     * Parameters:
+     * str - {String} A string representing the date (e.g.
+     *     "2010", "2010-08", "2010-08-07", "2010-08-07T16:58:23.123Z",
+     *     "2010-08-07T11:58:23.123-06").
+     *
+     * Returns:
+     * {Date} A date object.  If the string could not be parsed, an invalid
+     *     date is returned (i.e. isNaN(date.getTime())).
+     */
+    parse: function(str) {
+        var date;
+        var match = str.match(/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|(?:[+-]\d{1,2}(?::(\d{2}))?)))?$/);
+        if (match && (match[1] || match[7])) { // must have at least year or time
+            var year = parseInt(match[1], 10) || 0;
+            var month = (parseInt(match[2], 10) - 1) || 0;
+            var day = parseInt(match[3], 10) || 1;
+            date = new Date(Date.UTC(year, month, day));
+            // optional time
+            var type = match[7];
+            if (type) {
+                var hours = parseInt(match[4], 10);
+                var minutes = parseInt(match[5], 10);
+                var secFrac = parseFloat(match[6]);
+                var seconds = secFrac | 0;
+                var milliseconds = Math.round(1000 * (secFrac - seconds));
+                date.setUTCHours(hours, minutes, seconds, milliseconds);
+                // check offset
+                if (type !== "Z") {
+                    var hoursOffset = parseInt(type, 10);
+                    var minutesOffset = parseInt(match[8], 10) || 0;
+                    var offset = -1000 * (60 * (hoursOffset * 60) + minutesOffset * 60);
+                    date = new Date(date.getTime() + offset);
+                }
+            }
+        } else {
+            date = new Date("invalid");
+        }
+        return date;
+    }
+};
diff --git a/lib/OpenLayers/BaseTypes/Element.js b/lib/OpenLayers/BaseTypes/Element.js
index 58a46d4..329a19b 100644
--- a/lib/OpenLayers/BaseTypes/Element.js
+++ b/lib/OpenLayers/BaseTypes/Element.js
@@ -1,9 +1,14 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/Util.js
+ * @requires OpenLayers/BaseTypes.js
+ */
+
+/**
  * Namespace: OpenLayers.Element
  */
 OpenLayers.Element = {
@@ -40,12 +45,16 @@ OpenLayers.Element = {
 
     /**
      * APIFunction: hide
-     * Hide element(s) passed in
+     * *Deprecated*. Hide element(s) passed in
      * 
      * Parameters:
      * element - {DOMElement} Actually user can pass any number of elements
      */
     hide: function() {
+        OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated", {
+            newMethod: "element.style.display = 'none';"
+        }));
+
         for (var i=0, len=arguments.length; i<len; i++) {
             var element = OpenLayers.Util.getElement(arguments[i]);
             if (element) {
@@ -56,12 +65,16 @@ OpenLayers.Element = {
 
     /**
      * APIFunction: show
-     * Show element(s) passed in
+     * *Deprecated*. Show element(s) passed in
      * 
      * Parameters:
      * element - {DOMElement} Actually user can pass any number of elements
      */
     show: function() {
+        OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated", {
+            newMethod: "element.style.display = '';"
+        }));
+
         for (var i=0, len=arguments.length; i<len; i++) {
             var element = OpenLayers.Util.getElement(arguments[i]);
             if (element) {
diff --git a/lib/OpenLayers/BaseTypes/LonLat.js b/lib/OpenLayers/BaseTypes/LonLat.js
index 622f636..16e3de4 100644
--- a/lib/OpenLayers/BaseTypes/LonLat.js
+++ b/lib/OpenLayers/BaseTypes/LonLat.js
@@ -1,10 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -48,7 +50,7 @@ OpenLayers.LonLat = OpenLayers.Class({
      *
      * Returns:
      * {String} String representation of OpenLayers.LonLat object. 
-     *           (ex. <i>"lon=5,lat=42"</i>)
+     *           (e.g. <i>"lon=5,lat=42"</i>)
      */
     toString:function() {
         return ("lon=" + this.lon + ",lat=" + this.lat);
@@ -59,7 +61,7 @@ OpenLayers.LonLat = OpenLayers.Class({
      * 
      * Returns:
      * {String} Shortened String representation of OpenLayers.LonLat object. 
-     *         (ex. <i>"5, 42"</i>)
+     *         (e.g. <i>"5, 42"</i>)
      */
     toShortString:function() {
         return (this.lon + ", " + this.lat);
@@ -178,7 +180,7 @@ OpenLayers.LonLat = OpenLayers.Class({
  * 
  * Parameters:
  * str - {String} Comma-separated Lon,Lat coordinate string. 
- *                 (ex. <i>"5,40"</i>)
+ *                 (e.g. <i>"5,40"</i>)
  * 
  * Returns:
  * {<OpenLayers.LonLat>} New <OpenLayers.LonLat> object built from the 
@@ -188,3 +190,22 @@ OpenLayers.LonLat.fromString = function(str) {
     var pair = str.split(",");
     return new OpenLayers.LonLat(pair[0], pair[1]);
 };
+
+/** 
+ * Function: fromArray
+ * Alternative constructor that builds a new <OpenLayers.LonLat> from an 
+ *     array of two numbers that represent lon- and lat-values.
+ * 
+ * Parameters:
+ * arr - {Array(Float)} Array of lon/lat values (e.g. [5,-42])
+ * 
+ * Returns:
+ * {<OpenLayers.LonLat>} New <OpenLayers.LonLat> object built from the 
+ *                       passed-in array.
+ */
+OpenLayers.LonLat.fromArray = function(arr) {
+    var gotArr = OpenLayers.Util.isArray(arr),
+        lon = gotArr && arr[0],
+        lat = gotArr && arr[1];
+    return new OpenLayers.LonLat(lon, lat);
+};
diff --git a/lib/OpenLayers/BaseTypes/Pixel.js b/lib/OpenLayers/BaseTypes/Pixel.js
index f3bf538..5426bb8 100644
--- a/lib/OpenLayers/BaseTypes/Pixel.js
+++ b/lib/OpenLayers/BaseTypes/Pixel.js
@@ -1,10 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -84,6 +86,24 @@ OpenLayers.Pixel = OpenLayers.Class({
     },
 
     /**
+     * APIMethod: distanceTo
+     * Returns the distance to the pixel point passed in as a parameter.
+     *
+     * Parameters:
+     * px - {<OpenLayers.Pixel>}
+     *
+     * Returns:
+     * {Float} The pixel point passed in as parameter to calculate the
+     *     distance to.
+     */
+    distanceTo:function(px) {
+        return Math.sqrt(
+            Math.pow(this.x - px.x, 2) +
+            Math.pow(this.y - px.y, 2)
+        );
+    },
+
+    /**
      * APIMethod: add
      *
      * Parameters:
diff --git a/lib/OpenLayers/BaseTypes/Size.js b/lib/OpenLayers/BaseTypes/Size.js
index 43856c8..4a0b135 100644
--- a/lib/OpenLayers/BaseTypes/Size.js
+++ b/lib/OpenLayers/BaseTypes/Size.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Class: OpenLayers.Size
  * Instances of this class represent a width/height pair
  */
@@ -41,7 +45,7 @@ OpenLayers.Size = OpenLayers.Class({
      *
      * Returns:
      * {String} The string representation of OpenLayers.Size object. 
-     * (ex. <i>"w=55,h=66"</i>)
+     * (e.g. <i>"w=55,h=66"</i>)
      */
     toString:function() {
         return ("w=" + this.w + ",h=" + this.h);
diff --git a/lib/OpenLayers/Console.js b/lib/OpenLayers/Console.js
index 65ba7a6..9d62ac1 100644
--- a/lib/OpenLayers/Console.js
+++ b/lib/OpenLayers/Console.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Namespace: OpenLayers.Console
  * The OpenLayers.Console namespace is used for debugging and error logging.
  * If the Firebug Lite (../Firebug/firebug.js) is included before this script,
@@ -97,7 +101,7 @@ OpenLayers.Console = {
      * Expects a single error message
      * 
      * Parameters:
-     * object - {Object}
+     * error - {Object}
      */
     userError: function(error) {
         alert(error);
diff --git a/lib/OpenLayers/Control.js b/lib/OpenLayers/Control.js
index 916e9da..e61d1cd 100644
--- a/lib/OpenLayers/Control.js
+++ b/lib/OpenLayers/Control.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Console.js
  */
 
@@ -70,13 +71,14 @@ OpenLayers.Control = OpenLayers.Class({
     map: null,
 
     /** 
-     * Property: div 
-     * {DOMElement} 
+     * APIProperty: div 
+     * {DOMElement} The element that contains the control, if not present the 
+     *     control is placed inside the map.
      */
     div: null,
 
     /** 
-     * Property: type 
+     * APIProperty: type 
      * {Number} Controls can have a 'type'. The type determines the type of
      * interactions which are possible with them when they are placed in an
      * <OpenLayers.Control.Panel>. 
@@ -100,7 +102,7 @@ OpenLayers.Control = OpenLayers.Class({
     displayClass: "",
     
     /**
-    * Property: title  
+    * APIProperty: title  
     * {string}  This property is used for showing a tooltip over the  
     * Control.  
     */ 
@@ -114,8 +116,9 @@ OpenLayers.Control = OpenLayers.Class({
     autoActivate: false,
 
     /** 
-     * Property: active 
-     * {Boolean} The control is active.
+     * APIProperty: active 
+     * {Boolean} The control is active (read-only).  Use <activate> and 
+     *     <deactivate> to change control state.
      */
     active: null,
 
@@ -135,9 +138,9 @@ OpenLayers.Control = OpenLayers.Class({
     eventListeners: null,
 
     /** 
-     * Property: events
-     * {<OpenLayers.Events>} Events instance for triggering control specific
-     *     events.
+     * APIProperty: events
+     * {<OpenLayers.Events>} Events instance for listeners and triggering
+     *     control specific events.
      */
     events: null,
 
@@ -227,6 +230,7 @@ OpenLayers.Control = OpenLayers.Class({
             this.map.removeControl(this);
             this.map = null;
         }
+        this.div = null;
     },
 
     /** 
@@ -295,7 +299,7 @@ OpenLayers.Control = OpenLayers.Class({
     },
 
     /**
-     * Method: activate
+     * APIMethod: activate
      * Explicitly activates a control and it's associated
      * handler if one has been set.  Controls can be
      * deactivated by calling the deactivate() method.
@@ -323,7 +327,7 @@ OpenLayers.Control = OpenLayers.Class({
     },
     
     /**
-     * Method: deactivate
+     * APIMethod: deactivate
      * Deactivates a control and it's associated handler if any.  The exact
      * effect of this depends on the control itself.
      * 
diff --git a/lib/OpenLayers/Control/ArgParser.js b/lib/OpenLayers/Control/ArgParser.js
index 8fbb0dd..3ba0d49 100644
--- a/lib/OpenLayers/Control/ArgParser.js
+++ b/lib/OpenLayers/Control/ArgParser.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -60,11 +60,27 @@ OpenLayers.Control.ArgParser = OpenLayers.Class(OpenLayers.Control, {
      * Parameters:
      * options - {Object}
      */
-    initialize: function(options) {
-        OpenLayers.Control.prototype.initialize.apply(this, arguments);
-    },
 
     /**
+     * Method: getParameters
+     */    
+    getParameters: function(url) {
+        url = url || window.location.href;
+        var parameters = OpenLayers.Util.getParameters(url);
+
+        // If we have an chchor in the url use it to split the url
+        var index = url.indexOf('#');
+        if (index > 0) {
+            // create an url to parce on the getParameters
+            url = '?' + url.substring(index + 1, url.length);
+
+            OpenLayers.Util.extend(parameters,
+                    OpenLayers.Util.getParameters(url));
+        }
+        return parameters;
+    },
+    
+    /**
      * Method: setMap
      * Set the map property for the control. 
      * 
@@ -92,7 +108,7 @@ OpenLayers.Control.ArgParser = OpenLayers.Class(OpenLayers.Control, {
         }
         if (i == this.map.controls.length) {
 
-            var args = OpenLayers.Util.getParameters();
+            var args = this.getParameters();
             // Be careful to set layer first, to not trigger unnecessary layer loads
             if (args.layers) {
                 this.layers = args.layers;
diff --git a/lib/OpenLayers/Control/Attribution.js b/lib/OpenLayers/Control/Attribution.js
index f2f1b7c..c0b5706 100644
--- a/lib/OpenLayers/Control/Attribution.js
+++ b/lib/OpenLayers/Control/Attribution.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -30,9 +30,6 @@ OpenLayers.Control.Attribution =
      * Parameters:
      * options - {Object} Options for control.
      */
-    initialize: function(options) {
-        OpenLayers.Control.prototype.initialize.apply(this, arguments);
-    },
 
     /** 
      * Method: destroy
diff --git a/lib/OpenLayers/Control/Button.js b/lib/OpenLayers/Control/Button.js
index 6abbc11..d5163ca 100644
--- a/lib/OpenLayers/Control/Button.js
+++ b/lib/OpenLayers/Control/Button.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Control/DragFeature.js b/lib/OpenLayers/Control/DragFeature.js
index 4570b63..012ac76 100644
--- a/lib/OpenLayers/Control/DragFeature.js
+++ b/lib/OpenLayers/Control/DragFeature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -66,6 +66,28 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
     onComplete: function(feature, pixel) {},
 
     /**
+     * APIProperty: onEnter
+     * {Function} Define this function if you want to know when the mouse
+     *     goes over a feature and thereby makes this feature a candidate
+     *     for dragging.
+     *
+     * Parameters:
+     * feature - {<OpenLayers.Feature.Vector>} The feature that is ready
+     *     to be dragged.
+     */
+    onEnter: function(feature) {},
+
+    /**
+     * APIProperty: onLeave
+     * {Function} Define this function if you want to know when the mouse
+     *     goes out of the feature that was dragged.
+     *
+     * Parameters:
+     * feature - {<OpenLayers.Feature.Vector>} The feature that was dragged.
+     */
+    onLeave: function(feature) {},
+
+    /**
      * APIProperty: documentDrag
      * {Boolean} If set to true, mouse dragging will continue even if the
      *     mouse cursor leaves the map viewport. Default is false.
@@ -129,6 +151,10 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
             ),
             feature: new OpenLayers.Handler.Feature(
                 this, this.layer, OpenLayers.Util.extend({
+                    // 'click' and 'clickout' callback are for the mobile
+                    // support: no 'over' or 'out' in touch based browsers.
+                    click: this.clickFeature,
+                    clickout: this.clickoutFeature,
                     over: this.overFeature,
                     out: this.outFeature
                 }, this.featureCallbacks),
@@ -136,7 +162,36 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
             )
         };
     },
-    
+
+    /**
+     * Method: clickFeature
+     * Called when the feature handler detects a click-in on a feature.
+     *
+     * Parameters:
+     * feature - {<OpenLayers.Feature.Vector>}
+     */
+    clickFeature: function(feature) {
+        if (this.handlers.feature.touch && !this.over && this.overFeature(feature)) {
+            this.handlers.drag.dragstart(this.handlers.feature.evt);
+            // to let the events propagate to the feature handler (click callback)
+            this.handlers.drag.stopDown = false;
+        }
+    },
+
+    /**
+     * Method: clickoutFeature
+     * Called when the feature handler detects a click-out on a feature.
+     *
+     * Parameters:
+     * feature - {<OpenLayers.Feature.Vector>}
+     */
+    clickoutFeature: function(feature) {
+        if (this.handlers.feature.touch && this.over) {
+            this.outFeature(feature);
+            this.handlers.drag.stopDown = true;
+        }
+    },
+
     /**
      * APIMethod: destroy
      * Take care of things that are not handled in superclass
@@ -185,13 +240,19 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
      *
      * Parameters:
      * feature - {<OpenLayers.Feature.Vector>} The selected feature.
+     *
+     * Returns:
+     * {Boolean} Successfully activated the drag handler.
      */
     overFeature: function(feature) {
+        var activated = false;
         if(!this.handlers.drag.dragging) {
             this.feature = feature;
             this.handlers.drag.activate();
+            activated = true;
             this.over = true;
             OpenLayers.Element.addClass(this.map.viewPortDiv, this.displayClass + "Over");
+            this.onEnter(feature);
         } else {
             if(this.feature.id == feature.id) {
                 this.over = true;
@@ -199,6 +260,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
                 this.over = false;
             }
         }
+        return activated;
     },
 
     /**
@@ -269,6 +331,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
             OpenLayers.Element.removeClass(
                 this.map.viewPortDiv, this.displayClass + "Over"
             );
+            this.onLeave(feature);
             this.feature = null;
         } else {
             if(this.feature.id == feature.id) {
diff --git a/lib/OpenLayers/Control/DragPan.js b/lib/OpenLayers/Control/DragPan.js
index a2b42f1..b46c15e 100644
--- a/lib/OpenLayers/Control/DragPan.js
+++ b/lib/OpenLayers/Control/DragPan.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -32,10 +32,11 @@ OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
     /**
      * Property: interval
      * {Integer} The number of milliseconds that should ellapse before
-     *     panning the map again. Set this to increase dragging performance.
-     *     Defaults to 25 milliseconds.
+     *     panning the map again. Defaults to 1 millisecond. In most cases
+     *     you won't want to change this value. For slow machines/devices
+     *     larger values can be tried out.
      */
-    interval: 25,
+    interval: 1,
     
     /**
      * APIProperty: documentDrag
@@ -43,16 +44,48 @@ OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
      *     mouse cursor leaves the map viewport. Default is false.
      */
     documentDrag: false,
-    
+
+    /**
+     * Property: kinetic
+     * {OpenLayers.Kinetic} The OpenLayers.Kinetic object.
+     */
+    kinetic: null,
+
+    /**
+     * APIProperty: enableKinetic
+     * {Boolean} Set this option to enable "kinetic dragging". Can be
+     *     set to true or to an object. If set to an object this
+     *     object will be passed to the {<OpenLayers.Kinetic>}
+     *     constructor. Defaults to false.
+     */
+    enableKinetic: false,
+
+    /**
+     * APIProperty: kineticInterval
+     * {Integer} Interval in milliseconds between 2 steps in the "kinetic
+     *     scrolling". Applies only if enableKinetic is set. Defaults
+     *     to 10 milliseconds.
+     */
+    kineticInterval: 10,
+
+
     /**
      * Method: draw
      * Creates a Drag handler, using <panMap> and
      * <panMapDone> as callbacks.
      */    
     draw: function() {
+        if(this.enableKinetic) {
+            var config = {interval: this.kineticInterval};
+            if(typeof this.enableKinetic === "object") {
+                config = OpenLayers.Util.extend(config, this.enableKinetic);
+            }
+            this.kinetic = new OpenLayers.Kinetic(config);
+        }
         this.handler = new OpenLayers.Handler.Drag(this, {
                 "move": this.panMap,
-                "done": this.panMapDone
+                "done": this.panMapDone,
+                "down": this.panMapStart
             }, {
                 interval: this.interval,
                 documentDrag: this.documentDrag
@@ -61,17 +94,29 @@ OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
     },
 
     /**
+     * Method: panMapStart
+     */
+    panMapStart: function() {
+        if(this.kinetic) {
+            this.kinetic.begin();
+        }
+    },
+
+    /**
     * Method: panMap
     *
     * Parameters:
     * xy - {<OpenLayers.Pixel>} Pixel of the mouse position
     */
     panMap: function(xy) {
+        if(this.kinetic) {
+            this.kinetic.update(xy);
+        }
         this.panned = true;
         this.map.pan(
             this.handler.last.x - xy.x,
             this.handler.last.y - xy.y,
-            {dragging: this.handler.dragging, animate: false}
+            {dragging: true, animate: false}
         );
     },
     
@@ -85,7 +130,21 @@ OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
      */
     panMapDone: function(xy) {
         if(this.panned) {
-            this.panMap(xy);
+            var res = null;
+            if (this.kinetic) {
+                res = this.kinetic.end(xy);
+            }
+            this.map.pan(
+                this.handler.last.x - xy.x,
+                this.handler.last.y - xy.y,
+                {dragging: !!res, animate: false}
+            );
+            if (res) {
+                var self = this;
+                this.kinetic.move(res, function(x, y, end) {
+                    self.map.pan(x, y, {dragging: !end, animate: false});
+                });
+            }
             this.panned = false;
         }
     },
diff --git a/lib/OpenLayers/Control/DrawFeature.js b/lib/OpenLayers/Control/DrawFeature.js
index 0829625..eb84329 100644
--- a/lib/OpenLayers/Control/DrawFeature.js
+++ b/lib/OpenLayers/Control/DrawFeature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -121,6 +121,106 @@ OpenLayers.Control.DrawFeature = OpenLayers.Class(OpenLayers.Control, {
             this.events.triggerEvent("featureadded",{feature : feature});
         }
     },
+    
+    /**
+     * APIMethod: insertXY
+     * Insert a point in the current sketch given x & y coordinates.
+     *
+     * Parameters:
+     * x - {Number} The x-coordinate of the point.
+     * y - {Number} The y-coordinate of the point.
+     */
+    insertXY: function(x, y) {
+        if (this.handler && this.handler.line) {
+            this.handler.insertXY(x, y);
+        }
+    },
+
+    /**
+     * APIMethod: insertDeltaXY
+     * Insert a point given offsets from the previously inserted point.
+     *
+     * Parameters:
+     * dx - {Number} The x-coordinate offset of the point.
+     * dy - {Number} The y-coordinate offset of the point.
+     */
+    insertDeltaXY: function(dx, dy) {
+        if (this.handler && this.handler.line) {
+            this.handler.insertDeltaXY(dx, dy);
+        }
+    },
+
+    /**
+     * APIMethod: insertDirectionLength
+     * Insert a point in the current sketch given a direction and a length.
+     *
+     * Parameters:
+     * direction - {Number} Degrees clockwise from the positive x-axis.
+     * length - {Number} Distance from the previously drawn point.
+     */
+    insertDirectionLength: function(direction, length) {
+        if (this.handler && this.handler.line) {
+            this.handler.insertDirectionLength(direction, length);
+        }
+    },
+
+    /**
+     * APIMethod: insertDeflectionLength
+     * Insert a point in the current sketch given a deflection and a length.
+     *     The deflection should be degrees clockwise from the previously 
+     *     digitized segment.
+     *
+     * Parameters:
+     * deflection - {Number} Degrees clockwise from the previous segment.
+     * length - {Number} Distance from the previously drawn point.
+     */
+    insertDeflectionLength: function(deflection, length) {
+        if (this.handler && this.handler.line) {
+            this.handler.insertDeflectionLength(deflection, length);
+        }
+    },
+    
+    /**
+     * APIMethod: undo
+     * Remove the most recently added point in the current sketch geometry.
+     *
+     * Returns: 
+     * {Boolean} An edit was undone.
+     */
+    undo: function() {
+        return this.handler.undo && this.handler.undo();
+    },
+    
+    /**
+     * APIMethod: redo
+     * Reinsert the most recently removed point resulting from an <undo> call.
+     *     The undo stack is deleted whenever a point is added by other means.
+     *
+     * Returns: 
+     * {Boolean} An edit was redone.
+     */
+    redo: function() {
+        return this.handler.redo && this.handler.redo();
+    },
+    
+    /**
+     * APIMethod: finishSketch
+     * Finishes the sketch without including the currently drawn point.
+     *     This method can be called to terminate drawing programmatically
+     *     instead of waiting for the user to end the sketch.
+     */
+    finishSketch: function() {
+        this.handler.finishGeometry();
+    },
+
+    /**
+     * APIMethod: cancel
+     * Cancel the current sketch.  This removes the current sketch and keeps
+     *     the drawing control active.
+     */
+    cancel: function() {
+        this.handler.cancel();
+    },
 
     CLASS_NAME: "OpenLayers.Control.DrawFeature"
 });
diff --git a/lib/OpenLayers/Control/EditingToolbar.js b/lib/OpenLayers/Control/EditingToolbar.js
index 63af2b2..b56188b 100644
--- a/lib/OpenLayers/Control/EditingToolbar.js
+++ b/lib/OpenLayers/Control/EditingToolbar.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -55,7 +55,9 @@ OpenLayers.Control.EditingToolbar = OpenLayers.Class(
      */
     draw: function() {
         var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
-        this.activateControl(this.controls[0]);
+        if (this.defaultControl === null) {
+            this.defaultControl = this.controls[0];
+        }
         return div;
     },
 
diff --git a/lib/OpenLayers/Control/Geolocate.js b/lib/OpenLayers/Control/Geolocate.js
new file mode 100644
index 0000000..6745ab7
--- /dev/null
+++ b/lib/OpenLayers/Control/Geolocate.js
@@ -0,0 +1,180 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the Clear BSD license.
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Control.js
+ * @requires OpenLayers/Geometry/Point.js
+ * @requires OpenLayers/Projection.js
+ */
+
+/**
+ * Class: OpenLayers.Control.Geolocate
+ * The Geolocate control wraps w3c geolocation API into control that can be
+ * bound to a map, and generate events on location update
+ *
+ * To use this control requires to load the proj4js library if the projection
+ * of the map is not EPSG:4326 or EPSG:900913.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Control>
+ */
+OpenLayers.Control.Geolocate = OpenLayers.Class(OpenLayers.Control, {
+
+    /**
+     * Constant: EVENT_TYPES
+     * Supported event types:
+     *  - *locationupdated* Triggered when browser return a new position
+     *  - *locationfailed* Triggered when geolocation has failed
+     *  - *locationuncapable* Triggered when control is activated on a browser
+     *  which doesn't support geolocation
+     */
+    EVENT_TYPES: ["locationupdated", "locationfailed", "locationuncapable"],
+
+    /**
+     * Property: geolocation
+     * {Object} The geolocation engine, as a property to be possibly mocked.
+     */
+    geolocation: navigator.geolocation,
+
+    /**
+     * APIProperty: bind
+     * {Boolean} If true, map center will be set on location update.
+     */
+    bind: true,
+
+    /**
+     * APIProperty: watch
+     * {Boolean} If true, position will be update regularly.
+     */
+    watch: false,
+
+    /**
+     * APIProperty: geolocationOptions
+     * {Object} Options to pass to the navigator's geolocation API. See
+     *     <http://dev.w3.org/geo/api/spec-source.html>. No specific
+     *     option is passed to the geolocation API by default.
+     */
+    geolocationOptions: null,
+
+    /**
+     * Constructor: OpenLayers.Control.Geolocate
+     * Create a new control to deal with browser geolocation API
+     *
+     */
+    initialize: function(options) {
+        // concatenate events specific to this control with those from the base
+        this.EVENT_TYPES =
+            OpenLayers.Control.Geolocate.prototype.EVENT_TYPES.concat(
+            OpenLayers.Control.prototype.EVENT_TYPES
+        );
+        this.geolocationOptions = {};
+        OpenLayers.Control.prototype.initialize.apply(this, [options]);
+    },
+
+    /**
+     * Method: destroy
+     */
+    destroy: function() {
+        this.deactivate();
+        OpenLayers.Control.prototype.destroy.apply(this, arguments);
+    },
+
+    /**
+     * Method: activate
+     * Activates the control.
+     *
+     * Returns:
+     * {Boolean} The control was effectively activated.
+     */
+    activate: function () {
+        if (!this.geolocation) {
+            this.events.triggerEvent("locationuncapable");
+            return false;
+        }
+        if (OpenLayers.Control.prototype.activate.apply(this, arguments)) {
+            if (this.watch) {
+                this.watchId = this.geolocation.watchPosition(
+                    OpenLayers.Function.bind(this.geolocate, this),
+                    OpenLayers.Function.bind(this.failure, this),
+                    this.geolocationOptions
+                );
+            } else {
+                this.getCurrentLocation();
+            }
+            return true;
+        }
+        return false;
+    },
+
+    /**
+     * Method: deactivate
+     * Deactivates the control.
+     *
+     * Returns:
+     * {Boolean} The control was effectively deactivated.
+     */
+    deactivate: function () {
+        if (this.active && this.watchId !== null) {
+            this.geolocation.clearWatch(this.watchId);
+        }
+        return OpenLayers.Control.prototype.deactivate.apply(
+            this, arguments
+        );
+    },
+
+    /**
+     * Method: geolocate
+     * Activates the control.
+     *
+     */
+    geolocate: function (position) {
+        var center = new OpenLayers.LonLat(
+            position.coords.longitude,
+            position.coords.latitude
+        ).transform(
+            new OpenLayers.Projection("EPSG:4326"),
+            this.map.getProjectionObject()
+        );
+        if (this.bind) {
+            this.map.setCenter(center);
+        }
+        this.events.triggerEvent("locationupdated", {
+            position: position,
+            point: new OpenLayers.Geometry.Point(
+                center.lon, center.lat
+            )
+        });
+    },
+
+    /**
+     * APIMethod: getCurrentLocation
+     *
+     * Returns:
+     * {Boolean} Returns true if a event will be fired (successfull
+     * registration)
+     */
+    getCurrentLocation: function() {
+        if (!this.active || this.watch) {
+            return false;
+        }
+        this.geolocation.getCurrentPosition(
+            OpenLayers.Function.bind(this.geolocate, this),
+            OpenLayers.Function.bind(this.failure, this),
+            this.geolocationOptions
+        );
+        return true;
+    },
+
+    /**
+     * Method: failure
+     * method called on browser's geolocation failure
+     *
+     */
+    failure: function (error) {
+        this.events.triggerEvent("locationfailed", {error: error});
+    },
+
+    CLASS_NAME: "OpenLayers.Control.Geolocate"
+});
diff --git a/lib/OpenLayers/Control/GetFeature.js b/lib/OpenLayers/Control/GetFeature.js
index d608a42..ee2896d 100644
--- a/lib/OpenLayers/Control/GetFeature.js
+++ b/lib/OpenLayers/Control/GetFeature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -207,7 +207,8 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, {
      *
      * Parameters:
      * options - {Object} A configuration object which at least has to contain
-     *     a <protocol> property
+     *     a <protocol> property (if not, it has to be set before a request is
+     *     made)
      */
     initialize: function(options) {
         // concatenate events specific to vector with those from the base
@@ -477,7 +478,7 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, {
         if(!this.modifiers.multiple && !this.modifiers.toggle) {
             this.unselectAll();
         }
-        if(!(features instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         
diff --git a/lib/OpenLayers/Control/Graticule.js b/lib/OpenLayers/Control/Graticule.js
index 3e6537a..a3af87f 100644
--- a/lib/OpenLayers/Control/Graticule.js
+++ b/lib/OpenLayers/Control/Graticule.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
  * @requires OpenLayers/Control.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -112,7 +113,7 @@ OpenLayers.Control.Graticule = OpenLayers.Class(OpenLayers.Control, {
      */
     initialize: function(options) {
         options = options || {};
-        options.layerName = options.layerName || OpenLayers.i18n("graticule");
+        options.layerName = options.layerName || OpenLayers.i18n("Graticule");
         OpenLayers.Control.prototype.initialize.apply(this, [options]);
         
         this.labelSymbolizer.stroke = false;
diff --git a/lib/OpenLayers/Control/KeyboardDefaults.js b/lib/OpenLayers/Control/KeyboardDefaults.js
index acd46bf..22d9033 100644
--- a/lib/OpenLayers/Control/KeyboardDefaults.js
+++ b/lib/OpenLayers/Control/KeyboardDefaults.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -37,22 +37,7 @@ OpenLayers.Control.KeyboardDefaults = OpenLayers.Class(OpenLayers.Control, {
     /**
      * Constructor: OpenLayers.Control.KeyboardDefaults
      */
-    initialize: function() {
-        OpenLayers.Control.prototype.initialize.apply(this, arguments);
-    },
-    
-    /**
-     * APIMethod: destroy
-     */
-    destroy: function() {
-        if (this.handler) {
-            this.handler.destroy();
-        }        
-        this.handler = null;
         
-        OpenLayers.Control.prototype.destroy.apply(this, arguments);
-    },
-    
     /**
      * Method: draw
      * Create handler.
diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js
index 3f1b84e..4186445 100644
--- a/lib/OpenLayers/Control/LayerSwitcher.js
+++ b/lib/OpenLayers/Control/LayerSwitcher.js
@@ -1,10 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /** 
  * @requires OpenLayers/Control.js
+ * @requires OpenLayers/Lang.js
+ * @requires Rico/Corner.js
  */
 
 /**
@@ -314,7 +316,7 @@ OpenLayers.Control.LayerSwitcher =
                 
                 // create span
                 var labelSpan = document.createElement("span");
-                OpenLayers.Element.addClass(labelSpan, "labelSpan")
+                OpenLayers.Element.addClass(labelSpan, "labelSpan");
                 if (!baseLayer && !layer.inRange) {
                     labelSpan.style.color = "gray";
                 }
@@ -503,14 +505,14 @@ OpenLayers.Control.LayerSwitcher =
         OpenLayers.Element.addClass(this.layersDiv, "layersDiv");
 
         this.baseLbl = document.createElement("div");
-        this.baseLbl.innerHTML = OpenLayers.i18n("baseLayer");
+        this.baseLbl.innerHTML = OpenLayers.i18n("Base Layer");
         OpenLayers.Element.addClass(this.baseLbl, "baseLbl");
         
         this.baseLayersDiv = document.createElement("div");
         OpenLayers.Element.addClass(this.baseLayersDiv, "baseLayersDiv");
 
         this.dataLbl = document.createElement("div");
-        this.dataLbl.innerHTML = OpenLayers.i18n("overlays");
+        this.dataLbl.innerHTML = OpenLayers.i18n("Overlays");
         OpenLayers.Element.addClass(this.dataLbl, "dataLbl");
         
         this.dataLayersDiv = document.createElement("div");
diff --git a/lib/OpenLayers/Control/Measure.js b/lib/OpenLayers/Control/Measure.js
index 3e9bd4d..172317c 100644
--- a/lib/OpenLayers/Control/Measure.js
+++ b/lib/OpenLayers/Control/Measure.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -33,7 +33,8 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
      *      will receive an event with measure, units, order, and geometry
      *      properties.
      * measurepartial - Triggered when a new point is added to the
-     *      measurement sketch.  Listeners receive an event with measure,
+     *      measurement sketch or if the <immediate> property is true and the
+     *      measurement sketch is modified.  Listeners receive an event with measure,
      *      units, order, and geometry.
      */
     EVENT_TYPES: ['measure', 'measurepartial'],
@@ -93,7 +94,7 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
      * {Number} Timeout id of trigger for measurepartial.
      */
     delayedTrigger: null,
-    
+
     /**
      * APIProperty: persist
      * {Boolean} Keep the temporary measurement sketch drawn after the
@@ -104,6 +105,14 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
     persist: false,
 
     /**
+     * APIProperty: immediate
+     * {Boolean} Activates the immediate measurement so that the "measurepartial"
+     *     event is also fired once the measurement sketch is modified.
+     *     Default is false.
+     */
+    immediate : false,
+
+    /**
      * Constructor: OpenLayers.Control.Measure
      * 
      * Parameters:
@@ -117,10 +126,12 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
             OpenLayers.Control.prototype.EVENT_TYPES
         );
         OpenLayers.Control.prototype.initialize.apply(this, [options]);
-        this.callbacks = OpenLayers.Util.extend(
-            {done: this.measureComplete, point: this.measurePartial},
-            this.callbacks
-        );
+        var callbacks = {done: this.measureComplete,
+            point: this.measurePartial};
+        if (this.immediate){
+            callbacks.modify = this.measureImmediate;
+        }
+        this.callbacks = OpenLayers.Util.extend(callbacks, this.callbacks);
 
         // let the handler options override, so old code that passes 'persist' 
         // directly to the handler does not need an update
@@ -131,13 +142,36 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
     },
     
     /**
+     * APIMethod: deactivate
+     */
+    deactivate: function() {
+        this.cancelDelay();
+        return OpenLayers.Control.prototype.deactivate.apply(this, arguments);
+    },
+
+    /**
      * APIMethod: cancel
      * Stop the control from measuring.  If <persist> is true, the temporary
      *     sketch will be erased.
      */
     cancel: function() {
+        this.cancelDelay();
         this.handler.cancel();
     },
+
+    /**
+     * APIMethod: setImmediate
+     * Sets the <immediate> property. Changes the activity of immediate
+     * measurement.
+     */
+    setImmediate: function(immediate) {
+        this.immediate = immediate;
+        if (this.immediate){
+            this.callbacks.modify = this.measureImmediate;
+        } else {
+            delete this.callbacks.modify;
+        }
+    },
     
     /**
      * Method: updateHandler
@@ -165,9 +199,7 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
      * geometry - {<OpenLayers.Geometry>}
      */
     measureComplete: function(geometry) {
-        if(this.delayedTrigger) {
-            window.clearTimeout(this.delayedTrigger);
-        }
+        this.cancelDelay();
         this.measure(geometry, "measure");
     },
     
@@ -180,10 +212,17 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
      * geometry - {<OpenLayers.Geometry>} The sketch geometry.
      */
     measurePartial: function(point, geometry) {
-        if (geometry.getLength() > 0) {
-            geometry = geometry.clone();
+        this.cancelDelay();
+        geometry = geometry.clone();
+        // when we're wating for a dblclick, we have to trigger measurepartial
+        // after some delay to deal with reflow issues in IE
+        if (this.handler.freehandMode(this.handler.evt)) {
+            // no dblclick in freehand mode
+            this.measure(geometry, "measurepartial");
+        } else {
             this.delayedTrigger = window.setTimeout(
                 OpenLayers.Function.bind(function() {
+                    this.delayedTrigger = null;
                     this.measure(geometry, "measurepartial");
                 }, this),
                 this.partialDelay
@@ -192,6 +231,31 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
     },
 
     /**
+     * Method: measureImmediate
+     * Called each time the measurement sketch is modified.
+     * 
+     * Parameters: point - {<OpenLayers.Geometry.Point>} The point at the
+     * mouseposition. feature - {<OpenLayers.Feature.Vector>} The sketch feature.
+     */
+    measureImmediate : function(point, feature, drawing) {
+        if (drawing && this.delayedTrigger === null &&
+                                !this.handler.freehandMode(this.handler.evt)) {
+            this.measure(feature.geometry, "measurepartial");
+        }
+    },
+
+    /**
+     * Method: cancelDelay
+     * Cancels the delay measurement that measurePartial began.
+     */
+    cancelDelay: function() {
+        if (this.delayedTrigger !== null) {
+            window.clearTimeout(this.delayedTrigger);
+            this.delayedTrigger = null;
+        }
+    },
+
+    /**
      * Method: measure
      *
      * Parameters:
diff --git a/lib/OpenLayers/Control/ModifyFeature.js b/lib/OpenLayers/Control/ModifyFeature.js
index 72ee219..3982cb1 100644
--- a/lib/OpenLayers/Control/ModifyFeature.js
+++ b/lib/OpenLayers/Control/ModifyFeature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -113,6 +113,15 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
      * {Object} A symbolizer to be used for virtual vertices.
      */
     virtualStyle: null,
+    
+    /**
+     * APIProperty: vertexRenderIntent
+     * {String} The renderIntent to use for vertices. If no <virtualStyle> is
+     * provided, this renderIntent will also be used for virtual vertices, with
+     * a fillOpacity and strokeOpacity of 0.3. Default is null, which means
+     * that the layer's default style will be used for vertices.
+     */
+    vertexRenderIntent: null,
 
     /**
      * APIProperty: mode
@@ -193,17 +202,20 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
      *     control.
      */
     initialize: function(layer, options) {
+        options = options || {};
         this.layer = layer;
         this.vertices = [];
         this.virtualVertices = [];
         this.virtualStyle = OpenLayers.Util.extend({},
-            this.layer.style || this.layer.styleMap.createSymbolizer());
+            this.layer.style ||
+            this.layer.styleMap.createSymbolizer(null, options.vertexRenderIntent)
+        );
         this.virtualStyle.fillOpacity = 0.3;
         this.virtualStyle.strokeOpacity = 0.3;
         this.deleteCodes = [46, 68];
         this.mode = OpenLayers.Control.ModifyFeature.RESHAPE;
         OpenLayers.Control.prototype.initialize.apply(this, [options]);
-        if(!(this.deleteCodes instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(this.deleteCodes))) {
             this.deleteCodes = [this.deleteCodes];
         }
         var control = this;
@@ -339,18 +351,28 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
     },
 
     /**
-     * Method: selectFeature
-     * Called when the select feature control selects a feature.
+     * APIMethod: selectFeature
+     * Select a feature for modification in standalone mode. In non-standalone
+     * mode, this method is called when the select feature control selects a
+     * feature. Register a listener to the beforefeaturemodified event and
+     * return false to prevent feature modification.
      *
      * Parameters:
      * feature - {<OpenLayers.Feature.Vector>} the selected feature.
      */
     selectFeature: function(feature) {
-        this.feature = feature;
-        this.modified = false;
-        this.resetVertices();
-        this.dragControl.activate();
-        this.onModificationStart(this.feature);
+        if (!this.standalone || this.beforeSelectFeature(feature) !== false) {
+            this.feature = feature;
+            this.modified = false;
+            this.resetVertices();
+            this.dragControl.activate();
+            this.onModificationStart(this.feature);
+        }
+        // keep track of geometry modifications
+        var modified = feature.modified;
+        if (feature.geometry && !(modified && modified.geometry)) {
+            this._originalGeometry = feature.geometry.clone();
+        }
     },
 
     /**
@@ -522,6 +544,13 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
         if(this.feature.state != OpenLayers.State.INSERT &&
            this.feature.state != OpenLayers.State.DELETE) {
             this.feature.state = OpenLayers.State.UPDATE;
+            if (this.modified && this._originalGeometry) {
+                var feature = this.feature;
+                feature.modified = OpenLayers.Util.extend(feature.modified, {
+                    geometry: this._originalGeometry
+                });
+                delete this._originalGeometry;
+            }
         }
     },
     
@@ -596,9 +625,15 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
                vertex.geometry.parent) {
                 // remove the vertex
                 vertex.geometry.parent.removeComponent(vertex.geometry);
+                this.layer.events.triggerEvent("vertexremoved", {
+                    vertex: vertex.geometry,
+                    feature: this.feature,
+                    pixel: evt.xy
+                });
                 this.layer.drawFeature(this.feature, this.standalone ?
                                        undefined :
                                        this.selectControl.renderIntent);
+                this.modified = true;
                 this.resetVertices();
                 this.setFeatureState();
                 this.onModification(this.feature);
@@ -622,6 +657,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
             if(geometry.CLASS_NAME == "OpenLayers.Geometry.Point") {
                 vertex = new OpenLayers.Feature.Vector(geometry);
                 vertex._sketch = true;
+                vertex.renderIntent = control.vertexRenderIntent;
                 control.vertices.push(vertex);
             } else {
                 var numVert = geometry.components.length;
@@ -633,6 +669,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
                     if(component.CLASS_NAME == "OpenLayers.Geometry.Point") {
                         vertex = new OpenLayers.Feature.Vector(component);
                         vertex._sketch = true;
+                        vertex.renderIntent = control.vertexRenderIntent;
                         control.vertices.push(vertex);
                     } else {
                         collectComponentVertices(component);
diff --git a/lib/OpenLayers/Control/MouseDefaults.js b/lib/OpenLayers/Control/MouseDefaults.js
index 11fdb13..cc71164 100644
--- a/lib/OpenLayers/Control/MouseDefaults.js
+++ b/lib/OpenLayers/Control/MouseDefaults.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -165,7 +165,7 @@ OpenLayers.Control.MouseDefaults = OpenLayers.Class(OpenLayers.Control, {
             this.zoomBox.style.opacity = "0.50";
             this.zoomBox.style.fontSize = "1px";
             this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1;
-            this.map.viewPortDiv.appendChild(this.zoomBox);
+            this.map.eventsDiv.appendChild(this.zoomBox);
         }
         document.onselectstart = OpenLayers.Function.False;
         OpenLayers.Event.stop(evt);
@@ -238,7 +238,7 @@ OpenLayers.Control.MouseDefaults = OpenLayers.Class(OpenLayers.Control, {
      */
     defaultMouseOut: function (evt) {
         if (this.mouseDragStart != null && 
-            OpenLayers.Util.mouseLeft(evt, this.map.div)) {
+            OpenLayers.Util.mouseLeft(evt, this.map.eventsDiv)) {
             if (this.zoomBox) {
                 this.removeZoomBox();
             }
@@ -302,7 +302,7 @@ OpenLayers.Control.MouseDefaults = OpenLayers.Class(OpenLayers.Control, {
      * Remove the zoombox from the screen and nullify our reference to it.
      */
     removeZoomBox: function() {
-        this.map.viewPortDiv.removeChild(this.zoomBox);
+        this.map.eventsDiv.removeChild(this.zoomBox);
         this.zoomBox = null;
     },
 
diff --git a/lib/OpenLayers/Control/MousePosition.js b/lib/OpenLayers/Control/MousePosition.js
index 8bb63f9..4031407 100644
--- a/lib/OpenLayers/Control/MousePosition.js
+++ b/lib/OpenLayers/Control/MousePosition.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -87,9 +87,6 @@ OpenLayers.Control.MousePosition = OpenLayers.Class(OpenLayers.Control, {
      * Parameters:
      * options - {Object} Options for control.
      */
-    initialize: function(options) {
-        OpenLayers.Control.prototype.initialize.apply(this, arguments);
-    },
 
     /**
      * Method: destroy
diff --git a/lib/OpenLayers/Control/MouseToolbar.js b/lib/OpenLayers/Control/MouseToolbar.js
index e0302cb..9400c17 100644
--- a/lib/OpenLayers/Control/MouseToolbar.js
+++ b/lib/OpenLayers/Control/MouseToolbar.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -207,7 +207,7 @@ OpenLayers.Control.MouseToolbar = OpenLayers.Class(
                 this.zoomBox.style.opacity = "0.50";
                 this.zoomBox.style.fontSize = "1px";
                 this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1;
-                this.map.viewPortDiv.appendChild(this.zoomBox);
+                this.map.eventsDiv.appendChild(this.zoomBox);
                 this.performedDrag = true;
                 break;
             case "measure":
@@ -374,7 +374,7 @@ OpenLayers.Control.MouseToolbar = OpenLayers.Class(
      */
     defaultMouseOut: function (evt) {
         if (this.mouseDragStart != null
-            && OpenLayers.Util.mouseLeft(evt, this.map.div)) {
+            && OpenLayers.Util.mouseLeft(evt, this.map.eventsDiv)) {
             if (this.zoomBox) {
                 this.removeZoomBox();
                 if (this.startViaKeyboard) {
diff --git a/lib/OpenLayers/Control/NavToolbar.js b/lib/OpenLayers/Control/NavToolbar.js
index 8fd53c0..f6cdccd 100644
--- a/lib/OpenLayers/Control/NavToolbar.js
+++ b/lib/OpenLayers/Control/NavToolbar.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -47,7 +47,9 @@ OpenLayers.Control.NavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {
      */
     draw: function() {
         var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
-        this.activateControl(this.controls[0]);
+        if (this.defaultControl === null) {
+            this.defaultControl = this.controls[0];
+        }
         return div;
     },
 
diff --git a/lib/OpenLayers/Control/Navigation.js b/lib/OpenLayers/Control/Navigation.js
index 35aaa50..ae61145 100644
--- a/lib/OpenLayers/Control/Navigation.js
+++ b/lib/OpenLayers/Control/Navigation.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -32,12 +32,24 @@ OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
     dragPan: null,
 
     /**
-     * APIProprety: dragPanOptions
+     * APIProperty: dragPanOptions
      * {Object} Options passed to the DragPan control.
      */
     dragPanOptions: null,
 
     /**
+     * Property: pinchZoom
+     * {<OpenLayers.Control.PinchZoom>}
+     */
+    pinchZoom: null,
+
+    /**
+     * APIProperty: pinchZoomOptions
+     * {Object} Options passed to the PinchZoom control.
+     */
+    pinchZoomOptions: null,
+
+    /**
      * APIProperty: documentDrag
      * {Boolean} Allow panning of the map by dragging outside map viewport.
      *     Default is false.
@@ -124,6 +136,12 @@ OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
             this.zoomBox.destroy();
         }
         this.zoomBox = null;
+
+        if (this.pinchZoom) {
+            this.pinchZoom.destroy();
+        }
+        this.pinchZoom = null;
+
         OpenLayers.Control.prototype.destroy.apply(this,arguments);
     },
     
@@ -139,6 +157,9 @@ OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
         if (this.zoomBoxEnabled) {
             this.zoomBox.activate();
         }
+        if (this.pinchZoom) {
+            this.pinchZoom.activate();
+        }
         return OpenLayers.Control.prototype.activate.apply(this,arguments);
     },
 
@@ -146,6 +167,9 @@ OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
      * Method: deactivate
      */
     deactivate: function() {
+        if (this.pinchZoom) {
+            this.pinchZoom.deactivate();
+        }
         this.zoomBox.deactivate();
         this.dragPan.deactivate();
         this.handlers.click.deactivate();
@@ -163,6 +187,7 @@ OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
         }
 
         var clickCallbacks = { 
+            'click': this.defaultClick,
             'dblclick': this.defaultDblClick, 
             'dblrightclick': this.defaultDblRightClick 
         };
@@ -187,6 +212,23 @@ OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
                                     this, {"up"  : this.wheelUp,
                                            "down": this.wheelDown},
                                     this.mouseWheelOptions );
+        if (OpenLayers.Control.PinchZoom) {
+            this.pinchZoom = new OpenLayers.Control.PinchZoom(
+                OpenLayers.Util.extend(
+                    {map: this.map}, this.pinchZoomOptions));
+        }
+    },
+
+    /**
+     * Method: defaultClick
+     *
+     * Parameters:
+     * evt - {Event}
+     */
+    defaultClick: function (evt) {
+        if (evt.lastTouches && evt.lastTouches.length == 2) {
+            this.map.zoomOut();
+        }
     },
 
     /**
diff --git a/lib/OpenLayers/Control/NavigationHistory.js b/lib/OpenLayers/Control/NavigationHistory.js
index f07e4aa..6ca9acd 100644
--- a/lib/OpenLayers/Control/NavigationHistory.js
+++ b/lib/OpenLayers/Control/NavigationHistory.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Control/OverviewMap.js b/lib/OpenLayers/Control/OverviewMap.js
index 11ac354..c1b2ff7 100644
--- a/lib/OpenLayers/Control/OverviewMap.js
+++ b/lib/OpenLayers/Control/OverviewMap.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -157,7 +157,7 @@ OpenLayers.Control.OverviewMap = OpenLayers.Class(OpenLayers.Control, {
             this.handlers.drag.destroy();
         }
 
-        this.mapDiv.removeChild(this.extentRectangle);
+        this.ovmap && this.ovmap.eventsDiv.removeChild(this.extentRectangle);
         this.extentRectangle = null;
 
         if (this.rectEvents) {
@@ -229,7 +229,6 @@ OpenLayers.Control.OverviewMap = OpenLayers.Class(OpenLayers.Control, {
         this.extentRectangle.style.position = 'absolute';
         this.extentRectangle.style.zIndex = 1000;  //HACK
         this.extentRectangle.className = this.displayClass+'ExtentRectangle';
-        this.mapDiv.appendChild(this.extentRectangle);
 
         this.element.appendChild(this.mapDiv);  
 
@@ -490,6 +489,7 @@ OpenLayers.Control.OverviewMap = OpenLayers.Class(OpenLayers.Control, {
                         {controls: [], maxResolution: 'auto', 
                          fallThrough: false}, this.mapOptions);
         this.ovmap = new OpenLayers.Map(this.mapDiv, options);
+        this.ovmap.eventsDiv.appendChild(this.extentRectangle);
         
         // prevent ovmap from being destroyed when the page unloads, because
         // the OverviewMap control has to do this (and does it).
diff --git a/lib/OpenLayers/Control/Pan.js b/lib/OpenLayers/Control/Pan.js
index fdb9e7d..7056ad3 100644
--- a/lib/OpenLayers/Control/Pan.js
+++ b/lib/OpenLayers/Control/Pan.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -20,11 +20,21 @@ OpenLayers.Control.Pan = OpenLayers.Class(OpenLayers.Control, {
     /** 
      * APIProperty: slideFactor
      * {Integer} Number of pixels by which we'll pan the map in any direction 
-     *     on clicking the arrow buttons, defaults to 50.
+     *     on clicking the arrow buttons, defaults to 50.  If you want to pan
+     *     by some ratio of the map dimensions, use <slideRatio> instead.
      */
     slideFactor: 50,
 
     /** 
+     * APIProperty: slideRatio
+     * {Number} The fraction of map width/height by which we'll pan the map            
+     *     on clicking the arrow buttons.  Default is null.  If set, will
+     *     override <slideFactor>. E.g. if slideRatio is .5, then Pan Up will
+     *     pan up half the map height. 
+     */
+    slideRatio: null,
+
+    /** 
      * Property: direction
      * {String} in {'North', 'South', 'East', 'West'}
      */
@@ -61,18 +71,24 @@ OpenLayers.Control.Pan = OpenLayers.Class(OpenLayers.Control, {
      */
     trigger: function(){
     
+        var getSlideFactor = OpenLayers.Function.bind(function (dim) {
+            return this.slideRatio ?
+                this.map.getSize()[dim] * this.slideRatio :
+                this.slideFactor;
+        }, this);
+
         switch (this.direction) {
             case OpenLayers.Control.Pan.NORTH: 
-                this.map.pan(0, -this.slideFactor);
+                this.map.pan(0, -getSlideFactor("h"));
                 break;
             case OpenLayers.Control.Pan.SOUTH: 
-                this.map.pan(0, this.slideFactor);
+                this.map.pan(0, getSlideFactor("h"));
                 break;
             case OpenLayers.Control.Pan.WEST: 
-                this.map.pan(-this.slideFactor, 0);
+                this.map.pan(-getSlideFactor("w"), 0);
                 break;
             case OpenLayers.Control.Pan.EAST: 
-                this.map.pan(this.slideFactor, 0);
+                this.map.pan(getSlideFactor("w"), 0);
                 break;
         }
     },
diff --git a/lib/OpenLayers/Control/PanPanel.js b/lib/OpenLayers/Control/PanPanel.js
index 37f627e..15c7615 100644
--- a/lib/OpenLayers/Control/PanPanel.js
+++ b/lib/OpenLayers/Control/PanPanel.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -33,10 +33,20 @@ OpenLayers.Control.PanPanel = OpenLayers.Class(OpenLayers.Control.Panel, {
     /** 
      * APIProperty: slideFactor
      * {Integer} Number of pixels by which we'll pan the map in any direction 
-     *     on clicking the arrow buttons, defaults to 50.
+     *     on clicking the arrow buttons, defaults to 50.  If you want to pan
+     *     by some ratio of the map dimensions, use <slideRatio> instead.
      */
     slideFactor: 50,
 
+    /** 
+     * APIProperty: slideRatio
+     * {Number} The fraction of map width/height by which we'll pan the map            
+     *     on clicking the arrow buttons.  Default is null.  If set, will
+     *     override <slideFactor>. E.g. if slideRatio is .5, then Pan Up will
+     *     pan up half the map height. 
+     */
+    slideRatio: null,
+
     /**
      * Constructor: OpenLayers.Control.PanPanel 
      * Add the four directional pan buttons.
@@ -47,15 +57,15 @@ OpenLayers.Control.PanPanel = OpenLayers.Class(OpenLayers.Control.Panel, {
      */
     initialize: function(options) {
         OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]);
+        var options = {
+            slideFactor: this.slideFactor,
+            slideRatio: this.slideRatio
+        };
         this.addControls([
-            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.NORTH,
-                                       {slideFactor: this.slideFactor}),
-            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.SOUTH,
-                                       {slideFactor: this.slideFactor}),
-            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.EAST,
-                                       {slideFactor: this.slideFactor}),
-            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.WEST,
-                                       {slideFactor: this.slideFactor})
+            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.NORTH, options),
+            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.SOUTH, options),
+            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.EAST, options),
+            new OpenLayers.Control.Pan(OpenLayers.Control.Pan.WEST, options)
         ]);
     },
 
diff --git a/lib/OpenLayers/Control/PanZoom.js b/lib/OpenLayers/Control/PanZoom.js
index 95261f8..147c0c4 100644
--- a/lib/OpenLayers/Control/PanZoom.js
+++ b/lib/OpenLayers/Control/PanZoom.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -64,10 +64,10 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
      * APIMethod: destroy
      */
     destroy: function() {
-        OpenLayers.Control.prototype.destroy.apply(this, arguments);
         this.removeButtons();
         this.buttons = null;
         this.position = null;
+        OpenLayers.Control.prototype.destroy.apply(this, arguments);
     },
 
     /**
@@ -123,7 +123,7 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
         var btn = OpenLayers.Util.createAlphaImageDiv(
                                     this.id + "_" + id, 
                                     xy, sz, imgLocation, "absolute");
-
+        btn.style.cursor = "pointer";
         //we want to add the outer div
         this.div.appendChild(btn);
 
diff --git a/lib/OpenLayers/Control/PanZoomBar.js b/lib/OpenLayers/Control/PanZoomBar.js
index eb1f544..3f8ef3b 100644
--- a/lib/OpenLayers/Control/PanZoomBar.js
+++ b/lib/OpenLayers/Control/PanZoomBar.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -60,6 +60,14 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
     zoomWorldIcon: false,
 
     /**
+     * APIProperty: panIcons
+     * {Boolean} Set this property to false not to display the pan icons. If
+     * false the zoom world icon is placed under the zoom bar. Defaults to
+     * true.
+     */
+    panIcons: true,
+
+    /**
      * APIProperty: forceFixedZoomLevel
      * {Boolean} Force a fixed zoom level even though the map has 
      *     fractionalZoom
@@ -73,6 +81,12 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
     mouseDragStart: null,
 
     /**
+     * Property: deltaY
+     * {Number} The cumulative vertical pixel offset during a zoom bar drag.
+     */
+    deltaY: null,
+
+    /**
      * Property: zoomStart
      * {<OpenLayers.Pixel>}
      */
@@ -81,9 +95,6 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
     /**
      * Constructor: OpenLayers.Control.PanZoomBar
      */ 
-    initialize: function() {
-        OpenLayers.Control.PanZoom.prototype.initialize.apply(this, arguments);
-    },
 
     /**
      * APIMethod: destroy
@@ -141,26 +152,37 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
         this.buttons = [];
 
         var sz = new OpenLayers.Size(18,18);
-        var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y);
-        var wposition = sz.w;
+        if (this.panIcons) {
+            var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y);
+            var wposition = sz.w;
 
-        if (this.zoomWorldIcon) {
-            centered = new OpenLayers.Pixel(px.x+sz.w, px.y);
-        }
+            if (this.zoomWorldIcon) {
+                centered = new OpenLayers.Pixel(px.x+sz.w, px.y);
+            }
+
+            this._addButton("panup", "north-mini.png", centered, sz);
+            px.y = centered.y+sz.h;
+            this._addButton("panleft", "west-mini.png", px, sz);
+            if (this.zoomWorldIcon) {
+                this._addButton("zoomworld", "zoom-world-mini.png", px.add(sz.w, 0), sz);
 
-        this._addButton("panup", "north-mini.png", centered, sz);
-        px.y = centered.y+sz.h;
-        this._addButton("panleft", "west-mini.png", px, sz);
-        if (this.zoomWorldIcon) {
-            this._addButton("zoomworld", "zoom-world-mini.png", px.add(sz.w, 0), sz);
-            
-            wposition *= 2;
+                wposition *= 2;
+            }
+            this._addButton("panright", "east-mini.png", px.add(wposition, 0), sz);
+            this._addButton("pandown", "south-mini.png", centered.add(0, sz.h*2), sz);
+            this._addButton("zoomin", "zoom-plus-mini.png", centered.add(0, sz.h*3+5), sz);
+            centered = this._addZoomBar(centered.add(0, sz.h*4 + 5));
+            this._addButton("zoomout", "zoom-minus-mini.png", centered, sz);
+        }
+        else {
+            this._addButton("zoomin", "zoom-plus-mini.png", px, sz);
+            centered = this._addZoomBar(px.add(0, sz.h));
+            this._addButton("zoomout", "zoom-minus-mini.png", centered, sz);
+            if (this.zoomWorldIcon) {
+                centered = centered.add(0, sz.h+3);
+                this._addButton("zoomworld", "zoom-world-mini.png", centered, sz);
+            }
         }
-        this._addButton("panright", "east-mini.png", px.add(wposition, 0), sz);
-        this._addButton("pandown", "south-mini.png", centered.add(0, sz.h*2), sz);
-        this._addButton("zoomin", "zoom-plus-mini.png", centered.add(0, sz.h*3+5), sz);
-        centered = this._addZoomBar(centered.add(0, sz.h*4 + 5));
-        this._addButton("zoomout", "zoom-minus-mini.png", centered, sz);
         return this.div;
     },
 
@@ -180,11 +202,15 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
                        new OpenLayers.Size(20,9), 
                        imgLocation+"slider.png",
                        "absolute");
+        slider.style.cursor = "move";
         this.slider = slider;
         
         this.sliderEvents = new OpenLayers.Events(this, slider, null, true,
                                             {includeXY: true});
         this.sliderEvents.on({
+            "touchstart": this.zoomBarDown,
+            "touchmove": this.zoomBarDrag,
+            "touchend": this.zoomBarUp,
             "mousedown": this.zoomBarDown,
             "mousemove": this.zoomBarDrag,
             "mouseup": this.zoomBarUp,
@@ -212,12 +238,13 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
                         sz,
                         imgLocation+"zoombar.png");
         }
-        
+        div.style.cursor = "pointer";
         this.zoombarDiv = div;
         
         this.divEvents = new OpenLayers.Events(this, div, null, true, 
                                                 {includeXY: true});
         this.divEvents.on({
+            "touchmove": this.passEventToSlider,
             "mousedown": this.divClick,
             "mousemove": this.passEventToSlider,
             "dblclick": this.doubleClick,
@@ -241,6 +268,7 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
      */
     _removeZoomBar: function() {
         this.sliderEvents.un({
+            "touchmove": this.zoomBarDrag,
             "mousedown": this.zoomBarDown,
             "mousemove": this.zoomBarDrag,
             "mouseup": this.zoomBarUp,
@@ -250,6 +278,7 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
         this.sliderEvents.destroy();
 
         this.divEvents.un({
+            "touchmove": this.passEventToSlider,
             "mousedown": this.divClick,
             "mousemove": this.passEventToSlider,
             "dblclick": this.doubleClick,
@@ -286,9 +315,7 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
         if (!OpenLayers.Event.isLeftClick(evt)) {
             return;
         }
-        var y = evt.xy.y;
-        var top = OpenLayers.Util.pagePosition(evt.object)[1];
-        var levels = (y - top)/this.zoomStopHeight;
+        var levels = evt.xy.y / this.zoomStopHeight;
         if(this.forceFixedZoomLevel || !this.map.fractionalZoom) {
             levels = Math.floor(levels);
         }    
@@ -306,10 +333,11 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
      * evt - {<OpenLayers.Event>} 
      */
     zoomBarDown:function(evt) {
-        if (!OpenLayers.Event.isLeftClick(evt)) {
+        if (!OpenLayers.Event.isLeftClick(evt) && !OpenLayers.Event.isSingleTouch(evt)) {
             return;
         }
         this.map.events.on({
+            "touchmove": this.passEventToSlider,
             "mousemove": this.passEventToSlider,
             "mouseup": this.passEventToSlider,
             scope: this
@@ -342,6 +370,8 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
                 this.slider.style.top = newTop+"px";
                 this.mouseDragStart = evt.xy.clone();
             }
+            // set cumulative displacement
+            this.deltaY = this.zoomStart.y - evt.xy.y;
             OpenLayers.Event.stop(evt);
         }
     },
@@ -355,28 +385,30 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
      * evt - {<OpenLayers.Event>} 
      */
     zoomBarUp:function(evt) {
-        if (!OpenLayers.Event.isLeftClick(evt)) {
+        if (!OpenLayers.Event.isLeftClick(evt) && evt.type !== "touchend") {
             return;
         }
         if (this.mouseDragStart) {
             this.div.style.cursor="";
             this.map.events.un({
+                "touchmove": this.passEventToSlider,
                 "mouseup": this.passEventToSlider,
                 "mousemove": this.passEventToSlider,
                 scope: this
             });
-            var deltaY = this.zoomStart.y - evt.xy.y;
             var zoomLevel = this.map.zoom;
             if (!this.forceFixedZoomLevel && this.map.fractionalZoom) {
-                zoomLevel += deltaY/this.zoomStopHeight;
+                zoomLevel += this.deltaY/this.zoomStopHeight;
                 zoomLevel = Math.min(Math.max(zoomLevel, 0), 
                                      this.map.getNumZoomLevels() - 1);
             } else {
-                zoomLevel += Math.round(deltaY/this.zoomStopHeight);
+                zoomLevel += this.deltaY/this.zoomStopHeight;
+                zoomLevel = Math.max(Math.round(zoomLevel), 0);      
             }
             this.map.zoomTo(zoomLevel);
             this.mouseDragStart = null;
             this.zoomStart = null;
+            this.deltaY = 0;
             OpenLayers.Event.stop(evt);
         }
     },
diff --git a/lib/OpenLayers/Control/Panel.js b/lib/OpenLayers/Control/Panel.js
index 3af0f31..1129ef4 100644
--- a/lib/OpenLayers/Control/Panel.js
+++ b/lib/OpenLayers/Control/Panel.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -47,6 +47,14 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
     saveState: false,
       
     /**
+     * APIProperty: allowDepress
+     * {Boolean} If is true the <OpenLayers.Control.TYPE_TOOL> controls can 
+     *     be deactivated by clicking the icon that represents them.  Default 
+     *     is false.
+     */
+    allowDepress: false,
+    
+    /**
      * Property: activeState
      * {Object} stores the active state of this panel's controls.
      */
@@ -96,16 +104,16 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
      */
     destroy: function() {
         OpenLayers.Control.prototype.destroy.apply(this, arguments);
-        for(var i = this.controls.length - 1 ; i >= 0; i--) {
-            if(this.controls[i].events) {
-                this.controls[i].events.un({
-                    "activate": this.redraw,
-                    "deactivate": this.redraw,
-                    scope: this
+        for (var ctl, i = this.controls.length - 1; i >= 0; i--) {
+            ctl = this.controls[i];
+            if (ctl.events) {
+                ctl.events.un({
+                    activate: this.iconOn,
+                    deactivate: this.iconOff
                 });
             }
-            OpenLayers.Event.stopObservingElement(this.controls[i].panel_div);
-            this.controls[i].panel_div = null;
+            OpenLayers.Event.stopObservingElement(ctl.panel_div);
+            ctl.panel_div = null;
         }
         this.activeState = null;
     },
@@ -143,6 +151,7 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
                 control = this.controls[i];
                 this.activeState[control.id] = control.deactivate();
             }    
+            this.redraw();
             return true;
         } else {
             return false;
@@ -165,21 +174,13 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
      * Method: redraw
      */
     redraw: function() {
-        if (this.div.children.length>0) {
-            for (var l=this.div.children.length, i=l-1 ; i>=0 ; i--) {
-                this.div.removeChild(this.div.children[i]);
-            }
+        for (var l=this.div.childNodes.length, i=l-1; i>=0; i--) {
+            this.div.removeChild(this.div.childNodes[i]);
         }
         this.div.innerHTML = "";
         if (this.active) {
             for (var i=0, len=this.controls.length; i<len; i++) {
-                var element = this.controls[i].panel_div;
-                if (this.controls[i].active) {
-                    element.className = this.controls[i].displayClass + "ItemActive";
-                } else {    
-                    element.className = this.controls[i].displayClass + "ItemInactive";
-                }    
-                this.div.appendChild(element);
+                this.div.appendChild(this.controls[i].panel_div);
             }
         }
     },
@@ -196,7 +197,6 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
         if (!this.active) { return false; }
         if (control.type == OpenLayers.Control.TYPE_BUTTON) {
             control.trigger();
-            this.redraw();
             return;
         }
         if (control.type == OpenLayers.Control.TYPE_TOGGLE) {
@@ -205,18 +205,21 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
             } else {
                 control.activate();
             }
-            this.redraw();
             return;
         }
-        var c;
-        for (var i=0, len=this.controls.length; i<len; i++) {
-            c = this.controls[i];
-            if (c != control &&
-               (c.type === OpenLayers.Control.TYPE_TOOL || c.type == null)) {
-                c.deactivate();
+        if (this.allowDepress && control.active) {
+            control.deactivate();
+        } else {
+            var c;
+            for (var i=0, len=this.controls.length; i<len; i++) {
+                c = this.controls[i];
+                if (c != control &&
+                   (c.type === OpenLayers.Control.TYPE_TOOL || c.type == null)) {
+                    c.deactivate();
+                }
             }
+            control.activate();
         }
-        control.activate();
     },
 
     /**
@@ -229,7 +232,7 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
      * controls - {<OpenLayers.Control>} Controls to add in the panel.
      */    
     addControls: function(controls) {
-        if (!(controls instanceof Array)) {
+        if (!(OpenLayers.Util.isArray(controls))) {
             controls = [controls];
         }
         this.controls = this.controls.concat(controls);
@@ -241,6 +244,7 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
         // since they need to pass through.
         for (var i=0, len=controls.length; i<len; i++) {
             var element = document.createElement("div");
+            element.className = controls[i].displayClass + "ItemInactive";
             controls[i].panel_div = element;
             if (controls[i].title != "") {
                 controls[i].panel_div.title = controls[i].title;
@@ -279,14 +283,31 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
                 control.deactivate();
             }
             control.events.on({
-                "activate": this.redraw,
-                "deactivate": this.redraw,
-                scope: this
+                activate: this.iconOn,
+                deactivate: this.iconOff
             });
         }  
     },
 
     /**
+     * Method: iconOn
+     * Internal use, for use only with "controls[i].events.on/un".
+     */
+     iconOn: function() {
+        var d = this.panel_div; // "this" refers to a control on panel!
+        d.className = d.className.replace(/ItemInactive$/, "ItemActive");
+    },
+
+    /**
+     * Method: iconOff
+     * Internal use, for use only with "controls[i].events.on/un".
+     */
+     iconOff: function() {
+        var d = this.panel_div; // "this" refers to a control on panel!
+        d.className = d.className.replace(/ItemActive$/, "ItemInactive");
+    },
+
+    /**
      * Method: onClick
      */
     onClick: function (ctrl, evt) {
diff --git a/lib/OpenLayers/Control/Permalink.js b/lib/OpenLayers/Control/Permalink.js
index 99f8d13..ed4f248 100644
--- a/lib/OpenLayers/Control/Permalink.js
+++ b/lib/OpenLayers/Control/Permalink.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -7,6 +7,7 @@
 /**
  * @requires OpenLayers/Control.js
  * @requires OpenLayers/Control/ArgParser.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -35,6 +36,16 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
     element: null,
     
     /** 
+     * APIProperty: anchor
+     * {Boolean} This option changes 3 things:
+     *     the character '#' is used in place of the character '?',
+     *     the window.href is updated if no element is provided.
+     *     When this option is set to true it's not recommend to provide
+     *     a base without provide an element.
+     */
+    anchor: false,
+
+    /** 
      * APIProperty: base
      * {String}
      */
@@ -58,14 +69,27 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
      * Parameters: 
      * element - {DOMElement} 
      * base - {String} 
-     * options - {Object} options to the control. 
+     * options - {Object} options to the control.
+     *
+     * Or for anchor:
+     * options - {Object} options to the control.
      */
     initialize: function(element, base, options) {
-        OpenLayers.Control.prototype.initialize.apply(this, [options]);
-        this.element = OpenLayers.Util.getElement(element);        
-        this.base = base || document.location.href;
+        if (element !== null && typeof element == 'object' && !OpenLayers.Util.isElement(element)) {
+            options = element;
+            this.base = document.location.href;
+            OpenLayers.Control.prototype.initialize.apply(this, [options]);
+            if (this.element != null) {
+                this.element = OpenLayers.Util.getElement(this.element);
+            }
+        }
+        else {
+            OpenLayers.Control.prototype.initialize.apply(this, [options]);
+            this.element = OpenLayers.Util.getElement(element);
+            this.base = base || document.location.href;
+        }
     },
-
+    
     /**
      * APIMethod: destroy
      */
@@ -121,10 +145,9 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
     draw: function() {
         OpenLayers.Control.prototype.draw.apply(this, arguments);
           
-        if (!this.element) {
-            this.div.className = this.displayClass;
+        if (!this.element && !this.anchor) {
             this.element = document.createElement("a");
-            this.element.innerHTML = OpenLayers.i18n("permalink");
+            this.element.innerHTML = OpenLayers.i18n("Permalink");
             this.element.href="";
             this.div.appendChild(this.element);
         }
@@ -146,13 +169,19 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
      * Method: updateLink 
      */
     updateLink: function() {
+        var separator = this.anchor ? '#' : '?';
         var href = this.base;
-        if (href.indexOf('?') != -1) {
-            href = href.substring( 0, href.indexOf('?') );
+        if (href.indexOf(separator) != -1) {
+            href = href.substring( 0, href.indexOf(separator) );
         }
 
-        href += '?' + OpenLayers.Util.getParameterString(this.createParams());
-        this.element.href = href;
+        href += separator + OpenLayers.Util.getParameterString(this.createParams());
+        if (this.anchor && !this.element) {
+            window.location.href = href;
+        }
+        else {
+            this.element.href = href;
+        }
     }, 
     
     /**
diff --git a/lib/OpenLayers/Control/PinchZoom.js b/lib/OpenLayers/Control/PinchZoom.js
new file mode 100644
index 0000000..ff744ba
--- /dev/null
+++ b/lib/OpenLayers/Control/PinchZoom.js
@@ -0,0 +1,192 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the Clear BSD license.
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Handler/Pinch.js
+ */
+
+/**
+ * Class: OpenLayers.Control.PinchZoom
+ *
+ * Inherits:
+ *  - <OpenLayers.Control>
+ */
+OpenLayers.Control.PinchZoom = OpenLayers.Class(OpenLayers.Control, {
+
+    /** 
+     * Property: type
+     * {OpenLayers.Control.TYPES}
+     */
+    type: OpenLayers.Control.TYPE_TOOL,
+
+    /**
+     * Property: containerOrigin
+     * {Object} Cached object representing the layer container origin (in pixels).
+     */
+    containerOrigin: null,
+
+    /**
+     * Property: pinchOrigin
+     * {Object} Cached object representing the pinch start (in pixels).
+     */
+    pinchOrigin: null,    
+    
+    /**
+     * Property: currentCenter
+     * {Object} Cached object representing the latest pinch center (in pixels).
+     */
+    currentCenter: null,    
+
+    /**
+     * APIProperty: autoActivate
+     * {Boolean} Activate the control when it is added to a map.  Default is
+     *     true.
+     */
+    autoActivate: true,
+    
+    /**
+     * Constructor: OpenLayers.Control.PinchZoom
+     * Create a control for zooming with pinch gestures.  This works on devices
+     *     with multi-touch support.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *                    the control
+     */
+    initialize: function(options) {
+        OpenLayers.Control.prototype.initialize.apply(this, arguments);
+        this.handler = new OpenLayers.Handler.Pinch(this, {
+            start: this.pinchStart,
+            move: this.pinchMove,
+            done: this.pinchDone
+        }, this.handlerOptions);
+    },
+    
+    /**
+     * APIMethod: activate
+     * Activate this control.  Must be called after the control is added to a 
+     * map.
+     *
+     * Returns:
+     * {Boolean} The control was successfully activated.
+     */
+    activate: function() {
+        var activated = OpenLayers.Control.prototype.activate.apply(this,arguments);
+        if (activated) {
+            this.map.events.on({
+                moveend: this.updateContainerOrigin,
+                scope: this
+            });
+            this.updateContainerOrigin();
+        }
+        return activated;
+    },
+
+    /**
+     * APIMethod: deactivate
+     * Deactivate this control.
+     *
+     * Returns:
+     * {Boolean} The control was successfully deactivated.
+     */
+    deactivate: function() {
+        var deactivated = OpenLayers.Control.prototype.deactivate.apply(this,arguments);
+        if (this.map && this.map.events) {
+            this.map.events.un({
+                moveend: this.updateContainerOrigin,
+                scope: this
+            });
+        }
+        return deactivated;
+    },
+    
+    /**
+     * Method: updateContainerOrigin
+     * Must be called each time the layer container origin changes.
+     */
+    updateContainerOrigin: function() {
+        var container = this.map.layerContainerDiv;
+        this.containerOrigin = {
+            x: parseInt(container.style.left, 10),
+            y: parseInt(container.style.top, 10)
+        };
+    },
+
+    /**
+     * Method: pinchStart
+     *
+     * Parameters:
+     * evt - {Event}
+     * pinchData - {Object} pinch data object related to the current touchmove
+     *     of the pinch gesture. This give us the current scale of the pinch.
+     */
+    pinchStart: function(evt, pinchData) {
+        this.pinchOrigin = evt.xy;
+        this.currentCenter = evt.xy;
+    },
+    
+    /**
+     * Method: pinchMove
+     *
+     * Parameters:
+     * evt - {Event}
+     * pinchData - {Object} pinch data object related to the current touchmove
+     *     of the pinch gesture. This give us the current scale of the pinch.
+     */
+    pinchMove: function(evt, pinchData) {
+        var scale = pinchData.scale;
+        var containerOrigin = this.containerOrigin;
+        var pinchOrigin = this.pinchOrigin;
+        var current = evt.xy;
+
+        var dx = Math.round((current.x - pinchOrigin.x) + (scale - 1) * (containerOrigin.x - pinchOrigin.x));
+        var dy = Math.round((current.y - pinchOrigin.y) + (scale - 1) * (containerOrigin.y - pinchOrigin.y));
+
+        this.applyTransform(
+            "translate(" + dx + "px, " + dy + "px) scale(" + scale + ")"
+        );
+        this.currentCenter = current;
+    },
+    
+    /**
+     * Method: applyTransform
+     * Applies the given transform to layers.
+     */
+    applyTransform: function(transform) {
+        var style = this.map.layerContainerDiv.style;
+        style['-webkit-transform'] = transform;
+        style['-moz-transform'] = transform;
+    },
+    
+    /**
+     * Method: pinchDone
+     *
+     * Parameters:
+     * evt - {Event}
+     * start - {Object} pinch data object related to the touchstart event that
+     *     started the pinch gesture.
+     * last - {Object} pinch data object related to the last touchmove event
+     *     of the pinch gesture. This give us the final scale of the pinch.
+     */
+    pinchDone: function(evt, start, last) {
+        this.applyTransform("");
+        var zoom = this.map.getZoomForResolution(this.map.getResolution() / last.scale, true);
+        if (zoom !== this.map.getZoom() || !this.currentCenter.equals(this.pinchOrigin)) {
+            var resolution = this.map.getResolutionForZoom(zoom);
+
+            var location = this.map.getLonLatFromPixel(this.pinchOrigin);
+            var zoomPixel = this.currentCenter;        
+            var size = this.map.getSize();
+
+            location.lon += resolution * ((size.w / 2) - zoomPixel.x);
+            location.lat -= resolution * ((size.h / 2) - zoomPixel.y);
+
+            this.map.setCenter(location, zoom);
+        }
+    },
+
+    CLASS_NAME: "OpenLayers.Control.PinchZoom"
+
+});
diff --git a/lib/OpenLayers/Control/SLDSelect.js b/lib/OpenLayers/Control/SLDSelect.js
index d0667a2..7bb7574 100644
--- a/lib/OpenLayers/Control/SLDSelect.js
+++ b/lib/OpenLayers/Control/SLDSelect.js
@@ -1,16 +1,17 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
  * @requires OpenLayers/Control.js
- * @requires OpenLayers/Layer/WMS/Post.js
+ * @requires OpenLayers/Layer/WMS.js
  * @requires OpenLayers/Handler/RegularPolygon.js
  * @requires OpenLayers/Handler/Polygon.js
  * @requires OpenLayers/Handler/Path.js
  * @requires OpenLayers/Handler/Click.js
  * @requires OpenLayers/Filter/Spatial.js
+ * @requires OpenLayers/Format/SLD/v1_0_0.js
  */
 
 /**
@@ -119,7 +120,7 @@ OpenLayers.Control.SLDSelect = OpenLayers.Class(OpenLayers.Control, {
      * APIProperty: layerCache
      * {Object} Cache to use for storing references to the selection layers.
      *     Normally each source layer will have exactly 1 selection layer of
-     *     type OpenLayers.Layer.WMS.Post. If not provided, layers will
+     *     type OpenLayers.Layer.WMS. If not provided, layers will
      *     be cached on the prototype. Note that if <clearOnDeactivate> is
      *     true, the layer will no longer be cached after deactivating the
      *     control.
@@ -158,7 +159,8 @@ OpenLayers.Control.SLDSelect = OpenLayers.Class(OpenLayers.Control, {
             click: this.select}, this.callbacks);
         this.handlerOptions = this.handlerOptions || {};
         this.layerOptions = OpenLayers.Util.applyDefaults(this.layerOptions, {
-            displayInLayerSwitcher: false
+            displayInLayerSwitcher: false,
+            tileOptions: {maxGetUrlLength: 2048}
         });
         if (this.sketchStyle) {
             this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
@@ -207,14 +209,14 @@ OpenLayers.Control.SLDSelect = OpenLayers.Class(OpenLayers.Control, {
      *     is performed.
      *
      * Returns:
-     * {<OpenLayers.Layer.WMS.Post>} A WMS Post layer since SLD selections can
-     *     easily get quite long.
+     * {<OpenLayers.Layer.WMS>} A WMS layer with maxGetUrlLength configured to 2048
+     *     since SLD selections can easily get quite long.
      */
     createSelectionLayer: function(source) {
         // check if we already have a selection layer for the source layer
         var selectionLayer;
         if (!this.layerCache[source.id]) {
-            selectionLayer = new OpenLayers.Layer.WMS.Post(source.name, 
+            selectionLayer = new OpenLayers.Layer.WMS(source.name, 
                 source.url, source.params, 
                 OpenLayers.Util.applyDefaults(
                     this.layerOptions,
@@ -271,7 +273,7 @@ OpenLayers.Control.SLDSelect = OpenLayers.Class(OpenLayers.Control, {
                     maxScaleDenominator: layer.options.minScale})
             ]});
         }
-        return new OpenLayers.Format.SLD().write(sld);
+        return new OpenLayers.Format.SLD({srsName: this.map.getProjection()}).write(sld);
     },
 
     /**
@@ -567,4 +569,4 @@ OpenLayers.Control.SLDSelect = OpenLayers.Class(OpenLayers.Control, {
     },
 
     CLASS_NAME: "OpenLayers.Control.SLDSelect"
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Control/Scale.js b/lib/OpenLayers/Control/Scale.js
index 9a2f89a..9eae15f 100644
--- a/lib/OpenLayers/Control/Scale.js
+++ b/lib/OpenLayers/Control/Scale.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 
 /**
  * @requires OpenLayers/Control.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -91,7 +92,7 @@ OpenLayers.Control.Scale = OpenLayers.Class(OpenLayers.Control, {
             scale = Math.round(scale);
         }    
         
-        this.element.innerHTML = OpenLayers.i18n("scale", {'scaleDenom':scale});
+        this.element.innerHTML = OpenLayers.i18n("Scale = 1 : ${scaleDenom}", {'scaleDenom':scale});
     }, 
 
     CLASS_NAME: "OpenLayers.Control.Scale"
diff --git a/lib/OpenLayers/Control/ScaleLine.js b/lib/OpenLayers/Control/ScaleLine.js
index fa8f03e..cdb52a8 100644
--- a/lib/OpenLayers/Control/ScaleLine.js
+++ b/lib/OpenLayers/Control/ScaleLine.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -80,9 +80,6 @@ OpenLayers.Control.ScaleLine = OpenLayers.Class(OpenLayers.Control, {
      * options - {Object} An optional object whose properties will be used
      *     to extend the control.
      */
-    initialize: function(options) {
-        OpenLayers.Control.prototype.initialize.apply(this, [options]);     
-    },
 
     /**
      * Method: draw
diff --git a/lib/OpenLayers/Control/SelectFeature.js b/lib/OpenLayers/Control/SelectFeature.js
index dd7ff70..5d2dc93 100644
--- a/lib/OpenLayers/Control/SelectFeature.js
+++ b/lib/OpenLayers/Control/SelectFeature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -74,9 +74,9 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
 
     /**
      * APIProperty: highlightOnly
-     * {Boolean} If true do not actually select features (i.e. place them in the
-     * layer's selected features array), just highlight them. This property has
-     * no effect if hover is false. Defaults to false.
+     * {Boolean} If true do not actually select features (that is place them in 
+     * the layer's selected features array), just highlight them. This property
+     * has no effect if hover is false. Defaults to false.
      */
     highlightOnly: false,
     
@@ -132,7 +132,7 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
     
     /**
      * Property: layers
-     * {Array(<OpenLayers.Layer.Vector>} The layers this control will work on,
+     * {Array(<OpenLayers.Layer.Vector>)} The layers this control will work on,
      * or null if the control was configured with a single layer
      */
     layers: null,
@@ -218,7 +218,7 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
      * layers - {<OpenLayers.Layer.Vector>}, or an array of vector layers.
      */
     initLayer: function(layers) {
-        if(layers instanceof Array) {
+        if(OpenLayers.Util.isArray(layers)) {
             this.layers = layers;
             this.layer = new OpenLayers.Layer.Vector.RootContainer(
                 this.id + "_container", {
@@ -463,8 +463,23 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
      */
     unhighlight: function(feature) {
         var layer = feature.layer;
-        feature._lastHighlighter = feature._prevHighlighter;
-        delete feature._prevHighlighter;
+        // three cases:
+        // 1. there's no other highlighter, in that case _prev is undefined,
+        //    and we just need to undef _last
+        // 2. another control highlighted the feature after we did it, in
+        //    that case _last references this other control, and we just
+        //    need to undef _prev
+        // 3. another control highlighted the feature before we did it, in
+        //    that case _prev references this other control, and we need to
+        //    set _last to _prev and undef _prev
+        if(feature._prevHighlighter == undefined) {
+            delete feature._lastHighlighter;
+        } else if(feature._prevHighlighter == this.id) {
+            delete feature._prevHighlighter;
+        } else {
+            feature._lastHighlighter = feature._prevHighlighter;
+            delete feature._prevHighlighter;
+        }
         layer.drawFeature(feature, feature.style || feature.layer.style ||
             "default");
         this.events.triggerEvent("featureunhighlighted", {feature : feature});
diff --git a/lib/OpenLayers/Control/Snapping.js b/lib/OpenLayers/Control/Snapping.js
index 3d15539..ee58a9e 100644
--- a/lib/OpenLayers/Control/Snapping.js
+++ b/lib/OpenLayers/Control/Snapping.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -165,6 +165,14 @@ OpenLayers.Control.Snapping = OpenLayers.Class(OpenLayers.Control, {
      * filter - {OpenLayers.Filter} Optional filter to evaluate to determine if
      *     feature is eligible for snapping.  If filter evaluates to true for a
      *     target feature a vertex may be snapped to the feature. 
+     * minResolution - {Number} If a minResolution is provided, snapping to this
+     *     target will only be considered if the map resolution is greater than
+     *     or equal to this value (the minResolution is inclusive).  Default is
+     *     no minimum resolution limit.
+     * maxResolution - {Number} If a maxResolution is provided, snapping to this
+     *     target will only be considered if the map resolution is strictly
+     *     less than this value (the maxResolution is exclusive).  Default is
+     *     no maximum resolution limit.
      */
     initialize: function(options) {
         // concatenate events specific to measure with those from the base
@@ -364,7 +372,7 @@ OpenLayers.Control.Snapping = OpenLayers.Class(OpenLayers.Control, {
      * Method: considerSnapping
      *
      * Parameters:
-     * point - {<OpenLayers.Geometry.Point}} The vertex to be snapped (or
+     * point - {<OpenLayers.Geometry.Point>} The vertex to be snapped (or
      *     unsnapped).
      * loc - {<OpenLayers.Geometry.Point>} The location of the mouse in map
      *     coords.
@@ -436,10 +444,21 @@ OpenLayers.Control.Snapping = OpenLayers.Class(OpenLayers.Control, {
      *     Returns null if candidate is not eligible for snapping.
      */
     testTarget: function(target, loc) {
+        var resolution = this.layer.map.getResolution();
+        if ("minResolution" in target) {
+            if (resolution < target.minResolution) {
+                return null;
+            }
+        }
+        if ("maxResolution" in target) {
+            if (resolution >= target.maxResolution) {
+                return null;
+            }
+        }
         var tolerance = {
-            node: this.getGeoTolerance(target.nodeTolerance),
-            vertex: this.getGeoTolerance(target.vertexTolerance),
-            edge: this.getGeoTolerance(target.edgeTolerance)
+            node: this.getGeoTolerance(target.nodeTolerance, resolution),
+            vertex: this.getGeoTolerance(target.vertexTolerance, resolution),
+            edge: this.getGeoTolerance(target.edgeTolerance, resolution)
         };
         // this could be cached if we don't support setting tolerance values directly
         var maxTolerance = Math.max(
@@ -512,12 +531,12 @@ OpenLayers.Control.Snapping = OpenLayers.Class(OpenLayers.Control, {
      *     
      * Parameters:
      * tolerance - {Number} A tolerance value in pixels.
+     * resolution - {Number} Map resolution.
      *
      * Returns:
      * {Number} A tolerance value in map units.
      */
-    getGeoTolerance: function(tolerance) {
-        var resolution = this.layer.map.getResolution();
+    getGeoTolerance: function(tolerance, resolution) {
         if(resolution !== this.resolution) {
             this.resolution = resolution;
             this.geoToleranceCache = {};
diff --git a/lib/OpenLayers/Control/Split.js b/lib/OpenLayers/Control/Split.js
index 6750651..3dd823c 100644
--- a/lib/OpenLayers/Control/Split.js
+++ b/lib/OpenLayers/Control/Split.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -297,7 +297,7 @@ OpenLayers.Control.Split = OpenLayers.Class(OpenLayers.Control, {
      * Remove a feature from a list based on the given geometry.
      *
      * Parameters:
-     * features - {Array(<OpenLayers.Feature.Vector>} A list of features.
+     * features - {Array(<OpenLayers.Feature.Vector>)} A list of features.
      * geometry - {<OpenLayers.Geometry>} A geometry.
      */
     removeByGeometry: function(features, geometry) {
@@ -340,7 +340,7 @@ OpenLayers.Control.Split = OpenLayers.Class(OpenLayers.Control, {
      *     will be split if eligible.
      *
      * Parameters:
-     * feature - {<OpenLayers.Feature.Vector}} The newly created or modified
+     * feature - {<OpenLayers.Feature.Vector>} The newly created or modified
      *     feature.
      *
      * Returns:
diff --git a/lib/OpenLayers/Control/TouchNavigation.js b/lib/OpenLayers/Control/TouchNavigation.js
new file mode 100644
index 0000000..ab4ca49
--- /dev/null
+++ b/lib/OpenLayers/Control/TouchNavigation.js
@@ -0,0 +1,183 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the Clear BSD license.
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Control/DragPan.js
+ * @requires OpenLayers/Control/PinchZoom.js
+ * @requires OpenLayers/Handler/Click.js
+ */
+
+/**
+ * Class: OpenLayers.Control.TouchNavigation
+ * The navigation control handles map browsing with touch events (dragging,
+ *     double-tapping, tap with two fingers, and pinch zoom).  Create a new 
+ *     control with the <OpenLayers.Control.TouchNavigation> constructor.
+ *
+ * If you’re only targeting touch enabled devices with your mapping application,
+ *     you can create a map with only a TouchNavigation control. The 
+ *     <OpenLayers.Control.Navigation> control is mobile ready by default, but 
+ *     you can generate a smaller build of the library by only including this
+ *     touch navigation control if you aren't concerned about mouse interaction.
+ *
+ * Inherits:
+ *  - <OpenLayers.Control>
+ */
+OpenLayers.Control.TouchNavigation = OpenLayers.Class(OpenLayers.Control, {
+
+    /**
+     * Property: dragPan
+     * {<OpenLayers.Control.DragPan>}
+     */
+    dragPan: null,
+
+    /**
+     * APIProperty: dragPanOptions
+     * {Object} Options passed to the DragPan control.
+     */
+    dragPanOptions: null,
+
+    /**
+     * Property: pinchZoom
+     * {<OpenLayers.Control.PinchZoom>}
+     */
+    pinchZoom: null,
+
+    /**
+     * APIProperty: pinchZoomOptions
+     * {Object} Options passed to the PinchZoom control.
+     */
+    pinchZoomOptions: null,
+
+    /**
+     * APIProperty: clickHandlerOptions
+     * {Object} Options passed to the Click handler.
+     */
+    clickHandlerOptions: null,
+
+    /**
+     * APIProperty: documentDrag
+     * {Boolean} Allow panning of the map by dragging outside map viewport.
+     *     Default is false.
+     */
+    documentDrag: false,
+
+    /**
+     * APIProperty: autoActivate
+     * {Boolean} Activate the control when it is added to a map.  Default is
+     *     true.
+     */
+    autoActivate: true,
+
+    /**
+     * Constructor: OpenLayers.Control.TouchNavigation
+     * Create a new navigation control
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *                    the control
+     */
+    initialize: function(options) {
+        this.handlers = {};
+        OpenLayers.Control.prototype.initialize.apply(this, arguments);
+    },
+
+    /**
+     * Method: destroy
+     * The destroy method is used to perform any clean up before the control
+     * is dereferenced.  Typically this is where event listeners are removed
+     * to prevent memory leaks.
+     */
+    destroy: function() {
+        this.deactivate();
+        if(this.dragPan) {
+            this.dragPan.destroy();
+        }
+        this.dragPan = null;
+        if (this.pinchZoom) {
+            this.pinchZoom.destroy();
+            delete this.pinchZoom;
+        }
+        OpenLayers.Control.prototype.destroy.apply(this,arguments);
+    },
+
+    /**
+     * Method: activate
+     */
+    activate: function() {
+        if(OpenLayers.Control.prototype.activate.apply(this,arguments)) {
+            this.dragPan.activate();
+            this.handlers.click.activate();
+            this.pinchZoom.activate();
+            return true;
+        }
+        return false;
+    },
+
+    /**
+     * Method: deactivate
+     */
+    deactivate: function() {
+        if(OpenLayers.Control.prototype.deactivate.apply(this,arguments)) {
+            this.dragPan.deactivate();
+            this.handlers.click.deactivate();
+            this.pinchZoom.deactivate();
+            return true;
+        }
+        return false;
+    },
+    
+    /**
+     * Method: draw
+     */
+    draw: function() {
+        var clickCallbacks = {
+            click: this.defaultClick,
+            dblclick: this.defaultDblClick
+        };
+        var clickOptions = OpenLayers.Util.extend({
+            "double": true,
+            stopDouble: true,
+            pixelTolerance: 2
+        }, this.clickHandlerOptions);
+        this.handlers.click = new OpenLayers.Handler.Click(
+            this, clickCallbacks, clickOptions
+        );
+        this.dragPan = new OpenLayers.Control.DragPan(
+            OpenLayers.Util.extend({
+                map: this.map,
+                documentDrag: this.documentDrag
+            }, this.dragPanOptions)
+        );
+        this.dragPan.draw();
+        this.pinchZoom = new OpenLayers.Control.PinchZoom(
+            OpenLayers.Util.extend({map: this.map}, this.pinchZoomOptions)
+        );
+    },
+
+    /**
+     * Method: defaultClick
+     *
+     * Parameters:
+     * evt - {Event}
+     */
+    defaultClick: function (evt) {
+        if(evt.lastTouches && evt.lastTouches.length == 2) {
+            this.map.zoomOut();
+        }
+    },
+
+    /**
+     * Method: defaultDblClick
+     *
+     * Parameters:
+     * evt - {Event}
+     */
+    defaultDblClick: function (evt) {
+        var newCenter = this.map.getLonLatFromViewPortPx(evt.xy);
+        this.map.setCenter(newCenter, this.map.zoom + 1);
+    },
+
+    CLASS_NAME: "OpenLayers.Control.TouchNavigation"
+});
diff --git a/lib/OpenLayers/Control/TransformFeature.js b/lib/OpenLayers/Control/TransformFeature.js
index f5a55ac..42faff7 100644
--- a/lib/OpenLayers/Control/TransformFeature.js
+++ b/lib/OpenLayers/Control/TransformFeature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -232,6 +232,9 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, {
             this.dragControl.deactivate();
             deactivated = true;
         }
+        if (deactivated) {
+        	this.unsetFeature();
+        }
         return deactivated;
     },
     
@@ -265,13 +268,15 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, {
             scale: 1,
             ratio: 1
         });
-        var evt = {feature: feature};
-        
+
         var oldRotation = this.rotation;
         var oldCenter = this.center;
         OpenLayers.Util.extend(this, initialParams);
 
-        if(this.events.triggerEvent("beforesetfeature", evt) === false) {
+        var cont = this.events.triggerEvent("beforesetfeature",
+            {feature: feature}
+        );
+        if (cont === false) {
             return;
         }
 
@@ -303,7 +308,23 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, {
         
         delete this._setfeature;
 
-        this.events.triggerEvent("setfeature", evt);
+        this.events.triggerEvent("setfeature", {feature: feature});
+    },
+    
+    /**
+     * APIMethod: unsetFeature
+     * Remove the transformation box off any feature.
+     * If the control is active, it will be deactivated first.
+     */
+    unsetFeature: function() {
+    	if (this.active) {
+    		this.deactivate();
+    	} else {
+	    	this.feature = null;
+	    	this.rotation = 0;
+	    	this.scale = 1;
+	    	this.ratio = 1;
+    	}
     },
     
     /**
diff --git a/lib/OpenLayers/Control/WMSGetFeatureInfo.js b/lib/OpenLayers/Control/WMSGetFeatureInfo.js
index 3573274..f0a2188 100644
--- a/lib/OpenLayers/Control/WMSGetFeatureInfo.js
+++ b/lib/OpenLayers/Control/WMSGetFeatureInfo.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -55,6 +55,14 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
      */
     clickCallback: "click",
     
+    /** APIProperty: output
+     *  {String} Either "features" or "object". When triggering a 
+     *      getfeatureinfo request should we pass on an array of features
+     *      or an object with with a "features" property and other properties
+     *      (such as the url of the WMS). Default is "features".
+     */
+    output: "features",
+    
     /**
      * Property: layers
      * {Array(<OpenLayers.Layer.WMS>)} The layers to query for feature info.
@@ -88,7 +96,10 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
 
     /**
      * Property: infoFormat
-     * {String} The mimetype to request from the server
+     * {String} The mimetype to request from the server. If you are using 
+     * drillDown mode and have multiple servers that do not share a common 
+     * infoFormat, you can override the control's infoFormat by providing an 
+     * INFO_FORMAT parameter in your <OpenLayers.Layer.WMS> instance(s).
      */
     infoFormat: 'text/html',
     
@@ -289,7 +300,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
             layer = candidates[i];
             if(layer instanceof OpenLayers.Layer.WMS &&
                (!this.queryVisible || layer.getVisibility())) {
-                url = layer.url instanceof Array ? layer.url[0] : layer.url;
+                url = OpenLayers.Util.isArray(layer.url) ? layer.url[0] : layer.url;
                 // if the control was not configured with a url, set it
                 // to the first layer url
                 if(this.drillDown === false && !this.url) {
@@ -345,30 +356,38 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
             layerNames = layerNames.concat(layers[i].params.LAYERS);
             styleNames = styleNames.concat(this.getStyleNames(layers[i]));
         }
+        var firstLayer = layers[0];
+        // use the firstLayer's projection if it matches the map projection -
+        // this assumes that all layers will be available in this projection
+        var projection = this.map.getProjection();
+        var layerProj = firstLayer.projection;
+        if (layerProj && layerProj.equals(this.map.getProjectionObject())) {
+            projection = layerProj.getCode();
+        }
         var params = OpenLayers.Util.extend({
             service: "WMS",
-            version: layers[0].params.VERSION,
+            version: firstLayer.params.VERSION,
             request: "GetFeatureInfo",
             layers: layerNames,
             query_layers: layerNames,
             styles: styleNames,
             bbox: this.map.getExtent().toBBOX(null,
-                layers[0].reverseAxisOrder()),
+                firstLayer.reverseAxisOrder()),
             feature_count: this.maxFeatures,
             height: this.map.getSize().h,
             width: this.map.getSize().w,
             format: format,
-            info_format: this.infoFormat
-        }, (parseFloat(layers[0].params.VERSION) >= 1.3) ?
+            info_format: firstLayer.params.INFO_FORMAT || this.infoFormat
+        }, (parseFloat(firstLayer.params.VERSION) >= 1.3) ?
             {
-                crs: this.map.getProjection(),
-                i: clickPosition.x,
-                j: clickPosition.y
+                crs: projection,
+                i: parseInt(clickPosition.x),
+                j: parseInt(clickPosition.y)
             } :
             {
-                srs: this.map.getProjection(),
-                x: clickPosition.x,
-                y: clickPosition.y
+                srs: projection,
+                x: parseInt(clickPosition.x),
+                y: parseInt(clickPosition.y)
             }
         );
         OpenLayers.Util.applyDefaults(params, this.vendorParams);
@@ -376,7 +395,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
             url: url,
             params: OpenLayers.Util.upperCaseObject(params),
             callback: function(request) {
-                this.handleResponse(clickPosition, request);
+                this.handleResponse(clickPosition, request, url);
             },
             scope: this
         };
@@ -402,7 +421,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
         if (layer.params.STYLES) {
             styleNames = layer.params.STYLES;
         } else {
-            if (layer.params.LAYERS instanceof Array) {
+            if (OpenLayers.Util.isArray(layer.params.LAYERS)) {
                 styleNames = new Array(layer.params.LAYERS.length);
             } else { // Assume it's a String
                 styleNames = layer.params.LAYERS.replace(/[^,]/g, "");
@@ -450,7 +469,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
             for(var i=0, len=layers.length; i<len; i++) {
                 var layer = layers[i];
                 var service, found = false;
-                url = layer.url instanceof Array ? layer.url[0] : layer.url;
+                url = OpenLayers.Util.isArray(layer.url) ? layer.url[0] : layer.url;
                 if(url in services) {
                     services[url].push(layer);
                 } else {
@@ -476,7 +495,9 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
      * request - {XMLHttpRequest} The request object
      * xy - {<OpenLayers.Pixel>} The position on the map where the
      *     mouse event occurred.
-     * features - {Array(<OpenLayers.Feature.Vector>)}
+     * features - {Array(<OpenLayers.Feature.Vector>)} or
+     *     {Array({Object}) when output is "object". The object has a url and a
+     *     features property which contains an array of features.
      */
     triggerGetFeatureInfo: function(request, xy, features) {
         this.events.triggerEvent("getfeatureinfo", {
@@ -498,8 +519,9 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
      * xy - {<OpenLayers.Pixel>} The position on the map where the
      *     mouse event occurred.
      * request - {XMLHttpRequest} The request object.
+     * url - {String} The url which was used for this request.
      */
-    handleResponse: function(xy, request) {
+    handleResponse: function(xy, request, url) {
         
         var doc = request.responseXML;
         if(!doc || !doc.documentElement) {
@@ -510,7 +532,13 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
             this.triggerGetFeatureInfo(request, xy, features);
         } else {
             this._requestCount++;
+            if (this.output === "object") {
+                this._features = (this._features || []).concat(
+                    {url: url, features: features}
+                );
+            } else {
             this._features = (this._features || []).concat(features);
+            }
             if (this._requestCount === this._numRequests) {
                 this.triggerGetFeatureInfo(request, xy, this._features.concat()); 
                 delete this._features;
diff --git a/lib/OpenLayers/Control/WMTSGetFeatureInfo.js b/lib/OpenLayers/Control/WMTSGetFeatureInfo.js
index 851457a..ec62eea 100644
--- a/lib/OpenLayers/Control/WMTSGetFeatureInfo.js
+++ b/lib/OpenLayers/Control/WMTSGetFeatureInfo.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -213,35 +213,6 @@ OpenLayers.Control.WMTSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
     },
 
     /**
-     * Method: activate
-     * Activates the control.
-     * 
-     * Returns:
-     * {Boolean} The control was effectively activated.
-     */
-    activate: function () {
-        if (!this.active) {
-            this.handler.activate();
-        }
-        return OpenLayers.Control.prototype.activate.apply(
-            this, arguments
-        );
-    },
-
-    /**
-     * Method: deactivate
-     * Deactivates the control.
-     * 
-     * Returns:
-     * {Boolean} The control was effectively deactivated.
-     */
-    deactivate: function () {
-        return OpenLayers.Control.prototype.deactivate.apply(
-            this, arguments
-        );
-    },
-    
-    /**
      * Method: getInfoForClick 
      * Called on click
      *
@@ -328,7 +299,7 @@ OpenLayers.Control.WMTSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
         });
         OpenLayers.Util.applyDefaults(params, this.vendorParams);
         return {
-            url: layer.url instanceof Array ? layer.url[0] : layer.url,
+            url: OpenLayers.Util.isArray(layer.url) ? layer.url[0] : layer.url,
             params: OpenLayers.Util.upperCaseObject(params),
             callback: function(request) {
                 this.handleResponse(xy, request, layer);
@@ -425,18 +396,6 @@ OpenLayers.Control.WMTSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, {
             }
         }
     },
-   
-    /** 
-     * Method: setMap
-     * Set the map property for the control. 
-     * 
-     * Parameters:
-     * map - {<OpenLayers.Map>} 
-     */
-    setMap: function(map) {
-        this.handler.setMap(map);
-        OpenLayers.Control.prototype.setMap.apply(this, arguments);
-    },
 
     CLASS_NAME: "OpenLayers.Control.WMTSGetFeatureInfo"
 });
diff --git a/lib/OpenLayers/Control/ZoomBox.js b/lib/OpenLayers/Control/ZoomBox.js
index 62a48b2..9cdee91 100644
--- a/lib/OpenLayers/Control/ZoomBox.js
+++ b/lib/OpenLayers/Control/ZoomBox.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Control/ZoomIn.js b/lib/OpenLayers/Control/ZoomIn.js
index c742b44..0faaa78 100644
--- a/lib/OpenLayers/Control/ZoomIn.js
+++ b/lib/OpenLayers/Control/ZoomIn.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Control/ZoomOut.js b/lib/OpenLayers/Control/ZoomOut.js
index 1dab2d9..b4f93d0 100644
--- a/lib/OpenLayers/Control/ZoomOut.js
+++ b/lib/OpenLayers/Control/ZoomOut.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Control/ZoomPanel.js b/lib/OpenLayers/Control/ZoomPanel.js
index 099f48e..1905648 100644
--- a/lib/OpenLayers/Control/ZoomPanel.js
+++ b/lib/OpenLayers/Control/ZoomPanel.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Control/ZoomToMaxExtent.js b/lib/OpenLayers/Control/ZoomToMaxExtent.js
index cf38490..e43d4c4 100644
--- a/lib/OpenLayers/Control/ZoomToMaxExtent.js
+++ b/lib/OpenLayers/Control/ZoomToMaxExtent.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Events.js b/lib/OpenLayers/Events.js
index 588a10c..69769c3 100644
--- a/lib/OpenLayers/Events.js
+++ b/lib/OpenLayers/Events.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -91,6 +91,34 @@ OpenLayers.Event = {
     },
 
     /**
+     * Method: isSingleTouch
+     * Determine whether event was caused by a single touch
+     *
+     * Parameters:
+     * event - {Event}
+     *
+     * Returns:
+     * {Boolean}
+     */
+    isSingleTouch: function(event) {
+        return event.touches && event.touches.length == 1;
+    },
+
+    /**
+     * Method: isMultiTouch
+     * Determine whether event was caused by a multi touch
+     *
+     * Parameters:
+     * event - {Event}
+     *
+     * Returns:
+     * {Boolean}
+     */
+    isMultiTouch: function(event) {
+        return event.touches && event.touches.length > 1;
+    },
+
+    /**
      * Method: isLeftClick
      * Determine whether event was caused by a left click. 
      *
@@ -369,7 +397,8 @@ OpenLayers.Events = OpenLayers.Class({
         "mouseover", "mouseout",
         "mousedown", "mouseup", "mousemove", 
         "click", "dblclick", "rightclick", "dblrightclick",
-        "resize", "focus", "blur"
+        "resize", "focus", "blur",
+        "touchstart", "touchmove", "touchend"
     ],
 
     /** 
@@ -449,8 +478,8 @@ OpenLayers.Events = OpenLayers.Class({
      * Construct an OpenLayers.Events object.
      *
      * Parameters:
-     * object - {Object} The js object to which this Events object  is being
-     * added element - {DOMElement} A dom element to respond to browser events
+     * object - {Object} The js object to which this Events object  is being added
+     * element - {DOMElement} A dom element to respond to browser events
      * eventTypes - {Array(String)} Array of custom application events 
      * fallThrough - {Boolean} Allow events to fall through after these have
      *                         been handled?
@@ -559,7 +588,7 @@ OpenLayers.Events = OpenLayers.Class({
      * Example use:
      * (code)
      * // register a single listener for the "loadstart" event
-     * events.on({"loadstart", loadStartListener});
+     * events.on({"loadstart": loadStartListener});
      *
      * // this is equivalent to the following
      * events.register("loadstart", undefined, loadStartListener);
@@ -573,8 +602,11 @@ OpenLayers.Events = OpenLayers.Class({
      *
      * // this is equivalent to the following
      * events.register("loadstart", object, loadStartListener);
-     * events.register("loadstart", object, loadEndListener);
+     * events.register("loadend", object, loadEndListener);
      * (end)
+     *
+     * Parameters:
+     *  object - {Object}     
      */
     on: function(object) {
         for(var type in object) {
@@ -663,7 +695,7 @@ OpenLayers.Events = OpenLayers.Class({
      * Example use:
      * (code)
      * // unregister a single listener for the "loadstart" event
-     * events.un({"loadstart", loadStartListener});
+     * events.un({"loadstart": loadStartListener});
      *
      * // this is equivalent to the following
      * events.unregister("loadstart", undefined, loadStartListener);
@@ -677,7 +709,7 @@ OpenLayers.Events = OpenLayers.Class({
      *
      * // this is equivalent to the following
      * events.unregister("loadstart", object, loadStartListener);
-     * events.unregister("loadstart", object, loadEndListener);
+     * events.unregister("loadend", object, loadEndListener);
      * (end)
      */
     un: function(object) {
@@ -742,7 +774,7 @@ OpenLayers.Events = OpenLayers.Class({
 
         // fast path
         if(!listeners || listeners.length == 0) {
-            return;
+            return undefined;
         }
 
         // prep evt object with object & div references
@@ -758,7 +790,8 @@ OpenLayers.Events = OpenLayers.Class({
         // execute all callbacks registered for specified type
         // get a clone of the listeners array to
         // allow for splicing during callbacks
-        var listeners = listeners.slice(), continueChain;
+        listeners = listeners.slice();
+        var continueChain;
         for (var i=0, len=listeners.length; i<len; i++) {
             var callback = listeners[i];
             // bind the context to callback.obj
@@ -786,10 +819,30 @@ OpenLayers.Events = OpenLayers.Class({
      * evt - {Event} 
      */
     handleBrowserEvent: function (evt) {
+        var type = evt.type, listeners = this.listeners[type];
+        if(!listeners || listeners.length == 0) {
+            // noone's listening, bail out
+            return;
+        }
+        // add clientX & clientY to all events - corresponds to average x, y
+        var touches = evt.touches;
+        if (touches && touches[0]) {
+            var x = 0;
+            var y = 0;
+            var num = touches.length;
+            var touch;
+            for (var i=0; i<num; ++i) {
+                touch = touches[i];
+                x += touch.clientX;
+                y += touch.clientY;
+            }
+            evt.clientX = x / num;
+            evt.clientY = y / num;
+        }
         if (this.includeXY) {
             evt.xy = this.getMousePosition(evt);
         } 
-        this.triggerEvent(evt.type, evt);
+        this.triggerEvent(type, evt);
     },
 
     /**
@@ -801,7 +854,17 @@ OpenLayers.Events = OpenLayers.Class({
     clearMouseCache: function() { 
         this.element.scrolls = null;
         this.element.lefttop = null;
-        this.element.offsets = null;
+        // OpenLayers.Util.pagePosition needs to use
+        // element.getBoundingClientRect to correctly calculate the offsets
+        // for the iPhone, but once the page is scrolled, getBoundingClientRect
+        // returns incorrect offsets. So our best bet is to not invalidate the
+        // offsets once we have them, and hope that the page was not scrolled
+        // when we did the initial calculation.
+        var body = document.body;
+        if (body && !((body.scrollTop != 0 || body.scrollLeft != 0) &&
+                                    navigator.userAgent.match(/iPhone/i))) {
+            this.element.offsets = null;
+        }
     },      
 
     /**
@@ -823,11 +886,10 @@ OpenLayers.Events = OpenLayers.Class({
         }
         
         if (!this.element.scrolls) {
+            var viewportElement = OpenLayers.Util.getViewportElement();
             this.element.scrolls = [
-                (document.documentElement.scrollLeft
-                         || document.body.scrollLeft),
-                (document.documentElement.scrollTop
-                         || document.body.scrollTop)
+                viewportElement.scrollLeft,
+                viewportElement.scrollTop
             ];
         }
 
@@ -840,9 +902,8 @@ OpenLayers.Events = OpenLayers.Class({
         
         if (!this.element.offsets) {
             this.element.offsets = OpenLayers.Util.pagePosition(this.element);
-            this.element.offsets[0] += this.element.scrolls[0];
-            this.element.offsets[1] += this.element.scrolls[1];
         }
+
         return new OpenLayers.Pixel(
             (evt.clientX + this.element.scrolls[0]) - this.element.offsets[0]
                          - this.element.lefttop[0], 
diff --git a/lib/OpenLayers/Feature.js b/lib/OpenLayers/Feature.js
index 4da1faf..f921bc4 100644
--- a/lib/OpenLayers/Feature.js
+++ b/lib/OpenLayers/Feature.js
@@ -1,13 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
- * @requires OpenLayers/Marker.js
- * @requires OpenLayers/Popup/AnchoredBubble.js
  */
 
 /**
@@ -52,7 +51,7 @@ OpenLayers.Feature = OpenLayers.Class({
      * {<OpenLayers.Class>} The class which will be used to instantiate
      *     a new Popup. Default is <OpenLayers.Popup.AnchoredBubble>.
      */
-    popupClass: OpenLayers.Popup.AnchoredBubble,
+    popupClass: null,
 
     /** 
      * Property: popup 
@@ -186,17 +185,16 @@ OpenLayers.Feature = OpenLayers.Class({
     createPopup: function(closeBox) {
 
         if (this.lonlat != null) {
-            
-            var id = this.id + "_popup";
-            var anchor = (this.marker) ? this.marker.icon : null;
-
             if (!this.popup) {
-                this.popup = new this.popupClass(id, 
-                                                 this.lonlat,
-                                                 this.data.popupSize,
-                                                 this.data.popupContentHTML,
-                                                 anchor, 
-                                                 closeBox); 
+                var anchor = (this.marker) ? this.marker.icon : null;
+                var popupClass = this.popupClass ? 
+                    this.popupClass : OpenLayers.Popup.AnchoredBubble;
+                this.popup = new popupClass(this.id + "_popup", 
+                                            this.lonlat,
+                                            this.data.popupSize,
+                                            this.data.popupContentHTML,
+                                            anchor, 
+                                            closeBox); 
             }    
             if (this.data.overflow != null) {
                 this.popup.contentDiv.style.overflow = this.data.overflow;
diff --git a/lib/OpenLayers/Feature/Vector.js b/lib/OpenLayers/Feature/Vector.js
index 4abcf93..4aec61d 100644
--- a/lib/OpenLayers/Feature/Vector.js
+++ b/lib/OpenLayers/Feature/Vector.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -81,6 +81,42 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
      * {String} rendering intent currently being used
      */
     renderIntent: "default",
+    
+    /**
+     * APIProperty: modified
+     * {Object} An object with the originals of the geometry and attributes of
+     * the feature, if they were changed. Currently this property is only read
+     * by <OpenLayers.Format.WFST.v1>, and written by
+     * <OpenLayers.Control.ModifyFeature>, which sets the geometry property.
+     * Applications can set the originals of modified attributes in the
+     * attributes property. Note that applications have to check if this
+     * object and the attributes property is already created before using it.
+     * After a change made with ModifyFeature, this object could look like
+     *
+     * (code)
+     * {
+     *     geometry: >Object
+     * }
+     * (end)
+     *
+     * When an application has made changes to feature attributes, it could
+     * have set the attributes to something like this:
+     *
+     * (code)
+     * {
+     *     attributes: {
+     *         myAttribute: "original"
+     *     }
+     * }
+     * (end)
+     *
+     * Note that <OpenLayers.Format.WFST.v1> only checks for truthy values in
+     * *modified.geometry* and the attribute names in *modified.attributes*,
+     * but it is recommended to set the original values (and not just true) as
+     * attribute value, so applications could use this information to undo
+     * changes.
+     */
+    modified: null,
 
     /** 
      * Constructor: OpenLayers.Feature.Vector
@@ -118,6 +154,7 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
         }
             
         this.geometry = null;
+        this.modified = null;
         OpenLayers.Feature.prototype.destroy.apply(this, arguments);
     },
     
@@ -267,7 +304,7 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
 
         if(!this.layer || !this.geometry.move){
             //do nothing if no layer or immoveable geometry
-            return;
+            return undefined;
         }
 
         var pixel;
@@ -365,7 +402,7 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
  * graphicZIndex - {Number} The integer z-index value to use in rendering.
  * graphicName - {String} Named graphic to use when rendering points.  Supported values include "circle" (default),
  *     "square", "star", "x", "cross", "triangle".
- * graphicTitle - {String} Tooltip for an external graphic. Only supported in Firefox and Internet Explorer.
+ * graphicTitle - {String} Tooltip for an external graphic.
  * backgroundGraphic - {String} Url to a graphic to be used as the background under an externalGraphic.
  * backgroundGraphicZIndex - {Number} The integer z-index value to use in rendering the background graphic.
  * backgroundXOffset - {Number} The x offset (in pixels) for the background graphic.
@@ -377,16 +414,16 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
  * labelAlign - {String} Label alignment. This specifies the insertion point relative to the text. It is a string
  *     composed of two characters. The first character is for the horizontal alignment, the second for the vertical
  *     alignment. Valid values for horizontal alignment: "l"=left, "c"=center, "r"=right. Valid values for vertical
- *     alignment: "t"=top, "m"=middle, "b"=bottom. Example values: "lt", "cm", "rb". The canvas renderer does not
- *     support vertical alignment, it will always use "b".
- * labelXOffset - {Number} Pixel offset along the positive x axis for displacing the label.
- * labelYOffset - {Number} Pixel offset along the positive y axis for displacing the label.
+ *     alignment: "t"=top, "m"=middle, "b"=bottom. Example values: "lt", "cm", "rb".
+ * labelXOffset - {Number} Pixel offset along the positive x axis for displacing the label. Not supported by the canvas renderer.
+ * labelYOffset - {Number} Pixel offset along the positive y axis for displacing the label. Not supported by the canvas renderer.
  * labelSelect - {Boolean} If set to true, labels will be selectable using SelectFeature or similar controls.
  *     Default is false.
  * fontColor - {String} The font color for the label, to be provided like CSS.
  * fontOpacity - {Number} Opacity (0-1) for the label
  * fontFamily - {String} The font family for the label, to be provided like in CSS.
  * fontSize - {String} The font size for the label, to be provided like in CSS.
+ * fontStyle - {String} The font style for the label, to be provided like in CSS.
  * fontWeight - {String} The font weight for the label, to be provided like in CSS.
  * display - {String} Symbolizers will have no effect if display is set to "none".  All other values have no effect.
  */ 
diff --git a/lib/OpenLayers/Feature/WFS.js b/lib/OpenLayers/Feature/WFS.js
index 2abc352..7234e4f 100644
--- a/lib/OpenLayers/Feature/WFS.js
+++ b/lib/OpenLayers/Feature/WFS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Filter.js b/lib/OpenLayers/Filter.js
index ae81981..f222248 100644
--- a/lib/OpenLayers/Filter.js
+++ b/lib/OpenLayers/Filter.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  * @requires OpenLayers/Style.js
  */
@@ -17,7 +18,7 @@ OpenLayers.Filter = OpenLayers.Class({
     
     /** 
      * Constructor: OpenLayers.Filter
-     * This is an abstract class.  Create an instance of a filter subclass.
+     * This class represents a generic filter.
      *
      * Parameters:
      * options - {Object} Optional object whose properties will be set on the
@@ -39,8 +40,8 @@ OpenLayers.Filter = OpenLayers.Class({
 
     /**
      * APIMethod: evaluate
-     * Evaluates this filter in a specific context.  Should be implemented by
-     *     subclasses.
+     * Evaluates this filter in a specific context.  Instances or subclasses
+     * are supposed to override this method.
      * 
      * Parameters:
      * context - {Object} Context to use in evaluating the filter.  If a vector
diff --git a/lib/OpenLayers/Filter/Comparison.js b/lib/OpenLayers/Filter/Comparison.js
index cf8c0eb..a707928 100644
--- a/lib/OpenLayers/Filter/Comparison.js
+++ b/lib/OpenLayers/Filter/Comparison.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -55,7 +55,7 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
      *     elements.  This property will be serialized with those elements only
      *     if using the v1.1.0 filter format. However, when evaluating filters
      *     here, the matchCase property will always be respected (for EQUAL_TO
-     *     and NOT_EQUAL_TO).  Default is true.
+     *     and NOT_EQUAL_TO).  Default is true. 
      */
     matchCase: true,
     
@@ -90,6 +90,12 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
      */
     initialize: function(options) {
         OpenLayers.Filter.prototype.initialize.apply(this, [options]);
+        // since matchCase on PropertyIsLike is not schema compliant, we only
+        // want to use this if explicitly asked for
+        if (this.type === OpenLayers.Filter.Comparison.LIKE 
+            && options.matchCase === undefined) {
+                this.matchCase = null;
+        }
     },
 
     /**
@@ -109,9 +115,10 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
         }
         var result = false;
         var got = context[this.property];
+        var exp;
         switch(this.type) {
             case OpenLayers.Filter.Comparison.EQUAL_TO:
-                var exp = this.value;
+                exp = this.value;
                 if(!this.matchCase &&
                    typeof got == "string" && typeof exp == "string") {
                     result = (got.toUpperCase() == exp.toUpperCase());
@@ -120,7 +127,7 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
                 }
                 break;
             case OpenLayers.Filter.Comparison.NOT_EQUAL_TO:
-                var exp = this.value;
+                exp = this.value;
                 if(!this.matchCase &&
                    typeof got == "string" && typeof exp == "string") {
                     result = (got.toUpperCase() != exp.toUpperCase());
diff --git a/lib/OpenLayers/Filter/FeatureId.js b/lib/OpenLayers/Filter/FeatureId.js
index b45c4a0..3c755ef 100644
--- a/lib/OpenLayers/Filter/FeatureId.js
+++ b/lib/OpenLayers/Filter/FeatureId.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -26,6 +26,12 @@ OpenLayers.Filter.FeatureId = OpenLayers.Class(OpenLayers.Filter, {
     fids: null,
     
     /** 
+     * Property: type
+     * {String} Type to identify this filter.
+     */
+    type: "FID",
+    
+    /** 
      * Constructor: OpenLayers.Filter.FeatureId
      * Creates an ogc:FeatureId rule.
      *
diff --git a/lib/OpenLayers/Filter/Function.js b/lib/OpenLayers/Filter/Function.js
new file mode 100644
index 0000000..34cbc7c
--- /dev/null
+++ b/lib/OpenLayers/Filter/Function.js
@@ -0,0 +1,52 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Filter.js
+ */
+
+/**
+ * Class: OpenLayers.Filter.Function
+ * This class represents a filter function.
+ * We are using this class for creation of complex 
+ * filters that can contain filter functions as values.
+ * Nesting function as other functions parameter is supported.
+ * 
+ * Inherits from
+ * - <OpenLayers.Filter>
+ */
+OpenLayers.Filter.Function = OpenLayers.Class(OpenLayers.Filter, {
+
+    /**
+     * APIProperty: name
+     * {String} Name of the function.
+     */
+    name: null,
+    
+    /**
+     * APIProperty: params
+     * {Array(<OpenLayers.Filter.Function> || String || Number)} Function parameters
+     * For now support only other Functions, String or Number
+     */
+    params: null,  
+    
+    /** 
+     * Constructor: OpenLayers.Filter.Function
+     * Creates a filter function.
+     *
+     * Parameters:
+     * options - {Object} An optional object with properties to set on the
+     *     function.
+     * 
+     * Returns:
+     * {<OpenLayers.Filter.Function>}
+     */
+    initialize: function(options) {
+        OpenLayers.Filter.prototype.initialize.apply(this, [options]);
+    },
+
+    CLASS_NAME: "OpenLayers.Filter.Function"
+});
+
diff --git a/lib/OpenLayers/Filter/Logical.js b/lib/OpenLayers/Filter/Logical.js
index 71e5bfc..85bc845 100644
--- a/lib/OpenLayers/Filter/Logical.js
+++ b/lib/OpenLayers/Filter/Logical.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -70,9 +70,10 @@ OpenLayers.Filter.Logical = OpenLayers.Class(OpenLayers.Filter, {
      * {Boolean} The filter applies.
      */
     evaluate: function(context) {
+        var i, len;
         switch(this.type) {
             case OpenLayers.Filter.Logical.AND:
-                for (var i=0, len=this.filters.length; i<len; i++) {
+                for (i=0, len=this.filters.length; i<len; i++) {
                     if (this.filters[i].evaluate(context) == false) {
                         return false;
                     }
@@ -80,7 +81,7 @@ OpenLayers.Filter.Logical = OpenLayers.Class(OpenLayers.Filter, {
                 return true;
                 
             case OpenLayers.Filter.Logical.OR:
-                for (var i=0, len=this.filters.length; i<len; i++) {
+                for (i=0, len=this.filters.length; i<len; i++) {
                     if (this.filters[i].evaluate(context) == true) {
                         return true;
                     }
@@ -90,6 +91,7 @@ OpenLayers.Filter.Logical = OpenLayers.Class(OpenLayers.Filter, {
             case OpenLayers.Filter.Logical.NOT:
                 return (!this.filters[0].evaluate(context));
         }
+        return undefined;
     },
     
     /**
diff --git a/lib/OpenLayers/Filter/Spatial.js b/lib/OpenLayers/Filter/Spatial.js
index 11f86d7..745ce85 100644
--- a/lib/OpenLayers/Filter/Spatial.js
+++ b/lib/OpenLayers/Filter/Spatial.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 /**
  * @requires OpenLayers/Filter.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Format.js b/lib/OpenLayers/Format.js
index 751584f..514e8df 100644
--- a/lib/OpenLayers/Format.js
+++ b/lib/OpenLayers/Format.js
@@ -1,11 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Format/ArcXML.js b/lib/OpenLayers/Format/ArcXML.js
index 7111422..bd27eab 100644
--- a/lib/OpenLayers/Format/ArcXML.js
+++ b/lib/OpenLayers/Format/ArcXML.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -496,7 +496,7 @@ OpenLayers.Format.ArcXML = OpenLayers.Class(OpenLayers.Format.XML, {
     
     
     addRenderer: function(topRelem, renderer) {
-        if (renderer instanceof Array) {
+        if (OpenLayers.Util.isArray(renderer)) {
             this.addGroupRenderer(topRelem, renderer);
         } else {
             var renderElem = this.createElementNS("", renderer.type.toUpperCase() + "RENDERER");
diff --git a/lib/OpenLayers/Format/ArcXML/Features.js b/lib/OpenLayers/Format/ArcXML/Features.js
index 9809f93..831b72e 100644
--- a/lib/OpenLayers/Format/ArcXML/Features.js
+++ b/lib/OpenLayers/Format/ArcXML/Features.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/Atom.js b/lib/OpenLayers/Format/Atom.js
index 63b3f61..9dec303 100644
--- a/lib/OpenLayers/Format/Atom.js
+++ b/lib/OpenLayers/Format/Atom.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -67,9 +67,6 @@ OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
     
     /**
      * APIMethod: read
@@ -102,7 +99,7 @@ OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
      */
     write: function(features) {
         var doc;
-        if (features instanceof Array) {
+        if (OpenLayers.Util.isArray(features)) {
             doc = this.createElementNSPlus("atom:feed");
             doc.appendChild(
                 this.createElementNSPlus("atom:title", {
@@ -186,7 +183,7 @@ OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
         
         // atom:author
         if (atomAttrib.authors) {
-            var authors = atomAttrib.authors instanceof Array ?
+            var authors = OpenLayers.Util.isArray(atomAttrib.authors) ?
                 atomAttrib.authors : [atomAttrib.authors];
             for (var i=0, ii=authors.length; i<ii; i++) {
                 entryNode.appendChild(
@@ -199,7 +196,7 @@ OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
         
         // atom:category
         if (atomAttrib.categories) {
-            var categories = atomAttrib.categories instanceof Array ?
+            var categories = OpenLayers.Util.isArray(atomAttrib.categories) ?
                 atomAttrib.categories : [atomAttrib.categories];
             var category;
             for (var i=0, ii=categories.length; i<ii; i++) {
@@ -223,7 +220,7 @@ OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
         
         // atom:contributor
         if (atomAttrib.contributors) {
-            var contributors = atomAttrib.contributors instanceof Array ?
+            var contributors = OpenLayers.Util.isArray(atomAttrib.contributors) ?
                 atomAttrib.contributors : [atomAttrib.contributors];
             for (var i=0, ii=contributors.length; i<ii; i++) {
                 entryNode.appendChild(
@@ -246,7 +243,7 @@ OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
         
         // atom:link
         if (atomAttrib.links) {
-            var links = atomAttrib.links instanceof Array ?
+            var links = OpenLayers.Util.isArray(atomAttrib.links) ?
                 atomAttrib.links : [atomAttrib.links];
             var link;
             for (var i=0, ii=links.length; i<ii; i++) {
diff --git a/lib/OpenLayers/Format/CQL.js b/lib/OpenLayers/Format/CQL.js
new file mode 100644
index 0000000..e030eb4
--- /dev/null
+++ b/lib/OpenLayers/Format/CQL.js
@@ -0,0 +1,438 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/WKT.js
+ */
+
+/**
+ * Class: OpenLayers.Format.CQL
+ * Read CQL strings to get <OpenLayers.Filter> objects.  Write 
+ *     <OpenLayers.Filter> objects to get CQL strings. Create a new parser with 
+ *     the <OpenLayers.Format.CQL> constructor.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format>
+ */
+OpenLayers.Format.CQL = (function() {
+    
+    var tokens = [
+        "PROPERTY", "COMPARISON", "VALUE", "LOGICAL"
+    ],
+
+    patterns = {
+        PROPERTY: /^[_a-zA-Z]\w*/,
+        COMPARISON: /^(=|<>|<=|<|>=|>|LIKE)/i,
+        COMMA: /^,/,
+        LOGICAL: /^(AND|OR)/i,
+        VALUE: /^('\w+'|\d+(\.\d*)?|\.\d+)/,
+        LPAREN: /^\(/,
+        RPAREN: /^\)/,
+        SPATIAL: /^(BBOX|INTERSECTS|DWITHIN|WITHIN|CONTAINS)/i,
+        NOT: /^NOT/i,
+        BETWEEN: /^BETWEEN/i,
+        GEOMETRY: function(text) {
+            var type = /^(POINT|LINESTRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)/.exec(text);
+            if (type) {
+                var len = text.length;
+                var idx = text.indexOf("(", type[0].length);
+                if (idx > -1) {
+                    var depth = 1;
+                    while (idx < len && depth > 0) {
+                        idx++;
+                        switch(text.charAt(idx)) {
+                            case '(':
+                                depth++;
+                                break;
+                            case ')':
+                                depth--;
+                                break;
+                            default:
+                                // in default case, do nothing
+                        }
+                    }
+                }
+                return [text.substr(0, idx+1)];
+            }
+        },
+        END: /^$/
+    },
+
+    follows = {
+        LPAREN: ['GEOMETRY', 'SPATIAL', 'PROPERTY', 'VALUE', 'LPAREN'],
+        RPAREN: ['NOT', 'LOGICAL', 'END', 'RPAREN'],
+        PROPERTY: ['COMPARISON', 'BETWEEN', 'COMMA'],
+        BETWEEN: ['VALUE'],
+        COMPARISON: ['VALUE'],
+        COMMA: ['GEOMETRY', 'VALUE', 'PROPERTY'],
+        VALUE: ['LOGICAL', 'COMMA', 'RPAREN', 'END'],
+        SPATIAL: ['LPAREN'],
+        LOGICAL: ['NOT', 'VALUE', 'SPATIAL', 'PROPERTY', 'LPAREN'],
+        NOT: ['PROPERTY', 'LPAREN'],
+        GEOMETRY: ['COMMA', 'RPAREN']
+    },
+
+    operators = {
+        '=': OpenLayers.Filter.Comparison.EQUAL_TO,
+        '<>': OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
+        '<': OpenLayers.Filter.Comparison.LESS_THAN,
+        '<=': OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
+        '>': OpenLayers.Filter.Comparison.GREATER_THAN,
+        '>=': OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+        'LIKE': OpenLayers.Filter.Comparison.LIKE,
+        'BETWEEN': OpenLayers.Filter.Comparison.BETWEEN
+    },
+
+    operatorReverse = {},
+
+    logicals = {
+        'AND': OpenLayers.Filter.Logical.AND,
+        'OR': OpenLayers.Filter.Logical.OR
+    },
+
+    logicalReverse = {},
+
+    precedence = {
+        'RPAREN': 3,
+        'LOGICAL': 2,
+        'COMPARISON': 1
+    };
+
+    var i;
+    for (i in operators) {
+        if (operators.hasOwnProperty(i)) {
+            operatorReverse[operators[i]] = i;
+        }
+    }
+
+    for (i in logicals) {
+        if (logicals.hasOwnProperty(i)) {
+            logicalReverse[logicals[i]] = i;
+        }
+    }
+
+    function tryToken(text, pattern) {
+        if (pattern instanceof RegExp) {
+            return pattern.exec(text);
+        } else {
+            return pattern(text);
+        }
+    }
+
+    function nextToken(text, tokens) {
+        var i, token, len = tokens.length;
+        for (i=0; i<len; i++) {
+            token = tokens[i];
+            var pat = patterns[token];
+            var matches = tryToken(text, pat);
+            if (matches) {
+                var match = matches[0];
+                var remainder = text.substr(match.length).replace(/^\s*/, "");
+                return {
+                    type: token,
+                    text: match,
+                    remainder: remainder
+                };
+            }
+        }
+
+        var msg = "ERROR: In parsing: [" + text + "], expected one of: ";
+        for (i=0; i<len; i++) {
+            token = tokens[i];
+            msg += "\n    " + token + ": " + patterns[token];
+        }
+
+        throw new Error(msg);
+    }
+
+    function tokenize(text) {
+        var results = [];
+        var token, expect = ["NOT", "GEOMETRY", "SPATIAL", "PROPERTY", "LPAREN"];
+
+        do {
+            token = nextToken(text, expect);
+            text = token.remainder;
+            expect = follows[token.type];
+            if (token.type != "END" && !expect) {
+                throw new Error("No follows list for " + token.type);
+            }
+            results.push(token);
+        } while (token.type != "END");
+
+        return results;
+    }
+
+    function buildAst(tokens) {
+        var operatorStack = [],
+            postfix = [];
+
+        while (tokens.length) {
+            var tok = tokens.shift();
+            switch (tok.type) {
+                case "PROPERTY":
+                case "GEOMETRY":
+                case "VALUE":
+                    postfix.push(tok);
+                    break;
+                case "COMPARISON":
+                case "BETWEEN":
+                case "LOGICAL":
+                    var p = precedence[tok.type];
+
+                    while (operatorStack.length > 0 &&
+                        (precedence[operatorStack[operatorStack.length - 1].type] <= p)
+                    ) {
+                        postfix.push(operatorStack.pop());
+                    }
+
+                    operatorStack.push(tok);
+                    break;
+                case "SPATIAL":
+                case "NOT":
+                case "LPAREN":
+                    operatorStack.push(tok);
+                    break;
+                case "RPAREN":
+                    while (operatorStack.length > 0 &&
+                        (operatorStack[operatorStack.length - 1].type != "LPAREN")
+                    ) {
+                        postfix.push(operatorStack.pop());
+                    }
+                    operatorStack.pop(); // toss out the LPAREN
+
+                    if (operatorStack.length > 0 &&
+                        operatorStack[operatorStack.length-1].type == "SPATIAL") {
+                        postfix.push(operatorStack.pop());
+                    }
+                case "COMMA":
+                case "END":
+                    break;
+                default:
+                    throw new Error("Unknown token type " + tok.type);
+            }
+        }
+
+        while (operatorStack.length > 0) {
+            postfix.push(operatorStack.pop());
+        }
+
+        function buildTree() {
+            var tok = postfix.pop();
+            switch (tok.type) {
+                case "LOGICAL":
+                    var rhs = buildTree(),
+                        lhs = buildTree();
+                    return new OpenLayers.Filter.Logical({
+                        filters: [lhs, rhs],
+                        type: logicals[tok.text.toUpperCase()]
+                    });
+                case "NOT":
+                    var operand = buildTree();
+                    return new OpenLayers.Filter.Logical({
+                        filters: [operand],
+                        type: OpenLayers.Filter.Logical.NOT
+                    });
+                case "BETWEEN":
+                    var min, max, property;
+                    postfix.pop(); // unneeded AND token here
+                    max = buildTree();
+                    min = buildTree();
+                    property = buildTree();
+                    return new OpenLayers.Filter.Comparison({
+                        property: property,
+                        lowerBoundary: min,
+                        upperBoundary: max,
+                        type: OpenLayers.Filter.Comparison.BETWEEN
+                    });
+                case "COMPARISON":
+                    var value = buildTree(),
+                        property = buildTree();
+                    return new OpenLayers.Filter.Comparison({
+                        property: property,
+                        value: value,
+                        type: operators[tok.text.toUpperCase()]
+                    });
+                case "VALUE":
+                    if ((/^'.*'$/).test(tok.text)) {
+                        return tok.text.substr(1, tok.text.length - 2);
+                    } else {
+                        return Number(tok.text);
+                    }
+                case "SPATIAL":
+                    switch(tok.text.toUpperCase()) {
+                        case "BBOX":
+                            var maxy = buildTree(),
+                                maxx = buildTree(),
+                                miny = buildTree(),
+                                minx = buildTree(),
+                                prop = buildTree();
+
+                            return new OpenLayers.Filter.Spatial({
+                                type: OpenLayers.Filter.Spatial.BBOX,
+                                property: prop,
+                                value: OpenLayers.Bounds.fromArray(
+                                    [minx, miny, maxx, maxy]
+                                )
+                            });
+                        case "INTERSECTS":
+                            var value = buildTree(),
+                                property = buildTree();
+                            return new OpenLayers.Filter.Spatial({
+                                type: OpenLayers.Filter.Spatial.INTERSECTS,
+                                property: property,
+                                value: value
+                            });
+                        case "WITHIN":
+                            var value = buildTree(),
+                                property = buildTree();
+                            return new OpenLayers.Filter.Spatial({
+                                type: OpenLayers.Filter.Spatial.WITHIN,
+                                property: property,
+                                value: value
+                            });
+                        case "CONTAINS":
+                            var value = buildTree(),
+                                property = buildTree();
+                            return new OpenLayers.Filter.Spatial({
+                                type: OpenLayers.Filter.Spatial.CONTAINS,
+                                property: property,
+                                value: value
+                            });
+                        case "DWITHIN":
+                            var distance = buildTree(),
+                                value = buildTree(),
+                                property = buildTree();
+                            return new OpenLayers.Filter.Spatial({
+                                type: OpenLayers.Filter.Spatial.DWITHIN,
+                                value: value,
+                                property: property,
+                                distance: Number(distance)
+                            });
+                    }
+                case "GEOMETRY":
+                    return OpenLayers.Geometry.fromWKT(tok.text);
+                default:
+                    return tok.text;
+            }
+        }
+
+        var result = buildTree();
+        if (postfix.length > 0) {
+            var msg = "Remaining tokens after building AST: \n";
+            for (var i = postfix.length - 1; i >= 0; i--) {
+                msg += postfix[i].type + ": " + postfix[i].text + "\n";
+            }
+            throw new Error(msg);
+        }
+
+        return result;
+    }
+
+    return OpenLayers.Class(OpenLayers.Format, {
+        /**
+         * APIMethod: read
+         * Generate a filter from a CQL string.
+
+         * Parameters:
+         * text - {String} The CQL text.
+         *
+         * Returns:
+         * {<OpenLayers.Filter>} A filter based on the CQL text.
+         */
+        read: function(text) { 
+            var result = buildAst(tokenize(text));
+            if (this.keepData) {
+                this.data = result;
+            };
+            return result;
+        },
+
+        /**
+         * APIMethod: write
+         * Convert a filter into a CQL string.
+
+         * Parameters:
+         * filter - {<OpenLayers.Filter>} The filter.
+         *
+         * Returns:
+         * {String} A CQL string based on the filter.
+         */
+        write: function(filter) {
+            if (filter instanceof OpenLayers.Geometry) {
+                return filter.toString();
+            }
+            switch (filter.CLASS_NAME) {
+                case "OpenLayers.Filter.Spatial":
+                    switch(filter.type) {
+                        case OpenLayers.Filter.Spatial.BBOX:
+                            return "BBOX(" +
+                                filter.property + "," +
+                                filter.value.toBBOX() +
+                                ")";
+                        case OpenLayers.Filter.Spatial.DWITHIN:
+                            return "DWITHIN(" +
+                                filter.property + ", " +
+                                this.write(filter.value) + ", " +
+                                filter.distance + ")";
+                        case OpenLayers.Filter.Spatial.WITHIN:
+                            return "WITHIN(" +
+                                filter.property + ", " +
+                                this.write(filter.value) + ")";
+                        case OpenLayers.Filter.Spatial.INTERSECTS:
+                            return "INTERSECTS(" +
+                                filter.property + ", " +
+                                this.write(filter.value) + ")";
+                        case OpenLayers.Filter.Spatial.CONTAINS:
+                            return "CONTAINS(" +
+                                filter.property + ", " +
+                                this.write(filter.value) + ")";
+                        default:
+                            throw new Error("Unknown spatial filter type: " + filter.type);
+                    }
+                case "OpenLayers.Filter.Logical":
+                    if (filter.type == OpenLayers.Filter.Logical.NOT) {
+                        // TODO: deal with precedence of logical operators to 
+                        // avoid extra parentheses (not urgent)
+                        return "NOT (" + this.write(filter.filters[0]) + ")";
+                    } else {
+                        var res = "(";
+                        var first = true;
+                        for (var i = 0; i < filter.filters.length; i++) {
+                            if (first) {
+                                first = false;
+                            } else {
+                                res += ") " + logicalReverse[filter.type] + " (";
+                            }
+                            res += this.write(filter.filters[i]);
+                        }
+                        return res + ")";
+                    }
+                case "OpenLayers.Filter.Comparison":
+                    if (filter.type == OpenLayers.Filter.Comparison.BETWEEN) {
+                        return filter.property + " BETWEEN " + 
+                            this.write(filter.lowerBoundary) + " AND " + 
+                            this.write(filter.upperBoundary);
+                    } else {
+                        
+                        return filter.property +
+                            " " + operatorReverse[filter.type] + " " + 
+                            this.write(filter.value);
+                    }
+                case undefined:
+                    if (typeof filter === "string") {
+                        return "'" + filter + "'";
+                    } else if (typeof filter === "number") {
+                        return String(filter);
+                    }
+                default:
+                    throw new Error("Can't encode: " + filter.CLASS_NAME + " " + filter);
+            }
+        },
+
+        CLASS_NAME: "OpenLayers.Format.CQL"
+
+    });
+})();
+
diff --git a/lib/OpenLayers/Format/CSWGetDomain.js b/lib/OpenLayers/Format/CSWGetDomain.js
index e50b98c..9dee01e 100644
--- a/lib/OpenLayers/Format/CSWGetDomain.js
+++ b/lib/OpenLayers/Format/CSWGetDomain.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -8,8 +8,8 @@
  */
 
 /**
- * Function: OpenLayers.Format.CSWGetDomain.
- *     Default version is 2.0.2.
+ * Class: OpenLayers.Format.CSWGetDomain
+ * Default version is 2.0.2.
  *
  * Returns:
  * {<OpenLayers.Format>} A CSWGetDomain format of the given version.
@@ -26,7 +26,7 @@ OpenLayers.Format.CSWGetDomain = function(options) {
 };
 
 /**
- * Constant: OpenLayers.Format.CSWGetDomain.DEFAULTS
+ * Constant: DEFAULTS
  * {Object} Default properties for the CSWGetDomain format.
  */
 OpenLayers.Format.CSWGetDomain.DEFAULTS = {
diff --git a/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js b/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
index 66d0546..db936bf 100644
--- a/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
+++ b/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -108,7 +108,7 @@ OpenLayers.Format.CSWGetDomain.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                 this.readChildNodes(node, obj);
             },
             "DomainValues": function(node, obj) {
-                if (!(obj.DomainValues instanceof Array)) {
+                if (!(OpenLayers.Util.isArray(obj.DomainValues))) {
                     obj.DomainValues = [];
                 }
                 var attrs = node.attributes;
@@ -126,14 +126,14 @@ OpenLayers.Format.CSWGetDomain.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                 obj.ParameterName = this.getChildValue(node);
             },
             "ListOfValues": function(node, obj) {
-                if (!(obj.ListOfValues instanceof Array)) {
+                if (!(OpenLayers.Util.isArray(obj.ListOfValues))) {
                     obj.ListOfValues = [];
                 }
                 this.readChildNodes(node, obj.ListOfValues);
             },
             "Value": function(node, obj) {
                 var attrs = node.attributes;
-                var value = {}
+                var value = {};
                 for(var i=0, len=attrs.length; i<len; ++i) {
                     value[attrs[i].name] = attrs[i].nodeValue;
                 }
@@ -159,7 +159,7 @@ OpenLayers.Format.CSWGetDomain.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
             },
             "MinValue": function(node, obj) {
                 var attrs = node.attributes;
-                var value = {}
+                var value = {};
                 for(var i=0, len=attrs.length; i<len; ++i) {
                     value[attrs[i].name] = attrs[i].nodeValue;
                 }
@@ -168,7 +168,7 @@ OpenLayers.Format.CSWGetDomain.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
             },
             "MaxValue": function(node, obj) {
                 var attrs = node.attributes;
-                var value = {}
+                var value = {};
                 for(var i=0, len=attrs.length; i<len; ++i) {
                     value[attrs[i].name] = attrs[i].nodeValue;
                 }
diff --git a/lib/OpenLayers/Format/CSWGetRecords.js b/lib/OpenLayers/Format/CSWGetRecords.js
index 938df50..1aadcfb 100644
--- a/lib/OpenLayers/Format/CSWGetRecords.js
+++ b/lib/OpenLayers/Format/CSWGetRecords.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -8,8 +8,8 @@
  */
 
 /**
- * Function: OpenLayers.Format.CSWGetRecords.
- *     Default version is 2.0.2.
+ * Class: OpenLayers.Format.CSWGetRecords
+ * Default version is 2.0.2.
  *
  * Returns:
  * {<OpenLayers.Format>} A CSWGetRecords format of the given version.
@@ -26,7 +26,7 @@ OpenLayers.Format.CSWGetRecords = function(options) {
 };
 
 /**
- * Constant: OpenLayers.Format.CSWGetRecords.DEFAULTS
+ * Constant: DEFAULTS
  * {Object} Default properties for the CSWGetRecords format.
  */
 OpenLayers.Format.CSWGetRecords.DEFAULTS = {
diff --git a/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js b/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
index b269fbf..9182a40 100644
--- a/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
+++ b/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -27,12 +27,14 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
      * {Object} Mapping of namespace aliases to namespace URIs.
      */
     namespaces: {
-        xlink: "http://www.w3.org/1999/xlink",
-        xsi: "http://www.w3.org/2001/XMLSchema-instance",
         csw: "http://www.opengis.net/cat/csw/2.0.2",
         dc: "http://purl.org/dc/elements/1.1/",
         dct: "http://purl.org/dc/terms/",
-        ows: "http://www.opengis.net/ows"
+        geonet: "http://www.fao.org/geonetwork",
+        ogc: "http://www.opengis.net/ogc",
+        ows: "http://www.opengis.net/ows",
+        xlink: "http://www.w3.org/1999/xlink",
+        xsi: "http://www.w3.org/2001/XMLSchema-instance"
     },
     
     /**
@@ -232,6 +234,17 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                 var record = {type: "Record"};
                 this.readChildNodes(node, record);
                 obj.records.push(record);
+            },
+            "*": function(node, obj) {
+                var name = node.localName || node.nodeName.split(":").pop();
+                obj[name] = this.getChildValue(node);
+            }
+        },
+        "geonet": {
+            "info": function(node, obj) {
+                var gninfo = {};
+                this.readChildNodes(node, gninfo);
+                obj.gninfo = gninfo;
             }
         },
         "dc": {
@@ -240,7 +253,7 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
             // rightsHolder, source, subject, title, type, URI
             "*": function(node, obj) {
                 var name = node.localName || node.nodeName.split(":").pop();
-                if (!(obj[name] instanceof Array)) {
+                if (!(OpenLayers.Util.isArray(obj[name]))) {
                     obj[name] = new Array();
                 }
                 var dc_element = {};
@@ -256,7 +269,7 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
             // abstract, modified, spatial
             "*": function(node, obj) {
                 var name = node.localName || node.nodeName.split(":").pop();
-                if (!(obj[name] instanceof Array)) {
+                if (!(OpenLayers.Util.isArray(obj[name]))) {
                     obj[name] = new Array();
                 }
                 obj[name].push(this.getChildValue(node));
@@ -329,7 +342,7 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                     );
                 }
                 var ResponseHandler = options.ResponseHandler || this.ResponseHandler;
-                if (ResponseHandler instanceof Array && ResponseHandler.length > 0) {
+                if (OpenLayers.Util.isArray(ResponseHandler) && ResponseHandler.length > 0) {
                     // ResponseHandler must be a non-empty array
                     for(var i=0, len=ResponseHandler.length; i<len; i++) {
                         this.writeNode(
@@ -366,7 +379,7 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                     }
                 });
                 var ElementName = options.ElementName;
-                if (ElementName instanceof Array && ElementName.length > 0) {
+                if (OpenLayers.Util.isArray(ElementName) && ElementName.length > 0) {
                     // ElementName must be a non-empty array
                     for(var i=0, len=ElementName.length; i<len; i++) {
                         this.writeNode(
@@ -389,14 +402,13 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                         node
                     );
                 }
-                //TODO: not implemented in ogc filters?
-                //if (options.SortBy) {
-                    //this.writeNode(
-                        //"ogc:SortBy",
-                        //options.SortBy,
-                        //node
-                    //);
-                //}
+                if (options.SortBy) {
+                    this.writeNode(
+                        "ogc:SortBy",
+                        options.SortBy,
+                        node
+                    );
+                }
                 return node;
             },
             "ElementName": function(options) {
@@ -433,7 +445,8 @@ OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML,
                 }
                 return node;
             }
-        }
+        },
+        "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.writers["ogc"]
     },
    
     CLASS_NAME: "OpenLayers.Format.CSWGetRecords.v2_0_2" 
diff --git a/lib/OpenLayers/Format/Context.js b/lib/OpenLayers/Format/Context.js
index 5386df2..b73a420 100644
--- a/lib/OpenLayers/Format/Context.js
+++ b/lib/OpenLayers/Format/Context.js
@@ -1,23 +1,17 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  */
 
 /**
  * Class: OpenLayers.Format.Context
  * Base class for both Format.WMC and Format.OWSContext
  */
-OpenLayers.Format.Context = OpenLayers.Class({
-
-    /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
-     */
-    version: null,
+OpenLayers.Format.Context = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
 
     /**
      * Property: layerOptions
@@ -36,13 +30,6 @@ OpenLayers.Format.Context = OpenLayers.Class({
     layerParams: null,
 
     /**
-     * Property: parser
-     * {Object} Instance of the versioned parser.  Cached for multiple read and
-     *     write calls of the same version.
-     */
-    parser: null,
-
-    /**
      * Constructor: OpenLayers.Format.Context
      * Create a new parser for Context documents.
      *
@@ -50,10 +37,6 @@ OpenLayers.Format.Context = OpenLayers.Class({
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Util.extend(this, options);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -72,16 +55,8 @@ OpenLayers.Format.Context = OpenLayers.Class({
      * {<OpenLayers.Map>} A map based on the context.
      */
     read: function(data, options) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version;
-        if(!version) {
-            version = root.getAttribute("version");
-        }
-        var parser = this.getParser(version);
-        var context = parser.read(data, options);
+        var context = OpenLayers.Format.XML.VersionedOGC.prototype.read.apply(this, 
+            arguments);
         var map;
         if(options && options.map) {
             this.context = context;
@@ -122,7 +97,11 @@ OpenLayers.Format.Context = OpenLayers.Class({
             visibility: layerContext.visibility,
             maxExtent: layerContext.maxExtent,
             metadata: OpenLayers.Util.applyDefaults(layerContext.metadata, 
-                {styles: layerContext.styles}),
+            {styles: layerContext.styles,
+             formats: layerContext.formats,
+             "abstract": layerContext["abstract"],
+             dataURL: layerContext.dataURL
+            }),
             numZoomLevels: layerContext.numZoomLevels,
             units: layerContext.units,
             isBaseLayer: layerContext.isBaseLayer,
@@ -135,7 +114,10 @@ OpenLayers.Format.Context = OpenLayers.Class({
                     layerContext.tileSize.height
                 ) : undefined,
             minScale: layerContext.minScale || layerContext.maxScaleDenominator,
-            maxScale: layerContext.maxScale || layerContext.minScaleDenominator
+            maxScale: layerContext.maxScale || layerContext.minScaleDenominator,
+            srs: layerContext.srs,
+            dimensions: layerContext.dimensions,
+            metadataURL: layerContext.metadataURL
         };
         if (this.layerOptions) {
             OpenLayers.Util.applyDefaults(options, this.layerOptions);
@@ -269,9 +251,26 @@ OpenLayers.Format.Context = OpenLayers.Class({
      */
     contextToMap: function(context, options) {
         options = OpenLayers.Util.applyDefaults({
-            maxExtent: context.maxExtent,
-            projection: context.projection
+            maxExtent:  context.maxExtent,
+            projection: context.projection,
+            units:      context.units
         }, options);
+
+        if (options.maxExtent) {
+            options.maxResolution = 
+                options.maxExtent.getWidth() / OpenLayers.Map.TILE_WIDTH;
+        }
+
+        var metadata = {
+            contactInformation: context.contactInformation,
+            "abstract":         context["abstract"],
+            keywords:           context.keywords,
+            logo:               context.logo,
+            descriptionURL:     context.descriptionURL
+        }
+
+        options.metadata = metadata;
+
         var map = new OpenLayers.Map(options);
         map.addLayers(this.getLayersFromContext(context.layersContext));
         map.setCenter(
@@ -310,10 +309,8 @@ OpenLayers.Format.Context = OpenLayers.Class({
      */
     write: function(obj, options) {
         obj = this.toContext(obj);
-        var version = options && options.version;
-        var parser = this.getParser(version);
-        var context = parser.write(obj, options);
-        return context;
+        return OpenLayers.Format.XML.VersionedOGC.prototype.write.apply(this,
+            arguments);
     },
 
     CLASS_NAME: "OpenLayers.Format.Context"
diff --git a/lib/OpenLayers/Format/Filter.js b/lib/OpenLayers/Format/Filter.js
index 1361aaa..4fa803e 100644
--- a/lib/OpenLayers/Format/Filter.js
+++ b/lib/OpenLayers/Format/Filter.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  * @requires OpenLayers/Filter/FeatureId.js
  * @requires OpenLayers/Filter/Logical.js
  * @requires OpenLayers/Filter/Comparison.js
@@ -16,9 +16,9 @@
  *     constructor.
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.Filter = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.Filter = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
     
     /**
      * APIProperty: defaultVersion
@@ -27,31 +27,6 @@ OpenLayers.Format.Filter = OpenLayers.Class(OpenLayers.Format.XML, {
     defaultVersion: "1.0.0",
     
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
-     */
-    version: null,
-    
-    /**
-     * Property: parser
-     * {Object} Instance of the versioned parser.  Cached for multiple read and
-     *     write calls of the same version.
-     */
-    parser: null,
-
-    /**
-     * Constructor: OpenLayers.Format.Filter
-     * Create a new parser for Filter.
-     *
-     * Parameters:
-     * options - {Object} An optional object whose properties will be set on
-     *     this instance.
-     */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
-
-    /**
      * APIMethod: write
      * Write an ogc:Filter given a filter object.
      *
@@ -62,22 +37,6 @@ OpenLayers.Format.Filter = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {Elment} An ogc:Filter element node.
      */
-    write: function(filter, options) {
-        var version = (options && options.version) ||
-                      this.version || this.defaultVersion;
-        if(!this.parser || this.parser.VERSION != version) {
-            var format = OpenLayers.Format.Filter[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if(!format) {
-                throw "Can't find a Filter parser for version " +
-                      version;
-            }
-            this.parser = new format(this.options);
-        }
-        return this.parser.write(filter);
-        //return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
-    },
     
     /**
      * APIMethod: read
@@ -89,27 +48,6 @@ OpenLayers.Format.Filter = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {<OpenLayers.Filter>} A filter object.
      */
-    read: function(data) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var version = this.version;
-        if(!version) {
-            version = this.defaultVersion;
-        }
-        if(!this.parser || this.parser.VERSION != version) {
-            var format = OpenLayers.Format.Filter[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if(!format) {
-                throw "Can't find a Filter parser for version " +
-                      version;
-            }
-            this.parser = new format(this.options);
-        }
-        var filter = this.parser.read(data);
-        return filter;
-    },
 
     CLASS_NAME: "OpenLayers.Format.Filter" 
 });
diff --git a/lib/OpenLayers/Format/Filter/v1.js b/lib/OpenLayers/Format/Filter/v1.js
index 713c45f..7fd9830 100644
--- a/lib/OpenLayers/Format/Filter/v1.js
+++ b/lib/OpenLayers/Format/Filter/v1.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 /**
  * @requires OpenLayers/Format/Filter.js
  * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Filter/Function.js
  */
 
 /**
@@ -186,6 +187,10 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
             "Distance": function(node, obj) {
                 obj.distance = parseInt(this.getChildValue(node));
                 obj.distanceUnits = node.getAttribute("units");
+            },
+            "Function": function(node, obj) {
+                //TODO write decoder for it
+                return;
             }
         }
     },
@@ -234,6 +239,28 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
     },
 
     /**
+     * Method: writeOgcExpression
+     * Limited support for writing OGC expressions. Currently it supports
+     * (<OpenLayers.Filter.Function> || String || Number)
+     *
+     * Parameters:
+     * value - (<OpenLayers.Filter.Function> || String || Number)
+     * node - {DOMElement} A parent DOM element 
+     *
+     * Returns:
+     * {DOMElement} Updated node element.
+     */
+    writeOgcExpression: function(value, node) {
+        if(value instanceof OpenLayers.Filter.Function){
+            var child = this.writeNode("Function", value, node);
+            node.appendChild(child);
+        } else {
+            this.writeNode("Literal", value, node);
+        }
+        return node;
+    },    
+    
+    /**
      * Method: write
      *
      * Parameters:
@@ -247,6 +274,19 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
     },
     
     /**
+     * Method: writeFeatureIdNodes
+     * 
+     * Parameters:
+     * filter - {<OpenLayers.Filter.FeatureId}
+     * node - {DOMElement}
+     */
+    writeFeatureIdNodes: function(filter, node) {
+        for (var i=0, ii=filter.fids.length; i<ii; ++i) {
+            this.writeNode("FeatureId", filter.fids[i], node);
+        }
+    },
+    
+    /**
      * Property: writers
      * As a compliment to the readers property, this structure contains public
      *     writing functions grouped by namespace alias and named like the
@@ -256,11 +296,8 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         "ogc": {
             "Filter": function(filter) {
                 var node = this.createElementNSPlus("ogc:Filter");
-                var sub = filter.CLASS_NAME.split(".").pop();
-                if(sub == "FeatureId") {
-                    for(var i=0; i<filter.fids.length; ++i) {
-                        this.writeNode("FeatureId", filter.fids[i], node);
-                    }
+                if (filter.type === "FID") {
+                    this.writeFeatureIdNodes(filter, node);
                 } else {
                     this.writeNode(this.getFilterType(filter), filter, node);
                 }
@@ -274,64 +311,80 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
             "And": function(filter) {
                 var node = this.createElementNSPlus("ogc:And");
                 var childFilter;
-                for(var i=0; i<filter.filters.length; ++i) {
+                for (var i=0, ii=filter.filters.length; i<ii; ++i) {
                     childFilter = filter.filters[i];
+                    if (childFilter.type === "FID") {
+                        this.writeFeatureIdNodes(childFilter, node);
+                    } else {
                     this.writeNode(
                         this.getFilterType(childFilter), childFilter, node
                     );
                 }
+                }
                 return node;
             },
             "Or": function(filter) {
                 var node = this.createElementNSPlus("ogc:Or");
                 var childFilter;
-                for(var i=0; i<filter.filters.length; ++i) {
+                for (var i=0, ii=filter.filters.length; i<ii; ++i) {
                     childFilter = filter.filters[i];
+                    if (childFilter.type === "FID") {
+                        this.writeFeatureIdNodes(childFilter, node);
+                    } else {
                     this.writeNode(
                         this.getFilterType(childFilter), childFilter, node
                     );
                 }
+                }
                 return node;
             },
             "Not": function(filter) {
                 var node = this.createElementNSPlus("ogc:Not");
                 var childFilter = filter.filters[0];
+                if (childFilter.type === "FID") {
+                    this.writeFeatureIdNodes(childFilter, node);
+                } else {
                 this.writeNode(
                     this.getFilterType(childFilter), childFilter, node
                 );
+                }
                 return node;
             },
             "PropertyIsLessThan": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsLessThan");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);                
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsGreaterThan": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsGreaterThan");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsLessThanOrEqualTo": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsLessThanOrEqualTo");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsGreaterThanOrEqualTo": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsGreaterThanOrEqualTo");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsBetween": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsBetween");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
                 this.writeNode("LowerBoundary", filter, node);
                 this.writeNode("UpperBoundary", filter, node);
@@ -350,13 +403,13 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                 });
             },
             "LowerBoundary": function(filter) {
-                // no ogc:expression handling for now
+                // handle Literals or Functions for now
                 var node = this.createElementNSPlus("ogc:LowerBoundary");
-                this.writeNode("Literal", filter.lowerBoundary, node);
+                this.writeOgcExpression(filter.lowerBoundary, node);
                 return node;
             },
             "UpperBoundary": function(filter) {
-                // no ogc:expression handling for now
+                // handle Literals or Functions for now
                 var node = this.createElementNSPlus("ogc:UpperBoundary");
                 this.writeNode("Literal", filter.upperBoundary, node);
                 return node;
@@ -382,6 +435,18 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                     },
                     value: filter.distance
                 });
+            },
+            "Function": function(filter) {
+                var node = this.createElementNSPlus("ogc:Function", {
+                    attributes: {
+                        name: filter.name
+                    }
+                });
+                var params = filter.params;
+                for(var i=0, len=params.length; i<len; i++){
+                    this.writeOgcExpression(params[i], node);
+                }
+                return node;
             }
         }
     },
@@ -418,7 +483,8 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         "DWITHIN": "DWITHIN",
         "WITHIN": "WITHIN",
         "CONTAINS": "CONTAINS",
-        "INTERSECTS": "INTERSECTS"
+        "INTERSECTS": "INTERSECTS",
+        "FID": "FeatureId"
     },
 
     CLASS_NAME: "OpenLayers.Format.Filter.v1" 
diff --git a/lib/OpenLayers/Format/Filter/v1_0_0.js b/lib/OpenLayers/Format/Filter/v1_0_0.js
index 55ce2e4..02e9aea 100644
--- a/lib/OpenLayers/Format/Filter/v1_0_0.js
+++ b/lib/OpenLayers/Format/Filter/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -96,16 +96,18 @@ OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class(
         "ogc": OpenLayers.Util.applyDefaults({
             "PropertyIsEqualTo": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsEqualTo");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsNotEqualTo": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsNotEqualTo");
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsLike": function(filter) {
@@ -122,17 +124,26 @@ OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class(
             },
             "BBOX": function(filter) {
                 var node = this.createElementNSPlus("ogc:BBOX");
-                this.writeNode("PropertyName", filter, node);
+                // PropertyName is mandatory in 1.0.0, but e.g. GeoServer also
+                // accepts filters without it. When this is used with
+                // OpenLayers.Protocol.WFS, OpenLayers.Format.WFST will set a
+                // missing filter.property to the geometryName that is
+                // configured with the protocol, which defaults to "the_geom".
+                // So the only way to omit this mandatory property is to not
+                // set the property on the filter and to set the geometryName
+                // on the WFS protocol to null. The latter also happens when
+                // the protocol is configured without a geometryName and a
+                // featureNS.
+                filter.property && this.writeNode("PropertyName", filter, node);
                 var box = this.writeNode("gml:Box", filter.value, node);
                 if(filter.projection) {
                     box.setAttribute("srsName", filter.projection);
                 }
                 return node;
-            }}, OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),
-            
+            }
+        }, OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),
         "gml": OpenLayers.Format.GML.v2.prototype.writers["gml"],
         "feature": OpenLayers.Format.GML.v2.prototype.writers["feature"]
-        
     },
 
     /**
@@ -150,6 +161,9 @@ OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class(
     writeSpatial: function(filter, name) {
         var node = this.createElementNSPlus("ogc:"+name);
         this.writeNode("PropertyName", filter, node);
+        if(filter.value instanceof OpenLayers.Filter.Function) {
+            this.writeNode("Function", filter.value, node);
+        } else {
         var child;
         if(filter.value instanceof OpenLayers.Geometry) {
             child = this.writeNode("feature:_geometry", filter.value).firstChild;
@@ -160,6 +174,7 @@ OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class(
             child.setAttribute("srsName", filter.projection);
         }
         node.appendChild(child);
+        }
         return node;
     },
 
diff --git a/lib/OpenLayers/Format/Filter/v1_1_0.js b/lib/OpenLayers/Format/Filter/v1_1_0.js
index ced6a67..9c50b43 100644
--- a/lib/OpenLayers/Format/Filter/v1_1_0.js
+++ b/lib/OpenLayers/Format/Filter/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -15,9 +15,9 @@
  * Differences from the v1.0.0 parser:
  *  - uses GML v3 instead of GML v2
  *  - reads matchCase attribute on ogc:PropertyIsEqual and
- *        ogc:PropertyIsNotEqualelements.
- *  - writes matchCase attribute from comparison filters of type EQUAL_TO and
- *        type NOT_EQUAL_TO.
+ *        ogc:PropertyIsNotEqual elements.
+ *  - writes matchCase attribute from comparison filters of type EQUAL_TO,
+ *        NOT_EQUAL_TO and LIKE.
  * 
  * Inherits from:
  *  - <OpenLayers.Format.Filter.v1>
@@ -108,23 +108,26 @@ OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class(
                 var node = this.createElementNSPlus("ogc:PropertyIsEqualTo", {
                     attributes: {matchCase: filter.matchCase}
                 });
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsNotEqualTo": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsNotEqualTo", {
                     attributes: {matchCase: filter.matchCase}
                 });
-                // no ogc:expression handling for now
+                // no ogc:expression handling for PropertyName for now
                 this.writeNode("PropertyName", filter, node);
-                this.writeNode("Literal", filter.value, node);
+                // handle Literals or Functions for now
+                this.writeOgcExpression(filter.value, node);
                 return node;
             },
             "PropertyIsLike": function(filter) {
                 var node = this.createElementNSPlus("ogc:PropertyIsLike", {
                     attributes: {
+                        matchCase: filter.matchCase,
                         wildCard: "*", singleChar: ".", escapeChar: "!"
                     }
                 });
@@ -136,15 +139,47 @@ OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class(
             },
             "BBOX": function(filter) {
                 var node = this.createElementNSPlus("ogc:BBOX");
-                this.writeNode("PropertyName", filter, node);
+                // PropertyName is optional in 1.1.0
+                filter.property && this.writeNode("PropertyName", filter, node);
                 var box = this.writeNode("gml:Envelope", filter.value);
                 if(filter.projection) {
                     box.setAttribute("srsName", filter.projection);
                 }
                 node.appendChild(box); 
                 return node;
-            }}, OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),
-            
+            },
+            "SortBy": function(sortProperties) {
+                var node = this.createElementNSPlus("ogc:SortBy");
+                for (var i=0,l=sortProperties.length;i<l;i++) {
+                    this.writeNode(
+                        "ogc:SortProperty",
+                        sortProperties[i],
+                        node
+                    );
+                }
+                return node;
+            }, 
+            "SortProperty": function(sortProperty) {
+                var node = this.createElementNSPlus("ogc:SortProperty");
+                this.writeNode(
+                    "ogc:PropertyName",
+                    sortProperty,
+                    node
+                );
+                this.writeNode(
+                    "ogc:SortOrder",
+                    (sortProperty.order == 'DESC') ? 'DESC' : 'ASC',
+                    node
+                );
+                return node;
+            },
+            "SortOrder": function(value) {
+                var node = this.createElementNSPlus("ogc:SortOrder", {
+                    value: value
+                });
+                return node;
+            }
+        }, OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),
         "gml": OpenLayers.Format.GML.v3.prototype.writers["gml"],
         "feature": OpenLayers.Format.GML.v3.prototype.writers["feature"]
     },
@@ -164,6 +199,9 @@ OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class(
     writeSpatial: function(filter, name) {
         var node = this.createElementNSPlus("ogc:"+name);
         this.writeNode("PropertyName", filter, node);
+        if(filter.value instanceof OpenLayers.Filter.Function) {
+            this.writeNode("Function", filter.value, node);
+        } else {
         var child;
         if(filter.value instanceof OpenLayers.Geometry) {
             child = this.writeNode("feature:_geometry", filter.value).firstChild;
@@ -174,9 +212,10 @@ OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class(
             child.setAttribute("srsName", filter.projection);
         }
         node.appendChild(child);
+        }
         return node;
     },
 
     CLASS_NAME: "OpenLayers.Format.Filter.v1_1_0" 
 
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Format/GML.js b/lib/OpenLayers/Format/GML.js
index d34ce52..bdb3186 100644
--- a/lib/OpenLayers/Format/GML.js
+++ b/lib/OpenLayers/Format/GML.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -13,6 +13,7 @@
  * @requires OpenLayers/Geometry/Polygon.js
  * @requires OpenLayers/Geometry/MultiPolygon.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -581,7 +582,7 @@ OpenLayers.Format.GML = OpenLayers.Class(OpenLayers.Format.XML, {
      * Method: parseAttributes
      *
      * Parameters:
-     * node - {<DOMElement>}
+     * node - {DOMElement}
      *
      * Returns:
      * {Object} An attributes object.
@@ -638,7 +639,7 @@ OpenLayers.Format.GML = OpenLayers.Class(OpenLayers.Format.XML, {
      * {String} A string representing the GML document.
      */
     write: function(features) {
-        if(!(features instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         var gml = this.createElementNS("http://www.opengis.net/wfs",
diff --git a/lib/OpenLayers/Format/GML/Base.js b/lib/OpenLayers/Format/GML/Base.js
index 2494c04..cee7a47 100644
--- a/lib/OpenLayers/Format/GML/Base.js
+++ b/lib/OpenLayers/Format/GML/Base.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -62,7 +62,8 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
 
     /**
      * APIProperty: geometry
-     * {String} Name of geometry element.  Defaults to "geometry".
+     * {String} Name of geometry element.  Defaults to "geometry". If null, it
+     * will be set on <read> when the first geometry is parsed.
      */
     geometryName: "geometry",
 
@@ -101,6 +102,18 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
      *     of featuretypes.
      */
     singleFeatureType: null,
+    
+    /**
+     * Property: autoConfig
+     * {Boolean} Indicates if the format was configured without a <featureNS>,
+     * but auto-configured <featureNS> and <featureType> during read.
+     * Subclasses making use of <featureType> auto-configuration should make
+     * the first call to the <readNode> method (usually in the read method)
+     * with true as 3rd argument, so the auto-configured featureType can be
+     * reset and the format can be reused for subsequent reads with data from
+     * different featureTypes. Set to false after read if you want to keep the
+     * auto-configured values.
+     */
 
     /**
      * Property: regExes
@@ -110,7 +123,8 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
         trimSpace: (/^\s*|\s*$/g),
         removeSpace: (/\s*/g),
         splitSpace: (/\s+/),
-        trimComma: (/\s*,\s*/g)
+        trimComma: (/\s*,\s*/g),
+        featureMember: (/^(.*:)?featureMembers?$/)
     },
 
     /**
@@ -125,9 +139,9 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
      *
      * Valid options properties:
      * featureType - {Array(String) or String} Local (without prefix) feature 
-     *     typeName(s) (required).
-     * featureNS - {String} Feature namespace (required).
-     * geometryName - {String} Geometry element name.
+     *     typeName(s) (required for write).
+     * featureNS - {String} Feature namespace (required for write).
+     * geometryName - {String} Geometry element name (required for write).
      */
     initialize: function(options) {
         OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
@@ -156,7 +170,7 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
             data = data.documentElement;
         }
         var features = [];
-        this.readNode(data, {features: features});
+        this.readNode(data, {features: features}, true);
         if(features.length == 0) {
             // look for gml:featureMember elements
             var elements = this.getElementsByTagNameNS(
@@ -164,7 +178,7 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
             );
             if(elements.length) {
                 for(var i=0, len=elements.length; i<len; ++i) {
-                    this.readNode(elements[i], {features: features});
+                    this.readNode(elements[i], {features: features}, true);
                 }
             } else {
                 // look for gml:featureMembers elements (this is v3, but does no harm here)
@@ -173,7 +187,7 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
                 );
                 if(elements.length) {
                     // there can be only one
-                    this.readNode(elements[0], {features: features});
+                    this.readNode(elements[0], {features: features}, true);
                 }
             }
         }
@@ -181,6 +195,43 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
     },
     
     /**
+     * Method: readNode
+     * Shorthand for applying one of the named readers given the node
+     *     namespace and local name.  Readers take two args (node, obj) and
+     *     generally extend or modify the second.
+     *
+     * Parameters:
+     * node - {DOMElement} The node to be read (required).
+     * obj - {Object} The object to be modified (optional).
+     * first - {Boolean} Should be set to true for the first node read. This
+     *     is usually the readNode call in the read method. Without this being
+     *     set, auto-configured properties will stick on subsequent reads.
+     *
+     * Returns:
+     * {Object} The input object, modified (or a new one if none was provided).
+     */
+    readNode: function(node, obj, first) {
+        // on subsequent calls of format.read(), we want to reset auto-
+        // configured properties and auto-configure again.
+        if (first === true && this.autoConfig === true) {
+            this.featureType = null;
+            delete this.namespaceAlias[this.featureNS];
+            delete this.namespaces["feature"];
+            this.featureNS = null;
+        }
+        // featureType auto-configuration
+        if (!this.featureNS && (!(node.prefix in this.namespaces) &&
+                node.parentNode.namespaceURI == this.namespaces["gml"] &&
+                this.regExes.featureMember.test(node.parentNode.nodeName))) {
+            this.featureType = node.nodeName.split(":").pop();
+            this.setNamespace("feature", node.namespaceURI);
+            this.featureNS = node.namespaceURI;
+            this.autoConfig = true;
+        }
+        return OpenLayers.Format.XML.prototype.readNode.apply(this, [node, obj]);
+    },
+
+    /**
      * Property: readers
      * Contains public functions, grouped by namespace prefix, that will
      *     be applied when a namespaced node is found matching the function
@@ -390,6 +441,9 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
                 obj.features.push(feature);
             },
             "_geometry": function(node, obj) {
+                if (!this.geometryName) {
+                    this.geometryName = node.nodeName.split(":").pop();
+                }
                 this.readChildNodes(node, obj);
             },
             "_attribute": function(node, obj) {
@@ -419,7 +473,7 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
      */
     write: function(features) {
         var name;
-        if(features instanceof Array) {
+        if(OpenLayers.Util.isArray(features)) {
             name = "featureMembers";
         } else {
             name = "featureMember";
@@ -448,8 +502,9 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
             },
             "MultiPoint": function(geometry) {
                 var node = this.createElementNSPlus("gml:MultiPoint");
-                for(var i=0; i<geometry.components.length; ++i) {
-                    this.writeNode("pointMember", geometry.components[i], node);
+                var components = geometry.components || [geometry];
+                for(var i=0, ii=components.length; i<ii; ++i) {
+                    this.writeNode("pointMember", components[i], node);
                 }
                 return node;
             },
@@ -460,8 +515,9 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
             },
             "MultiLineString": function(geometry) {
                 var node = this.createElementNSPlus("gml:MultiLineString");
-                for(var i=0; i<geometry.components.length; ++i) {
-                    this.writeNode("lineStringMember", geometry.components[i], node);
+                var components = geometry.components || [geometry];
+                for(var i=0, ii=components.length; i<ii; ++i) {
+                    this.writeNode("lineStringMember", components[i], node);
                 }
                 return node;
             },
@@ -472,9 +528,10 @@ OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
             },
             "MultiPolygon": function(geometry) {
                 var node = this.createElementNSPlus("gml:MultiPolygon");
-                for(var i=0; i<geometry.components.length; ++i) {
+                var components = geometry.components || [geometry];
+                for(var i=0, ii=components.length; i<ii; ++i) {
                     this.writeNode(
-                        "polygonMember", geometry.components[i], node
+                        "polygonMember", components[i], node
                     );
                 }
                 return node;
diff --git a/lib/OpenLayers/Format/GML/v2.js b/lib/OpenLayers/Format/GML/v2.js
index afcf578..d4a80be 100644
--- a/lib/OpenLayers/Format/GML/v2.js
+++ b/lib/OpenLayers/Format/GML/v2.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -90,7 +90,7 @@ OpenLayers.Format.GML.v2 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
      */
     write: function(features) {
         var name;
-        if(features instanceof Array) {
+        if(OpenLayers.Util.isArray(features)) {
             // GML2 only has abstract feature collections
             // wfs provides a feature collection from a well-known schema
             name = "wfs:FeatureCollection";
diff --git a/lib/OpenLayers/Format/GML/v3.js b/lib/OpenLayers/Format/GML/v3.js
index 8e7c9a4..eaa2ca3 100644
--- a/lib/OpenLayers/Format/GML/v3.js
+++ b/lib/OpenLayers/Format/GML/v3.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -250,7 +250,7 @@ OpenLayers.Format.GML.v3 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
      */
     write: function(features) {
         var name;
-        if(features instanceof Array) {
+        if(OpenLayers.Util.isArray(features)) {
             name = "featureMembers";
         } else {
             name = "featureMember";
@@ -378,8 +378,9 @@ OpenLayers.Format.GML.v3 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
             },
             "MultiCurve": function(geometry) {
                 var node = this.createElementNSPlus("gml:MultiCurve");
-                for(var i=0, len=geometry.components.length; i<len; ++i) {
-                    this.writeNode("curveMember", geometry.components[i], node);
+                var components = geometry.components || [geometry];
+                for(var i=0, len=components.length; i<len; ++i) {
+                    this.writeNode("curveMember", components[i], node);
                 }
                 return node;
             },
@@ -394,8 +395,9 @@ OpenLayers.Format.GML.v3 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
             },
             "MultiSurface": function(geometry) {
                 var node = this.createElementNSPlus("gml:MultiSurface");
-                for(var i=0, len=geometry.components.length; i<len; ++i) {
-                    this.writeNode("surfaceMember", geometry.components[i], node);
+                var components = geometry.components || [geometry];
+                for(var i=0, len=components.length; i<len; ++i) {
+                    this.writeNode("surfaceMember", components[i], node);
                 }
                 return node;
             },
diff --git a/lib/OpenLayers/Format/GPX.js b/lib/OpenLayers/Format/GPX.js
index 870ccb3..63170fe 100644
--- a/lib/OpenLayers/Format/GPX.js
+++ b/lib/OpenLayers/Format/GPX.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -134,7 +134,7 @@ OpenLayers.Format.GPX = OpenLayers.Class(OpenLayers.Format.XML, {
     * Method: extractSegment
     *
     * Parameters:
-    * segment - {<DOMElement>} a trkseg or rte node to parse
+    * segment - {DOMElement} a trkseg or rte node to parse
     * segmentType - {String} nodeName of waypoints that form the line
     *
     * Returns:
@@ -162,10 +162,10 @@ OpenLayers.Format.GPX = OpenLayers.Class(OpenLayers.Format.XML, {
         // node is either a wpt, trk or rte
         // attributes are children of the form <attr>value</attr>
         var attributes = {};
-        var attrNode = node.firstChild;
+        var attrNode = node.firstChild, value, name;
         while(attrNode) {
             if(attrNode.nodeType == 1) {
-                var value = attrNode.firstChild;
+                value = attrNode.firstChild;
                 if(value.nodeType == 3 || value.nodeType == 4) {
                     name = (attrNode.prefix) ?
                         attrNode.nodeName.split(":")[1] :
diff --git a/lib/OpenLayers/Format/GeoJSON.js b/lib/OpenLayers/Format/GeoJSON.js
index ca5047a..8e9f49a 100644
--- a/lib/OpenLayers/Format/GeoJSON.js
+++ b/lib/OpenLayers/Format/GeoJSON.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -40,9 +40,6 @@ OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.JSON.prototype.initialize.apply(this, [options]);
-    },
 
     /**
      * APIMethod: read
@@ -222,7 +219,7 @@ OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
         }
         var geometry, collection = false;
         if(obj.type == "GeometryCollection") {
-            if(!(obj.geometries instanceof Array)) {
+            if(!(OpenLayers.Util.isArray(obj.geometries))) {
                 throw "GeometryCollection must have geometries array: " + obj;
             }
             var numGeom = obj.geometries.length;
@@ -235,7 +232,7 @@ OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
             geometry = new OpenLayers.Geometry.Collection(components);
             collection = true;
         } else {
-            if(!(obj.coordinates instanceof Array)) {
+            if(!(OpenLayers.Util.isArray(obj.coordinates))) {
                 throw "Geometry must have coordinates array: " + obj;
             }
             if(!this.parseCoords[obj.type.toLowerCase()]) {
@@ -453,7 +450,7 @@ OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
         var geojson = {
             "type": null
         };
-        if(obj instanceof Array) {
+        if(OpenLayers.Util.isArray(obj)) {
             geojson.type = "FeatureCollection";
             var numFeatures = obj.length;
             geojson.features = new Array(numFeatures);
@@ -498,16 +495,16 @@ OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
            var code = parseInt(proj.substring(proj.indexOf(":") + 1));
            if (code == 4326) {
                crs = {
-                   "type": "OGC",
+                   "type": "name",
                    "properties": {
-                       "urn": "urn:ogc:def:crs:OGC:1.3:CRS84"
+                       "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
                    }
                };
            } else {    
                crs = {
-                   "type": "EPSG",
+                   "type": "name",
                    "properties": {
-                       "code": code 
+                       "name": "EPSG:" + code
                    }
                };
            }    
@@ -533,12 +530,15 @@ OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
          */
         'feature': function(feature) {
             var geom = this.extract.geometry.apply(this, [feature.geometry]);
-            return {
+            var json = {
                 "type": "Feature",
-                "id": feature.fid == null ? feature.id : feature.fid,
                 "properties": feature.attributes,
                 "geometry": geom
             };
+            if (feature.fid != null) {
+                json.id = feature.fid;
+            }
+            return json;
         },
         
         /**
diff --git a/lib/OpenLayers/Format/GeoRSS.js b/lib/OpenLayers/Format/GeoRSS.js
index 331f08c..74ab9cc 100644
--- a/lib/OpenLayers/Format/GeoRSS.js
+++ b/lib/OpenLayers/Format/GeoRSS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -83,9 +83,6 @@ OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
     
     /**
      * Method: createGeometryFromItem
@@ -253,7 +250,7 @@ OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
         var eles = this.getElementsByTagNameNS(node, nsuri, name);
         if(eles && eles[0] && eles[0].firstChild
             && eles[0].firstChild.nodeValue) {
-            value = eles[0].firstChild.nodeValue;
+            value = OpenLayers.Format.XML.prototype.getChildValue(eles[0]);
         } else {
             value = (def == undefined) ? "" : def;
         }
@@ -263,12 +260,12 @@ OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
     /**
      * APIMethod: read
      * Return a list of features from a GeoRSS doc
-     
+     *
      * Parameters:
-     * data - {Element} 
+     * doc - {Element} 
      *
      * Returns:
-     * An Array of <OpenLayers.Feature.Vector>s
+     * {Array(<OpenLayers.Feature.Vector>)}
      */
     read: function(doc) {
         if (typeof doc == "string") { 
@@ -300,7 +297,7 @@ OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
      */
     write: function(features) {
         var georss;
-        if(features instanceof Array) {
+        if(OpenLayers.Util.isArray(features)) {
             georss = this.createElementNS(this.rssns, "rss");
             for(var i=0, len=features.length; i<len; i++) {
                 georss.appendChild(this.createFeatureXML(features[i]));
diff --git a/lib/OpenLayers/Format/JSON.js b/lib/OpenLayers/Format/JSON.js
index 4ba3138..10dee03 100644
--- a/lib/OpenLayers/Format/JSON.js
+++ b/lib/OpenLayers/Format/JSON.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -60,6 +60,14 @@ OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
     pretty: false,
 
     /**
+     * Property: nativeJSON
+     * {Boolean} Does the browser support native json?
+     */
+    nativeJSON: (function() {
+        return !!(window.JSON && typeof JSON.parse == "function" && typeof JSON.stringify == "function");
+    })(),
+
+    /**
      * Constructor: OpenLayers.Format.JSON
      * Create a new parser for JSON.
      *
@@ -67,9 +75,6 @@ OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.prototype.initialize.apply(this, [options]);
-    },
 
     /**
      * APIMethod: read
@@ -87,15 +92,18 @@ OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
      * {Object} An object, array, string, or number .
      */
     read: function(json, filter) {
-        /**
-         * Parsing happens in three stages. In the first stage, we run the text
-         *     against a regular expression which looks for non-JSON
-         *     characters. We are especially concerned with '()' and 'new'
-         *     because they can cause invocation, and '=' because it can cause
-         *     mutation. But just to be safe, we will reject all unexpected
-         *     characters.
-         */
-        try {
+        var object;
+        if (this.nativeJSON) {
+            object = JSON.parse(json, filter);
+        } else try {
+            /**
+             * Parsing happens in three stages. In the first stage, we run the
+             *     text against a regular expression which looks for non-JSON
+             *     characters. We are especially concerned with '()' and 'new'
+             *     because they can cause invocation, and '=' because it can
+             *     cause mutation. But just to be safe, we will reject all
+             *     unexpected characters.
+             */
             if (/^[\],:{}\s]*$/.test(json.replace(/\\["\\\/bfnrtu]/g, '@').
                                 replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
                                 replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
@@ -107,7 +115,7 @@ OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
                  *     begin a block or an object literal. We wrap the text in
                  *     parens to eliminate the ambiguity.
                  */
-                var object = eval('(' + json + ')');
+                object = eval('(' + json + ')');
 
                 /**
                  * In the optional third stage, we recursively walk the new
@@ -127,17 +135,16 @@ OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
                     }
                     object = walk('', object);
                 }
-
-                if(this.keepData) {
-                    this.data = object;
-                }
-
-                return object;
             }
         } catch(e) {
             // Fall through if the regexp test fails.
         }
-        return null;
+
+        if(this.keepData) {
+            this.data = object;
+        }
+
+        return object;
     },
 
     /**
@@ -159,7 +166,9 @@ OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
         var type = typeof value;
         if(this.serialize[type]) {
             try {
-                json = this.serialize[type].apply(this, [value]);
+                json = (!this.pretty && this.nativeJSON) ?
+                    JSON.stringify(value) :
+                    this.serialize[type].apply(this, [value]);
             } catch(err) {
                 OpenLayers.Console.error("Trouble serializing: " + err);
             }
diff --git a/lib/OpenLayers/Format/KML.js b/lib/OpenLayers/Format/KML.js
index 811312e..5457cd0 100644
--- a/lib/OpenLayers/Format/KML.js
+++ b/lib/OpenLayers/Format/KML.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Date.js
  * @requires OpenLayers/Format/XML.js
  * @requires OpenLayers/Feature/Vector.js
  * @requires OpenLayers/Geometry/Point.js
@@ -12,6 +13,7 @@
  * @requires OpenLayers/Geometry/Collection.js
  * @requires OpenLayers/Request/XMLHttpRequest.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  * @requires OpenLayers/Projection.js
  */
 
@@ -353,11 +355,10 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
         
         var types = ["LineStyle", "PolyStyle", "IconStyle", "BalloonStyle", 
                      "LabelStyle"];
-        var type, nodeList, geometry, parser;
+        var type, styleTypeNode, nodeList, geometry, parser;
         for(var i=0, len=types.length; i<len; ++i) {
             type = types[i];
-            styleTypeNode = this.getElementsByTagNameNS(node, 
-                                                   "*", type)[0];
+            styleTypeNode = this.getElementsByTagNameNS(node, "*", type)[0];
             if(!styleTypeNode) { 
                 continue;
             }
@@ -1125,13 +1126,13 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
      * Accept Feature Collection, and return a string. 
      * 
      * Parameters:
-     * features - {Array(<OpenLayers.Feature.Vector>} An array of features.
+     * features - {Array(<OpenLayers.Feature.Vector>)} An array of features.
      *
      * Returns:
      * {String} A KML string.
      */
     write: function(features) {
-        if(!(features instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         var kml = this.createElementNS(this.kmlns, "kml");
@@ -1222,11 +1223,6 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
      * {DOMElement}
      */
     buildGeometryNode: function(geometry) {
-        if (this.internalProjection && this.externalProjection) {
-            geometry = geometry.clone();
-            geometry.transform(this.internalProjection, 
-                               this.externalProjection);
-        }                       
         var className = geometry.CLASS_NAME;
         var type = className.substring(className.lastIndexOf(".") + 1);
         var builder = this.buildGeometry[type.toLowerCase()];
@@ -1411,12 +1407,12 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
             var parts = new Array(numPoints);
             for(var i=0; i<numPoints; ++i) {
                 point = points[i];
-                parts[i] = point.x + "," + point.y;
+                parts[i] = this.buildCoordinates(point);
             }
             path = parts.join(" ");
         } else {
             // Point
-            path = geometry.x + "," + geometry.y;
+            path = this.buildCoordinates(geometry);
         }
         
         var txtNode = this.createTextNode(path);
@@ -1424,6 +1420,24 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
         
         return coordinatesNode;
     },    
+    
+    /**
+     * Method: buildCoordinates
+     *
+     * Parameters:
+     * point - {<OpenLayers.Geometry.Point>}
+     *
+     * Returns
+     * {String} a coordinate pair
+     */
+    buildCoordinates: function(point) {
+        if (this.internalProjection && this.externalProjection) {
+            point = point.clone();
+            point.transform(this.internalProjection, 
+                               this.externalProjection);
+        }
+        return point.x + "," + point.y;                     
+    },
 
     CLASS_NAME: "OpenLayers.Format.KML" 
 });
diff --git a/lib/OpenLayers/Format/OGCExceptionReport.js b/lib/OpenLayers/Format/OGCExceptionReport.js
new file mode 100644
index 0000000..ac7dffc
--- /dev/null
+++ b/lib/OpenLayers/Format/OGCExceptionReport.js
@@ -0,0 +1,108 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML.js
+ */
+
+/**
+ * Class: OpenLayers.Format.OGCExceptionReport
+ * Class to read exception reports for various OGC services and versions.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.OGCExceptionReport = OpenLayers.Class(OpenLayers.Format.XML, {
+
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        ogc: "http://www.opengis.net/ogc"
+    },
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+
+    /**
+     * Property: defaultPrefix
+     */
+    defaultPrefix: "ogc",
+
+    /**
+     * Constructor: OpenLayers.Format.OGCExceptionReport
+     * Create a new parser for OGC exception reports.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * APIMethod: read
+     * Read OGC exception report data from a string, and return an object with
+     * information about the exceptions.
+     *
+     * Parameters:
+     * data - {String} or {DOMElement} data to read/parse.
+     *
+     * Returns:
+     * {Object} Information about the exceptions that occurred.
+     */
+    read: function(data) {
+        var result;
+        if(typeof data == "string") {
+            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
+        }
+        var root = data.documentElement;
+        var exceptionInfo = {exceptionReport: null}; 
+        if (root) {
+            this.readChildNodes(data, exceptionInfo);
+            if (exceptionInfo.exceptionReport === null) {
+                // fall-back to OWSCommon since this is a common output format for exceptions
+                // we cannot easily use the ows readers directly since they differ for 1.0 and 1.1
+                exceptionInfo = new OpenLayers.Format.OWSCommon().read(data);
+            }
+        }
+        return exceptionInfo;
+    },
+
+    /**
+     * Property: readers
+     * Contains public functions, grouped by namespace prefix, that will
+     *     be applied when a namespaced node is found matching the function
+     *     name.  The function will be applied in the scope of this parser
+     *     with two arguments: the node being read and a context object passed
+     *     from the parent.
+     */
+    readers: {
+        "ogc": {
+            "ServiceExceptionReport": function(node, obj) {
+                obj.exceptionReport = {exceptions: []};
+                this.readChildNodes(node, obj.exceptionReport);
+            },
+            "ServiceException": function(node, exceptionReport) {
+                var exception = {
+                    code: node.getAttribute("code"),
+                    locator: node.getAttribute("locator"),
+                    text: this.getChildValue(node)
+                };
+                exceptionReport.exceptions.push(exception);
+            }
+        }
+    },
+    
+    CLASS_NAME: "OpenLayers.Format.OGCExceptionReport"
+    
+});
diff --git a/lib/OpenLayers/Format/OSM.js b/lib/OpenLayers/Format/OSM.js
index e53ec8e..ce408f7 100644
--- a/lib/OpenLayers/Format/OSM.js
+++ b/lib/OpenLayers/Format/OSM.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -291,7 +291,7 @@ OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
      * features - {Array(<OpenLayers.Feature.Vector>)}
      */
     write: function(features) { 
-        if (!(features instanceof Array)) {
+        if (!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         
@@ -347,6 +347,13 @@ OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
         'point': function(point) {
             var id = null;
             var geometry = point.geometry ? point.geometry : point;
+            
+            if (this.internalProjection && this.externalProjection) {
+                geometry = geometry.clone();
+                geometry.transform(this.internalProjection, 
+                                   this.externalProjection);
+            }                       
+            
             var already_exists = false; // We don't return anything if the node
                                         // has already been created
             if (point.osm_id) {
@@ -374,13 +381,14 @@ OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
             return already_exists ? [] : [node];
         }, 
         linestring: function(feature) {
+            var id;
             var nodes = [];
             var geometry = feature.geometry;
             if (feature.osm_id) {
                 id = feature.osm_id;
             } else {
-               id = -this.osm_id;
-               this.osm_id++; 
+                id = -this.osm_id;
+                this.osm_id++; 
             }
             var way = this.createElementNS(null, "way");
             way.setAttribute("id", id);
diff --git a/lib/OpenLayers/Format/OWSCommon.js b/lib/OpenLayers/Format/OWSCommon.js
new file mode 100644
index 0000000..b5e4e85
--- /dev/null
+++ b/lib/OpenLayers/Format/OWSCommon.js
@@ -0,0 +1,78 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
+ */
+
+/**
+ * Class: OpenLayers.Format.OWSCommon
+ * Read OWSCommon. Create a new instance with the <OpenLayers.Format.OWSCommon>
+ *     constructor.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.XML.VersionedOGC>
+ */
+OpenLayers.Format.OWSCommon = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
+    
+    /**
+     * APIProperty: defaultVersion
+     * {String} Version number to assume if none found.  Default is "1.0.0".
+     */
+    defaultVersion: "1.0.0",
+    
+    /**
+     * Constructor: OpenLayers.Format.OWSCommon
+     * Create a new parser for OWSCommon.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * Method: getVersion
+     * Returns the version to use. Subclasses can override this function
+     * if a different version detection is needed.
+     *
+     * Parameters:
+     * root - {DOMElement}
+     * options - {Object} Optional configuration object.
+     *
+     * Returns:
+     * {String} The version to use.
+     */
+    getVersion: function(root, options) {
+        var version = this.version;
+        if(!version) {
+            // remember version does not correspond to the OWS version
+            // it corresponds to the WMS/WFS/WCS etc. request version
+            var uri = root.getAttribute("xmlns:ows");
+            // the above will fail if the namespace prefix is different than
+            // ows and if the namespace is declared on a different element
+            if (uri && uri.substring(uri.lastIndexOf("/")+1) === "1.1") {
+                version ="1.1.0";
+            } 
+            if(!version) {
+                version = this.defaultVersion;
+            }
+        }
+        return version;
+    },
+
+    /**
+     * APIMethod: read
+     * Read an OWSCommon document and return an object.
+     *
+     * Parameters:
+     * data - {String | DOMElement} Data to read.
+     * options - {Object} Options for the reader.
+     *
+     * Returns:
+     * {Object} An object representing the structure of the document.
+     */
+
+    CLASS_NAME: "OpenLayers.Format.OWSCommon" 
+});
diff --git a/lib/OpenLayers/Format/OWSCommon/v1.js b/lib/OpenLayers/Format/OWSCommon/v1.js
index 69f3c71..7ee9759 100644
--- a/lib/OpenLayers/Format/OWSCommon/v1.js
+++ b/lib/OpenLayers/Format/OWSCommon/v1.js
@@ -1,16 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/OWSCommon.js
  */
 
-if (!OpenLayers.Format.OWSCommon) {
-    OpenLayers.Format.OWSCommon = {};
-}
-
 /**
  * Class: OpenLayers.Format.OWSCommon.v1
  * Common readers and writers for OWSCommon v1.X formats
@@ -29,6 +25,23 @@ OpenLayers.Format.OWSCommon.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
     },
 
     /**
+     * Method: read
+     *
+     * Parameters:
+     * data - {DOMElement} An OWSCommon document element.
+     * options - {Object} Options for the reader.
+     *
+     * Returns:
+     * {Object} An object representing the OWSCommon document.
+     */
+    read: function(data, options) {
+        options = OpenLayers.Util.applyDefaults(options, this.options);
+        var ows = {};
+        this.readChildNodes(data, ows);
+        return ows;
+    },
+
+    /**
      * Property: readers
      * Contains public functions, grouped by namespace prefix, that will
      *     be applied when a namespaced node is found matching the function
@@ -38,6 +51,19 @@ OpenLayers.Format.OWSCommon.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
      */
     readers: {
         "ows": {
+            "Exception": function(node, exceptionReport) {
+                var exception = {
+                    code: node.getAttribute('exceptionCode'),
+                    locator: node.getAttribute('locator'),
+                    texts: []
+                };
+                exceptionReport.exceptions.push(exception);
+                this.readChildNodes(node, exception);
+            },
+            "ExceptionText": function(node, exception) {
+                var text = this.getChildValue(node);
+                exception.texts.push(text);
+            },
             "ServiceIdentification": function(node, obj) {
                 obj.serviceIdentification = {};
                 this.readChildNodes(node, obj.serviceIdentification);
@@ -206,6 +232,9 @@ OpenLayers.Format.OWSCommon.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                 delete obj.bottom;
                 delete obj.right;
                 delete obj.top;
+            },
+            "Language": function(node, obj) {
+                obj.language = this.getChildValue(node);
             }
         }
     },
@@ -238,11 +267,21 @@ OpenLayers.Format.OWSCommon.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                     value: options.bounds.right + " " + options.bounds.top });
                 return node;
             },
+            "Identifier": function(identifier) {
+                var node = this.createElementNSPlus("ows:Identifier", {
+                    value: identifier });
+                return node;
+            },
             "Title": function(title) {
                 var node = this.createElementNSPlus("ows:Title", {
                     value: title });
                 return node;
             },
+            "Abstract": function(abstractValue) {
+                var node = this.createElementNSPlus("ows:Abstract", {
+                    value: abstractValue });
+                return node;
+            },
             "OutputFormat": function(format) {
                 var node = this.createElementNSPlus("ows:OutputFormat", {
                     value: format });
diff --git a/lib/OpenLayers/Format/OWSCommon/v1_0_0.js b/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
index 73bac2b..c628a3d 100644
--- a/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
+++ b/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,8 +9,7 @@
 
 /**
  * Class: OpenLayers.Format.OWSCommon.v1_0_0
- * Parser for OWS Common version 1.0.0 which can be used by other parsers.
- * It is not intended to be used on its own.
+ * Parser for OWS Common version 1.0.0.
  */
 OpenLayers.Format.OWSCommon.v1_0_0 = OpenLayers.Class(OpenLayers.Format.OWSCommon.v1, {
     
@@ -19,7 +18,7 @@ OpenLayers.Format.OWSCommon.v1_0_0 = OpenLayers.Class(OpenLayers.Format.OWSCommo
      * {Object} Mapping of namespace aliases to namespace URIs.
      */
     namespaces: {
-        ows: "http://www.opengis.net/ows/1.0",
+        ows: "http://www.opengis.net/ows",
         xlink: "http://www.w3.org/1999/xlink"
     },    
     
@@ -32,7 +31,17 @@ OpenLayers.Format.OWSCommon.v1_0_0 = OpenLayers.Class(OpenLayers.Format.OWSCommo
      *     from the parent.
      */
     readers: {
-        "ows": OpenLayers.Format.OWSCommon.v1.prototype.readers["ows"]
+        "ows": OpenLayers.Util.applyDefaults({
+            "ExceptionReport": function(node, obj) {
+                obj.success = false;
+                obj.exceptionReport = {
+                    version: node.getAttribute('version'),
+                    language: node.getAttribute('language'),
+                    exceptions: []
+                };
+                this.readChildNodes(node, obj.exceptionReport);
+            } 
+        }, OpenLayers.Format.OWSCommon.v1.prototype.readers.ows)
     },
 
     /**
@@ -42,9 +51,9 @@ OpenLayers.Format.OWSCommon.v1_0_0 = OpenLayers.Class(OpenLayers.Format.OWSCommo
      *     node names they produce.
      */
     writers: {
-        "ows": OpenLayers.Format.OWSCommon.v1.prototype.writers["ows"]
+        "ows": OpenLayers.Format.OWSCommon.v1.prototype.writers.ows
     },
     
-    CLASS_NAME: "OpenLayers.Format.OWSCommon.v1_1_0"
+    CLASS_NAME: "OpenLayers.Format.OWSCommon.v1_0_0"
 
 });
diff --git a/lib/OpenLayers/Format/OWSCommon/v1_1_0.js b/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
index c6586a7..c3ccae5 100644
--- a/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
+++ b/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,8 +9,7 @@
 
 /**
  * Class: OpenLayers.Format.OWSCommon.v1_1_0
- * Parser for OWS Common version 1.1.0 which can be used by other parsers.
- * It is not intended to be used on its own.
+ * Parser for OWS Common version 1.1.0.
  */
 OpenLayers.Format.OWSCommon.v1_1_0 = OpenLayers.Class(OpenLayers.Format.OWSCommon.v1, {
 
@@ -33,6 +32,14 @@ OpenLayers.Format.OWSCommon.v1_1_0 = OpenLayers.Class(OpenLayers.Format.OWSCommo
      */
     readers: {
         "ows": OpenLayers.Util.applyDefaults({
+            "ExceptionReport": function(node, obj) {
+                obj.exceptionReport = {
+                    version: node.getAttribute('version'),
+                    language: node.getAttribute('xml:lang'),
+                    exceptions: []
+                };
+                this.readChildNodes(node, obj.exceptionReport);
+            },
             "AllowedValues": function(node, parameter) {
                 parameter.allowedValues = {};
                 this.readChildNodes(node, parameter.allowedValues);
@@ -40,6 +47,9 @@ OpenLayers.Format.OWSCommon.v1_1_0 = OpenLayers.Class(OpenLayers.Format.OWSCommo
             "AnyValue": function(node, parameter) {
                 parameter.anyValue = true;
             },
+            "DataType": function(node, parameter) {
+                parameter.dataType = this.getChildValue(node);
+            },
             "Range": function(node, allowedValues) {
                 allowedValues.range = {};
                 this.readChildNodes(node, allowedValues.range);
@@ -58,7 +68,46 @@ OpenLayers.Format.OWSCommon.v1_1_0 = OpenLayers.Class(OpenLayers.Format.OWSCommo
             }
         }, OpenLayers.Format.OWSCommon.v1.prototype.readers["ows"])
     },
-    
+
+    /**
+     * Property: writers
+     * As a compliment to the readers property, this structure contains public
+     *     writing functions grouped by namespace alias and named like the
+     *     node names they produce.
+     */
+    writers: {
+        "ows": OpenLayers.Util.applyDefaults({
+            "Range": function(range) {
+                var node = this.createElementNSPlus("ows:Range", {
+                    attributes: {
+                        'ows:rangeClosure': range.closure
+                    }
+                });
+                this.writeNode("ows:MinimumValue", range.minValue, node);
+                this.writeNode("ows:MaximumValue", range.maxValue, node);
+                return node;
+            },
+            "MinimumValue": function(minValue) {
+                var node = this.createElementNSPlus("ows:MinimumValue", {
+                    value: minValue
+                });
+                return node;
+            },
+            "MaximumValue": function(maxValue) {
+                var node = this.createElementNSPlus("ows:MaximumValue", {
+                    value: maxValue
+                });
+                return node;
+            },
+            "Value": function(value) {
+                var node = this.createElementNSPlus("ows:Value", {
+                    value: value
+                });
+                return node;
+            }
+        }, OpenLayers.Format.OWSCommon.v1.prototype.writers["ows"])
+    },
+
     CLASS_NAME: "OpenLayers.Format.OWSCommon.v1_1_0"
 
 });
diff --git a/lib/OpenLayers/Format/OWSContext.js b/lib/OpenLayers/Format/OWSContext.js
index d31c55f..9f90332 100644
--- a/lib/OpenLayers/Format/OWSContext.js
+++ b/lib/OpenLayers/Format/OWSContext.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -23,34 +23,36 @@ OpenLayers.Format.OWSContext = OpenLayers.Class(OpenLayers.Format.Context,{
      * {String} Version number to assume if none found.  Default is "0.3.1".
      */
     defaultVersion: "0.3.1",
+
+    /**
+     * Constructor: OpenLayers.Format.OWSContext
+     * Create a new parser for OWS Context documents.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
     
     /**
-     * Method: getParser
-     * Get the OWSContext parser given a version. Create a new parser if it does not
-     * already exist.
+     * Method: getVersion
+     * Returns the version to use. Subclasses can override this function
+     * if a different version detection is needed.
      *
      * Parameters:
-     * version - {String} The version of the parser.
+     * root - {DOMElement}
+     * options - {Object} Optional configuration object.
      *
      * Returns:
-     * {<OpenLayers.Format.OWSContext>} An OWSContext parser.
+     * {String} The version to use.
      */
-    getParser: function(version) {
-        var v = version || this.version || this.defaultVersion;
+    getVersion: function(root, options) {
+        var version = OpenLayers.Format.XML.VersionedOGC.prototype.getVersion.apply(
+            this, arguments);
         // 0.3.1 is backwards compatible with 0.3.0
-        if (v === "0.3.0") {
-            v = this.defaultVersion;
-        }
-        if(!this.parser || this.parser.VERSION != v) {
-            var format = OpenLayers.Format.OWSContext[
-                "v" + v.replace(/\./g, "_")
-            ];
-            if(!format) {
-                throw "Can't find a OWSContext parser for version " + v;
-            }
-            this.parser = new format(this.options);
+        if (version === "0.3.0") {
+            version = this.defaultVersion;
         }
-        return this.parser;
+        return version;
     },
 
     /**
diff --git a/lib/OpenLayers/Format/OWSContext/v0_3_1.js b/lib/OpenLayers/Format/OWSContext/v0_3_1.js
index 5a092cd..4f4948f 100644
--- a/lib/OpenLayers/Format/OWSContext/v0_3_1.js
+++ b/lib/OpenLayers/Format/OWSContext/v0_3_1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -178,10 +178,11 @@ OpenLayers.Format.OWSContext.v0_3_1 = OpenLayers.Class(OpenLayers.Format.XML, {
      */
     decomposeNestingPath: function(nPath){
         var a = [];
-        if (nPath instanceof Array) {
-            while (nPath.length > 0) {
-                a.push(nPath.slice());
-                nPath.pop();
+        if (OpenLayers.Util.isArray(nPath)) {
+            var path = nPath.slice();
+            while (path.length > 0) {
+                a.push(path.slice());
+                path.pop();
             }
             a.reverse();
         }
@@ -440,7 +441,9 @@ OpenLayers.Format.OWSContext.v0_3_1 = OpenLayers.Class(OpenLayers.Format.XML, {
                 var node = this.createElementNSPlus("Style");
                 this.writeNode("Name", style, node);
                 this.writeNode("Title", style, node);
-                this.writeNode("LegendURL", style, node);
+                if (style.legend) {
+                    this.writeNode("LegendURL", style, node);
+                }
                 return node;
             },
             "Name": function(obj) {
diff --git a/lib/OpenLayers/Format/QueryStringFilter.js b/lib/OpenLayers/Format/QueryStringFilter.js
new file mode 100644
index 0000000..8f6f59d
--- /dev/null
+++ b/lib/OpenLayers/Format/QueryStringFilter.js
@@ -0,0 +1,180 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format.js
+ * @requires OpenLayers/Filter/Comparison.js
+ */
+
+/**
+ * Class: OpenLayers.Format.QueryStringFilter
+ * Parser for reading a query string and creating a simple filter.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format>
+ */
+OpenLayers.Format.QueryStringFilter = (function() {
+
+    /** 
+     * Map the OpenLayers.Filter.Comparison types to the operation strings of 
+     * the protocol.
+     */
+    var cmpToStr = {};
+    cmpToStr[OpenLayers.Filter.Comparison.EQUAL_TO] = "eq";
+    cmpToStr[OpenLayers.Filter.Comparison.NOT_EQUAL_TO] = "ne";
+    cmpToStr[OpenLayers.Filter.Comparison.LESS_THAN] = "lt";
+    cmpToStr[OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO] = "lte";
+    cmpToStr[OpenLayers.Filter.Comparison.GREATER_THAN] = "gt";
+    cmpToStr[OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO] = "gte";
+    cmpToStr[OpenLayers.Filter.Comparison.LIKE] = "ilike";
+
+    /**
+     * Function: regex2value
+     * Convert the value from a regular expression string to a LIKE/ILIKE
+     * string known to the web service.
+     *
+     * Parameters:
+     * value - {String} The regex string.
+     *
+     * Returns:
+     * {String} The converted string.
+     */
+    function regex2value(value) {
+
+        // highly sensitive!! Do not change this without running the
+        // Protocol/HTTP.html unit tests
+
+        // convert % to \%
+        value = value.replace(/%/g, "\\%");
+
+        // convert \\. to \\_ (\\.* occurences converted later)
+        value = value.replace(/\\\\\.(\*)?/g, function($0, $1) {
+            return $1 ? $0 : "\\\\_";
+        });
+
+        // convert \\.* to \\%
+        value = value.replace(/\\\\\.\*/g, "\\\\%");
+
+        // convert . to _ (\. and .* occurences converted later)
+        value = value.replace(/(\\)?\.(\*)?/g, function($0, $1, $2) {
+            return $1 || $2 ? $0 : "_";
+        });
+
+        // convert .* to % (\.* occurnces converted later)
+        value = value.replace(/(\\)?\.\*/g, function($0, $1) {
+            return $1 ? $0 : "%";
+        });
+
+        // convert \. to .
+        value = value.replace(/\\\./g, ".");
+
+        // replace \* with * (watching out for \\*)
+        value = value.replace(/(\\)?\\\*/g, function($0, $1) {
+            return $1 ? $0 : "*";
+        });
+
+        return value;
+    }
+    
+    return OpenLayers.Class(OpenLayers.Format, {
+        
+        /**
+         * Property: wildcarded.
+         * {Boolean} If true percent signs are added around values
+         *     read from LIKE filters, for example if the protocol
+         *     read method is passed a LIKE filter whose property
+         *     is "foo" and whose value is "bar" the string
+         *     "foo__ilike=%bar%" will be sent in the query string;
+         *     defaults to false.
+         */
+        wildcarded: false,
+
+        /**
+         * APIProperty: srsInBBOX
+         * {Boolean} Include the SRS identifier in BBOX query string parameter.  
+         *     Default is false.  If true and the layer has a projection object set,
+         *     any BBOX filter will be serialized with a fifth item identifying the
+         *     projection.  E.g. bbox=-1000,-1000,1000,1000,EPSG:900913
+         */
+        srsInBBOX: false,
+
+        /**
+         * APIMethod: write
+         * Serialize an <OpenLayers.Filter> objects using the "simple" filter syntax for 
+         *     query string parameters.  This function must be called as a method of
+         *     a protocol instance.
+         *
+         * Parameters:
+         * filter - {<OpenLayers.Filter>} filter to convert.
+         * params - {Object} The parameters object.
+         *
+         * Returns:
+         * {Object} The resulting parameters object.
+         */
+        write: function(filter, params) {
+            params = params || {};
+            var className = filter.CLASS_NAME;
+            var filterType = className.substring(className.lastIndexOf(".") + 1);
+            switch (filterType) {
+                case "Spatial":
+                    switch (filter.type) {
+                        case OpenLayers.Filter.Spatial.BBOX:
+                            params.bbox = filter.value.toArray();
+                            if (this.srsInBBOX && filter.projection) {
+                                params.bbox.push(filter.projection.getCode());
+                            }
+                            break;
+                        case OpenLayers.Filter.Spatial.DWITHIN:
+                            params.tolerance = filter.distance;
+                            // no break here
+                        case OpenLayers.Filter.Spatial.WITHIN:
+                            params.lon = filter.value.x;
+                            params.lat = filter.value.y;
+                            break;
+                        default:
+                            OpenLayers.Console.warn(
+                                "Unknown spatial filter type " + filter.type);
+                    }
+                    break;
+                case "Comparison":
+                    var op = cmpToStr[filter.type];
+                    if (op !== undefined) {
+                        var value = filter.value;
+                        if (filter.type == OpenLayers.Filter.Comparison.LIKE) {
+                            value = regex2value(value);
+                            if (this.wildcarded) {
+                                value = "%" + value + "%";
+                            }
+                        }
+                        params[filter.property + "__" + op] = value;
+                        params.queryable = params.queryable || [];
+                        params.queryable.push(filter.property);
+                    } else {
+                        OpenLayers.Console.warn(
+                            "Unknown comparison filter type " + filter.type);
+                    }
+                    break;
+                case "Logical":
+                    if (filter.type === OpenLayers.Filter.Logical.AND) {
+                        for (var i=0,len=filter.filters.length; i<len; i++) {
+                            params = this.write(filter.filters[i], params);
+                        }
+                    } else {
+                        OpenLayers.Console.warn(
+                            "Unsupported logical filter type " + filter.type);
+                    }
+                    break;
+                default:
+                    OpenLayers.Console.warn("Unknown filter type " + filterType);
+            }
+            return params;
+        },
+        
+        CLASS_NAME: "OpenLayers.Format.QueryStringFilter"
+        
+    });
+
+
+})();
\ No newline at end of file
diff --git a/lib/OpenLayers/Format/SLD.js b/lib/OpenLayers/Format/SLD.js
index 0383c58..a6e4713 100644
--- a/lib/OpenLayers/Format/SLD.js
+++ b/lib/OpenLayers/Format/SLD.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  * @requires OpenLayers/Style.js
  * @requires OpenLayers/Rule.js
  * @requires OpenLayers/Filter/FeatureId.js
@@ -19,9 +19,9 @@
  *     constructor.
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
     
     /**
      * APIProperty: defaultVersion
@@ -30,10 +30,11 @@ OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML, {
     defaultVersion: "1.0.0",
     
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
+     * APIProperty: stringifyOutput
+     * {Boolean} If true, write will return a string otherwise a DOMElement.
+     * Default is true.
      */
-    version: null,
+    stringifyOutput: true,
     
     /**
      * APIProperty: namedLayersAsArray
@@ -44,25 +45,6 @@ OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML, {
     namedLayersAsArray: false,
     
     /**
-     * Property: parser
-     * {Object} Instance of the versioned parser.  Cached for multiple read and
-     *     write calls of the same version.
-     */
-    parser: null,
-
-    /**
-     * Constructor: OpenLayers.Format.SLD
-     * Create a new parser for SLD.
-     *
-     * Parameters:
-     * options - {Object} An optional object whose properties will be set on
-     *     this instance.
-     */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
-
-    /**
      * APIMethod: write
      * Write a SLD document given a list of styles.
      *
@@ -73,22 +55,6 @@ OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {String} An SLD document string.
      */
-    write: function(sld, options) {
-        var version = (options && options.version) ||
-                      this.version || this.defaultVersion;
-        if(!this.parser || this.parser.VERSION != version) {
-            var format = OpenLayers.Format.SLD[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if(!format) {
-                throw "Can't find a SLD parser for version " +
-                      version;
-            }
-            this.parser = new format(this.options);
-        }
-        var root = this.parser.write(sld);
-        return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
-    },
     
     /**
      * APIMethod: read
@@ -101,31 +67,6 @@ OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {Object} An object representing the SLD.
      */
-    read: function(data, options) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version;
-        if(!version) {
-            version = root.getAttribute("version");
-            if(!version) {
-                version = this.defaultVersion;
-            }
-        }
-        if(!this.parser || this.parser.VERSION != version) {
-            var format = OpenLayers.Format.SLD[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if(!format) {
-                throw "Can't find a SLD parser for version " +
-                      version;
-            }
-            this.parser = new format(this.options);
-        }
-        var sld = this.parser.read(data, options);
-        return sld;
-    },
 
     CLASS_NAME: "OpenLayers.Format.SLD" 
 });
diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js
index f2ac8da..8f9f39d 100644
--- a/lib/OpenLayers/Format/SLD/v1.js
+++ b/lib/OpenLayers/Format/SLD/v1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -147,7 +147,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
                 for(var i=0, len=layer.userStyles.length; i<len; ++i) {
                     layer.userStyles[i].layerName = layer.name;
                 }
-                if(sld.namedLayers instanceof Array) {
+                if(OpenLayers.Util.isArray(sld.namedLayers)) {
                     sld.namedLayers.push(layer);                
                 } else {
                     sld.namedLayers[layer.name] = layer;
@@ -558,7 +558,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
                 }
                 // add in named layers
                 // allow namedLayers to be an array
-                if(sld.namedLayers instanceof Array) {
+                if(OpenLayers.Util.isArray(sld.namedLayers)) {
                     for(var i=0, len=sld.namedLayers.length; i<len; ++i) {
                         this.writeNode("NamedLayer", sld.namedLayers[i], root);
                     }
diff --git a/lib/OpenLayers/Format/SLD/v1_0_0.js b/lib/OpenLayers/Format/SLD/v1_0_0.js
index 11378d9..9c82ad4 100644
--- a/lib/OpenLayers/Format/SLD/v1_0_0.js
+++ b/lib/OpenLayers/Format/SLD/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/SOSCapabilities.js b/lib/OpenLayers/Format/SOSCapabilities.js
index 381145d..ae7643b 100644
--- a/lib/OpenLayers/Format/SOSCapabilities.js
+++ b/lib/OpenLayers/Format/SOSCapabilities.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  */
  
 /**
@@ -12,9 +12,9 @@
  * Read SOS Capabilities.
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.SOSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.SOSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
     
     /**
      * APIProperty: defaultVersion
@@ -23,29 +23,13 @@ OpenLayers.Format.SOSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
     defaultVersion: "1.0.0",
     
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
-     */
-    version: null,
-
-    /**
-     * Property: parser
-     * {<OpenLayers.Format>} A cached versioned format used for reading.
-     */
-    parser: null,     
-
-    /**
      * Constructor: OpenLayers.Format.SOSCapabilities
-     * Create a new parser for SOS capabilities.
+     * Create a new parser for SOS Capabilities.
      *
      * Parameters:
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -58,25 +42,6 @@ OpenLayers.Format.SOSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {Object} Info about the SOS
      */
-    read: function(data) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version || root.getAttribute("version") || this.defaultVersion;
-        if(!this.parser || this.parser.version !== version) {
-            var constr = OpenLayers.Format.SOSCapabilities[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if(!constr) {
-                throw "Can't find a SOS capabilities parser for version " + version;
-            }
-            var parser = new constr(this.options);
-        }
-        var capabilities = parser.read(data);
-        capabilities.version = version;
-        return capabilities; 
-    },
     
     CLASS_NAME: "OpenLayers.Format.SOSCapabilities" 
 
diff --git a/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js b/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
index b6a8382..4119ae8 100644
--- a/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
+++ b/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js b/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
index 1487a61..0f3997d 100644
--- a/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
+++ b/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -66,9 +66,6 @@ OpenLayers.Format.SOSGetFeatureOfInterest = OpenLayers.Class(
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
 
     /**
      * APIMethod: read
diff --git a/lib/OpenLayers/Format/SOSGetObservation.js b/lib/OpenLayers/Format/SOSGetObservation.js
index c6823cc..3ff51d7 100644
--- a/lib/OpenLayers/Format/SOSGetObservation.js
+++ b/lib/OpenLayers/Format/SOSGetObservation.js
@@ -1,262 +1,302 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/GML.js
- * @requires OpenLayers/Format/GML/v3.js
- */
-
-/**
- * Class: OpenLayers.Format.SOSGetObservation
- * Read and write SOS GetObersation (to get the actual values from a sensor) 
- *     version 1.0.0
- *
- * Inherits from:
- *  - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.SOSGetObservation = OpenLayers.Class(OpenLayers.Format.XML, {
-    
-    /**
-     * Property: namespaces
-     * {Object} Mapping of namespace aliases to namespace URIs.
-     */
-    namespaces: {
-        ows: "http://www.opengis.net/ows",
-        gml: "http://www.opengis.net/gml",
-        sos: "http://www.opengis.net/sos/1.0",
-        ogc: "http://www.opengis.net/ogc",
-        om: "http://www.opengis.net/om/1.0",
-        xlink: "http://www.w3.org/1999/xlink",
-        xsi: "http://www.w3.org/2001/XMLSchema-instance"
-    },
-
-    /**
-     * Property: regExes
-     * Compiled regular expressions for manipulating strings.
-     */
-    regExes: {
-        trimSpace: (/^\s*|\s*$/g),
-        removeSpace: (/\s*/g),
-        splitSpace: (/\s+/),
-        trimComma: (/\s*,\s*/g)
-    },
-
-    /**
-     * Constant: VERSION
-     * {String} 1.0.0
-     */
-    VERSION: "1.0.0",
-
-    /**
-     * Property: schemaLocation
-     * {String} Schema location
-     */
-    schemaLocation: "http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd",
-
-    /**
-     * Property: defaultPrefix
-     */
-    defaultPrefix: "sos",
-
-    /**
-     * Constructor: OpenLayers.Format.SOSGetObservation
-     *
-     * Parameters:
-     * options - {Object} An optional object whose properties will be set on
-     *     this instance.
-     */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
-
-    /**
-     * Method: read
-     * 
-     * Parameters: 
-     * data - {String} or {DOMElement} data to read/parse.
-     *
-     * Returns:
-     * {Object} An object containing the measurements
-     */
-    read: function(data) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        if(data && data.nodeType == 9) {
-            data = data.documentElement;
-        }
-        var info = {measurements: []};
-        this.readNode(data, info);
-        return info;
-    },
-
-    /**
-     * Method: write
-     *
-     * Parameters:
-     * options - {Object} Optional object.
-     *
-     * Returns:
-     * {String} An SOS GetObservation request XML string.
-     */
-    write: function(options) {
-        var node = this.writeNode("sos:GetObservation", options);
+
+/**
+ * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/SOSGetFeatureOfInterest.js
+ */
+
+/**
+ * Class: OpenLayers.Format.SOSGetObservation
+ * Read and write SOS GetObersation (to get the actual values from a sensor) 
+ *     version 1.0.0
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.SOSGetObservation = OpenLayers.Class(OpenLayers.Format.XML, {
+    
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        ows: "http://www.opengis.net/ows",
+        gml: "http://www.opengis.net/gml",
+        sos: "http://www.opengis.net/sos/1.0",
+        ogc: "http://www.opengis.net/ogc",
+        om: "http://www.opengis.net/om/1.0",
+        sa: "http://www.opengis.net/sampling/1.0",
+        xlink: "http://www.w3.org/1999/xlink",
+        xsi: "http://www.w3.org/2001/XMLSchema-instance"
+    },
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+
+    /**
+     * Constant: VERSION
+     * {String} 1.0.0
+     */
+    VERSION: "1.0.0",
+
+    /**
+     * Property: schemaLocation
+     * {String} Schema location
+     */
+    schemaLocation: "http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd",
+
+    /**
+     * Property: defaultPrefix
+     */
+    defaultPrefix: "sos",
+
+    /**
+     * Constructor: OpenLayers.Format.SOSGetObservation
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * Method: read
+     * 
+     * Parameters: 
+     * data - {String} or {DOMElement} data to read/parse.
+     *
+     * Returns:
+     * {Object} An object containing the measurements
+     */
+    read: function(data) {
+        if(typeof data == "string") {
+            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
+        }
+        if(data && data.nodeType == 9) {
+            data = data.documentElement;
+        }
+        var info = {measurements: [], observations: []};
+        this.readNode(data, info);
+        return info;
+    },
+
+    /**
+     * Method: write
+     *
+     * Parameters:
+     * options - {Object} Optional object.
+     *
+     * Returns:
+     * {String} An SOS GetObservation request XML string.
+     */
+    write: function(options) {
+        var node = this.writeNode("sos:GetObservation", options);
         node.setAttribute("xmlns:om", this.namespaces.om);
-        this.setAttributeNS(
-            node, this.namespaces.xsi,
-            "xsi:schemaLocation", this.schemaLocation
-        );
-        return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
-    }, 
-
-    /**
-     * Property: readers
-     * Contains public functions, grouped by namespace prefix, that will
-     *     be applied when a namespaced node is found matching the function
-     *     name.  The function will be applied in the scope of this parser
-     *     with two arguments: the node being read and a context object passed
-     *     from the parent.
-     */
-    readers: {
-        "om": {
-            "ObservationCollection": function(node, obj) {
-                obj.id = this.getAttributeNS(node, this.namespaces.gml, "id");
-                this.readChildNodes(node, obj);
-            },
-            "member": function(node, observationCollection) {
-                this.readChildNodes(node, observationCollection);
-            },
-            "Measurement": function(node, observationCollection) {
-                var measurement = {};
-                observationCollection.measurements.push(measurement);
-                this.readChildNodes(node, measurement);
-            },
-            "samplingTime": function(node, measurement) {
-                var samplingTime = {};
-                measurement.samplingTime = samplingTime;
-                this.readChildNodes(node, samplingTime);
-            },
-            "observedProperty": function(node, measurement) {
-                measurement.observedProperty = 
-                    this.getAttributeNS(node, this.namespaces.xlink, "href");
-                this.readChildNodes(node, measurement);
-            },
-            "procedure": function(node, measurement) {
-                measurement.procedure = 
-                    this.getAttributeNS(node, this.namespaces.xlink, "href");
-                this.readChildNodes(node, measurement);
-            },
-            "result": function(node, measurement) {
-                var result = {};
-                measurement.result = result;
-                if (this.getChildValue(node) !== '') {
-                    result.value = this.getChildValue(node);
-                    result.uom = node.getAttribute("uom");
-                } else {
-                    this.readChildNodes(node, result);
-                }
-            }
-        },
-        "gml": OpenLayers.Util.applyDefaults({
-            "TimeInstant": function(node, samplingTime) {
-               var timeInstant = {};
-                samplingTime.timeInstant = timeInstant;
-                this.readChildNodes(node, timeInstant);
-            },
-            "timePosition": function(node, timeInstant) {
-                timeInstant.timePosition = this.getChildValue(node);
-            }
-        }, OpenLayers.Format.GML.v3.prototype.readers.gml)
-    },
-
-    /**
-     * Property: writers
-     * As a compliment to the readers property, this structure contains public
-     *     writing functions grouped by namespace alias and named like the
-     *     node names they produce.
-     */
-    writers: {
-        "sos": {
-            "GetObservation": function(options) {
-                var node = this.createElementNSPlus("GetObservation", {
-                    attributes: {
-                        version: this.VERSION,
-                        service: 'SOS'
-                    } 
-                }); 
-                this.writeNode("offering", options, node);
-                this.writeNode("eventTime", options, node);
-                this.writeNode("procedure", options, node);
-                this.writeNode("observedProperty", options, node);
-                this.writeNode("responseFormat", options, node);
-                this.writeNode("resultModel", options, node);                                
-                this.writeNode("responseMode", options, node);
-                return node; 
-            },
-            "responseFormat": function(options) {
-                return this.createElementNSPlus("responseFormat", 
-                    {value: options.responseFormat});
-            },
-            "procedure": function(options) {
-                return this.createElementNSPlus("procedure", 
-                    {value: options.procedure});
-            },
-            "offering": function(options) {
-                return this.createElementNSPlus("offering", {value: 
-                    options.offering});
-            },
-            "observedProperty": function(options) {
-                return this.createElementNSPlus("observedProperty", 
-                    {value: options.observedProperty});
-            },
-            "eventTime": function(options) {
-                var node = this.createElementNSPlus("eventTime");
-                if (options.eventTime === 'latest') {
-                    this.writeNode("ogc:TM_Equals", options, node);
-                }
-                return node;
-            },
-            "resultModel": function(options) {
-                return this.createElementNSPlus("resultModel", {value: 
-                    options.resultModel});
-            },
-            "responseMode": function(options) {
-                return this.createElementNSPlus("responseMode", {value: 
-                    options.responseMode});
-            }
-        },
-        "ogc": {
-            "TM_Equals": function(options) {
-                var node = this.createElementNSPlus("ogc:TM_Equals");
-                this.writeNode("ogc:PropertyName", {property: 
-                    "urn:ogc:data:time:iso8601"}, node);
-                if (options.eventTime === 'latest') {
-                    this.writeNode("gml:TimeInstant", {value: 'latest'}, node);
-                }
-                return node;
-            },
-            "PropertyName": function(options) {
-                return this.createElementNSPlus("ogc:PropertyName", 
-                    {value: options.property});
-            }
-        },
-        "gml": {
-            "TimeInstant": function(options) {
-                var node = this.createElementNSPlus("gml:TimeInstant");
-                this.writeNode("gml:timePosition", options, node);
-                return node;
-            },
-            "timePosition": function(options) {
-                var node = this.createElementNSPlus("gml:timePosition", 
-                    {value: options.value});
-                return node;
-            }
-        }
-    },
-    
-    CLASS_NAME: "OpenLayers.Format.SOSGetObservation" 
-
-});
+        node.setAttribute("xmlns:ogc", this.namespaces.ogc);
+        this.setAttributeNS(
+            node, this.namespaces.xsi,
+            "xsi:schemaLocation", this.schemaLocation
+        );
+        return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
+    }, 
+
+    /**
+     * Property: readers
+     * Contains public functions, grouped by namespace prefix, that will
+     *     be applied when a namespaced node is found matching the function
+     *     name.  The function will be applied in the scope of this parser
+     *     with two arguments: the node being read and a context object passed
+     *     from the parent.
+     */
+    readers: {
+        "om": {
+            "ObservationCollection": function(node, obj) {
+                obj.id = this.getAttributeNS(node, this.namespaces.gml, "id");
+                this.readChildNodes(node, obj);
+            },
+            "member": function(node, observationCollection) {
+                this.readChildNodes(node, observationCollection);
+            },
+            "Measurement": function(node, observationCollection) {
+                var measurement = {};
+                observationCollection.measurements.push(measurement);
+                this.readChildNodes(node, measurement);
+            },
+            "Observation": function(node, observationCollection) {
+                var observation = {};
+                observationCollection.observations.push(observation);
+                this.readChildNodes(node, observation);
+            },
+            "samplingTime": function(node, measurement) {
+                var samplingTime = {};
+                measurement.samplingTime = samplingTime;
+                this.readChildNodes(node, samplingTime);
+            },
+            "observedProperty": function(node, measurement) {
+                measurement.observedProperty = 
+                    this.getAttributeNS(node, this.namespaces.xlink, "href");
+                this.readChildNodes(node, measurement);
+            },
+            "procedure": function(node, measurement) {
+                measurement.procedure = 
+                    this.getAttributeNS(node, this.namespaces.xlink, "href");
+                this.readChildNodes(node, measurement);
+            },
+            "featureOfInterest": function(node, observation) {
+                var foi = {features: []};
+                observation.fois = [];
+                observation.fois.push(foi);
+                this.readChildNodes(node, foi);
+                // postprocessing to get actual features
+                var features = [];
+                for (var i=0, len=foi.features.length; i<len; i++) {
+                    var feature = foi.features[i];
+                    features.push(new OpenLayers.Feature.Vector(
+                        feature.components[0], feature.attributes));
+                }
+                foi.features = features;
+            },
+            "result": function(node, measurement) {
+                var result = {};
+                measurement.result = result;
+                if (this.getChildValue(node) !== '') {
+                    result.value = this.getChildValue(node);
+                    result.uom = node.getAttribute("uom");
+                } else {
+                    this.readChildNodes(node, result);
+                }
+            }
+        },
+        "sa": OpenLayers.Format.SOSGetFeatureOfInterest.prototype.readers.sa,
+        "gml": OpenLayers.Util.applyDefaults({
+            "TimeInstant": function(node, samplingTime) {
+               var timeInstant = {};
+                samplingTime.timeInstant = timeInstant;
+                this.readChildNodes(node, timeInstant);
+            },
+            "timePosition": function(node, timeInstant) {
+                timeInstant.timePosition = this.getChildValue(node);
+            }
+        }, OpenLayers.Format.SOSGetFeatureOfInterest.prototype.readers.gml)
+    },
+
+    /**
+     * Property: writers
+     * As a compliment to the readers property, this structure contains public
+     *     writing functions grouped by namespace alias and named like the
+     *     node names they produce.
+     */
+    writers: {
+        "sos": {
+            "GetObservation": function(options) {
+                var node = this.createElementNSPlus("GetObservation", {
+                    attributes: {
+                        version: this.VERSION,
+                        service: 'SOS'
+                    } 
+                }); 
+                this.writeNode("offering", options, node);
+                if (options.eventTime) {
+                    this.writeNode("eventTime", options, node);
+                }
+                for (var procedure in options.procedures) {
+                    this.writeNode("procedure", options.procedures[procedure], node);
+                }
+                for (var observedProperty in options.observedProperties) {
+                    this.writeNode("observedProperty", options.observedProperties[observedProperty], node);
+                }
+                if (options.foi) {
+                    this.writeNode("featureOfInterest", options.foi, node);
+                }
+                this.writeNode("responseFormat", options, node);
+                if (options.resultModel) {
+                    this.writeNode("resultModel", options, node);
+                }
+                if (options.responseMode) {
+                    this.writeNode("responseMode", options, node);
+                }
+                return node; 
+            },
+            "featureOfInterest": function(foi) {
+                var node = this.createElementNSPlus("featureOfInterest");
+                this.writeNode("ObjectID", foi.objectId, node);
+                return node;
+            },
+            "ObjectID": function(options) {
+                return this.createElementNSPlus("ObjectID",
+                    {value: options});
+            },
+            "responseFormat": function(options) {
+                return this.createElementNSPlus("responseFormat", 
+                    {value: options.responseFormat});
+            },
+            "procedure": function(procedure) {
+                return this.createElementNSPlus("procedure", 
+                    {value: procedure});
+            },
+            "offering": function(options) {
+                return this.createElementNSPlus("offering", {value: 
+                    options.offering});
+            },
+            "observedProperty": function(observedProperty) {
+                return this.createElementNSPlus("observedProperty", 
+                    {value: observedProperty});
+            },
+            "eventTime": function(options) {
+                var node = this.createElementNSPlus("eventTime");
+                if (options.eventTime === 'latest') {
+                    this.writeNode("ogc:TM_Equals", options, node);
+                }
+                return node;
+            },
+            "resultModel": function(options) {
+                return this.createElementNSPlus("resultModel", {value: 
+                    options.resultModel});
+            },
+            "responseMode": function(options) {
+                return this.createElementNSPlus("responseMode", {value: 
+                    options.responseMode});
+            }
+        },
+        "ogc": {
+            "TM_Equals": function(options) {
+                var node = this.createElementNSPlus("ogc:TM_Equals");
+                this.writeNode("ogc:PropertyName", {property: 
+                    "urn:ogc:data:time:iso8601"}, node);
+                if (options.eventTime === 'latest') {
+                    this.writeNode("gml:TimeInstant", {value: 'latest'}, node);
+                }
+                return node;
+            },
+            "PropertyName": function(options) {
+                return this.createElementNSPlus("ogc:PropertyName", 
+                    {value: options.property});
+            }
+        },
+        "gml": {
+            "TimeInstant": function(options) {
+                var node = this.createElementNSPlus("gml:TimeInstant");
+                this.writeNode("gml:timePosition", options, node);
+                return node;
+            },
+            "timePosition": function(options) {
+                var node = this.createElementNSPlus("gml:timePosition", 
+                    {value: options.value});
+                return node;
+            }
+        }
+    },
+    
+    CLASS_NAME: "OpenLayers.Format.SOSGetObservation" 
+
+});
diff --git a/lib/OpenLayers/Format/Text.js b/lib/OpenLayers/Format/Text.js
index 6177790..2a5d42c 100644
--- a/lib/OpenLayers/Format/Text.js
+++ b/lib/OpenLayers/Format/Text.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WCSGetCoverage.js b/lib/OpenLayers/Format/WCSGetCoverage.js
new file mode 100644
index 0000000..12b75c9
--- /dev/null
+++ b/lib/OpenLayers/Format/WCSGetCoverage.js
@@ -0,0 +1,199 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
+ */
+
+/**
+ * Class: OpenLayers.Format.WCSGetCoverage version 1.1.0
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.WCSGetCoverage = OpenLayers.Class(OpenLayers.Format.XML, {
+    
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        ows: "http://www.opengis.net/ows/1.1",
+        wcs: "http://www.opengis.net/wcs/1.1",
+        xlink: "http://www.w3.org/1999/xlink",
+        xsi: "http://www.w3.org/2001/XMLSchema-instance"
+    },
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+
+    /**
+     * Constant: VERSION
+     * {String} 1.1.2
+     */
+    VERSION: "1.1.2",
+
+    /**
+     * Property: schemaLocation
+     * {String} Schema location
+     */
+    schemaLocation: "http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd",
+
+    /**
+     * Constructor: OpenLayers.Format.WCSGetCoverage
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * Method: write
+     *
+     * Parameters:
+     * options - {Object} Optional object.
+     *
+     * Returns:
+     * {String} A WCS GetCoverage request XML string.
+     */
+    write: function(options) {
+        var node = this.writeNode("wcs:GetCoverage", options);
+        this.setAttributeNS(
+            node, this.namespaces.xsi,
+            "xsi:schemaLocation", this.schemaLocation
+        );
+        return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
+    }, 
+
+    /**
+     * Property: writers
+     * As a compliment to the readers property, this structure contains public
+     *     writing functions grouped by namespace alias and named like the
+     *     node names they produce.
+     */
+    writers: {
+        "wcs": {
+            "GetCoverage": function(options) {
+                var node = this.createElementNSPlus("wcs:GetCoverage", {
+                    attributes: {
+                        version: options.version || this.VERSION,
+                        service: 'WCS'
+                    } 
+                }); 
+                this.writeNode("ows:Identifier", options.identifier, node);
+                this.writeNode("wcs:DomainSubset", options.domainSubset, node);
+                this.writeNode("wcs:Output", options.output, node);
+                return node; 
+            },
+            "DomainSubset": function(domainSubset) {
+                var node = this.createElementNSPlus("wcs:DomainSubset", {});
+                this.writeNode("ows:BoundingBox", domainSubset.boundingBox, node);
+                if (domainSubset.temporalSubset) {
+                    this.writeNode("wcs:TemporalSubset", domainSubset.temporalSubset, node);
+                }
+                return node;
+            },
+            "TemporalSubset": function(temporalSubset) {
+                var node = this.createElementNSPlus("wcs:TemporalSubset", {});
+                for (var i=0, len=temporalSubset.timePeriods.length; i<len; ++i) {
+                    this.writeNode("wcs:TimePeriod", temporalSubset.timePeriods[i], node);
+                }
+                return node;
+            },
+            "TimePeriod": function(timePeriod) {
+                var node = this.createElementNSPlus("wcs:TimePeriod", {});
+                this.writeNode("wcs:BeginPosition", timePeriod.begin, node);
+                this.writeNode("wcs:EndPosition", timePeriod.end, node);
+                if (timePeriod.resolution) {
+                    this.writeNode("wcs:TimeResolution", timePeriod.resolution, node);
+                }
+                return node;
+            },
+            "BeginPosition": function(begin) {
+                var node = this.createElementNSPlus("wcs:BeginPosition", {
+                    value: begin
+                });
+                return node;
+            },
+            "EndPosition": function(end) {
+                var node = this.createElementNSPlus("wcs:EndPosition", {
+                    value: end
+                });
+                return node;
+            },
+            "TimeResolution": function(resolution) {
+                var node = this.createElementNSPlus("wcs:TimeResolution", {
+                    value: resolution
+                });
+                return node;
+            },
+            "Output": function(output) {
+                var node = this.createElementNSPlus("wcs:Output", {
+                    attributes: {
+                        format: output.format,
+                        store: output.store
+                    }
+                });
+                if (output.gridCRS) {
+                    this.writeNode("wcs:GridCRS", output.gridCRS, node);
+                }
+                return node;
+            },
+            "GridCRS": function(gridCRS) {
+                var node = this.createElementNSPlus("wcs:GridCRS", {});
+                this.writeNode("wcs:GridBaseCRS", gridCRS.baseCRS, node);
+                if (gridCRS.type) {
+                    this.writeNode("wcs:GridType", gridCRS.type, node);
+                }
+                if (gridCRS.origin) {
+                    this.writeNode("wcs:GridOrigin", gridCRS.origin, node);
+                }
+                this.writeNode("wcs:GridOffsets", gridCRS.offsets, node);
+                if (gridCRS.CS) {
+                    this.writeNode("wcs:GridCS", gridCRS.CS, node);
+                }
+                return node;
+            },
+            "GridBaseCRS": function(baseCRS) {
+                return this.createElementNSPlus("wcs:GridBaseCRS", {
+                    value: baseCRS
+                });
+            },
+            "GridOrigin": function(origin) {
+                return this.createElementNSPlus("wcs:GridOrigin", {
+                    value: origin
+                });
+            },
+            "GridType": function(type) {
+                return this.createElementNSPlus("wcs:GridType", {
+                    value: type
+                });
+            },
+            "GridOffsets": function(offsets) {
+                return this.createElementNSPlus("wcs:GridOffsets", {
+                    value: offsets
+                });
+            },
+            "GridCS": function(CS) {
+                return this.createElementNSPlus("wcs:GridCS", {
+                    value: CS
+                });
+            }
+        },
+        "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows
+    },
+    
+    CLASS_NAME: "OpenLayers.Format.WCSGetCoverage" 
+
+});
diff --git a/lib/OpenLayers/Format/WFS.js b/lib/OpenLayers/Format/WFS.js
index ca82270..b11ce11 100644
--- a/lib/OpenLayers/Format/WFS.js
+++ b/lib/OpenLayers/Format/WFS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 /**
  * @requires OpenLayers/Format/GML.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Format/WFSCapabilities.js b/lib/OpenLayers/Format/WFSCapabilities.js
index ac4f698..ba65884 100644
--- a/lib/OpenLayers/Format/WFSCapabilities.js
+++ b/lib/OpenLayers/Format/WFSCapabilities.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  */
 
 /**
@@ -12,21 +12,24 @@
  * Read WFS Capabilities.
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
     
     /**
      * APIProperty: defaultVersion
      * {String} Version number to assume if none found.  Default is "1.1.0".
      */
     defaultVersion: "1.1.0",
-    
+ 
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
+     * APIProperty: errorProperty
+     * {String} Which property of the returned object to check for in order to
+     * determine whether or not parsing has failed. In the case that the
+     * errorProperty is undefined on the returned object, the document will be
+     * run through an OGCExceptionReport parser.
      */
-    version: null,
+    errorProperty: "service",
 
     /**
      * Constructor: OpenLayers.Format.WFSCapabilities
@@ -36,10 +39,6 @@ OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -51,30 +50,7 @@ OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {Array} List of named layers.
      */
-    read: function(data) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version;
-        if(!version) {
-            version = root.getAttribute("version");
-            if(!version) {
-                version = this.defaultVersion;
-            }
-        }
-        var constr = OpenLayers.Format.WFSCapabilities[
-            "v" + version.replace(/\./g, "_")
-        ];
-        if(!constr) {
-            throw "Can't find a WFS capabilities parser for version " + version;
-        }
-        var parser = new constr(this.options);
-        var capabilities = parser.read(data);
-        capabilities.version = version;
-        return capabilities;
-    },
     
     CLASS_NAME: "OpenLayers.Format.WFSCapabilities" 
 
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Format/WFSCapabilities/v1.js b/lib/OpenLayers/Format/WFSCapabilities/v1.js
index 8ff20c6..bcc7d41 100644
--- a/lib/OpenLayers/Format/WFSCapabilities/v1.js
+++ b/lib/OpenLayers/Format/WFSCapabilities/v1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js b/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
index f283132..c0abe9d 100644
--- a/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
+++ b/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,7 +9,7 @@
 
 /**
  * Class: OpenLayers.Format.WFSCapabilities/v1_0_0
- * Read WMS Capabilities version 1.0.0.
+ * Read WFS Capabilities version 1.0.0.
  * 
  * Inherits from:
  *  - <OpenLayers.Format.WFSCapabilities>
@@ -151,7 +151,17 @@ OpenLayers.Format.WFSCapabilities.v1_0_0 = OpenLayers.Class(
     read_cap_Post: function(obj, node) {
         obj.post = node.getAttribute("onlineResource");
     },
+
+    /**
+     * Method: read_cap_SRS
+     */
+    read_cap_SRS: function(obj, node) {
+        var srs = this.getChildValue(node);
+        if (srs) {
+            obj.srs = srs;
+        }
+    },
     
     CLASS_NAME: "OpenLayers.Format.WFSCapabilities.v1_0_0" 
 
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js b/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
index 99489c0..0d36ccc 100644
--- a/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
+++ b/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -31,6 +31,16 @@ OpenLayers.Format.WFSCapabilities.v1_1_0 = OpenLayers.Class(
         );
     },
 
+    /**
+     * Method: read_cap_DefaultSRS
+     */
+    read_cap_DefaultSRS: function(obj, node) {
+        var defaultSRS = this.getChildValue(node);
+        if (defaultSRS) {
+            obj.srs = defaultSRS;
+        }
+    },
+
     CLASS_NAME: "OpenLayers.Format.WFSCapabilities.v1_1_0" 
 
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Format/WFSDescribeFeatureType.js b/lib/OpenLayers/Format/WFSDescribeFeatureType.js
index 72c4ee8..695a36c 100644
--- a/lib/OpenLayers/Format/WFSDescribeFeatureType.js
+++ b/lib/OpenLayers/Format/WFSDescribeFeatureType.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -31,9 +31,6 @@ OpenLayers.Format.WFSDescribeFeatureType = OpenLayers.Class(
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-    },
     
     /**
      * Property: readers
@@ -195,4 +192,4 @@ OpenLayers.Format.WFSDescribeFeatureType = OpenLayers.Class(
     
     CLASS_NAME: "OpenLayers.Format.WFSDescribeFeatureType" 
 
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Format/WFST.js b/lib/OpenLayers/Format/WFST.js
index 079dd80..a14d470 100644
--- a/lib/OpenLayers/Format/WFST.js
+++ b/lib/OpenLayers/Format/WFST.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WFST/v1.js b/lib/OpenLayers/Format/WFST/v1.js
index 1a4eda7..2b5c04e 100644
--- a/lib/OpenLayers/Format/WFST/v1.js
+++ b/lib/OpenLayers/Format/WFST/v1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -26,7 +26,8 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         xsi: "http://www.w3.org/2001/XMLSchema-instance",
         wfs: "http://www.opengis.net/wfs",
         gml: "http://www.opengis.net/gml",
-        ogc: "http://www.opengis.net/ogc"
+        ogc: "http://www.opengis.net/ogc",
+        ows: "http://www.opengis.net/ows"
     },
     
     /**
@@ -70,7 +71,7 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
      * {Object} Maps feature states to node names.
      */
     stateName: null,
-
+    
     /**
      * Constructor: OpenLayers.Format.WFST.v1
      * Instances of this class are not created directly.  Use the
@@ -139,7 +140,7 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         }
         var obj = {};
         if(data) {
-            this.readNode(data, obj);
+            this.readNode(data, obj, true);
         }
         if(obj.features && options.output === "features") {
             obj = obj.features;
@@ -171,18 +172,41 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
      *     type - insert, update, or delete.
      *
      * Parameters:
-     * features - {Array(<OpenLayers.Feature.Vector>)} A list of features.
+     * features - {Array(<OpenLayers.Feature.Vector>)} A list of features. See
+     *     below for a more detailed description of the influence of the
+     *     feature's *modified* property.
+     * options - {Object}
+     *
+     * feature.modified rules:
+     * If a feature has a modified property set, the following checks will be
+     * made before a feature's geometry or attribute is included in an Update
+     * transaction:
+     * - *modified* is not set at all: The geometry and all attributes will be
+     *     included.
+     * - *modified.geometry* is set (null or a geometry): The geometry will be
+     *     included. If *modified.attributes* is not set, all attributes will
+     *     be included.
+     * - *modified.attributes* is set: Only the attributes set (i.e. to null or
+     *     a value) in *modified.attributes* will be included. 
+     *     If *modified.geometry* is not set, the geometry will not be included.
+     *
+     * Valid options include:
+     * - *multi* {Boolean} If set to true, geometries will be casted to
+     *   Multi geometries before writing.
      *
      * Returns:
      * {String} A serialized WFS transaction.
      */
-    write: function(features) {
-        var node = this.writeNode("wfs:Transaction", features);
+    write: function(features, options) {
+        var node = this.writeNode("wfs:Transaction", {
+            features:features,
+            options: options
+        });
         var value = this.schemaLocationAttr();
         if(value) {
             this.setAttributeNS(
                 node, this.namespaces["xsi"], "xsi:schemaLocation",  value
-            )
+            );
         }
         return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
     },
@@ -200,6 +224,7 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                     attributes: {
                         service: "WFS",
                         version: this.version,
+                        handle: options && options.handle,
                         outputFormat: options && options.outputFormat,
                         maxFeatures: options && options.maxFeatures,
                         "xsi:schemaLocation": this.schemaLocationAttr(options)
@@ -215,34 +240,79 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                 }
                 return node;
             },
-            "Transaction": function(features) {
+            "Transaction": function(obj) {
+                obj = obj || {};
+                var options = obj.options || {};
                 var node = this.createElementNSPlus("wfs:Transaction", {
                     attributes: {
                         service: "WFS",
-                        version: this.version
+                        version: this.version,
+                        handle: options.handle
                     }
                 });
+                var i, len;
+                var features = obj.features;
                 if(features) {
+                    // temporarily re-assigning geometry types
+                    if (options.multi === true) {
+                        OpenLayers.Util.extend(this.geometryTypes, {
+                            "OpenLayers.Geometry.Point": "MultiPoint",
+                            "OpenLayers.Geometry.LineString": (this.multiCurve === true) ? "MultiCurve": "MultiLineString",
+                            "OpenLayers.Geometry.Polygon": (this.multiSurface === true) ? "MultiSurface" : "MultiPolygon"
+                        });
+                    }
                     var name, feature;
-                    for(var i=0, len=features.length; i<len; ++i) {
+                    for(i=0, len=features.length; i<len; ++i) {
                         feature = features[i];
                         name = this.stateName[feature.state];
                         if(name) {
-                            this.writeNode(name, feature, node);
+                            this.writeNode(name, {
+                                feature: feature, 
+                                options: options
+                            }, node);
                         }
                     }
+                    // switch back to original geometry types assignment
+                    if (options.multi === true) {
+                        this.setGeometryTypes();
+                    }
                 }
+                if (options.nativeElements) {
+                    for (i=0, len=options.nativeElements.length; i<len; ++i) {
+                        this.writeNode("wfs:Native", 
+                            options.nativeElements[i], node);
+                    }
+                }
+                return node;
+            },
+            "Native": function(nativeElement) {
+                var node = this.createElementNSPlus("wfs:Native", {
+                    attributes: {
+                        vendorId: nativeElement.vendorId,
+                        safeToIgnore: nativeElement.safeToIgnore
+                    },
+                    value: nativeElement.value
+                });
                 return node;
             },
-            "Insert": function(feature) {
-                var node = this.createElementNSPlus("wfs:Insert");
+            "Insert": function(obj) {
+                var feature = obj.feature;
+                var options = obj.options;
+                var node = this.createElementNSPlus("wfs:Insert", {
+                    attributes: {
+                        handle: options && options.handle
+                    }
+                });
                 this.srsName = this.getSrsName(feature);
                 this.writeNode("feature:_typeName", feature, node);
                 return node;
             },
-            "Update": function(feature) {
+            "Update": function(obj) {
+                var feature = obj.feature;
+                var options = obj.options;
                 var node = this.createElementNSPlus("wfs:Update", {
                     attributes: {
+                        handle: options && options.handle,
                         typeName: (this.featureNS ? this.featurePrefix + ":" : "") +
                             this.featureType
                     }
@@ -252,15 +322,19 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                 }
                 
                 // add in geometry
-                if (this.geometryName !== null) {
+                var modified = feature.modified;
+                if (this.geometryName !== null && (!modified || modified.geometry !== undefined)) {
+                    this.srsName = this.getSrsName(feature);
                     this.writeNode(
-                        "Property", {name: this.geometryName, value: feature}, node
+                        "Property", {name: this.geometryName, value: feature.geometry}, node
                     );
                 }
         
                 // add in attributes
                 for(var key in feature.attributes) {
-                    if(feature.attributes[key] !== undefined) {
+                    if(feature.attributes[key] !== undefined &&
+                                (!modified || !modified.attributes ||
+                                (modified.attributes && modified.attributes[key] !== undefined))) {
                         this.writeNode(
                             "Property", {name: key, value: feature.attributes[key]}, node
                         );
@@ -287,19 +361,21 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
             },
             "Value": function(obj) {
                 var node;
-                if(obj instanceof OpenLayers.Feature.Vector) {
+                if(obj instanceof OpenLayers.Geometry) {
                     node = this.createElementNSPlus("wfs:Value");
-                    this.srsName = this.getSrsName(obj);
-                    var geom = this.writeNode("feature:_geometry", obj.geometry).firstChild;
+                    var geom = this.writeNode("feature:_geometry", obj).firstChild;
                     node.appendChild(geom);
                 } else {
                     node = this.createElementNSPlus("wfs:Value", {value: obj});                
                 }
                 return node;
             },
-            "Delete": function(feature) {
+            "Delete": function(obj) {
+                var feature = obj.feature;
+                var options = obj.options;
                 var node = this.createElementNSPlus("wfs:Delete", {
                     attributes: {
+                        handle: options && options.handle,
                         typeName: (this.featureNS ? this.featurePrefix + ":" : "") +
                             this.featureType
                     }
diff --git a/lib/OpenLayers/Format/WFST/v1_0_0.js b/lib/OpenLayers/Format/WFST/v1_0_0.js
index 6f706f5..a89d930 100644
--- a/lib/OpenLayers/Format/WFST/v1_0_0.js
+++ b/lib/OpenLayers/Format/WFST/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -63,6 +63,29 @@ OpenLayers.Format.WFST.v1_0_0 = OpenLayers.Class(
     },
     
     /**
+     * Method: readNode
+     * Shorthand for applying one of the named readers given the node
+     *     namespace and local name.  Readers take two args (node, obj) and
+     *     generally extend or modify the second.
+     *
+     * Parameters:
+     * node - {DOMElement} The node to be read (required).
+     * obj - {Object} The object to be modified (optional).
+     * first - {Boolean} Should be set to true for the first node read. This
+     *     is usually the readNode call in the read method. Without this being
+     *     set, auto-configured properties will stick on subsequent reads.
+     *
+     * Returns:
+     * {Object} The input object, modified (or a new one if none was provided).
+     */
+    readNode: function(node, obj, first) {
+        // Not the superclass, only the mixin classes inherit from
+        // Format.GML.v2. We need this because we don't want to get readNode
+        // from the superclass's superclass, which is OpenLayers.Format.XML.
+        return OpenLayers.Format.GML.v2.prototype.readNode.apply(this, [node, obj]);
+    },
+    
+    /**
      * Property: readers
      * Contains public functions, grouped by namespace prefix, that will
      *     be applied when a namespaced node is found matching the function
@@ -113,9 +136,10 @@ OpenLayers.Format.WFST.v1_0_0 = OpenLayers.Class(
                     srsName: this.srsName,
                     srsNameInQuery: this.srsNameInQuery
                 }, options);
+                var prefix = options.featurePrefix;
                 var node = this.createElementNSPlus("wfs:Query", {
                     attributes: {
-                        typeName: (options.featureNS ? options.featurePrefix + ":" : "") +
+                        typeName: (prefix ? prefix + ":" : "") +
                             options.featureType
                     }
                 });
@@ -123,7 +147,7 @@ OpenLayers.Format.WFST.v1_0_0 = OpenLayers.Class(
                     node.setAttribute("srsName", options.srsName);
                 }
                 if(options.featureNS) {
-                    node.setAttribute("xmlns:" + options.featurePrefix, options.featureNS);
+                    node.setAttribute("xmlns:" + prefix, options.featureNS);
                 }
                 if(options.propertyNames) {
                     for(var i=0,len = options.propertyNames.length; i<len; i++) {
diff --git a/lib/OpenLayers/Format/WFST/v1_1_0.js b/lib/OpenLayers/Format/WFST/v1_1_0.js
index 3cb44ba..c759fcf 100644
--- a/lib/OpenLayers/Format/WFST/v1_1_0.js
+++ b/lib/OpenLayers/Format/WFST/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 /**
  * @requires OpenLayers/Format/WFST/v1.js
  * @requires OpenLayers/Format/Filter/v1_1_0.js
+ * @requires OpenLayers/Format/OWSCommon/v1_0_0.js
  */
 
 /**
@@ -61,6 +62,29 @@ OpenLayers.Format.WFST.v1_1_0 = OpenLayers.Class(
     },
     
     /**
+     * Method: readNode
+     * Shorthand for applying one of the named readers given the node
+     *     namespace and local name.  Readers take two args (node, obj) and
+     *     generally extend or modify the second.
+     *
+     * Parameters:
+     * node - {DOMElement} The node to be read (required).
+     * obj - {Object} The object to be modified (optional).
+     * first - {Boolean} Should be set to true for the first node read. This
+     *     is usually the readNode call in the read method. Without this being
+     *     set, auto-configured properties will stick on subsequent reads.
+     *
+     * Returns:
+     * {Object} The input object, modified (or a new one if none was provided).
+     */
+    readNode: function(node, obj, first) {
+        // Not the superclass, only the mixin classes inherit from
+        // Format.GML.v3. We need this because we don't want to get readNode
+        // from the superclass's superclass, which is OpenLayers.Format.XML.
+        return OpenLayers.Format.GML.v3.prototype.readNode.apply(this, [node, obj]);
+    },
+    
+    /**
      * Property: readers
      * Contains public functions, grouped by namespace prefix, that will
      *     be applied when a namespaced node is found matching the function
@@ -96,7 +120,8 @@ OpenLayers.Format.WFST.v1_1_0 = OpenLayers.Class(
         }, OpenLayers.Format.WFST.v1.prototype.readers["wfs"]),
         "gml": OpenLayers.Format.GML.v3.prototype.readers["gml"],
         "feature": OpenLayers.Format.GML.v3.prototype.readers["feature"],
-        "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.readers["ogc"]
+        "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.readers["ogc"],
+        "ows": OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers["ows"]
     },
 
     /**
@@ -109,8 +134,10 @@ OpenLayers.Format.WFST.v1_1_0 = OpenLayers.Class(
         "wfs": OpenLayers.Util.applyDefaults({
             "GetFeature": function(options) {
                 var node = OpenLayers.Format.WFST.v1.prototype.writers["wfs"]["GetFeature"].apply(this, arguments);
-                options && options.resultType && this.setAttributes(node, {
-                    resultType: options.resultType
+                options && this.setAttributes(node, {
+                    resultType: options.resultType,
+                    startIndex: options.startIndex,
+                    count: options.count
                 });
                 return node;
             },
@@ -121,15 +148,16 @@ OpenLayers.Format.WFST.v1_1_0 = OpenLayers.Class(
                     featureType: this.featureType,
                     srsName: this.srsName
                 }, options);
+                var prefix = options.featurePrefix;
                 var node = this.createElementNSPlus("wfs:Query", {
                     attributes: {
-                        typeName: (options.featureNS ? options.featurePrefix + ":" : "") +
+                        typeName: (prefix ? prefix + ":" : "") +
                             options.featureType,
                         srsName: options.srsName
                     }
                 });
                 if(options.featureNS) {
-                    node.setAttribute("xmlns:" + options.featurePrefix, options.featureNS);
+                    node.setAttribute("xmlns:" + prefix, options.featureNS);
                 }
                 if(options.propertyNames) {
                     for(var i=0,len = options.propertyNames.length; i<len; i++) {
diff --git a/lib/OpenLayers/Format/WKT.js b/lib/OpenLayers/Format/WKT.js
index b662fbf..f9fe75c 100644
--- a/lib/OpenLayers/Format/WKT.js
+++ b/lib/OpenLayers/Format/WKT.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -56,6 +56,7 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
      */
     read: function(wkt) {
         var features, type, str;
+        wkt = wkt.replace(/[\n\r]/g, " ");
         var matches = this.regExes.typeStr.exec(wkt);
         if(matches) {
             type = matches[1].toLowerCase();
@@ -95,7 +96,7 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
      */
     write: function(features) {
         var collection, geometry, type, data, isCollection;
-        if(features.constructor == Array) {
+        if (features.constructor == Array) {
             collection = features;
             isCollection = true;
         } else {
@@ -103,31 +104,45 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
             isCollection = false;
         }
         var pieces = [];
-        if(isCollection) {
+        if (isCollection) {
             pieces.push('GEOMETRYCOLLECTION(');
         }
-        for(var i=0, len=collection.length; i<len; ++i) {
-            if(isCollection && i>0) {
+        for (var i=0, len=collection.length; i<len; ++i) {
+            if (isCollection && i>0) {
                 pieces.push(',');
             }
             geometry = collection[i].geometry;
-            type = geometry.CLASS_NAME.split('.')[2].toLowerCase();
-            if(!this.extract[type]) {
-                return null;
-            }
-            if (this.internalProjection && this.externalProjection) {
-                geometry = geometry.clone();
-                geometry.transform(this.internalProjection, 
-                                   this.externalProjection);
-            }                       
-            data = this.extract[type].apply(this, [geometry]);
-            pieces.push(type.toUpperCase() + '(' + data + ')');
+            pieces.push(this.extractGeometry(geometry));
         }
-        if(isCollection) {
+        if (isCollection) {
             pieces.push(')');
         }
         return pieces.join('');
     },
+
+    /**
+     * Method: extractGeometry
+     * Entry point to construct the WKT for a single Geometry object.
+     *
+     * Parameters:
+     * geometry - {<OpenLayers.Geometry.Geometry>}
+     *
+     * Returns:
+     * {String} A WKT string of representing the geometry
+     */
+    extractGeometry: function(geometry) {
+        var type = geometry.CLASS_NAME.split('.')[2].toLowerCase();
+        if (!this.extract[type]) {
+            return null;
+        }
+        if (this.internalProjection && this.externalProjection) {
+            geometry = geometry.clone();
+            geometry.transform(this.internalProjection, this.externalProjection);
+        }                       
+        var wktType = type == 'collection' ? 'GEOMETRYCOLLECTION' : type.toUpperCase();
+        var data = wktType + '(' + this.extract[type].apply(this, [geometry]) + ')';
+        return data;
+    },
     
     /**
      * Object with properties corresponding to the geometry types.
@@ -207,7 +222,7 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
         /**
          * Return an array of polygon arrays from a multipolygon.
          * @param {<OpenLayers.Geometry.MultiPolygon>} multipolygon
-         * @returns {Array} An array of polygon arrays representing
+         * @returns {String} An array of polygon arrays representing
          *                  the multipolygon
          */
         'multipolygon': function(multipolygon) {
@@ -218,6 +233,19 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
                            ')');
             }
             return array.join(',');
+        },
+
+        /**
+         * Return the WKT portion between 'GEOMETRYCOLLECTION(' and ')' for an <OpenLayers.Geometry.Collection>
+         * @param {<OpenLayers.Geometry.Collection>} collection
+         * @returns {String} internal WKT representation of the collection
+         */
+        'collection': function(collection) {
+            var array = [];
+            for(var i=0, len=collection.components.length; i<len; ++i) {
+                array.push(this.extractGeometry.apply(this, [collection.components[i]]));
+            }
+            return array.join(',');
         }
 
     },
@@ -248,7 +276,7 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
          */
         'multipoint': function(str) {
             var point;
-            var points = OpenLayers.String.trim(str).split(this.regExes.parenComma);
+            var points = OpenLayers.String.trim(str).split(',');
             var components = [];
             for(var i=0, len=points.length; i<len; ++i) {
                 point = points[i].replace(this.regExes.trimParens, '$1');
diff --git a/lib/OpenLayers/Format/WMC.js b/lib/OpenLayers/Format/WMC.js
index bf7b008..8b3ad62 100644
--- a/lib/OpenLayers/Format/WMC.js
+++ b/lib/OpenLayers/Format/WMC.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -22,32 +22,16 @@ OpenLayers.Format.WMC = OpenLayers.Class(OpenLayers.Format.Context, {
      * {String} Version number to assume if none found.  Default is "1.1.0".
      */
     defaultVersion: "1.1.0",
-    
+
     /**
-     * Method: getParser
-     * Get the WMC parser given a version. Create a new parser if it does not
-     * already exist.
+     * Constructor: OpenLayers.Format.WMC
+     * Create a new parser for Web Map Context documents.
      *
      * Parameters:
-     * version - {String} The version of the parser.
-     *
-     * Returns:
-     * {<OpenLayers.Format.WMC.v1>} A WMC parser.
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
      */
-    getParser: function(version) {
-        var v = version || this.version || this.defaultVersion;
-        if(!this.parser || this.parser.VERSION != v) {
-            var format = OpenLayers.Format.WMC[
-                "v" + v.replace(/\./g, "_")
-            ];
-            if(!format) {
-                throw "Can't find a WMC parser for version " + v;
-            }
-            this.parser = new format(this.options);
-        }
-        return this.parser;
-    },
-
+    
     /**
      * Method: layerToContext
      * Create a layer context object given a wms layer object.
@@ -65,9 +49,13 @@ OpenLayers.Format.WMC = OpenLayers.Class(OpenLayers.Format.Context, {
             visibility: layer.visibility,
             name: layer.params["LAYERS"],
             title: layer.name,
+            "abstract": layer.metadata["abstract"],
+            dataURL: layer.metadata.dataURL,
             metadataURL: layer.metadataURL,
+            server: {
             version: layer.params["VERSION"],
-            url: layer.url,
+                url: layer.url
+            },
             maxExtent: layer.maxExtent,
             transparent: layer.params["TRANSPARENT"],
             numZoomLevels: layer.numZoomLevels,
@@ -88,18 +76,54 @@ OpenLayers.Format.WMC = OpenLayers.Class(OpenLayers.Format.Context, {
                         layer.options.minResolution || 
                         layer.options.maxScale) ? 
                         layer.maxScale : undefined,
-            formats: [{
+            formats: [],
+            styles: [],
+            srs: layer.srs,
+            dimensions: layer.dimensions
+        };
+
+
+        if (layer.metadata.servertitle) {
+            layerContext.server.title = layer.metadata.servertitle;
+        }
+
+        if (layer.metadata.formats && layer.metadata.formats.length > 0) {
+            for (var i=0, len=layer.metadata.formats.length; i<len; i++) {
+                var format = layer.metadata.formats[i];
+                layerContext.formats.push({
+                    value: format.value,
+                    current: (format.value == layer.params["FORMAT"])
+                });
+            }
+        } else {
+            layerContext.formats.push({
                 value: layer.params["FORMAT"],
                 current: true
-            }],
-            styles: [{
+            });
+        }
+
+        if (layer.metadata.styles && layer.metadata.styles.length > 0) {
+            for (var i=0, len=layer.metadata.styles.length; i<len; i++) {
+                var style = layer.metadata.styles[i];
+                if ((style.href == layer.params["SLD"]) ||
+                    (style.body == layer.params["SLD_BODY"]) ||
+                    (style.name == layer.params["STYLES"])) {
+                    style.current = true;
+                } else {
+                    style.current = false;
+                }
+                layerContext.styles.push(style);
+            }
+        } else {
+            layerContext.styles.push({
                 href: layer.params["SLD"],
                 body: layer.params["SLD_BODY"],
                 name: layer.params["STYLES"] || parser.defaultStyleName,
                 title: parser.defaultStyleTitle,
                 current: true
-            }]
-        };
+            });
+        }
+
         return layerContext;
     },
     
@@ -117,16 +141,22 @@ OpenLayers.Format.WMC = OpenLayers.Class(OpenLayers.Format.Context, {
     toContext: function(obj) {
         var context = {};
         var layers = obj.layers;
-        if(obj.CLASS_NAME == "OpenLayers.Map") {
+        if (obj.CLASS_NAME == "OpenLayers.Map") {
+            var metadata = obj.metadata || {};
+            context.size = obj.getSize();
             context.bounds = obj.getExtent();
-            context.maxExtent = obj.maxExtent;
             context.projection = obj.projection;
-            context.size = obj.getSize();
-        }
-        else {
+            context.title = obj.title;
+            context.keywords = metadata.keywords;
+            context["abstract"] = metadata["abstract"];
+            context.logo = metadata.logo;
+            context.descriptionURL = metadata.descriptionURL;
+            context.contactInformation = metadata.contactInformation;
+            context.maxExtent = obj.maxExtent;
+        } else {
             // copy all obj properties except the "layers" property
             OpenLayers.Util.applyDefaults(context, obj);
-            if(context.layers != undefined) {
+            if (context.layers != undefined) {
                 delete(context.layers);
             }
         }
@@ -136,10 +166,10 @@ OpenLayers.Format.WMC = OpenLayers.Class(OpenLayers.Format.Context, {
         }
 
         // let's convert layers into layersContext object (if any)
-        if (layers != undefined && layers instanceof Array) {
+        if (layers != undefined && OpenLayers.Util.isArray(layers)) {
             for (var i=0, len=layers.length; i<len; i++) {
                 var layer = layers[i];
-                if(layer instanceof OpenLayers.Layer.WMS) {
+                if (layer instanceof OpenLayers.Layer.WMS) {
                     context.layersContext.push(this.layerToContext(layer));
                 }
             }
diff --git a/lib/OpenLayers/Format/WMC/v1.js b/lib/OpenLayers/Format/WMC/v1.js
index 98ca8d5..da72668 100644
--- a/lib/OpenLayers/Format/WMC/v1.js
+++ b/lib/OpenLayers/Format/WMC/v1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -171,7 +171,8 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
             visibility: (node.getAttribute("hidden") != "1"),
             queryable: (node.getAttribute("queryable") == "1"),
             formats: [],
-            styles: []
+             styles: [],
+             metadata: {}
         };
 
         this.runChildNodes(layerContext, node);
@@ -259,12 +260,8 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
      */
     read_wmc_Server: function(layerContext, node) {
         layerContext.version = node.getAttribute("version");
-        var server = {};
-        var links = node.getElementsByTagName("OnlineResource");
-        if(links.length > 0) {
-            this.read_wmc_OnlineResource(server, links[0]);
-        }
-        layerContext.url = server.href;
+         layerContext.url = this.getOnlineResource_href(node);
+         layerContext.metadata.servertitle = node.getAttribute("title");
     },
 
     /**
@@ -323,6 +320,14 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
     },
 
     /**
+      * Method: read_sld_FeatureTypeStyle
+      */
+     read_sld_FeatureTypeStyle: function(sld, node) {
+         var xml = OpenLayers.Format.XML.prototype.write.apply(this, [node]);
+         sld.body = xml;
+     },
+
+     /**
      * Method: read_wmc_OnlineResource
      */
     read_wmc_OnlineResource: function(obj, node) {
@@ -355,16 +360,25 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
      * Method: read_wmc_MetadataURL
      */
     read_wmc_MetadataURL: function(layerContext, node) {
-        var metadataURL = {};
-        var links = node.getElementsByTagName("OnlineResource");
-        if(links.length > 0) {
-            this.read_wmc_OnlineResource(metadataURL, links[0]);
-        }
-        layerContext.metadataURL = metadataURL.href;
+         layerContext.metadataURL = this.getOnlineResource_href(node);
+     },
 
+     /**
+      * Method: read_wmc_KeywordList
+      */
+     read_wmc_KeywordList: function(context, node) {
+         context.keywords = [];
+         this.runChildNodes(context.keywords, node);
     },
 
     /**
+      * Method: read_wmc_Keyword
+      */
+     read_wmc_Keyword: function(keywords, node) {
+         keywords.push(this.getChildValue(node));
+     },
+
+     /**
      * Method: read_wmc_Abstract
      */
     read_wmc_Abstract: function(obj, node) {
@@ -375,21 +389,221 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
     },
     
     /**
+      * Method: read_wmc_LogoURL
+      */
+     read_wmc_LogoURL: function(context, node) {
+         context.logo = {
+             width:  node.getAttribute("width"),
+             height: node.getAttribute("height"),
+             format: node.getAttribute("format"),
+             href:   this.getOnlineResource_href(node)
+         };
+     },
+
+     /**
+      * Method: read_wmc_DescriptionURL
+      */
+     read_wmc_DescriptionURL: function(context, node) {
+         context.descriptionURL = this.getOnlineResource_href(node);
+     },
+
+     /**
+      * Method: read_wmc_ContactInformation
+     */
+     read_wmc_ContactInformation: function(obj, node) {
+         var contact = {};
+         this.runChildNodes(contact, node);
+         obj.contactInformation = contact;
+     },
+
+     /**
+      * Method: read_wmc_ContactPersonPrimary
+      */
+     read_wmc_ContactPersonPrimary: function(contact, node) {
+         var personPrimary = {};
+         this.runChildNodes(personPrimary, node);
+         contact.personPrimary = personPrimary;
+     },
+
+     /**
+      * Method: read_wmc_ContactPerson
+      */
+     read_wmc_ContactPerson: function(primaryPerson, node) {
+         var person = this.getChildValue(node);
+         if (person) {
+             primaryPerson.person = person;
+         }
+     },
+
+     /**
+      * Method: read_wmc_ContactOrganization
+      */
+     read_wmc_ContactOrganization: function(primaryPerson, node) {
+         var organization = this.getChildValue(node);
+         if (organization) {
+             primaryPerson.organization = organization;
+         }
+     },
+
+     /**
+      * Method: read_wmc_ContactPosition
+      */
+     read_wmc_ContactPosition: function(contact, node) {
+         var position = this.getChildValue(node);
+         if (position) {
+             contact.position = position;
+         }
+     },
+
+     /**
+      * Method: read_wmc_ContactAddress
+      */
+     read_wmc_ContactAddress: function(contact, node) {
+         var contactAddress = {};
+         this.runChildNodes(contactAddress, node);
+         contact.contactAddress = contactAddress;
+     },
+
+     /**
+      * Method: read_wmc_AddressType
+      */
+     read_wmc_AddressType: function(contactAddress, node) {
+         var type = this.getChildValue(node);
+         if (type) {
+             contactAddress.type = type;
+         }
+     },
+
+     /**
+      * Method: read_wmc_Address
+      */
+     read_wmc_Address: function(contactAddress, node) {
+         var address = this.getChildValue(node);
+         if (address) {
+             contactAddress.address = address;
+         }
+     },
+
+     /**
+      * Method: read_wmc_City
+      */
+     read_wmc_City: function(contactAddress, node) {
+         var city = this.getChildValue(node);
+         if (city) {
+             contactAddress.city = city;
+         }
+     },
+
+     /**
+      * Method: read_wmc_StateOrProvince
+      */
+     read_wmc_StateOrProvince: function(contactAddress, node) {
+         var stateOrProvince = this.getChildValue(node);
+         if (stateOrProvince) {
+             contactAddress.stateOrProvince = stateOrProvince;
+         }
+     },
+
+     /**
+      * Method: read_wmc_PostCode
+      */
+     read_wmc_PostCode: function(contactAddress, node) {
+         var postcode = this.getChildValue(node);
+         if (postcode) {
+             contactAddress.postcode = postcode;
+         }
+     },
+
+     /**
+      * Method: read_wmc_Country
+      */
+     read_wmc_Country: function(contactAddress, node) {
+         var country = this.getChildValue(node);
+         if (country) {
+             contactAddress.country = country;
+         }
+     },
+
+     /**
+      * Method: read_wmc_ContactVoiceTelephone
+      */
+     read_wmc_ContactVoiceTelephone: function(contact, node) {
+         var phone = this.getChildValue(node);
+         if (phone) {
+             contact.phone = phone;
+         }
+     },
+
+     /**
+      * Method: read_wmc_ContactFacsimileTelephone
+      */
+     read_wmc_ContactFacsimileTelephone: function(contact, node) {
+         var fax = this.getChildValue(node);
+         if (fax) {
+             contact.fax = fax;
+         }
+     },
+
+     /**
+      * Method: read_wmc_ContactElectronicMailAddress
+      */
+     read_wmc_ContactElectronicMailAddress: function(contact, node) {
+         var email = this.getChildValue(node);
+         if (email) {
+             contact.email = email;
+         }
+     },
+
+     /**
+      * Method: read_wmc_DataURL
+      */
+     read_wmc_DataURL: function(layerContext, node) {
+         layerContext.dataURL = this.getOnlineResource_href(node);
+     },
+
+     /**
      * Method: read_wmc_LegendURL
      */
     read_wmc_LegendURL: function(style, node) {
         var legend = {
             width: node.getAttribute('width'),
-            height: node.getAttribute('height')
+             height: node.getAttribute('height'),
+             format: node.getAttribute('format'),
+             href:   this.getOnlineResource_href(node)
         };
-        var links = node.getElementsByTagName("OnlineResource");
-        if(links.length > 0) {
-            this.read_wmc_OnlineResource(legend, links[0]);
-        }
         style.legend = legend;
     },
     
     /**
+      * Method: read_wmc_DimensionList
+      */
+     read_wmc_DimensionList: function(layerContext, node) {
+         layerContext.dimensions = {};
+         this.runChildNodes(layerContext.dimensions, node);
+     },
+     /**
+      * Method: read_wmc_Dimension
+      */
+     read_wmc_Dimension: function(dimensions, node) {
+         var name = node.getAttribute("name").toLowerCase();
+
+         var dim = {
+             name:           name,
+             units:          node.getAttribute("units")          ||  "",
+             unitSymbol:     node.getAttribute("unitSymbol")     ||  "",
+             userValue:      node.getAttribute("userValue")      ||  "",
+             nearestValue:   node.getAttribute("nearestValue")   === "1",
+             multipleValues: node.getAttribute("multipleValues") === "1",
+             current:        node.getAttribute("current")        === "1",
+             "default":      node.getAttribute("default")        ||  ""
+         };
+         var values = this.getChildValue(node);
+         dim.values = values.split(",");
+
+         dimensions[dim.name] = dim;
+     },
+
+     /**
      * Method: write
      *
      * Parameters:
@@ -514,6 +728,33 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
             "Title", context.title
         ));
         
+         // optional KeywordList element
+         if (context.keywords) {
+             node.appendChild(this.write_wmc_KeywordList(context.keywords));
+         }
+
+         // optional Abstract element
+         if (context["abstract"]) {
+             node.appendChild(this.createElementDefaultNS(
+                 "Abstract", context["abstract"]
+             ));
+         }
+
+         // Optional LogoURL element
+         if (context.logo) {
+             node.appendChild(this.write_wmc_URLType("LogoURL", context.logo.href, context.logo));
+         }
+
+         // Optional DescriptionURL element
+         if (context.descriptionURL) {
+             node.appendChild(this.write_wmc_URLType("DescriptionURL", context.descriptionURL));
+         }
+
+         // Optional ContactInformation element
+         if (context.contactInformation) {
+             node.appendChild(this.write_wmc_ContactInformation(context.contactInformation));
+         }
+
         // OpenLayers specific map properties
         node.appendChild(this.write_ol_MapExtension(context));
         
@@ -521,6 +762,110 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
     },
     
     /**
+      * Method: write_wmc_KeywordList
+      */
+     write_wmc_KeywordList: function(keywords) {
+         var node = this.createElementDefaultNS("KeywordList");
+
+         for (var i=0, len=keywords.length; i<len; i++) {
+             node.appendChild(this.createElementDefaultNS(
+                 "Keyword", keywords[i]
+             ));
+         }
+         return node;
+     },
+     /**
+      * Method: write_wmc_ContactInformation
+      */
+     write_wmc_ContactInformation: function(contact) {
+         var node = this.createElementDefaultNS("ContactInformation");
+
+         if (contact.personPrimary) {
+             node.appendChild(this.write_wmc_ContactPersonPrimary(contact.personPrimary));
+         }
+         if (contact.position) {
+             node.appendChild(this.createElementDefaultNS(
+                 "ContactPosition", contact.position
+             ));
+         }
+         if (contact.contactAddress) {
+             node.appendChild(this.write_wmc_ContactAddress(contact.contactAddress));
+         }
+         if (contact.phone) {
+             node.appendChild(this.createElementDefaultNS(
+                 "ContactVoiceTelephone", contact.phone
+             ));
+         }
+         if (contact.fax) {
+             node.appendChild(this.createElementDefaultNS(
+                 "ContactFacsimileTelephone", contact.fax
+             ));
+         }
+         if (contact.email) {
+             node.appendChild(this.createElementDefaultNS(
+                 "ContactElectronicMailAddress", contact.email
+             ));
+         }
+         return node;
+     },
+
+     /**
+      * Method: write_wmc_ContactPersonPrimary
+      */
+     write_wmc_ContactPersonPrimary: function(personPrimary) {
+         var node = this.createElementDefaultNS("ContactPersonPrimary");
+         if (personPrimary.person) {
+             node.appendChild(this.createElementDefaultNS(
+                 "ContactPerson", personPrimary.person
+             ));
+         }
+         if (personPrimary.organization) {
+             node.appendChild(this.createElementDefaultNS(
+                 "ContactOrganization", personPrimary.organization
+             ));
+         }
+         return node;
+     },
+
+     /**
+      * Method: write_wmc_ContactAddress
+      */
+     write_wmc_ContactAddress: function(contactAddress) {
+         var node = this.createElementDefaultNS("ContactAddress");
+         if (contactAddress.type) {
+             node.appendChild(this.createElementDefaultNS(
+                 "AddressType", contactAddress.type
+             ));
+         }
+         if (contactAddress.address) {
+             node.appendChild(this.createElementDefaultNS(
+                 "Address", contactAddress.address
+             ));
+         }
+         if (contactAddress.city) {
+             node.appendChild(this.createElementDefaultNS(
+                 "City", contactAddress.city
+             ));
+         }
+         if (contactAddress.stateOrProvince) {
+             node.appendChild(this.createElementDefaultNS(
+                 "StateOrProvince", contactAddress.stateOrProvince
+             ));
+         }
+         if (contactAddress.postcode) {
+             node.appendChild(this.createElementDefaultNS(
+                 "PostCode", contactAddress.postcode
+             ));
+         }
+         if (contactAddress.country) {
+             node.appendChild(this.createElementDefaultNS(
+                 "Country", contactAddress.country
+             ));
+         }
+         return node;
+     },
+
+     /**
      * Method: write_ol_MapExtension
      */
     write_ol_MapExtension: function(context) {
@@ -594,9 +939,21 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
             "Title", context.title
         ));
 
+         // optional Abstract element
+         if (context["abstract"]) {
+             node.appendChild(this.createElementDefaultNS(
+                 "Abstract", context["abstract"]
+             ));
+         }
+
+         // optional DataURL element
+         if (context.dataURL) {
+             node.appendChild(this.write_wmc_URLType("DataURL", context.dataURL));
+         }
+
         // optional MetadataURL element
         if (context.metadataURL) {
-            node.appendChild(this.write_wmc_MetadataURL(context.metadataURL));
+             node.appendChild(this.write_wmc_URLType("MetadataURL", context.metadataURL));
         }
         
         return node;
@@ -682,34 +1039,79 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
      * {Element} A WMC Server element node.
      */
     write_wmc_Server: function(context) {
+         var server = context.server;
         var node = this.createElementDefaultNS("Server");
-        this.setAttributes(node, {
+         var attributes = {
             service: "OGC:WMS",
-            version: context.version
-        });
+             version: server.version
+         };
+         if (server.title) {
+             attributes.title = server.title
+         }
+         this.setAttributes(node, attributes);
         
         // required OnlineResource element
-        node.appendChild(this.write_wmc_OnlineResource(context.url));
+         node.appendChild(this.write_wmc_OnlineResource(server.url));
         
         return node;
     },
 
     /**
-     * Method: write_wmc_MetadataURL
-     * Create a MetadataURL node given a metadataURL string.
+      * Method: write_wmc_URLType
+      * Create a LogoURL/DescriptionURL/MetadataURL/DataURL/LegendURL node given a object and elementName.
      *
      * Parameters:
-     * metadataURL - {String} MetadataURL string value.
-     *
+      * elName - {String} Name of element (LogoURL/DescriptionURL/MetadataURL/LegendURL)
+      * url - {String} URL string value
+      * attr - {Object} Optional attributes (width, height, format)
      * Returns:
-     * {Element} A WMC metadataURL element node.
+      * {Element} A WMC element node.
      */
-    write_wmc_MetadataURL: function(metadataURL) {
-        var node = this.createElementDefaultNS("MetadataURL");
+     write_wmc_URLType: function(elName, url, attr) {
+         var node = this.createElementDefaultNS(elName);
+         node.appendChild(this.write_wmc_OnlineResource(url));
+         if (attr) {
+             var optionalAttributes = ["width", "height", "format"];
+             for (var i=0; i<optionalAttributes.length; i++) {
+                 if (optionalAttributes[i] in attr) {
+                     node.setAttribute(optionalAttributes[i], attr[optionalAttributes[i]]);
+                 }
+             }
+         }
+         return node;
+     },
 
-        // required OnlineResource element
-        node.appendChild(this.write_wmc_OnlineResource(metadataURL));
+     /**
+      * Method: write_wmc_DimensionList
+      */
+     write_wmc_DimensionList: function(context) {
+         var node = this.createElementDefaultNS("DimensionList");
+         var required_attributes = {
+             name: true,
+             units: true,
+             unitSymbol: true,
+             userValue: true
+         };
+         for (var dim in context.dimensions) {
+             var attributes = {};
+             var dimension = context.dimensions[dim];
+             for (var name in dimension) {
+                 if (typeof dimension[name] == "boolean") {
+                     attributes[name] = Number(dimension[name]);
+                 } else {
+                     attributes[name] = dimension[name];
+                 }
+             }
+             var values = "";
+             if (attributes.values) {
+                 values = attributes.values.join(",");
+                 delete attributes.values;
+             }
 
+             node.appendChild(this.createElementDefaultNS(
+                 "Dimension", values, attributes
+             ));
+         }
         return node;
     },
 
@@ -752,7 +1154,7 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         var node = this.createElementDefaultNS("StyleList");
 
         var styles = layer.styles;
-        if (styles && styles instanceof Array) {
+        if (styles && OpenLayers.Util.isArray(styles)) {
             var sld;
             for (var i=0, len=styles.length; i<len; i++) {
                 var s = styles[i];
@@ -769,17 +1171,37 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                 );
                 if(s.href) { // [1]
                     sld = this.createElementDefaultNS("SLD");
-                    var link = this.write_wmc_OnlineResource(s.href);
-                    sld.appendChild(link);
-                    // Name is required.
+                     // Name is optional.
+                     if (s.name) {
                     sld.appendChild(this.createElementDefaultNS("Name", s.name));
+                     }
                     // Title is optional.
                     if (s.title) {
                         sld.appendChild(this.createElementDefaultNS("Title", s.title));
                     }
+                     // LegendURL is optional
+                     if (s.legend) {
+                         sld.appendChild(this.write_wmc_URLType("LegendURL", s.legend.href, s.legend));
+                     }
+
+                     var link = this.write_wmc_OnlineResource(s.href);
+                     sld.appendChild(link);
                     style.appendChild(sld);
                 } else if(s.body) { // [2]
                     sld = this.createElementDefaultNS("SLD");
+                     // Name is optional.
+                     if (s.name) {
+                         sld.appendChild(this.createElementDefaultNS("Name", s.name));
+                     }
+                     // Title is optional.
+                     if (s.title) {
+                         sld.appendChild(this.createElementDefaultNS("Title", s.title));
+                     }
+                     // LegendURL is optional
+                     if (s.legend) {
+                         sld.appendChild(this.write_wmc_URLType("LegendURL", s.legend.href, s.legend));
+                     }
+
                     // read in body as xml doc - assume proper namespace declarations
                     var doc = OpenLayers.Format.XML.prototype.read.apply(this, [s.body]);
                     // append to StyledLayerDescriptor node
@@ -788,12 +1210,6 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                         imported = sld.ownerDocument.importNode(imported, true);
                     }
                     sld.appendChild(imported);
-                    // Name is required.
-                    sld.appendChild(this.createElementDefaultNS("Name", s.name));
-                    // Title is optional.
-                    if (s.title) {
-                        sld.appendChild(this.createElementDefaultNS("Title", s.title));
-                    }
                     style.appendChild(sld);            
                 } else { // [3]
                     // both Name and Title are required.
@@ -805,7 +1221,11 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
                             "Abstract", s['abstract']
                         ));
                     }
+                     // LegendURL is optional
+                     if (s.legend) {
+                         style.appendChild(this.write_wmc_URLType("LegendURL", s.legend.href, s.legend));
                 }
+                 }
                 node.appendChild(style);
             }
         }
@@ -830,6 +1250,19 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         return node;
     },
 
+     /**
+      * Method: getOnlineResource_href
+      */
+     getOnlineResource_href: function(node) {
+         var object = {};
+         var links = node.getElementsByTagName("OnlineResource");
+         if(links.length > 0) {
+             this.read_wmc_OnlineResource(object, links[0]);
+         }
+         return object.href;
+     },
+
+
     CLASS_NAME: "OpenLayers.Format.WMC.v1" 
 
 });
diff --git a/lib/OpenLayers/Format/WMC/v1_0_0.js b/lib/OpenLayers/Format/WMC/v1_0_0.js
index 3a41344..9968e63 100644
--- a/lib/OpenLayers/Format/WMC/v1_0_0.js
+++ b/lib/OpenLayers/Format/WMC/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -46,6 +46,20 @@ OpenLayers.Format.WMC.v1_0_0 = OpenLayers.Class(
     },
 
     /**
+     * Method: read_wmc_SRS
+     */
+    read_wmc_SRS: function(layerContext, node) {
+        var srs    = this.getChildValue(node);
+        if (typeof layerContext.projections != "object") {
+            layerContext.projections = {};
+        }
+        var values = srs.split(/ +/);
+        for (var i=0, len=values.length; i<len; i++) {
+            layerContext.projections[values[i]] = true;
+        }
+    },
+
+    /**
      * Method: write_wmc_Layer
      * Create a Layer node given a layer context object. This method adds
      *     elements specific to version 1.0.0.
@@ -61,12 +75,26 @@ OpenLayers.Format.WMC.v1_0_0 = OpenLayers.Class(
             this, [context]
         );
     
+        // optional SRS element(s)
+        if (context.srs) {
+            var projections = [];
+            for(var name in context.srs) {
+                projections.push(name);
+            }
+            node.appendChild(this.createElementDefaultNS("SRS", projections.join(" ")));
+        }
+
         // optional FormatList element
         node.appendChild(this.write_wmc_FormatList(context));
 
         // optional StyleList element
         node.appendChild(this.write_wmc_StyleList(context));
         
+        // optional DimensionList element
+        if (context.dimensions) {
+            node.appendChild(this.write_wmc_DimensionList(context));
+        }
+
         // OpenLayers specific properties go in an Extension element
         node.appendChild(this.write_wmc_LayerExtension(context));
     },    
diff --git a/lib/OpenLayers/Format/WMC/v1_1_0.js b/lib/OpenLayers/Format/WMC/v1_1_0.js
index fc88f2a..24c65e3 100644
--- a/lib/OpenLayers/Format/WMC/v1_1_0.js
+++ b/lib/OpenLayers/Format/WMC/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -77,6 +77,16 @@ OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
     },
 
     /**
+     * Method: read_wmc_SRS
+     */
+    read_wmc_SRS: function(layerContext, node) {
+        if (! ("srs" in layerContext)) {
+            layerContext.srs = {};
+        }
+        layerContext.srs[this.getChildValue(node)] = true;
+    },
+
+    /**
      * Method: write_wmc_Layer
      * Create a Layer node given a layer context object. This method adds
      *     elements specific to version 1.1.0.
@@ -109,12 +119,24 @@ OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
             node.appendChild(maxSD);
         }
 
+        // optional SRS element(s)
+        if (context.srs) {
+            for(var name in context.srs) {
+                node.appendChild(this.createElementDefaultNS("SRS", name));
+            }
+        }
+
         // optional FormatList element
         node.appendChild(this.write_wmc_FormatList(context));
 
         // optional StyleList element
         node.appendChild(this.write_wmc_StyleList(context));
         
+        // optional DimensionList element
+        if (context.dimensions) {
+            node.appendChild(this.write_wmc_DimensionList(context));
+        }
+
         // OpenLayers specific properties go in an Extension element
         node.appendChild(this.write_wmc_LayerExtension(context));
         
diff --git a/lib/OpenLayers/Format/WMSCapabilities.js b/lib/OpenLayers/Format/WMSCapabilities.js
index 3114afa..5315c21 100644
--- a/lib/OpenLayers/Format/WMSCapabilities.js
+++ b/lib/OpenLayers/Format/WMSCapabilities.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  */
 
 /**
@@ -12,9 +12,9 @@
  * Read WMS Capabilities.
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.WMSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.WMSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
     
     /**
      * APIProperty: defaultVersion
@@ -23,18 +23,15 @@ OpenLayers.Format.WMSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
     defaultVersion: "1.1.1",
     
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
+     * APIProperty: profile
+     * {String} If provided, use a custom profile.
+     *
+     * Currently supported profiles:
+     * - WMSC - parses vendor specific capabilities for WMS-C.
      */
-    version: null,
+    profile: null,
     
     /**
-     * Property: parser
-     * {<OpenLayers.Format>} A cached versioned format used for reading.
-     */
-    parser: null,
-
-    /**
      * Constructor: OpenLayers.Format.WMSCapabilities
      * Create a new parser for WMS capabilities.
      *
@@ -42,10 +39,6 @@ OpenLayers.Format.WMSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -57,26 +50,7 @@ OpenLayers.Format.WMSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {Array} List of named layers.
      */
-    read: function(data) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version || root.getAttribute("version") || this.defaultVersion;
-        if(!this.parser || this.parser.version !== version) {
-            var constr = OpenLayers.Format.WMSCapabilities[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if(!constr) {
-                throw "Can't find a WMS capabilities parser for version " + version;
-            }
-            this.parser = new constr(this.options);
-        }
-        var capabilities = this.parser.read(data);
-        capabilities.version = version;
-        return capabilities;
-    },
     
     CLASS_NAME: "OpenLayers.Format.WMSCapabilities" 
 
-});
\ No newline at end of file
+});
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1.js b/lib/OpenLayers/Format/WMSCapabilities/v1.js
index 7cf9166..7283760 100644
--- a/lib/OpenLayers/Format/WMSCapabilities/v1.js
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
  * @requires OpenLayers/Format/WMSCapabilities.js
+ * @requires OpenLayers/Format/OGCExceptionReport.js
  * @requires OpenLayers/Format/XML.js
  */
 
@@ -60,15 +61,20 @@ OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
         if(typeof data == "string") {
             data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
         }
+        var raw = data;
         if(data && data.nodeType == 9) {
             data = data.documentElement;
         }
         var capabilities = {};
         this.readNode(data, capabilities);
-    
-        // postprocess the layer list
-        this.postProcessLayers(capabilities);
-    
+        if (capabilities.service === undefined) {
+            // an exception must have occurred, so parse it
+            var parser = new OpenLayers.Format.OGCExceptionReport();
+            capabilities.error = parser.read(raw);
+        } else {
+            // postprocess the layer list
+            this.postProcessLayers(capabilities);
+        }
         return capabilities;
     },
 
@@ -107,6 +113,8 @@ OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
             layer.formats = capability.request.getmap.formats;
         }
 
+        var i, len;
+
         // deal with property inheritance
         if(parentLayer) {
             // add style
@@ -128,8 +136,9 @@ OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
                                "authorityURLs"];
             
             var key;
-            for (var j=0; j<attributes.length; j++) {
-                key = attributes[j];
+
+            for (i=0, len=attributes.length; i<len; i++) {
+                key = attributes[i];
                 if (key in parentLayer) {
                     // only take parent value if not present (null or undefined)
                     if (layer[key] == null) {
@@ -151,15 +160,15 @@ OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
                 }
             }
 
-            for (var j=0; j<complexAttr.length; j++) {
-                key = complexAttr[j];
-                layer[key] = OpenLayers.Util.extend(
+            for (i=0, len=complexAttr.length; i<len; i++) {
+                key = complexAttr[i];
+                layer[key] = OpenLayers.Util.applyDefaults(
                     layer[key], parentLayer[key]);
             }
         }
 
         // process sublayers
-        for (var i=0, len=layer.nestedLayers.length; i<len; i++) {
+        for (i=0, len=layer.nestedLayers.length; i<len; i++) {
             var childLayer = layer.nestedLayers[i];
             this.processLayer(capability, childLayer, layer);
         }
@@ -290,7 +299,7 @@ OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
                 this.readChildNodes(node, obj.getcapabilities);
             },
             "Format": function(node, obj) {
-                if (obj.formats instanceof Array) {
+                if (OpenLayers.Util.isArray(obj.formats)) {
                     obj.formats.push(this.getChildValue(node));
                 } else {
                     obj.format = this.getChildValue(node);
@@ -303,10 +312,20 @@ OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
                 this.readChildNodes(node, obj);
             },
             "Get": function(node, obj) {
-                this.readChildNodes(node, obj);
+                obj.get = {};
+                this.readChildNodes(node, obj.get);
+                // backwards compatibility
+                if (!obj.href) {
+                    obj.href = obj.get.href;
+                }
             },
             "Post": function(node, obj) {
-                this.readChildNodes(node, obj);
+                obj.post = {};
+                this.readChildNodes(node, obj.post);
+                // backwards compatibility
+                if (!obj.href) {
+                    obj.href = obj.get.href;
+                }
             },
             "GetMap": function(node, obj) {
                 obj.getmap = {formats: []};
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1_1.js b/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
index 8af1b7d..3860b4f 100644
--- a/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js b/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
index 52eba6b..a211500 100644
--- a/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js b/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
index 8cb0fa2..cf3e85c 100644
--- a/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js b/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js
new file mode 100644
index 0000000..5aab8bd
--- /dev/null
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js
@@ -0,0 +1,90 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/WMSCapabilities/v1_1_1.js
+ */
+
+/**
+ * Class: OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC
+ * Read WMS-C Capabilities version 1.1.1.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.WMSCapabilities.v1_1_1>
+ */
+OpenLayers.Format.WMSCapabilities.v1_1_1_WMSC = OpenLayers.Class(
+    OpenLayers.Format.WMSCapabilities.v1_1_1, {
+    
+    /**
+     * Property: version
+     * {String} The specific parser version.
+     */
+    version: "1.1.1",
+    
+    /**
+     * Property: profile
+     * {String} The specific profile
+     */
+    profile: "WMSC",
+    
+    /**
+     * Constructor: OpenLayers.Format.WMSCapabilities.v1_1_1
+     * Create a new parser for WMS-C capabilities version 1.1.1.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+    initialize: function(options) {
+        OpenLayers.Format.WMSCapabilities.v1_1_1.prototype.initialize.apply(
+            this, [options]
+        );
+    },
+
+    /**
+     * Property: readers
+     * Contains public functions, grouped by namespace prefix, that will
+     *     be applied when a namespaced node is found matching the function
+     *     name.  The function will be applied in the scope of this parser
+     *     with two arguments: the node being read and a context object passed
+     *     from the parent.
+     */
+    readers: {
+        "wms": OpenLayers.Util.applyDefaults({
+            "VendorSpecificCapabilities": function(node, obj) {
+                obj.vendorSpecific = {tileSets: []};
+                this.readChildNodes(node, obj.vendorSpecific);
+            },
+            "TileSet": function(node, vendorSpecific) {
+                var tileset = {srs: {}, bbox: {}, resolutions: []};
+                this.readChildNodes(node, tileset);
+                vendorSpecific.tileSets.push(tileset);
+            },
+            "Resolutions": function(node, tileset) {
+                var res = this.getChildValue(node).split(" ");
+                for (var i=0, len=res.length; i<len; i++) {
+                    if (res[i] != "") {
+                        tileset.resolutions.push(parseFloat(res[i]));
+                    }
+                }
+            },
+            "Width": function(node, tileset) {
+                tileset.width = parseInt(this.getChildValue(node));
+            },
+            "Height": function(node, tileset) {
+                tileset.height = parseInt(this.getChildValue(node));
+            },
+            "Layers": function(node, tileset) {
+                tileset.layers = this.getChildValue(node);
+            },
+            "Styles": function(node, tileset) {
+                tileset.styles = this.getChildValue(node);
+            }
+        }, OpenLayers.Format.WMSCapabilities.v1_1_1.prototype.readers["wms"])
+    },
+
+    CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1_1_WMSC" 
+
+});
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1_3.js b/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
index 6662c1e..33a002b 100644
--- a/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
@@ -1,8 +1,8 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
- * full list of contributors). Published under the Clear BSD license.  
- * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
- * full text of the license. */
-
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
 /**
  * @requires OpenLayers/Format/WMSCapabilities/v1.js
  */
diff --git a/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js b/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
index 3ec471b..8f902d5 100644
--- a/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
+++ b/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
@@ -1,8 +1,8 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
- * full list of contributors). Published under the Clear BSD license.  
- * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
- * full text of the license. */
-
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
 /**
  * @requires OpenLayers/Format/WMSCapabilities/v1_3.js
  */
diff --git a/lib/OpenLayers/Format/WMSDescribeLayer.js b/lib/OpenLayers/Format/WMSDescribeLayer.js
index 19c9681..02461c9 100644
--- a/lib/OpenLayers/Format/WMSDescribeLayer.js
+++ b/lib/OpenLayers/Format/WMSDescribeLayer.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  */
 
 /**
@@ -13,9 +13,9 @@
  * DescribeLayer is meant to couple WMS to WFS and WCS
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.WMSDescribeLayer = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.WMSDescribeLayer = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
 
     /**
      * APIProperty: defaultVersion
@@ -24,10 +24,26 @@ OpenLayers.Format.WMSDescribeLayer = OpenLayers.Class(OpenLayers.Format.XML, {
     defaultVersion: "1.1.1",
    
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
+     * Method: getVersion
+     * Returns the version to use. Subclasses can override this function
+     * if a different version detection is needed.
+     *
+     * Parameters:
+     * root - {DOMElement}
+     * options - {Object} Optional configuration object.
+     *
+     * Returns:
+     * {String} The version to use.
      */
-    version: null,
+    getVersion: function(root, options) {
+        var version = OpenLayers.Format.XML.VersionedOGC.prototype.getVersion.apply(
+            this, arguments);
+        // these are identical to us, but some WMS use 1.1.1 and some use 1.1.0
+        if (version == "1.1.1" || version == "1.1.0") {
+            version = "1.1";
+        }
+        return version;
+    },
 
     /**
      * Constructor: OpenLayers.Format.WMSDescribeLayer
@@ -37,10 +53,6 @@ OpenLayers.Format.WMSDescribeLayer = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -57,34 +69,6 @@ OpenLayers.Format.WMSDescribeLayer = OpenLayers.Class(OpenLayers.Format.XML, {
      * - {String} owsURL: the online resource
      * - {String} typeName: the name of the typename on the service
      */
-    read: function(data) {
-        if(typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version;
-        if(!version) {
-            version = root.getAttribute("version");
-            if(!version) {
-                version = this.defaultVersion;
-            }
-        }
-        // these are identical to us, but some WMS use 1.1.1 and some use 1.1.0
-        if (version == "1.1.1" || version == "1.1.0") {
-            version = "1.1";
-        }
-        var constructor = OpenLayers.Format.WMSDescribeLayer[
-            "v" + version.replace(/\./g, "_")
-        ];
-        if(!constructor) {
-            throw "Can't find a WMS DescribeLayer parser for version " + 
-                version;
-        }
-        var parser = new constructor(this.options);
-        var describelayer = parser.read(data);
-        describelayer.version = version;
-        return describelayer;
-    },
     
     CLASS_NAME: "OpenLayers.Format.WMSDescribeLayer" 
 
diff --git a/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js b/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
index f1c9ad9..94d09a1 100644
--- a/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
+++ b/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Format/WMSGetFeatureInfo.js b/lib/OpenLayers/Format/WMSGetFeatureInfo.js
index 2fc7038..10f4b02 100644
--- a/lib/OpenLayers/Format/WMSGetFeatureInfo.js
+++ b/lib/OpenLayers/Format/WMSGetFeatureInfo.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -56,11 +56,6 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, arguments);
-        OpenLayers.Util.extend(this, options);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -155,10 +150,25 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
             var featureNode = featureNodes[i];
             var geom = null;
 
+            // attributes can be actual attributes on the FIELDS tag, 
+            // or FIELD children
             var attributes = {};
-            for(var j=0, jlen=featureNode.attributes.length; j<jlen; j++) {
-                var attribute = featureNode.attributes[j];
-                attributes[attribute.nodeName] = attribute.nodeValue;
+            var j;
+            var jlen = featureNode.attributes.length;
+            if (jlen > 0) {
+                for(j=0; j<jlen; j++) {
+                    var attribute = featureNode.attributes[j];
+                    attributes[attribute.nodeName] = attribute.nodeValue;
+                }
+            } else {
+                var nodes = featureNode.childNodes;
+                for (j=0, jlen=nodes.length; j<jlen; ++j) {
+                    var node = nodes[j];
+                    if (node.nodeType != 3) {
+                        attributes[node.getAttribute("name")] = 
+                            node.getAttribute("value");
+                    }
+                }
             }
 
             response.push(
@@ -235,12 +245,14 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
                 var child = children[i];
                 if (child.nodeType == 1) {
                     var grandchildren = child.childNodes;
-                    if (grandchildren.length == 1) {
+                    var name = (child.prefix) ?
+                        child.nodeName.split(":")[1] : child.nodeName;
+                    if (grandchildren.length == 0) {
+                        attributes[name] = null
+                    } else if (grandchildren.length == 1) {
                         var grandchild = grandchildren[0];
                         if (grandchild.nodeType == 3 ||
                             grandchild.nodeType == 4) {
-                            var name = (child.prefix) ? 
-                                child.nodeName.split(":")[1] : child.nodeName;
                             var value = grandchild.nodeValue.replace(
                                 this.regExes.trimSpace, "");
                             attributes[name] = value;
diff --git a/lib/OpenLayers/Format/WMTSCapabilities.js b/lib/OpenLayers/Format/WMTSCapabilities.js
index 2cee114..bc5d35d 100644
--- a/lib/OpenLayers/Format/WMTSCapabilities.js
+++ b/lib/OpenLayers/Format/WMTSCapabilities.js
@@ -1,10 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
- * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
  */
  
 /**
@@ -12,9 +12,9 @@
  * Read WMTS Capabilities.
  * 
  * Inherits from:
- *  - <OpenLayers.Format.XML>
+ *  - <OpenLayers.Format.XML.VersionedOGC>
  */
-OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
+OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
     
     /**
      * APIProperty: defaultVersion
@@ -23,18 +23,6 @@ OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
     defaultVersion: "1.0.0",
     
     /**
-     * APIProperty: version
-     * {String} Specify a version string if one is known.
-     */
-    version: null,
-
-    /**
-     * Property: parser
-     * {<OpenLayers.Format>} A cached versioned format used for reading.
-     */
-    parser: null,
-    
-    /**
      * APIProperty: yx
      * {Object} Members in the yx object are used to determine if a CRS URN
      *     corresponds to a CRS with y,x axis order.  Member names are CRS URNs
@@ -55,10 +43,6 @@ OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * options - {Object} An optional object whose properties will be set on
      *     this instance.
      */
-    initialize: function(options) {
-        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
-        this.options = options;
-    },
 
     /**
      * APIMethod: read
@@ -71,23 +55,6 @@ OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
      * Returns:
      * {Object} Info about the WMTS Capabilities
      */
-    read: function(data) {
-        if (typeof data == "string") {
-            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
-        }
-        var root = data.documentElement;
-        var version = this.version || root.getAttribute("version") || this.defaultVersion;
-        if (!this.parser || this.parser.version !== version) {
-            var constr = OpenLayers.Format.WMTSCapabilities[
-                "v" + version.replace(/\./g, "_")
-            ];
-            if (!constr) {
-                throw new Error("Can't find a WMTS capabilities parser for version " + version);
-            }
-            this.parser = new constr(this.options);
-        }
-        return this.parser.read(data);
-    },
 
     /**
      * APIMethod: createLayer
@@ -149,7 +116,7 @@ OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML, {
                 OpenLayers.Util.applyDefaults(config, {
                     url: capabilities.operationsMetadata.GetTile.dcp.http.get,
                     name: layerDef.title,
-                    style: style,
+                    style: style.identifier,
                     matrixIds: matrixSet.matrixIds
                 })
             );
diff --git a/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js b/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
index a71517d..b436615 100644
--- a/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
+++ b/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -191,7 +191,14 @@ OpenLayers.Format.WMTSCapabilities.v1_0_0 = OpenLayers.Class(
             },
             "MatrixHeight": function(node, obj) {
                 obj.matrixHeight = parseInt(this.getChildValue(node)); 
-            },        
+            },
+            "ResourceURL": function(node, obj) {
+                obj.resourceUrl = obj.resourceUrl || {};
+                obj.resourceUrl[node.getAttribute("resourceType")] = {
+                    format: node.getAttribute("format"),
+                    template: node.getAttribute("template")
+                };
+            },
             // not used for now, can be added in the future though
             /*"Themes": function(node, obj) {
                 obj.themes = [];
diff --git a/lib/OpenLayers/Format/WPSCapabilities.js b/lib/OpenLayers/Format/WPSCapabilities.js
new file mode 100644
index 0000000..aa55130
--- /dev/null
+++ b/lib/OpenLayers/Format/WPSCapabilities.js
@@ -0,0 +1,48 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
+ */
+ 
+/**
+ * Class: OpenLayers.Format.WPSCapabilities
+ * Read WPS Capabilities.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.XML.VersionedOGC>
+ */
+OpenLayers.Format.WPSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
+    
+    /**
+     * APIProperty: defaultVersion
+     * {String} Version number to assume if none found.  Default is "1.0.0".
+     */
+    defaultVersion: "1.0.0",
+    
+    /**
+     * Constructor: OpenLayers.Format.WPSCapabilities
+     * Create a new parser for WPS Capabilities.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * APIMethod: read
+     * Read capabilities data from a string, and return information about
+     * the service.
+     * 
+     * Parameters: 
+     * data - {String} or {DOMElement} data to read/parse.
+     *
+     * Returns:
+     * {Object} Info about the WPS
+     */
+    
+    CLASS_NAME: "OpenLayers.Format.WPSCapabilities" 
+
+});
diff --git a/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js b/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js
new file mode 100644
index 0000000..80ef888
--- /dev/null
+++ b/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js
@@ -0,0 +1,119 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/WPSCapabilities.js
+ * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
+ */
+
+/**
+ * Class: OpenLayers.Format.WPSCapabilities.v1_0_0
+ * Read WPS Capabilities version 1.0.0.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.WPSCapabilities.v1_0_0 = OpenLayers.Class(
+    OpenLayers.Format.XML, {
+
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        ows: "http://www.opengis.net/ows/1.1",
+        wps: "http://www.opengis.net/wps/1.0.0",
+        xlink: "http://www.w3.org/1999/xlink"
+    },
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+    
+    /**
+     * Constructor: OpenLayers.Format.WPSCapabilities.v1_0_0
+     * Create a new parser for WPS capabilities version 1.0.0. 
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+    initialize: function(options) {
+        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
+    },
+
+    /**
+     * APIMethod: read
+     * Read capabilities data from a string, and return info about the WPS.
+     * 
+     * Parameters: 
+     * data - {String} or {DOMElement} data to read/parse.
+     *
+     * Returns:
+     * {Object} Information about the WPS service.
+     */
+    read: function(data) {
+        if(typeof data == "string") {
+            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
+        }
+        if(data && data.nodeType == 9) {
+            data = data.documentElement;
+        }
+        var capabilities = {};
+        this.readNode(data, capabilities);
+        return capabilities;
+    },
+
+    /**
+     * Property: readers
+     * Contains public functions, grouped by namespace prefix, that will
+     *     be applied when a namespaced node is found matching the function
+     *     name.  The function will be applied in the scope of this parser
+     *     with two arguments: the node being read and a context object passed
+     *     from the parent.
+     */
+    readers: {
+        "wps": {
+            "Capabilities": function(node, obj) {
+                this.readChildNodes(node, obj);
+            },
+            "ProcessOfferings": function(node, obj) {
+                obj.processOfferings = {};
+                this.readChildNodes(node, obj.processOfferings);
+            },
+            "Process": function(node, processOfferings) {
+                var processVersion = this.getAttributeNS(node, this.namespaces.wps, "processVersion");
+                var process = {processVersion: processVersion};
+                this.readChildNodes(node, process);
+                processOfferings[process.identifier] = process;
+            },
+            "Languages": function(node, obj) {
+                obj.languages = [];
+                this.readChildNodes(node, obj.languages);
+            },
+            "Default": function(node, languages) {
+                var language = {isDefault: true};
+                this.readChildNodes(node, language);
+                languages.push(language);
+            },
+            "Supported": function(node, languages) {
+                var language = {};
+                this.readChildNodes(node, language);     
+                languages.push(language);
+            }
+        },
+        "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
+    },    
+    
+    CLASS_NAME: "OpenLayers.Format.WPSCapabilities.v1_0_0" 
+
+});
diff --git a/lib/OpenLayers/Format/WPSDescribeProcess.js b/lib/OpenLayers/Format/WPSDescribeProcess.js
new file mode 100644
index 0000000..2a31573
--- /dev/null
+++ b/lib/OpenLayers/Format/WPSDescribeProcess.js
@@ -0,0 +1,181 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+ 
+/**
+ * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
+ */
+
+/**
+ * Class: OpenLayers.Format.WPSDescribeProcess
+ * Read WPS DescribeProcess responses. 
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.WPSDescribeProcess = OpenLayers.Class(
+    OpenLayers.Format.XML, {
+    
+    /**
+     * Constant: VERSION
+     * {String} 1.0.0
+     */
+    VERSION: "1.0.0",
+
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        wps: "http://www.opengis.net/wps/1.0.0",
+        ows: "http://www.opengis.net/ows/1.1",
+        xsi: "http://www.w3.org/2001/XMLSchema-instance"
+    },
+
+    /**
+     * Property: schemaLocation
+     * {String} Schema location
+     */
+    schemaLocation: "http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",
+
+    /**
+     * Property: defaultPrefix
+     */
+    defaultPrefix: "wps",
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+    
+    /**
+     * Constructor: OpenLayers.Format.WPSDescribeProcess
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * APIMethod: read
+     * Parse a WPS DescribeProcess and return an object with its information.
+     * 
+     * Parameters: 
+     * data - {String} or {DOMElement} data to read/parse.
+     *
+     * Returns:
+     * {Object}
+     */
+    read: function(data) {
+        if(typeof data == "string") {
+            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
+        }
+        if(data && data.nodeType == 9) {
+            data = data.documentElement;
+        }
+        var info = {};
+        this.readNode(data, info);
+        return info;
+    },
+
+    /**
+     * Property: readers
+     * Contains public functions, grouped by namespace prefix, that will
+     *     be applied when a namespaced node is found matching the function
+     *     name.  The function will be applied in the scope of this parser
+     *     with two arguments: the node being read and a context object passed
+     *     from the parent.
+     */
+    readers: {
+        "wps": {
+            "ProcessDescriptions": function(node, obj) {
+                obj.processDescriptions = {};
+                this.readChildNodes(node, obj.processDescriptions);
+            },
+            "ProcessDescription": function(node, processDescriptions) {
+                var processVersion = this.getAttributeNS(node, this.namespaces.wps, "processVersion");
+                var processDescription = {
+                    processVersion: processVersion,
+                    statusSupported: (node.getAttribute("statusSupported") === "true"),
+                    storeSupported: (node.getAttribute("storeSupported") === "true")
+                };
+                this.readChildNodes(node, processDescription);
+                processDescriptions[processDescription.identifier] = processDescription;
+            },
+            "DataInputs": function(node, processDescription) {
+                processDescription.dataInputs = [];
+                this.readChildNodes(node, processDescription.dataInputs);
+            },
+            "ProcessOutputs": function(node, processDescription) {
+                processDescription.processOutputs = [];
+                this.readChildNodes(node, processDescription.processOutputs);
+            },
+            "Output": function(node, processOutputs) {
+                var output = {};
+                this.readChildNodes(node, output);
+                processOutputs.push(output);
+            },
+            "ComplexOutput": function(node, output) {
+                output.complexOutput = {};
+                this.readChildNodes(node, output.complexOutput);
+            },
+            "Input": function(node, dataInputs) {
+                var input = {
+                    maxOccurs: parseInt(node.getAttribute("maxOccurs")),
+                    minOccurs: parseInt(node.getAttribute("minOccurs"))
+                };
+                this.readChildNodes(node, input);
+                dataInputs.push(input);
+            },
+            "BoundingBoxData": function(node, input) {
+                input.boundingBoxData = {};
+                this.readChildNodes(node, input.boundingBoxData);
+            },
+            "CRS": function(node, obj) {
+                if (!obj.CRSs) {
+                    obj.CRSs = {};
+                }
+                obj.CRSs[this.getChildValue(node)] = true;
+            },
+            "LiteralData": function(node, input) {
+                input.literalData = {};
+                this.readChildNodes(node, input.literalData);
+            },
+            "ComplexData": function(node, input) {
+                input.complexData = {};
+                this.readChildNodes(node,  input.complexData);
+            },
+            "Default": function(node, complexData) {
+                complexData["default"] = {};
+                this.readChildNodes(node,  complexData["default"]);
+            },
+            "Supported": function(node, complexData) {
+                complexData["supported"] = {};
+                this.readChildNodes(node,  complexData["supported"]);
+            },
+            "Format": function(node, obj) {
+                var format = {};
+                this.readChildNodes(node, format);
+                if (!obj.formats) {
+                    obj.formats = {};
+                }
+                obj.formats[format.mimeType] = true;
+            },
+            "MimeType": function(node, format) {
+                format.mimeType = this.getChildValue(node);
+            }
+        },
+        "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
+    },
+    
+    CLASS_NAME: "OpenLayers.Format.WPSDescribeProcess" 
+
+});
diff --git a/lib/OpenLayers/Format/WPSExecute.js b/lib/OpenLayers/Format/WPSExecute.js
new file mode 100644
index 0000000..9b0d6e7
--- /dev/null
+++ b/lib/OpenLayers/Format/WPSExecute.js
@@ -0,0 +1,250 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
+ * @requires OpenLayers/Format/WCSGetCoverage.js
+ * @requires OpenLayers/Format/WFST/v1_1_0.js
+ */
+
+/**
+ * Class: OpenLayers.Format.WPSExecute version 1.0.0
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.WPSExecute = OpenLayers.Class(OpenLayers.Format.XML, {
+    
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        ows: "http://www.opengis.net/ows/1.1",
+        gml: "http://www.opengis.net/gml",
+        wps: "http://www.opengis.net/wps/1.0.0",
+        wfs: "http://www.opengis.net/wfs",
+        ogc: "http://www.opengis.net/ogc",
+        wcs: "http://www.opengis.net/wcs",
+        xlink: "http://www.w3.org/1999/xlink",
+        xsi: "http://www.w3.org/2001/XMLSchema-instance"
+    },
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+
+    /**
+     * Constant: VERSION
+     * {String} 1.0.0
+     */
+    VERSION: "1.0.0",
+
+    /**
+     * Property: schemaLocation
+     * {String} Schema location
+     */
+    schemaLocation: "http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",
+
+    schemaLocationAttr: function(options) {
+        return undefined;
+    },
+
+    /**
+     * Constructor: OpenLayers.Format.WPSExecute
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * Method: write
+     *
+     * Parameters:
+     * options - {Object} Optional object.
+     *
+     * Returns:
+     * {String} An WPS Execute request XML string.
+     */
+    write: function(options) {
+        var doc;
+        if (window.ActiveXObject) {
+            doc = new ActiveXObject("Microsoft.XMLDOM");
+            this.xmldom = doc;
+        } else {
+            doc = document.implementation.createDocument("", "", null);
+        }
+        var node = this.writeNode("wps:Execute", options, doc);
+        this.setAttributeNS(
+            node, this.namespaces.xsi,
+            "xsi:schemaLocation", this.schemaLocation
+        );
+        return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
+    }, 
+
+    /**
+     * Property: writers
+     * As a compliment to the readers property, this structure contains public
+     *     writing functions grouped by namespace alias and named like the
+     *     node names they produce.
+     */
+    writers: {
+        "wps": {
+            "Execute": function(options) {
+                var node = this.createElementNSPlus("wps:Execute", {
+                    attributes: {
+                        version: this.VERSION,
+                        service: 'WPS'
+                    } 
+                }); 
+                this.writeNode("ows:Identifier", options.identifier, node);
+                this.writeNode("wps:DataInputs", options.dataInputs, node);
+                this.writeNode("wps:ResponseForm", options.responseForm, node);
+                return node; 
+            },
+            "ResponseForm": function(responseForm) {
+                var node = this.createElementNSPlus("wps:ResponseForm", {});
+                if (responseForm.rawDataOutput) {
+                    this.writeNode("wps:RawDataOutput", responseForm.rawDataOutput, node);
+                }
+                if (responseForm.responseDocument) {
+                    this.writeNode("wps:ResponseDocument", responseForm.responseDocument, node);
+                }
+                return node;
+            },
+            "ResponseDocument": function(responseDocument) {
+                var node = this.createElementNSPlus("wps:ResponseDocument", {
+                    attributes: {
+                        storeExecuteResponse: responseDocument.storeExecuteResponse,
+                        lineage: responseDocument.lineage,
+                        status: responseDocument.status
+                    }
+                });
+                if (responseDocument.output) {
+                    this.writeNode("wps:Output", responseDocument.output, node);
+                }
+                return node;
+            },
+            "Output": function(output) {
+                var node = this.createElementNSPlus("wps:Output", {
+                    attributes: {
+                        asReference: output.asReference
+                    }
+                });
+                this.writeNode("ows:Identifier", output.identifier, node);
+                this.writeNode("ows:Title", output.title, node);
+                this.writeNode("ows:Abstract", output["abstract"], node);
+                return node;
+            },
+            "RawDataOutput": function(rawDataOutput) {
+                var node = this.createElementNSPlus("wps:RawDataOutput", {
+                    attributes: {
+                        mimeType: rawDataOutput.mimeType
+                    }
+                });
+                this.writeNode("ows:Identifier", rawDataOutput.identifier, node);
+                return node;
+            },
+            "DataInputs": function(dataInputs) {
+                var node = this.createElementNSPlus("wps:DataInputs", {});
+                for (var i=0, ii=dataInputs.length; i<ii; ++i) {
+                    this.writeNode("wps:Input", dataInputs[i], node);
+                }
+                return node;
+            },
+            "Input": function(input) {
+                var node = this.createElementNSPlus("wps:Input", {});
+                this.writeNode("ows:Identifier", input.identifier, node);
+                if (input.title) {
+                    this.writeNode("ows:Title", input.title, node);
+                }
+                if (input.data) {
+                    this.writeNode("wps:Data", input.data, node);
+                }
+                if (input.reference) {
+                    this.writeNode("wps:Reference", input.reference, node);
+                }
+                return node;
+            },
+            "Data": function(data) {
+                var node = this.createElementNSPlus("wps:Data", {});
+                if (data.literalData) {
+                    this.writeNode("wps:LiteralData", data.literalData, node);
+                } else if (data.complexData) {
+                    this.writeNode("wps:ComplexData", data.complexData, node);
+                }
+                return node;
+            },
+            "LiteralData": function(literalData) {
+                var node = this.createElementNSPlus("wps:LiteralData", {
+                    attributes: {
+                        uom: literalData.uom
+                    },
+                    value: literalData.value
+                });
+                return node;
+            },
+            "ComplexData": function(complexData) {
+                var node = this.createElementNSPlus("wps:ComplexData", {
+                    attributes: {
+                        mimeType: complexData.mimeType,
+                        encoding: complexData.encoding,
+                        schema: complexData.schema
+                    } 
+                });
+                node.appendChild(
+                    this.getXMLDoc().createCDATASection(complexData.value)
+                );
+                return node;
+            },
+            "Reference": function(reference) {
+                var node = this.createElementNSPlus("wps:Reference", {
+                    attributes: {
+                        mimeType: reference.mimeType,
+                        "xlink:href": reference.href,
+                        method: reference.method,
+                        encoding: reference.encoding,
+                        schema: reference.schema
+                    }
+                });
+                if (reference.body) {
+                    this.writeNode("wps:Body", reference.body, node);
+                }
+                return node;
+            },
+            "Body": function(body) {
+                var node = this.createElementNSPlus("wps:Body", {});
+                if (body.wcs) {
+                    this.writeNode("wcs:GetCoverage", body.wcs, node);
+                }
+                else if (body.wfs) {
+                    // OpenLayers.Format.WFST expects these to be on the 
+                    // instance and not in the options
+                    this.featureType = body.wfs.featureType;
+                    this.version = body.wfs.version;
+                    this.writeNode("wfs:GetFeature", body.wfs, node);
+                } else {
+                    this.writeNode("wps:Execute", body, node);
+                }
+                return node;                
+            }
+        },
+        "wcs": OpenLayers.Format.WCSGetCoverage.prototype.writers.wcs,
+        "wfs": OpenLayers.Format.WFST.v1_1_0.prototype.writers.wfs,
+        "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows
+    },
+    
+    CLASS_NAME: "OpenLayers.Format.WPSExecute" 
+
+});
diff --git a/lib/OpenLayers/Format/XLS.js b/lib/OpenLayers/Format/XLS.js
new file mode 100644
index 0000000..3329491
--- /dev/null
+++ b/lib/OpenLayers/Format/XLS.js
@@ -0,0 +1,68 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML/VersionedOGC.js
+ */
+
+/**
+ * Class: OpenLayers.Format.XLS
+ * Read/Wite XLS (OpenLS). Create a new instance with the <OpenLayers.Format.XLS>
+ *     constructor. Currently only implemented for Location Utility Services, more
+ *     specifically only for Geocoding. No support for Reverse Geocoding as yet.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.XML.VersionedOGC>
+ */
+OpenLayers.Format.XLS = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
+    
+    /**
+     * APIProperty: defaultVersion
+     * {String} Version number to assume if none found.  Default is "1.1.0".
+     */
+    defaultVersion: "1.1.0",
+ 
+    /**
+     * APIProperty: stringifyOutput
+     * {Boolean} If true, write will return a string otherwise a DOMElement.
+     * Default is true.
+     */
+    stringifyOutput: true,
+    
+    /**
+     * Constructor: OpenLayers.Format.XLS
+     * Create a new parser for XLS.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+
+    /**
+     * APIMethod: write
+     * Write out an XLS request.
+     *
+     * Parameters:
+     * request - {Object} An object representing the LUS request.
+     * options - {Object} Optional configuration object.
+     *
+     * Returns:
+     * {String} An XLS document string.
+     */
+    
+    /**
+     * APIMethod: read
+     * Read an XLS doc and return an object representing the result.
+     *
+     * Parameters:
+     * data - {String | DOMElement} Data to read.
+     * options - {Object} Options for the reader.
+     *
+     * Returns:
+     * {Object} An object representing the GeocodeResponse.
+     */
+
+    CLASS_NAME: "OpenLayers.Format.XLS" 
+});
diff --git a/lib/OpenLayers/Format/XLS/v1.js b/lib/OpenLayers/Format/XLS/v1.js
new file mode 100644
index 0000000..47026c5
--- /dev/null
+++ b/lib/OpenLayers/Format/XLS/v1.js
@@ -0,0 +1,307 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XLS.js
+ * @requires OpenLayers/Format/GML/v3.js
+ */
+
+/**
+ * Class: OpenLayers.Format.XLS.v1
+ * Superclass for XLS version 1 parsers. Only supports GeocodeRequest for now.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.XLS.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
+    
+    /**
+     * Property: namespaces
+     * {Object} Mapping of namespace aliases to namespace URIs.
+     */
+    namespaces: {
+        xls: "http://www.opengis.net/xls",
+        gml: "http://www.opengis.net/gml",
+        xsi: "http://www.w3.org/2001/XMLSchema-instance"
+    },
+
+    /**
+     * Property: regExes
+     * Compiled regular expressions for manipulating strings.
+     */
+    regExes: {
+        trimSpace: (/^\s*|\s*$/g),
+        removeSpace: (/\s*/g),
+        splitSpace: (/\s+/),
+        trimComma: (/\s*,\s*/g)
+    },
+
+    /**
+     * APIProperty: xy
+     * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x)
+     * Changing is not recommended, a new Format should be instantiated.
+     */
+    xy: true,
+    
+    /**
+     * Property: defaultPrefix
+     */
+    defaultPrefix: "xls",
+
+    /**
+     * Property: schemaLocation
+     * {String} Schema location for a particular minor version.
+     */
+    schemaLocation: null,
+    
+    /**
+     * Constructor: OpenLayers.Format.XLS.v1
+     * Instances of this class are not created directly.  Use the
+     *     <OpenLayers.Format.XLS> constructor instead.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+    initialize: function(options) {
+        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
+    },
+    
+    /**
+     * Method: read
+     *
+     * Parameters:
+     * data - {DOMElement} An XLS document element.
+     * options - {Object} Options for the reader.
+     *
+     * Returns:
+     * {Object} An object representing the XLSResponse.
+     */
+    read: function(data, options) {
+        options = OpenLayers.Util.applyDefaults(options, this.options);
+        var xls = {};
+        this.readChildNodes(data, xls);
+        return xls;
+    },
+    
+    /**
+     * Property: readers
+     * Contains public functions, grouped by namespace prefix, that will
+     *     be applied when a namespaced node is found matching the function
+     *     name.  The function will be applied in the scope of this parser
+     *     with two arguments: the node being read and a context object passed
+     *     from the parent.
+     */
+    readers: {
+        "xls": {
+            "XLS": function(node, xls) {
+                xls.version = node.getAttribute("version");
+                this.readChildNodes(node, xls);
+            },
+            "Response": function(node, xls) {
+               this.readChildNodes(node, xls);
+            },
+            "GeocodeResponse": function(node, xls) {
+               xls.responseLists = [];
+               this.readChildNodes(node, xls);
+            },
+            "GeocodeResponseList": function(node, xls) {
+                var responseList = {
+                    features: [], 
+                    numberOfGeocodedAddresses: 
+                        parseInt(node.getAttribute("numberOfGeocodedAddresses"))
+                };
+                xls.responseLists.push(responseList);
+                this.readChildNodes(node, responseList);
+            },
+            "GeocodedAddress": function(node, responseList) {
+                var feature = new OpenLayers.Feature.Vector();
+                responseList.features.push(feature);
+                this.readChildNodes(node, feature);
+                // post-process geometry
+                feature.geometry = feature.components[0];
+            },
+            "GeocodeMatchCode": function(node, feature) {
+                feature.attributes.matchCode = {
+                    accuracy: parseFloat(node.getAttribute("accuracy")),
+                    matchType: node.getAttribute("matchType")
+                };
+            },
+            "Address": function(node, feature) {
+                var address = {
+                    countryCode: node.getAttribute("countryCode"),
+                    addressee: node.getAttribute("addressee"),
+                    street: [],
+                    place: []
+                };
+                feature.attributes.address = address;
+                this.readChildNodes(node, address);
+            },
+            "freeFormAddress": function(node, address) {
+                address.freeFormAddress = this.getChildValue(node);
+            },
+            "StreetAddress": function(node, address) {
+                this.readChildNodes(node, address);
+            },
+            "Building": function(node, address) {
+                address.building = {
+                    'number': node.getAttribute("number"),
+                    subdivision: node.getAttribute("subdivision"),
+                    buildingName: node.getAttribute("buildingName")
+                };
+            },
+            "Street": function(node, address) {
+                // only support the built-in primitive type for now
+                address.street.push(this.getChildValue(node));
+            },
+            "Place": function(node, address) {
+                // type is one of CountrySubdivision, 
+                // CountrySecondarySubdivision, Municipality or
+                // MunicipalitySubdivision
+                address.place[node.getAttribute("type")] = 
+                    this.getChildValue(node);
+            },
+            "PostalCode": function(node, address) {
+                address.postalCode = this.getChildValue(node);
+            }
+        },
+        "gml": OpenLayers.Format.GML.v3.prototype.readers.gml
+    },
+    
+    /**
+     * Method: write
+     *
+     * Parameters:
+     * request - {Object} An object representing the geocode request.
+     *
+     * Returns:
+     * {DOMElement} The root of an XLS document.
+     */
+    write: function(request) {
+        return this.writers.xls.XLS.apply(this, [request]);
+    },
+    
+    /**
+     * Property: writers
+     * As a compliment to the readers property, this structure contains public
+     *     writing functions grouped by namespace alias and named like the
+     *     node names they produce.
+     */
+    writers: {
+        "xls": {
+            "XLS": function(request) {
+                var root = this.createElementNSPlus(
+                    "xls:XLS",
+                    {attributes: {
+                        "version": this.VERSION,
+                        "xsi:schemaLocation": this.schemaLocation
+                    }}
+                );
+                this.writeNode("RequestHeader", request.header, root);
+                this.writeNode("Request", request, root);
+                return root;
+            },
+            "RequestHeader": function(header) {
+                return this.createElementNSPlus("xls:RequestHeader");
+            },
+            "Request": function(request) {
+                var node = this.createElementNSPlus("xls:Request", {
+                    attributes: {
+                        methodName: "GeocodeRequest",
+                        requestID: request.requestID || "",
+                        version: this.VERSION
+                    }
+                });
+                this.writeNode("GeocodeRequest", request.addresses, node);
+                return node;
+            },
+            "GeocodeRequest": function(addresses) {
+                var node = this.createElementNSPlus("xls:GeocodeRequest");
+                for (var i=0, len=addresses.length; i<len; i++) {
+                    this.writeNode("Address", addresses[i], node);
+                }
+                return node;
+            },
+            "Address": function(address) {
+                var node = this.createElementNSPlus("xls:Address", {
+                    attributes: {
+                        countryCode: address.countryCode
+                    }
+                });
+                if (address.freeFormAddress) {
+                    this.writeNode("freeFormAddess", address.freeFormAddress, node);
+                } else {
+                    if (address.street) {
+                        this.writeNode("StreetAddress", address, node);
+                    }
+                    if (address.municipality) {
+                        this.writeNode("Municipality", address.municipality, node);
+                    }
+                    if (address.countrySubdivision) {
+                        this.writeNode("CountrySubdivision", address.countrySubdivision, node);
+                    }
+                    if (address.postalCode) {
+                        this.writeNode("PostalCode", address.postalCode, node);
+                    }
+                }
+                return node;
+            },
+            "freeFormAddress": function(freeFormAddress) {
+                return this.createElementNSPlus("freeFormAddress", 
+                    {value: freeFormAddress});
+            },
+            "StreetAddress": function(address) {
+                var node = this.createElementNSPlus("xls:StreetAddress");
+                if (address.building) {
+                    this.writeNode(node, "Building", address.building);
+                }
+                var street = address.street;
+                if (!(OpenLayers.Util.isArray(street))) {
+                    street = [street];
+                }
+                for (var i=0, len=street.length; i < len; i++) {
+                    this.writeNode("Street", street[i], node);
+                }
+                return node;
+            },
+            "Building": function(building) {
+                return this.createElementNSPlus("xls:Building", {
+                    attributes: {
+                        "number": building["number"],
+                        "subdivision": building.subdivision,
+                        "buildingName": building.buildingName
+                    }
+                });
+            },
+            "Street": function(street) {
+                return this.createElementNSPlus("xls:Street", {value: street});
+            },
+            "Municipality": function(municipality) {
+                return this.createElementNSPlus("xls:Place", {
+                    attributes: {
+                        type: "Municipality"
+                    },
+                    value: municipality
+                });
+            },
+            "CountrySubdivision": function(countrySubdivision) {
+                return this.createElementNSPlus("xls:Place", {
+                    attributes: {
+                        type: "CountrySubdivision"
+                    },
+                    value: countrySubdivision
+                });
+            },
+            "PostalCode": function(postalCode) {
+                return this.createElementNSPlus("xls:PostalCode", {
+                    value: postalCode
+                });
+            }
+        }
+    },
+    
+    CLASS_NAME: "OpenLayers.Format.XLS.v1" 
+
+});
diff --git a/lib/OpenLayers/Format/XLS/v1_1_0.js b/lib/OpenLayers/Format/XLS/v1_1_0.js
new file mode 100644
index 0000000..fa9b1ad
--- /dev/null
+++ b/lib/OpenLayers/Format/XLS/v1_1_0.js
@@ -0,0 +1,53 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XLS/v1.js
+ */
+
+/**
+ * Class: OpenLayers.Format.XLS.v1_1_0
+ * Read / write XLS version 1.1.0.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.XLS.v1>
+ */
+OpenLayers.Format.XLS.v1_1_0 = OpenLayers.Class(
+    OpenLayers.Format.XLS.v1, {
+    
+    /**
+     * Constant: VERSION
+     * {String} 1.1
+     */
+    VERSION: "1.1",
+    
+    /**
+     * Property: schemaLocation
+     * {String} http://www.opengis.net/xls
+     *   http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd
+     */
+    schemaLocation: "http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd",
+
+    /**
+     * Constructor: OpenLayers.Format.XLS.v1_1_0
+     * Instances of this class are not created directly.  Use the
+     *     <OpenLayers.Format.XLS> constructor instead.
+     *
+     * Parameters:
+     * options - {Object} An optional object whose properties will be set on
+     *     this instance.
+     */
+    initialize: function(options) {
+        OpenLayers.Format.XLS.v1.prototype.initialize.apply(
+            this, [options]
+        );
+    },
+
+    CLASS_NAME: "OpenLayers.Format.XLS.v1_1_0"
+
+});
+
+// Support non standard implementation
+OpenLayers.Format.XLS.v1_1 = OpenLayers.Format.XLS.v1_1_0;
diff --git a/lib/OpenLayers/Format/XML.js b/lib/OpenLayers/Format/XML.js
index b83b6c8..d06e1e8 100644
--- a/lib/OpenLayers/Format/XML.js
+++ b/lib/OpenLayers/Format/XML.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -848,6 +848,29 @@ OpenLayers.Format.XML = OpenLayers.Class(OpenLayers.Format, {
         return uri;
     },
     
+    /**
+     * Method: getXMLDoc
+     * Get an XML document for nodes that are not supported in HTML (e.g.
+     * createCDATASection). On IE, this will either return an existing or
+     * create a new <xmldom> on the instance. On other browsers, this will
+     * either return an existing or create a new shared document (see
+     * <OpenLayers.Format.XML.document>).
+     *
+     * Returns:
+     * {XMLDocument}
+     */
+    getXMLDoc: function() {
+        if (!OpenLayers.Format.XML.document && !this.xmldom) {
+            if (document.implementation && document.implementation.createDocument) {
+                OpenLayers.Format.XML.document =
+                    document.implementation.createDocument("", "", null);
+            } else if (!this.xmldom && window.ActiveXObject) {
+                this.xmldom = new ActiveXObject("Microsoft.XMLDOM");
+            }
+        }
+        return OpenLayers.Format.XML.document || this.xmldom;
+    },
+
     CLASS_NAME: "OpenLayers.Format.XML" 
 
 });     
@@ -879,3 +902,10 @@ OpenLayers.Format.XML.lookupNamespaceURI = OpenLayers.Function.bind(
     OpenLayers.Format.XML.prototype.lookupNamespaceURI,
     OpenLayers.Format.XML.prototype
 );
+
+/**
+ * Property: OpenLayers.Format.XML.document
+ * {XMLDocument} XML document to reuse for creating non-HTML compliant nodes,
+ * like document.createCDATASection.
+ */
+OpenLayers.Format.XML.document = null;
diff --git a/lib/OpenLayers/Format/XML/VersionedOGC.js b/lib/OpenLayers/Format/XML/VersionedOGC.js
new file mode 100644
index 0000000..c0fc4d1
--- /dev/null
+++ b/lib/OpenLayers/Format/XML/VersionedOGC.js
@@ -0,0 +1,190 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/XML.js
+ * @requires OpenLayers/Format/OGCExceptionReport.js
+ */
+
+/**
+ * Class: OpenLayers.Format.XML.VersionedOGC
+ * Base class for versioned formats, i.e. a format which supports multiple
+ * versions.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Format.XML>
+ */
+OpenLayers.Format.XML.VersionedOGC = OpenLayers.Class(OpenLayers.Format.XML, {
+    
+    /**
+     * APIProperty: defaultVersion
+     * {String} Version number to assume if none found.
+     */
+    defaultVersion: null,
+    
+    /**
+     * APIProperty: version
+     * {String} Specify a version string if one is known.
+     */
+    version: null,
+
+    /**
+     * APIProperty: profile
+     * {String} If provided, use a custom profile.
+     */
+    profile: null,
+
+    /**
+     * APIProperty: errorProperty
+     * {String} Which property of the returned object to check for in order to
+     * determine whether or not parsing has failed. In the case that the
+     * errorProperty is undefined on the returned object, the document will be
+     * run through an OGCExceptionReport parser.
+     */
+    errorProperty: null,
+
+    /**
+     * Property: name
+     * {String} The name of this parser, this is the part of the CLASS_NAME
+     * except for "OpenLayers.Format."
+     */
+    name: null,
+
+    /**
+     * APIProperty: stringifyOutput
+     * {Boolean} If true, write will return a string otherwise a DOMElement.
+     * Default is false.
+     */
+    stringifyOutput: false,
+
+    /**
+     * Property: parser
+     * {Object} Instance of the versioned parser.  Cached for multiple read and
+     *     write calls of the same version.
+     */
+    parser: null,
+
+    /**
+     * Constructor: OpenLayers.Format.XML.VersionedOGC.
+     * Constructor.
+     *
+     * Parameters:
+     * options - {Object} Optional object whose properties will be set on
+     *     the object.
+     */
+    initialize: function(options) {
+        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
+        var className = this.CLASS_NAME;
+        this.name = className.substring(className.lastIndexOf(".")+1);
+    },
+
+    /**
+     * Method: getVersion
+     * Returns the version to use. Subclasses can override this function
+     * if a different version detection is needed.
+     *
+     * Parameters:
+     * root - {DOMElement}
+     * options - {Object} Optional configuration object.
+     *
+     * Returns:
+     * {String} The version to use.
+     */
+    getVersion: function(root, options) {
+        var version;
+        // read
+        if (root) {
+            version = this.version;
+            if(!version) {
+                version = root.getAttribute("version");
+                if(!version) {
+                    version = this.defaultVersion;
+                }
+            }
+        } else { // write
+            version = (options && options.version) || 
+                this.version || this.defaultVersion;
+        }
+        return version;
+    },
+
+    /**
+     * Method: getParser
+     * Get an instance of the cached parser if available, otherwise create one.
+     *
+     * Parameters:
+     * version - {String}
+     *
+     * Returns:
+     * {<OpenLayers.Format>}
+     */
+    getParser: function(version) {
+        version = version || this.defaultVersion;
+        var profile = this.profile ? "_" + this.profile : "";
+        if(!this.parser || this.parser.VERSION != version) {
+            var format = OpenLayers.Format[this.name][
+                "v" + version.replace(/\./g, "_") + profile
+            ];
+            if(!format) {
+                throw "Can't find a " + this.name + " parser for version " +
+                      version + profile;
+            }
+            this.parser = new format(this.options);
+        }
+        return this.parser;
+    },
+
+    /**
+     * APIMethod: write
+     * Write a document.
+     *
+     * Parameters:
+     * obj - {Object} An object representing the document.
+     * options - {Object} Optional configuration object.
+     *
+     * Returns:
+     * {String} The document as a string
+     */
+    write: function(obj, options) {
+        var version = this.getVersion(null, options);
+        this.parser = this.getParser(version);
+        var root = this.parser.write(obj, options);
+        if (this.stringifyOutput === false) {
+            return root;
+        } else {
+            return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
+        }
+    },
+
+    /**
+     * APIMethod: read
+     * Read a doc and return an object representing the document.
+     *
+     * Parameters:
+     * data - {String | DOMElement} Data to read.
+     * options - {Object} Options for the reader.
+     *
+     * Returns:
+     * {Object} An object representing the document.
+     */
+    read: function(data, options) {
+        if(typeof data == "string") {
+            data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
+        }
+        var root = data.documentElement;
+        var version = this.getVersion(root);
+        this.parser = this.getParser(version);
+        var obj = this.parser.read(data, options);
+        if (this.errorProperty !== null && obj[this.errorProperty] === undefined) {
+            // an error must have happened, so parse it and report back
+            var format = new OpenLayers.Format.OGCExceptionReport();
+            obj.error = format.read(data);
+        }
+        obj.version = version;
+        return obj;
+    },
+
+    CLASS_NAME: "OpenLayers.Format.XML.VersionedOGC"
+});
diff --git a/lib/OpenLayers/Geometry.js b/lib/OpenLayers/Geometry.js
index 53e321a..17e10a4 100644
--- a/lib/OpenLayers/Geometry.js
+++ b/lib/OpenLayers/Geometry.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
  
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Format/WKT.js
  * @requires OpenLayers/Feature/Vector.js
  */
@@ -273,7 +274,7 @@ OpenLayers.Geometry.fromWKT = function(wkt) {
     var result = format.read(wkt);
     if(result instanceof OpenLayers.Feature.Vector) {
         geom = result.geometry;
-    } else if(result instanceof Array) {
+    } else if(OpenLayers.Util.isArray(result)) {
         var len = result.length;
         var components = new Array(len);
         for(var i=0; i<len; ++i) {
diff --git a/lib/OpenLayers/Geometry/Collection.js b/lib/OpenLayers/Geometry/Collection.js
index 39be8d7..3d05ff1 100644
--- a/lib/OpenLayers/Geometry/Collection.js
+++ b/lib/OpenLayers/Geometry/Collection.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -108,12 +108,19 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
      */
     calculateBounds: function() {
         this.bounds = null;
-        if ( this.components && this.components.length > 0) {
-            this.setBounds(this.components[0].getBounds());
-            for (var i=1, len=this.components.length; i<len; i++) {
-                this.extendBounds(this.components[i].getBounds());
+        var bounds = new OpenLayers.Bounds();
+        var components = this.components;
+        if (components) {
+            for (var i=0, len=components.length; i<len; i++) {
+                bounds.extend(components[i].getBounds());
             }
         }
+        // to preserve old behavior, we only set bounds if non-null
+        // in the future, we could add bounds.isEmpty()
+        if (bounds.left != null && bounds.bottom != null && 
+            bounds.right != null && bounds.top != null) {
+            this.setBounds(bounds);
+        }
     },
 
     /**
@@ -124,7 +131,7 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
      * components - {Array(<OpenLayers.Geometry>)} An array of geometries to add
      */
     addComponents: function(components){
-        if(!(components instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(components))) {
             components = [components];
         }
         for(var i=0, len=components.length; i<len; i++) {
@@ -176,14 +183,20 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
      *
      * Parameters:
      * components - {Array(<OpenLayers.Geometry>)} The components to be removed
+     *
+     * Returns: 
+     * {Boolean} A component was removed.
      */
     removeComponents: function(components) {
-        if(!(components instanceof Array)) {
+        var removed = false;
+
+        if(!(OpenLayers.Util.isArray(components))) {
             components = [components];
         }
         for(var i=components.length-1; i>=0; --i) {
-            this.removeComponent(components[i]);
+            removed = this.removeComponent(components[i]) || removed;
         }
+        return removed;
     },
     
     /**
@@ -192,6 +205,9 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
      *
      * Parameters:
      * component - {<OpenLayers.Geometry>} 
+     *
+     * Returns: 
+     * {Boolean} The component was removed.
      */
     removeComponent: function(component) {
         
@@ -200,6 +216,7 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
         // clearBounds() so that it gets recalculated on the next call
         // to this.getBounds();
         this.clearBounds();
+        return true;
     },
 
     /**
@@ -461,7 +478,7 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
         if(!geometry || !geometry.CLASS_NAME ||
            (this.CLASS_NAME != geometry.CLASS_NAME)) {
             equivalent = false;
-        } else if(!(geometry.components instanceof Array) ||
+        } else if(!(OpenLayers.Util.isArray(geometry.components)) ||
                   (geometry.components.length != this.components.length)) {
             equivalent = false;
         } else {
diff --git a/lib/OpenLayers/Geometry/Curve.js b/lib/OpenLayers/Geometry/Curve.js
index 019e571..01ef2ec 100644
--- a/lib/OpenLayers/Geometry/Curve.js
+++ b/lib/OpenLayers/Geometry/Curve.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Geometry/LineString.js b/lib/OpenLayers/Geometry/LineString.js
index 02484af..dc16f25 100644
--- a/lib/OpenLayers/Geometry/LineString.js
+++ b/lib/OpenLayers/Geometry/LineString.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -37,12 +37,17 @@ OpenLayers.Geometry.LineString = OpenLayers.Class(OpenLayers.Geometry.Curve, {
      *
      * Parameters: 
      * point - {<OpenLayers.Geometry.Point>} The point to be removed
+     *
+     * Returns: 
+     * {Boolean} The component was removed.
      */
     removeComponent: function(point) {
-        if ( this.components && (this.components.length > 2)) {
+        var removed = this.components && (this.components.length > 2);
+        if (removed) {
             OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this, 
                                                                   arguments);
         }
+        return removed;
     },
     
     /**
@@ -547,6 +552,98 @@ OpenLayers.Geometry.LineString = OpenLayers.Class(OpenLayers.Geometry.Curve, {
         }
         return best;
     },
+    
+    /**
+     * APIMethod: simplify
+     * This function will return a simplified LineString.
+     * Simplification is based on the Douglas-Peucker algorithm.
+     *
+     *
+     * Parameters:
+     * tolerance - {number} threshhold for simplification in map units
+     *
+     * Returns:
+     * {OpenLayers.Geometry.LineString} the simplified LineString
+     */
+    simplify: function(tolerance){
+        if (this && this !== null) {
+            var points = this.getVertices();
+            if (points.length < 3) {
+                return this;
+            }
+    
+            var compareNumbers = function(a, b){
+                return (a-b);
+            };
+    
+            /**
+             * Private function doing the Douglas-Peucker reduction
+             */
+            var douglasPeuckerReduction = function(points, firstPoint, lastPoint, tolerance){
+                var maxDistance = 0;
+                var indexFarthest = 0;
+    
+                for (var index = firstPoint, distance; index < lastPoint; index++) {
+                    distance = perpendicularDistance(points[firstPoint], points[lastPoint], points[index]);
+                    if (distance > maxDistance) {
+                        maxDistance = distance;
+                        indexFarthest = index;
+                    }
+                }
+    
+                if (maxDistance > tolerance && indexFarthest != firstPoint) {
+                    //Add the largest point that exceeds the tolerance
+                    pointIndexsToKeep.push(indexFarthest);
+                    douglasPeuckerReduction(points, firstPoint, indexFarthest, tolerance);
+                    douglasPeuckerReduction(points, indexFarthest, lastPoint, tolerance);
+                }
+            };
+    
+            /**
+             * Private function calculating the perpendicular distance
+             * TODO: check whether OpenLayers.Geometry.LineString::distanceTo() is faster or slower
+             */
+            var perpendicularDistance = function(point1, point2, point){
+                //Area = |(1/2)(x1y2 + x2y3 + x3y1 - x2y1 - x3y2 - x1y3)|   *Area of triangle
+                //Base = v((x1-x2)²+(x1-x2)²)                               *Base of Triangle*
+                //Area = .5*Base*H                                          *Solve for height
+                //Height = Area/.5/Base
+    
+                var area = Math.abs(0.5 * (point1.x * point2.y + point2.x * point.y + point.x * point1.y - point2.x * point1.y - point.x * point2.y - point1.x * point.y));
+                var bottom = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2));
+                var height = area / bottom * 2;
+    
+                return height;
+            };
+    
+            var firstPoint = 0;
+            var lastPoint = points.length - 1;
+            var pointIndexsToKeep = [];
+    
+            //Add the first and last index to the keepers
+            pointIndexsToKeep.push(firstPoint);
+            pointIndexsToKeep.push(lastPoint);
+    
+            //The first and the last point cannot be the same
+            while (points[firstPoint].equals(points[lastPoint])) {
+                lastPoint--;
+                //Addition: the first point not equal to first point in the LineString is kept as well
+                pointIndexsToKeep.push(lastPoint);
+            }
+    
+            douglasPeuckerReduction(points, firstPoint, lastPoint, tolerance);
+            var returnPoints = [];
+            pointIndexsToKeep.sort(compareNumbers);
+            for (var index = 0; index < pointIndexsToKeep.length; index++) {
+                returnPoints.push(points[pointIndexsToKeep[index]]);
+            }
+            return new OpenLayers.Geometry.LineString(returnPoints);
+    
+        }
+        else {
+            return this;
+        }
+    },
 
     CLASS_NAME: "OpenLayers.Geometry.LineString"
 });
diff --git a/lib/OpenLayers/Geometry/LinearRing.js b/lib/OpenLayers/Geometry/LinearRing.js
index 3ac465a..dd19c92 100644
--- a/lib/OpenLayers/Geometry/LinearRing.js
+++ b/lib/OpenLayers/Geometry/LinearRing.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -91,10 +91,13 @@ OpenLayers.Geometry.LinearRing = OpenLayers.Class(
      *
      * Parameters:
      * point - {<OpenLayers.Geometry.Point>}
+     *
+     * Returns: 
+     * {Boolean} The component was removed.
      */
     removeComponent: function(point) {
-        if (this.components.length > 4) {
-
+        var removed = this.components && (this.components.length > 3);
+        if (removed) {
             //remove last point
             this.components.pop();
             
@@ -106,6 +109,7 @@ OpenLayers.Geometry.LinearRing = OpenLayers.Class(
             OpenLayers.Geometry.Collection.prototype.addComponent.apply(this, 
                                                                 [firstPoint]);
         }
+        return removed;
     },
     
     /**
diff --git a/lib/OpenLayers/Geometry/MultiLineString.js b/lib/OpenLayers/Geometry/MultiLineString.js
index 670121a..f0e013c 100644
--- a/lib/OpenLayers/Geometry/MultiLineString.js
+++ b/lib/OpenLayers/Geometry/MultiLineString.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Geometry/MultiPoint.js b/lib/OpenLayers/Geometry/MultiPoint.js
index 829bfdb..9b5c112 100644
--- a/lib/OpenLayers/Geometry/MultiPoint.js
+++ b/lib/OpenLayers/Geometry/MultiPoint.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Geometry/MultiPolygon.js b/lib/OpenLayers/Geometry/MultiPolygon.js
index 4c83c6a..534172f 100644
--- a/lib/OpenLayers/Geometry/MultiPolygon.js
+++ b/lib/OpenLayers/Geometry/MultiPolygon.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Geometry/Point.js b/lib/OpenLayers/Geometry/Point.js
index 869a638..7ef1b52 100644
--- a/lib/OpenLayers/Geometry/Point.js
+++ b/lib/OpenLayers/Geometry/Point.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Geometry/Polygon.js b/lib/OpenLayers/Geometry/Polygon.js
index e7862bb..467fb9f 100644
--- a/lib/OpenLayers/Geometry/Polygon.js
+++ b/lib/OpenLayers/Geometry/Polygon.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Geometry/Rectangle.js b/lib/OpenLayers/Geometry/Rectangle.js
index 1a59a7e..5f05cbe 100644
--- a/lib/OpenLayers/Geometry/Rectangle.js
+++ b/lib/OpenLayers/Geometry/Rectangle.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -50,7 +50,7 @@ OpenLayers.Geometry.Rectangle = OpenLayers.Class(OpenLayers.Geometry, {
      * Constructor: OpenLayers.Geometry.Rectangle
      * 
      * Parameters:
-     * points - {Array(<OpenLayers.Geometry.Point>}
+     * points - {Array(<OpenLayers.Geometry.Point>)}
      */
     initialize: function(x, y, width, height) {
         OpenLayers.Geometry.prototype.initialize.apply(this, arguments);
diff --git a/lib/OpenLayers/Geometry/Surface.js b/lib/OpenLayers/Geometry/Surface.js
index 1662171..626c005 100644
--- a/lib/OpenLayers/Geometry/Surface.js
+++ b/lib/OpenLayers/Geometry/Surface.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Handler.js b/lib/OpenLayers/Handler.js
index dddc818..a62527f 100644
--- a/lib/OpenLayers/Handler.js
+++ b/lib/OpenLayers/Handler.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Events.js
  */
 
diff --git a/lib/OpenLayers/Handler/Box.js b/lib/OpenLayers/Handler/Box.js
index 1ff62d7..ca89c5e 100644
--- a/lib/OpenLayers/Handler/Box.js
+++ b/lib/OpenLayers/Handler/Box.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -32,44 +32,51 @@ OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
     boxDivClassName: 'olHandlerBoxZoomBox',
     
     /**
-     * Property: boxCharacteristics
-     * {Object} Caches some box characteristics from css. This is used
-     *     by the getBoxCharacteristics method.
+     * Property: boxOffsets
+     * {Object} Caches box offsets from css. This is used by the getBoxOffsets
+     * method.
      */
-    boxCharacteristics: null,
+    boxOffsets: null,
 
     /**
      * Constructor: OpenLayers.Handler.Box
      *
      * Parameters:
      * control - {<OpenLayers.Control>} 
-     * callbacks - {Object} An object containing a single function to be
-     *                          called when the drag operation is finished.
-     *                          The callback should expect to recieve a single
-     *                          argument, the point geometry.
+     * callbacks - {Object} An object with a properties whose values are
+     *     functions.  Various callbacks described below.
      * options - {Object} 
+     *
+     * Named callbacks:
+     * start - Called when the box drag operation starts.
+     * done - Called when the box drag operation is finished.
+     *     The callback should expect to receive a single argument, the box 
+     *     bounds or a pixel. If the box dragging didn't span more than a 5 
+     *     pixel distance, a pixel will be returned instead of a bounds object.
      */
     initialize: function(control, callbacks, options) {
         OpenLayers.Handler.prototype.initialize.apply(this, arguments);
-        var callbacks = {
-            "down": this.startBox, 
-            "move": this.moveBox, 
-            "out":  this.removeBox,
-            "up":   this.endBox
-        };
         this.dragHandler = new OpenLayers.Handler.Drag(
-                                this, callbacks, {keyMask: this.keyMask});
+            this, 
+            {
+                down: this.startBox, 
+                move: this.moveBox, 
+                out: this.removeBox,
+                up: this.endBox
+            }, 
+            {keyMask: this.keyMask}
+        );
     },
 
     /**
      * Method: destroy
      */
     destroy: function() {
+        OpenLayers.Handler.prototype.destroy.apply(this, arguments);
         if (this.dragHandler) {
             this.dragHandler.destroy();
             this.dragHandler = null;
         }            
-        OpenLayers.Handler.prototype.destroy.apply(this, arguments);
     },
 
     /**
@@ -86,17 +93,19 @@ OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
     * Method: startBox
     *
     * Parameters:
-    * evt - {Event} 
+    * xy - {<OpenLayers.Pixel>}
     */
     startBox: function (xy) {
+        this.callback("start", []);
         this.zoomBox = OpenLayers.Util.createDiv('zoomBox',
-                                                 this.dragHandler.start);
+             new OpenLayers.Pixel(-9999, -9999));
         this.zoomBox.className = this.boxDivClassName;                                         
         this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1;
-        this.map.viewPortDiv.appendChild(this.zoomBox);
-
+        
+        this.map.eventsDiv.appendChild(this.zoomBox);
+        
         OpenLayers.Element.addClass(
-            this.map.viewPortDiv, "olDrawBox"
+            this.map.eventsDiv, "olDrawBox"
         );
     },
 
@@ -108,24 +117,14 @@ OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
         var startY = this.dragHandler.start.y;
         var deltaX = Math.abs(startX - xy.x);
         var deltaY = Math.abs(startY - xy.y);
-        this.zoomBox.style.width = Math.max(1, deltaX) + "px";
-        this.zoomBox.style.height = Math.max(1, deltaY) + "px";
-        this.zoomBox.style.left = xy.x < startX ? xy.x+"px" : startX+"px";
-        this.zoomBox.style.top = xy.y < startY ? xy.y+"px" : startY+"px";
-
-        // depending on the box model, modify width and height to take borders
-        // of the box into account
-        var box = this.getBoxCharacteristics();
-        if (box.newBoxModel) {
-            if (xy.x > startX) {
-                this.zoomBox.style.width =
-                    Math.max(1, deltaX - box.xOffset) + "px";
-            }
-            if (xy.y > startY) {
-                this.zoomBox.style.height =
-                    Math.max(1, deltaY - box.yOffset) + "px";
-            }
-        }
+
+        var offset = this.getBoxOffsets();
+        this.zoomBox.style.width = (deltaX + offset.width + 1) + "px";
+        this.zoomBox.style.height = (deltaY + offset.height + 1) + "px";
+        this.zoomBox.style.left = (xy.x < startX ?
+            startX - deltaX - offset.left : startX - offset.left) + "px";
+        this.zoomBox.style.top = (xy.y < startY ?
+            startY - deltaY - offset.top : startY - offset.top) + "px";
     },
 
     /**
@@ -154,11 +153,11 @@ OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
      * Remove the zoombox from the screen and nullify our reference to it.
      */
     removeBox: function() {
-        this.map.viewPortDiv.removeChild(this.zoomBox);
+        this.map.eventsDiv.removeChild(this.zoomBox);
         this.zoomBox = null;
-        this.boxCharacteristics = null;
+        this.boxOffsets = null;
         OpenLayers.Element.removeClass(
-            this.map.viewPortDiv, "olDrawBox"
+            this.map.eventsDiv, "olDrawBox"
         );
 
     },
@@ -180,7 +179,11 @@ OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
      */
     deactivate: function () {
         if (OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
-            this.dragHandler.deactivate();
+            if (this.dragHandler.deactivate()) {
+                if (this.zoomBox) {
+                    this.removeBox();
+                }
+            }
             return true;
         } else {
             return false;
@@ -188,34 +191,53 @@ OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
     },
     
     /**
-     * Method: getCharacteristics
-     * Determines offset and box model for a box.
+     * Method: getBoxOffsets
+     * Determines border offsets for a box, according to the box model.
      * 
      * Returns:
-     * {Object} a hash with the following properties:
-     *     - xOffset - Corner offset in x-direction
-     *     - yOffset - Corner offset in y-direction
-     *     - newBoxModel - true for all browsers except IE in quirks mode
+     * {Object} an object with the following offsets:
+     *     - left
+     *     - right
+     *     - top
+     *     - bottom
+     *     - width
+     *     - height
      */
-    getBoxCharacteristics: function() {
-        if (!this.boxCharacteristics) {
-            var xOffset = parseInt(OpenLayers.Element.getStyle(this.zoomBox,
-                "border-left-width")) + parseInt(OpenLayers.Element.getStyle(
-                this.zoomBox, "border-right-width")) + 1;
-            var yOffset = parseInt(OpenLayers.Element.getStyle(this.zoomBox,
-                "border-top-width")) + parseInt(OpenLayers.Element.getStyle(
-                this.zoomBox, "border-bottom-width")) + 1;
-            // all browsers use the new box model, except IE in quirks mode
-            var newBoxModel = OpenLayers.Util.getBrowserName() == "msie" ?
-                document.compatMode != "BackCompat" : true;
-            this.boxCharacteristics = {
-                xOffset: xOffset,
-                yOffset: yOffset,
-                newBoxModel: newBoxModel
+    getBoxOffsets: function() {
+        if (!this.boxOffsets) {
+            // Determine the box model. If the testDiv's clientWidth is 3, then
+            // the borders are outside and we are dealing with the w3c box
+            // model. Otherwise, the browser uses the traditional box model and
+            // the borders are inside the box bounds, leaving us with a
+            // clientWidth of 1.
+            var testDiv = document.createElement("div");
+            //testDiv.style.visibility = "hidden";
+            testDiv.style.position = "absolute";
+            testDiv.style.border = "1px solid black";
+            testDiv.style.width = "3px";
+            document.body.appendChild(testDiv);
+            var w3cBoxModel = testDiv.clientWidth == 3;
+            document.body.removeChild(testDiv);
+            
+            var left = parseInt(OpenLayers.Element.getStyle(this.zoomBox,
+                "border-left-width"));
+            var right = parseInt(OpenLayers.Element.getStyle(
+                this.zoomBox, "border-right-width"));
+            var top = parseInt(OpenLayers.Element.getStyle(this.zoomBox,
+                "border-top-width"));
+            var bottom = parseInt(OpenLayers.Element.getStyle(
+                this.zoomBox, "border-bottom-width"));
+            this.boxOffsets = {
+                left: left,
+                right: right,
+                top: top,
+                bottom: bottom,
+                width: w3cBoxModel === false ? left + right : 0,
+                height: w3cBoxModel === false ? top + bottom : 0
             };
         }
-        return this.boxCharacteristics;
+        return this.boxOffsets;
     },
-
+  
     CLASS_NAME: "OpenLayers.Handler.Box"
 });
diff --git a/lib/OpenLayers/Handler/Click.js b/lib/OpenLayers/Handler/Click.js
index a47fe67..b2a1a04 100644
--- a/lib/OpenLayers/Handler/Click.js
+++ b/lib/OpenLayers/Handler/Click.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -22,7 +22,6 @@
  *  - <OpenLayers.Handler> 
  */
 OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
-
     /**
      * APIProperty: delay
      * {Number} Number of milliseconds between clicks before the event is
@@ -52,13 +51,21 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
      *     constructed.
      */
     pixelTolerance: 0,
-    
+        
+    /**
+     * APIProperty: dblclickTolerance
+     * {Number} Maximum distance in pixels between clicks for a sequence of 
+     *     events to be considered a double click.  Default is 13.  If the
+     *     distance between two clicks is greater than this value, a double-
+     *     click will not be fired.
+     */
+    dblclickTolerance: 13,
+        
     /**
      * APIProperty: stopSingle
      * {Boolean} Stop other listeners from being notified of clicks.  Default
-     *     is false.  If true, any click listeners registered before this one
-     *     will not be notified of *any* click event (associated with double
-     *     or single clicks).
+     *     is false.  If true, any listeners registered before this one for 
+     *     click or rightclick events will not be notified.
      */
     stopSingle: false,
     
@@ -83,13 +90,39 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
      * {Number} The id of the timeout waiting to clear the <delayedCall>.
      */
     timerId: null,
+
+    /**
+     * Property: touch
+     * {Boolean} When a touchstart event is fired, touch will be true and all
+     *     mouse related listeners will do nothing.
+     */
+    touch: false,
     
     /**
      * Property: down
-     * {<OpenLayers.Pixel>} The pixel location of the last mousedown.
+     * {Object} Object that store relevant information about the last
+     *     mousedown or touchstart. Its 'xy' OpenLayers.Pixel property gives
+     *     the average location of the mouse/touch event. Its 'touches'
+     *     property records clientX/clientY of each touches.
      */
     down: null,
-    
+
+    /**
+     * Property: last
+     * {Object} Object that store relevant information about the last
+     *     mousemove or touchmove. Its 'xy' OpenLayers.Pixel property gives
+     *     the average location of the mouse/touch event. Its 'touches'
+     *     property records clientX/clientY of each touches.
+     */
+    last: null,
+
+    /** 
+     * Property: first
+     * {Object} When waiting for double clicks, this object will store 
+     *     information about the first click in a two click sequence.
+     */
+    first: null,
+
     /**
      * Property: rightclickTimerId
      * {Number} The id of the right mouse timeout waiting to clear the 
@@ -115,24 +148,83 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
      */
     initialize: function(control, callbacks, options) {
         OpenLayers.Handler.prototype.initialize.apply(this, arguments);
-        // optionally register for mouseup and mousedown
-        if(this.pixelTolerance != null) {
-            this.mousedown = function(evt) {
-                this.down = evt.xy;
-                return true;
-            };
+    },
+    
+    /**
+     * Method: touchstart
+     * Handle touchstart.
+     *
+     * Returns:
+     * {Boolean} Continue propagating this event.
+     */
+    touchstart: function(evt) {
+        if (!this.touch) {
+            this.unregisterMouseListeners();
+            this.touch = true;
+        }
+        this.down = this.getEventInfo(evt);
+        this.last = this.getEventInfo(evt);
+        return true;
+    },
+    
+    /**
+     * Method: touchmove
+     *    Store position of last move, because touchend event can have
+     *    an empty "touches" property.
+     *
+     * Returns:
+     * {Boolean} Continue propagating this event.
+     */
+    touchmove: function(evt) {
+        this.last = this.getEventInfo(evt);
+        return true;
+    },
+
+    /**
+     * Method: touchend
+     *   Correctly set event xy property, and add lastTouches to have
+     *   touches property from last touchstart or touchmove
+     *
+     * Returns:
+     * {Boolean} Continue propagating this event.
+     */
+    touchend: function(evt) {
+        // touchstart may not have been allowed to propagate
+        if (this.down) {
+            evt.xy = this.last.xy;
+            evt.lastTouches = this.last.touches;
+            this.handleSingle(evt);
+            this.down = null;
         }
+        return true;
     },
     
     /**
+     * Method: unregisterMouseListeners
+     * In a touch environment, we don't want to handle mouse events.
+     */
+    unregisterMouseListeners: function() {
+        this.map.events.un({
+            mousedown: this.mousedown,
+            mouseup: this.mouseup,
+            click: this.click,
+            dblclick: this.dblclick,
+            scope: this
+        });
+    },
+
+    /**
      * Method: mousedown
-     * Handle mousedown.  Only registered as a listener if pixelTolerance is
-     *     a non-zero value at construction.
+     * Handle mousedown.
      *
      * Returns:
      * {Boolean} Continue propagating this event.
      */
-    mousedown: null,
+    mousedown: function(evt) {
+        this.down = this.getEventInfo(evt);
+        this.last = this.getEventInfo(evt);
+        return true;
+    },
 
     /**
      * Method: mouseup
@@ -141,16 +233,15 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
      * Returns:
      * {Boolean} Continue propagating this event.
      */
-    mouseup:  function (evt) {
+    mouseup: function (evt) {
         var propagate = true;
 
         // Collect right mouse clicks from the mouseup
         //  IE - ignores the second right click in mousedown so using
         //  mouseup instead
-        if (this.checkModifiers(evt) && 
-            this.control.handleRightClicks && 
-            OpenLayers.Event.isRightClick(evt)) {
-          propagate = this.rightclick(evt);
+        if (this.checkModifiers(evt) && this.control.handleRightClicks &&
+           OpenLayers.Event.isRightClick(evt)) {
+            propagate = this.rightclick(evt);
         }
 
         return propagate;
@@ -170,7 +261,7 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
            if(this.rightclickTimerId != null) {
                 //Second click received before timeout this must be 
                 // a double click
-                this.clearTimer();      
+                this.clearTimer();
                 this.callback('dblrightclick', [evt]);
                 return !this.stopDouble;
             } else { 
@@ -203,55 +294,97 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
         if (evt) {
            this.callback('rightclick', [evt]);
         }
-        return !this.stopSingle;
     },
     
     /**
+     * Method: click
+     * Handle click events from the browser.  This is registered as a listener
+     *     for click events and should not be called from other events in this
+     *     handler.
+     *
+     * Returns:
+     * {Boolean} Continue propagating this event.
+     */
+    click: function(evt) {
+        if (!this.last) {
+            this.last = this.getEventInfo(evt);
+        }
+        this.handleSingle(evt);
+        return !this.stopSingle;
+    },
+
+    /**
      * Method: dblclick
      * Handle dblclick.  For a dblclick, we get two clicks in some browsers
      *     (FF) and one in others (IE).  So we need to always register for
-     *     dblclick to properly handle single clicks.
+     *     dblclick to properly handle single clicks.  This method is registered
+     *     as a listener for the dblclick browser event.  It should *not* be
+     *     called by other methods in this handler.
      *     
      * Returns:
      * {Boolean} Continue propagating this event.
      */
     dblclick: function(evt) {
-        if(this.passesTolerance(evt)) {
-            if(this["double"]) {
-                this.callback('dblclick', [evt]);
-            }
-            this.clearTimer();
-        }
+        this.handleDouble(evt);
         return !this.stopDouble;
     },
     
-    /**
-     * Method: click
-     * Handle click.
-     *
-     * Returns:
-     * {Boolean} Continue propagating this event.
+    /** 
+     * Method: handleDouble
+     * Handle double-click sequence.
      */
-    click: function(evt) {
-        if(this.passesTolerance(evt)) {
-            if(this.timerId != null) {
+    handleDouble: function(evt) {
+        if (this["double"] && this.passesDblclickTolerance(evt)) {
+            this.callback("dblclick", [evt]);
+        }
+    },
+    
+    /** 
+     * Method: handleSingle
+     * Handle single click sequence.
+     */
+    handleSingle: function(evt) {
+        if (this.passesTolerance(evt)) {
+            if (this.timerId != null) {
                 // already received a click
-                this.clearTimer();
+                if (this.last.touches && this.last.touches.length === 1) {
+                    // touch device, no dblclick event - this may be a double
+                    if (this["double"]) {
+                        // on Android don't let the browser zoom on the page
+                        OpenLayers.Event.stop(evt);
+                    }
+                    this.handleDouble(evt);
+                }
+                // if we're not in a touch environment we clear the click timer
+                // if we've got a second touch, we'll get two touchend events
+                if (!this.last.touches || this.last.touches.length !== 2) {
+                    this.clearTimer();
+                }
             } else {
+                // remember the first click info so we can compare to the second
+                this.first = this.getEventInfo(evt);
                 // set the timer, send evt only if single is true
                 //use a clone of the event object because it will no longer 
                 //be a valid event object in IE in the timer callback
                 var clickEvent = this.single ?
                     OpenLayers.Util.extend({}, evt) : null;
-                this.timerId = window.setTimeout(
-                    OpenLayers.Function.bind(this.delayedCall, this, clickEvent),
-                    this.delay
-                );
+                this.queuePotentialClick(clickEvent);
             }
         }
-        return !this.stopSingle;
     },
     
+    /** 
+     * Method: queuePotentialClick
+     * This method is separated out largely to make testing easier (so we
+     *     don't have to override window.setTimeout)
+     */
+    queuePotentialClick: function(evt) {
+        this.timerId = window.setTimeout(
+            OpenLayers.Function.bind(this.delayedCall, this, evt),
+            this.delay
+        );
+    },
+
     /**
      * Method: passesTolerance
      * Determine whether the event is within the optional pixel tolerance.  Note
@@ -265,28 +398,67 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
      */
     passesTolerance: function(evt) {
         var passes = true;
-        if(this.pixelTolerance != null && this.down) {
-            var dpx = Math.sqrt(
-                Math.pow(this.down.x - evt.xy.x, 2) +
-                Math.pow(this.down.y - evt.xy.y, 2)
-            );
-            if(dpx > this.pixelTolerance) {
-                passes = false;
+        if (this.pixelTolerance != null && this.down && this.down.xy) {
+            passes = this.pixelTolerance >= this.down.xy.distanceTo(evt.xy);
+            // for touch environments, we also enforce that all touches
+            // start and end within the given tolerance to be considered a click
+            if (passes && this.touch && 
+                this.down.touches.length === this.last.touches.length) {
+                // the touchend event doesn't come with touches, so we check
+                // down and last
+                for (var i=0, ii=this.down.touches.length; i<ii; ++i) {
+                    if (this.getTouchDistance(
+                            this.down.touches[i], 
+                            this.last.touches[i]
+                        ) > this.pixelTolerance) {
+                        passes = false;
+                        break;
+                    }
+                }
             }
         }
         return passes;
     },
+    
+    /** 
+     * Method: getTouchDistance
+     *
+     * Returns:
+     * {Boolean} The pixel displacement between two touches.
+     */
+    getTouchDistance: function(from, to) {
+        return Math.sqrt(
+            Math.pow(from.clientX - to.clientX, 2) +
+            Math.pow(from.clientY - to.clientY, 2)
+        );
+    },
+    
+    /**
+     * Method: passesDblclickTolerance
+     * Determine whether the event is within the optional double-cick pixel 
+     *     tolerance.
+     *
+     * Returns:
+     * {Boolean} The click is within the double-click pixel tolerance.
+     */
+    passesDblclickTolerance: function(evt) {
+        var passes = true;
+        if (this.down && this.first) {
+            passes = this.down.xy.distanceTo(this.first.xy) <= this.dblclickTolerance;
+        }
+        return passes;
+    },
 
     /**
      * Method: clearTimer
      * Clear the timer and set <timerId> to null.
      */
     clearTimer: function() {
-        if(this.timerId != null) {
+        if (this.timerId != null) {
             window.clearTimeout(this.timerId);
             this.timerId = null;
         }
-        if(this.rightclickTimerId != null) {
+        if (this.rightclickTimerId != null) {
             window.clearTimeout(this.rightclickTimerId);
             this.rightclickTimerId = null;
         }
@@ -299,9 +471,38 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
      */
     delayedCall: function(evt) {
         this.timerId = null;
-        if(evt) {
-            this.callback('click', [evt]);
+        if (evt) {
+            this.callback("click", [evt]);
+        }
+    },
+
+    /**
+     * Method: getEventInfo
+     * This method allows us to store event information without storing the
+     *     actual event.  In touch devices (at least), the same event is 
+     *     modified between touchstart, touchmove, and touchend.
+     *
+     * Returns:
+     * {Object} An object with event related info.
+     */
+    getEventInfo: function(evt) {
+        var touches;
+        if (evt.touches) {
+            var len = evt.touches.length;
+            touches = new Array(len);
+            var touch;
+            for (var i=0; i<len; i++) {
+                touch = evt.touches[i];
+                touches[i] = {
+                    clientX: touch.clientX,
+                    clientY: touch.clientY
+                };
+            }
         }
+        return {
+            xy: evt.xy,
+            touches: touches
+        };
     },
 
     /**
@@ -316,6 +517,9 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
         if(OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
             this.clearTimer();
             this.down = null;
+            this.first = null;
+            this.last = null;
+            this.touch = false;
             deactivated = true;
         }
         return deactivated;
diff --git a/lib/OpenLayers/Handler/Drag.js b/lib/OpenLayers/Handler/Drag.js
index 562d2ae..9082d9c 100644
--- a/lib/OpenLayers/Handler/Drag.js
+++ b/lib/OpenLayers/Handler/Drag.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -32,11 +32,11 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
   
     /** 
      * Property: started
-     * {Boolean} When a mousedown event is received, we want to record it, but
-     *     not set 'dragging' until the mouse moves after starting. 
+     * {Boolean} When a mousedown or touchstart event is received, we want to
+     * record it, but not set 'dragging' until the mouse moves after starting.
      */
     started: false,
-    
+
     /**
      * Property: stopDown
      * {Boolean} Stop propagation of mousedown events from getting to listeners
@@ -50,6 +50,13 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      */
     dragging: false,
 
+    /**
+     * Property: touch
+     * {Boolean} When a touchstart event is fired, touch will be true and all
+     *     mouse related listeners will do nothing.
+     */
+    touch: false,
+
     /** 
      * Property: last
      * {<OpenLayers.Pixel>} The last pixel location of the drag.
@@ -63,6 +70,14 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
     start: null,
 
     /**
+     * Property: lastMoveEvt
+     * {Object} The last mousemove event that occurred. Used to
+     *     position the map correctly when our "delay drag"
+     *     timeout expired.
+     */
+    lastMoveEvt: null,
+
+    /**
      * Property: oldOnselectstart
      * {Function}
      */
@@ -94,8 +109,7 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
     
     /**
      * Property: documentEvents
-     * {<OpenLayers.Events>} Event instance for observing document events. Will
-     *     be set on mouseout if documentDrag is set to true.
+     * {Boolean} Are we currently observing document events?
      */
     documentEvents: null,
 
@@ -117,13 +131,143 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      */
     initialize: function(control, callbacks, options) {
         OpenLayers.Handler.prototype.initialize.apply(this, arguments);
+        
+        if (this.documentDrag === true) {
+            var me = this;
+            this._docMove = function(evt) {
+                me.mousemove({
+                    xy: {x: evt.clientX, y: evt.clientY},
+                    element: document
+                });
+            };
+            this._docUp = function(evt) {
+                me.mouseup({xy: {x: evt.clientX, y: evt.clientY}});
+            };
+        }
     },
+
     
     /**
+     * Method: dragstart
+     * This private method is factorized from mousedown and touchstart methods
+     *
+     * Parameters:
+     * evt - {Event} The event
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    dragstart: function (evt) {
+        var propagate = true;
+        this.dragging = false;
+        if (this.checkModifiers(evt) &&
+               (OpenLayers.Event.isLeftClick(evt) ||
+                OpenLayers.Event.isSingleTouch(evt))) {
+            this.started = true;
+            this.start = evt.xy;
+            this.last = evt.xy;
+            OpenLayers.Element.addClass(
+                this.map.viewPortDiv, "olDragDown"
+            );
+            this.down(evt);
+            this.callback("down", [evt.xy]);
+
+            OpenLayers.Event.stop(evt);
+
+            if(!this.oldOnselectstart) {
+                this.oldOnselectstart = document.onselectstart ?
+                    document.onselectstart : OpenLayers.Function.True;
+            }
+            document.onselectstart = OpenLayers.Function.False;
+
+            propagate = !this.stopDown;
+        } else {
+            this.started = false;
+            this.start = null;
+            this.last = null;
+        }
+        return propagate;
+    },
+
+    /**
+     * Method: dragmove
+     * This private method is factorized from mousemove and touchmove methods
+     *
+     * Parameters:
+     * evt - {Event} The event
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    dragmove: function (evt) {
+        this.lastMoveEvt = evt;
+        if (this.started && !this.timeoutId && (evt.xy.x != this.last.x ||
+                                                evt.xy.y != this.last.y)) {
+            if(this.documentDrag === true && this.documentEvents) {
+                if(evt.element === document) {
+                    this.adjustXY(evt);
+                    // do setEvent manually because the documentEvents are not
+                    // registered with the map
+                    this.setEvent(evt);
+                } else {
+                    this.removeDocumentEvents();
+                }
+            }
+            if (this.interval > 0) {
+                this.timeoutId = setTimeout(
+                    OpenLayers.Function.bind(this.removeTimeout, this),
+                    this.interval);
+            }
+            this.dragging = true;
+
+            this.move(evt);
+            this.callback("move", [evt.xy]);
+            if(!this.oldOnselectstart) {
+                this.oldOnselectstart = document.onselectstart;
+                document.onselectstart = OpenLayers.Function.False;
+            }
+            this.last = evt.xy;
+        }
+        return true;
+    },
+
+    /**
+     * Method: dragend
+     * This private method is factorized from mouseup and touchend methods
+     *
+     * Parameters:
+     * evt - {Event} The event
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    dragend: function (evt) {
+        if (this.started) {
+            if(this.documentDrag === true && this.documentEvents) {
+                this.adjustXY(evt);
+                this.removeDocumentEvents();
+            }
+            var dragged = (this.start != this.last);
+            this.started = false;
+            this.dragging = false;
+            OpenLayers.Element.removeClass(
+                this.map.viewPortDiv, "olDragDown"
+            );
+            this.up(evt);
+            this.callback("up", [evt.xy]);
+            if(dragged) {
+                this.callback("done", [evt.xy]);
+            }
+            document.onselectstart = this.oldOnselectstart;
+        }
+        return true;
+    },
+
+    /**
      * The four methods below (down, move, up, and out) are used by subclasses
      *     to do their own processing related to these mouse events.
      */
-    
+
     /**
      * Method: down
      * This method is called during the handling of the mouse down event.
@@ -134,7 +278,7 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      */
     down: function(evt) {
     },
-    
+
     /**
      * Method: move
      * This method is called during the handling of the mouse move event.
@@ -180,37 +324,38 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      * Handle mousedown events
      *
      * Parameters:
-     * evt - {Event} 
+     * evt - {Event}
      *
      * Returns:
      * {Boolean} Let the event propagate.
      */
-    mousedown: function (evt) {
-        var propagate = true;
-        this.dragging = false;
-        if (this.checkModifiers(evt) && OpenLayers.Event.isLeftClick(evt)) {
-            this.started = true;
-            this.start = evt.xy;
-            this.last = evt.xy;
-            OpenLayers.Element.addClass(
-                this.map.viewPortDiv, "olDragDown"
-            );
-            this.down(evt);
-            this.callback("down", [evt.xy]);
-            OpenLayers.Event.stop(evt);
-            
-            if(!this.oldOnselectstart) {
-                this.oldOnselectstart = (document.onselectstart) ? document.onselectstart : OpenLayers.Function.True;
-            }
-            document.onselectstart = OpenLayers.Function.False;
-            
-            propagate = !this.stopDown;
-        } else {
-            this.started = false;
-            this.start = null;
-            this.last = null;
+    mousedown: function(evt) {
+        return this.dragstart(evt);
+    },
+
+    /**
+     * Method: touchstart
+     * Handle touchstart events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchstart: function(evt) {
+        if (!this.touch) {
+            this.touch = true;
+            // unregister mouse listeners
+            this.map.events.un({
+                mousedown: this.mousedown,
+                mouseup: this.mouseup,
+                mousemove: this.mousemove,
+                click: this.click,
+                scope: this
+            });
         }
-        return propagate;
+        return this.dragstart(evt);
     },
 
     /**
@@ -218,44 +363,41 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      * Handle mousemove events
      *
      * Parameters:
-     * evt - {Event} 
+     * evt - {Event}
      *
      * Returns:
      * {Boolean} Let the event propagate.
      */
-    mousemove: function (evt) {
-        if (this.started && !this.timeoutId && (evt.xy.x != this.last.x || evt.xy.y != this.last.y)) {
-            if(this.documentDrag === true && this.documentEvents) {
-                if(evt.element === document) {
-                    this.adjustXY(evt);
-                    // do setEvent manually because the documentEvents are not
-                    // registered with the map
-                    this.setEvent(evt);
-                } else {
-                    this.destroyDocumentEvents();
-                }
-            }
-            if (this.interval > 0) {
-                this.timeoutId = setTimeout(OpenLayers.Function.bind(this.removeTimeout, this), this.interval);
-            }
-            this.dragging = true;
-            this.move(evt);
-            this.callback("move", [evt.xy]);
-            if(!this.oldOnselectstart) {
-                this.oldOnselectstart = document.onselectstart;
-                document.onselectstart = OpenLayers.Function.False;
-            }
-            this.last = this.evt.xy;
-        }
-        return true;
+    mousemove: function(evt) {
+        return this.dragmove(evt);
     },
-    
+
+    /**
+     * Method: touchmove
+     * Handle touchmove events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchmove: function(evt) {
+        return this.dragmove(evt);
+    },
+
     /**
      * Method: removeTimeout
      * Private. Called by mousemove() to remove the drag timeout.
      */
     removeTimeout: function() {
         this.timeoutId = null;
+        // if timeout expires while we're still dragging (mouseup
+        // hasn't occurred) then call mousemove to move to the
+        // correct position
+        if(this.dragging) {
+            this.mousemove(this.lastMoveEvt);
+        }
     },
 
     /**
@@ -263,31 +405,30 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      * Handle mouseup events
      *
      * Parameters:
-     * evt - {Event} 
+     * evt - {Event}
      *
      * Returns:
      * {Boolean} Let the event propagate.
      */
-    mouseup: function (evt) {
-        if (this.started) {
-            if(this.documentDrag === true && this.documentEvents) {
-                this.adjustXY(evt);
-                this.destroyDocumentEvents();
-            }
-            var dragged = (this.start != this.last);
-            this.started = false;
-            this.dragging = false;
-            OpenLayers.Element.removeClass(
-                this.map.viewPortDiv, "olDragDown"
-            );
-            this.up(evt);
-            this.callback("up", [evt.xy]);
-            if(dragged) {
-                this.callback("done", [evt.xy]);
-            }
-            document.onselectstart = this.oldOnselectstart;
-        }
-        return true;
+    mouseup: function(evt) {
+        return this.dragend(evt);
+    },
+
+    /**
+     * Method: touchend
+     * Handle touchend events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchend: function(evt) {
+        // override evt.xy with last position since touchend does not have
+        // any touch position
+        evt.xy = this.last;
+        return this.dragend(evt);
     },
 
     /**
@@ -295,23 +436,15 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      * Handle mouseout events
      *
      * Parameters:
-     * evt - {Event} 
+     * evt - {Event}
      *
      * Returns:
      * {Boolean} Let the event propagate.
      */
     mouseout: function (evt) {
-        if (this.started && OpenLayers.Util.mouseLeft(evt, this.map.div)) {
+        if (this.started && OpenLayers.Util.mouseLeft(evt, this.map.eventsDiv)) {
             if(this.documentDrag === true) {
-                this.documentEvents = new OpenLayers.Events(this, document,
-                                            null, null, {includeXY: true});
-                this.documentEvents.on({
-                    mousemove: this.mousemove,
-                    mouseup: this.mouseup
-                });
-                OpenLayers.Element.addClass(
-                    document.body, "olDragDown"
-                );
+                this.addDocumentEvents();
             } else {
                 var dragged = (this.start != this.last);
                 this.started = false; 
@@ -375,6 +508,7 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
     deactivate: function() {
         var deactivated = false;
         if(OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
+            this.touch = false;
             this.started = false;
             this.dragging = false;
             this.start = null;
@@ -397,23 +531,33 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
      * evt - {Object}
      */
     adjustXY: function(evt) {
-        var pos = OpenLayers.Util.pagePosition(this.map.div);
+        var pos = OpenLayers.Util.pagePosition(this.map.viewPortDiv);
         evt.xy.x -= pos[0];
         evt.xy.y -= pos[1];
     },
     
     /**
-     * Method: destroyDocumentEvents
-     * Destroys the events instance that gets added to the document body when
-     * documentDrag is true and the mouse cursor leaves the map viewport while
-     * dragging.
-     */
-    destroyDocumentEvents: function() {
-        OpenLayers.Element.removeClass(
-            document.body, "olDragDown"
-        );
-        this.documentEvents.destroy();
-        this.documentEvents = null;
+     * Method: addDocumentEvents
+     * Start observing document events when documentDrag is true and the mouse
+     * cursor leaves the map viewport while dragging.
+     */
+    addDocumentEvents: function() {
+        OpenLayers.Element.addClass(document.body, "olDragDown");
+        this.documentEvents = true;
+        OpenLayers.Event.observe(document, "mousemove", this._docMove);
+        OpenLayers.Event.observe(document, "mouseup", this._docUp);
+    },
+    
+    /**
+     * Method: removeDocumentEvents
+     * Stops observing document events when documentDrag is true and the mouse
+     * cursor re-enters the map viewport while dragging.
+     */
+    removeDocumentEvents: function() {
+        OpenLayers.Element.removeClass(document.body, "olDragDown");
+        this.documentEvents = false;
+        OpenLayers.Event.stopObserving(document, "mousemove", this._docMove);
+        OpenLayers.Event.stopObserving(document, "mouseup", this._docUp);
     },
 
     CLASS_NAME: "OpenLayers.Handler.Drag"
diff --git a/lib/OpenLayers/Handler/Feature.js b/lib/OpenLayers/Handler/Feature.js
index 0f99cf4..d4c65e7 100644
--- a/lib/OpenLayers/Handler/Feature.js
+++ b/lib/OpenLayers/Handler/Feature.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -29,7 +29,8 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
         'mousemove': {'in': 'over', 'out': 'out'},
         'dblclick': {'in': 'dblclick', 'out': null},
         'mousedown': {'in': null, 'out': null},
-        'mouseup': {'in': null, 'out': null}
+        'mouseup': {'in': null, 'out': null},
+        'touchstart': {'in': 'click', 'out': 'clickout'}
     },
 
     /**
@@ -55,6 +56,13 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
      * {<OpenLayers.Pixel>} The location of the last mouseup.
      */
     up: null,
+
+    /**
+     * Property: touch
+     * {Boolean} When a touchstart event is fired, touch will be true and all
+     *     mouse related listeners will do nothing.
+     */
+    touch: false,
     
     /**
      * Property: clickTolerance
@@ -117,6 +125,44 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
         this.layer = layer;
     },
 
+    /**
+     * Method: touchstart
+     * Handle touchstart events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchstart: function(evt) {
+        if(!this.touch) {
+            this.touch =  true;
+            this.map.events.un({
+                mousedown: this.mousedown,
+                mouseup: this.mouseup,
+                mousemove: this.mousemove,
+                click: this.click,
+                dblclick: this.dblclick,
+                scope: this
+            });
+        }
+        return OpenLayers.Event.isMultiTouch(evt) ?
+                true : this.mousedown(evt);
+    },
+
+    /**
+     * Method: touchmove
+     * Handle touchmove events. We just prevent the browser default behavior,
+     *    for Android Webkit not to select text when moving the finger after
+     *    selecting a feature.
+     *
+     * Parameters:
+     * evt - {Event}
+     */
+    touchmove: function(evt) {
+        OpenLayers.Event.stop(evt);
+    },
 
     /**
      * Method: mousedown
@@ -226,7 +272,7 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
         var type = evt.type;
         var handled = false;
         var previouslyIn = !!(this.feature); // previously in a feature
-        var click = (type == "click" || type == "dblclick");
+        var click = (type == "click" || type == "dblclick" || type == "touchstart");
         this.feature = this.layer.getFeatureFromEvent(evt);
         if(this.feature && !this.feature.layer) {
             // feature has been destroyed
@@ -237,6 +283,11 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
             this.lastFeature = null;
         }
         if(this.feature) {
+            if(type === "touchstart") {
+                // stop the event to prevent Android Webkit from
+                // "flashing" the map div
+                OpenLayers.Event.stop(evt);
+            }
             var inNew = (this.feature != this.lastFeature);
             if(this.geometryTypeMatches(this.feature)) {
                 // in to a feature
@@ -335,6 +386,7 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
             this.lastFeature = null;
             this.down = null;
             this.up = null;
+            this.touch = false;
             this.map.events.un({
                 "removelayer": this.handleMapEvents,
                 "changelayer": this.handleMapEvents,
@@ -352,7 +404,7 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
      * evt - {Object}
      */
     handleMapEvents: function(evt) {
-        if (!evt.property || evt.property == "order") {
+        if (evt.type == "removelayer" || evt.property == "order") {
             this.moveLayerToTop();
         }
     },
diff --git a/lib/OpenLayers/Handler/Hover.js b/lib/OpenLayers/Handler/Hover.js
index 6f3c98a..a508cbd 100644
--- a/lib/OpenLayers/Handler/Hover.js
+++ b/lib/OpenLayers/Handler/Hover.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -110,7 +110,7 @@ OpenLayers.Handler.Hover = OpenLayers.Class(OpenLayers.Handler, {
      * {Boolean} Continue propagating this event.
      */
     mouseout: function(evt) {
-        if (OpenLayers.Util.mouseLeft(evt, this.map.div)) {
+        if (OpenLayers.Util.mouseLeft(evt, this.map.eventsDiv)) {
             this.clearTimer();
             this.callback('move', [evt]);
         }
diff --git a/lib/OpenLayers/Handler/Keyboard.js b/lib/OpenLayers/Handler/Keyboard.js
index 5171915..127a403 100644
--- a/lib/OpenLayers/Handler/Keyboard.js
+++ b/lib/OpenLayers/Handler/Keyboard.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Handler/MouseWheel.js b/lib/OpenLayers/Handler/MouseWheel.js
index c16df50..3ab90d5 100644
--- a/lib/OpenLayers/Handler/MouseWheel.js
+++ b/lib/OpenLayers/Handler/MouseWheel.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Handler/Path.js b/lib/OpenLayers/Handler/Path.js
index 689ef3b..955e5a8 100644
--- a/lib/OpenLayers/Handler/Path.js
+++ b/lib/OpenLayers/Handler/Path.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -25,7 +25,24 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      * {<OpenLayers.Feature.Vector>}
      */
     line: null,
-    
+
+    /**
+     * APIProperty: maxVertices
+     * {Number} The maximum number of vertices which can be drawn by this
+     * handler. When the number of vertices reaches maxVertices, the
+     * geometry is automatically finalized. This property doesn't
+     * apply if freehand is set. Default is null.
+     */
+    maxVertices: null,
+
+    /**
+     * Property: doubleTouchTolerance
+     * {Number} Maximum number of pixels between two touches for
+     *     the gesture to be considered a "finalize feature" action.
+     *     Default is 20.
+     */
+    doubleTouchTolerance: 20,
+
     /**
      * Property: freehand
      * {Boolean} In freehand mode, the handler starts the path on mouse down,
@@ -45,6 +62,18 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
     freehandToggle: 'shiftKey',
 
     /**
+     * Property: timerId
+     * {Integer} The timer used to test the double touch.
+     */
+    timerId: null,
+
+    /**
+     * Property: redoStack
+     * {Array} Stack containing points removed with <undo>.
+     */
+    redoStack: null,
+
+    /**
      * Constructor: OpenLayers.Handler.Path
      * Create a new path hander
      *
@@ -79,10 +108,11 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      *     feature.
      */
     createFeature: function(pixel) {
-        var lonlat = this.control.map.getLonLatFromPixel(pixel);
-        this.point = new OpenLayers.Feature.Vector(
-            new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat)
+        var lonlat = this.map.getLonLatFromPixel(pixel);
+        var geometry = new OpenLayers.Geometry.Point(
+            lonlat.lon, lonlat.lat
         );
+        this.point = new OpenLayers.Feature.Vector(geometry);
         this.line = new OpenLayers.Feature.Vector(
             new OpenLayers.Geometry.LineString([this.point.geometry])
         );
@@ -94,13 +124,28 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
     /**
      * Method: destroyFeature
      * Destroy temporary geometries
+     *
+     * Parameters:
+     * force - {Boolean} Destroy even if persist is true.
      */
-    destroyFeature: function() {
-        OpenLayers.Handler.Point.prototype.destroyFeature.apply(this);
+    destroyFeature: function(force) {
+        OpenLayers.Handler.Point.prototype.destroyFeature.call(
+            this, force);
         this.line = null;
     },
 
     /**
+     * Method: destroyPersistedFeature
+     * Destroy the persisted feature.
+     */
+    destroyPersistedFeature: function() {
+        var layer = this.layer;
+        if(layer && layer.features.length > 2) {
+            this.layer.features[0].destroy();
+        }
+    },
+
+    /**
      * Method: removePoint
      * Destroy the temporary point.
      */
@@ -127,9 +172,133 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
         this.line.geometry.addComponent(
             this.point.geometry, this.line.geometry.components.length
         );
+        this.layer.addFeatures([this.point]);
         this.callback("point", [this.point.geometry, this.getGeometry()]);
         this.callback("modify", [this.point.geometry, this.getSketch()]);
         this.drawFeature();
+        delete this.redoStack;
+    },
+    
+    /**
+     * Method: insertXY
+     * Insert a point in the current sketch given x & y coordinates.  The new
+     *     point is inserted immediately before the most recently drawn point.
+     *
+     * Parameters:
+     * x - {Number} The x-coordinate of the point.
+     * y - {Number} The y-coordinate of the point.
+     */
+    insertXY: function(x, y) {
+        this.line.geometry.addComponent(
+            new OpenLayers.Geometry.Point(x, y), 
+            this.getCurrentPointIndex()
+        );
+        this.drawFeature();
+        delete this.redoStack;
+    },
+
+    /**
+     * Method: insertDeltaXY
+     * Insert a point given offsets from the previously inserted point.
+     *
+     * Parameters:
+     * dx - {Number} The x-coordinate offset of the point.
+     * dy - {Number} The y-coordinate offset of the point.
+     */
+    insertDeltaXY: function(dx, dy) {
+        var previousIndex = this.getCurrentPointIndex() - 1;
+        var p0 = this.line.geometry.components[previousIndex];
+        if (p0 && !isNaN(p0.x) && !isNaN(p0.y)) {
+            this.insertXY(p0.x + dx, p0.y + dy);
+        }
+    },
+
+    /**
+     * Method: insertDirectionLength
+     * Insert a point in the current sketch given a direction and a length.
+     *
+     * Parameters:
+     * direction - {Number} Degrees clockwise from the positive x-axis.
+     * length - {Number} Distance from the previously drawn point.
+     */
+    insertDirectionLength: function(direction, length) {
+        direction *= Math.PI / 180;
+        var dx = length * Math.cos(direction);
+        var dy = length * Math.sin(direction);
+        this.insertDeltaXY(dx, dy);
+    },
+
+    /**
+     * Method: insertDeflectionLength
+     * Insert a point in the current sketch given a deflection and a length.
+     *     The deflection should be degrees clockwise from the previously 
+     *     digitized segment.
+     *
+     * Parameters:
+     * deflection - {Number} Degrees clockwise from the previous segment.
+     * length - {Number} Distance from the previously drawn point.
+     */
+    insertDeflectionLength: function(deflection, length) {
+        var previousIndex = this.getCurrentPointIndex() - 1;
+        if (previousIndex > 0) {
+            var p1 = this.line.geometry.components[previousIndex];
+            var p0 = this.line.geometry.components[previousIndex-1];
+            var theta = Math.atan2(p1.y - p0.y, p1.x - p0.x);
+            this.insertDirectionLength(
+                (theta * 180 / Math.PI) + deflection, length
+            );
+        }
+    },
+
+    /**
+     * Method: getCurrentPointIndex
+     * 
+     * Returns:
+     * {Number} The index of the most recently drawn point.
+     */
+    getCurrentPointIndex: function() {
+        return this.line.geometry.components.length - 1;
+    },
+    
+    
+    /**
+     * Method: undo
+     * Remove the most recently added point in the sketch geometry.
+     *
+     * Returns: 
+     * {Boolean} A point was removed.
+     */
+    undo: function() {
+        var geometry = this.line.geometry;
+        var components = geometry.components;
+        var index = this.getCurrentPointIndex() - 1;
+        var target = components[index];
+        var undone = geometry.removeComponent(target);
+        if (undone) {
+            if (!this.redoStack) {
+                this.redoStack = [];
+            }
+            this.redoStack.push(target);
+            this.drawFeature();
+        }
+        return undone;
+    },
+    
+    /**
+     * Method: redo
+     * Reinsert the most recently removed point resulting from an <undo> call.
+     *     The undo stack is deleted whenever a point is added by other means.
+     *
+     * Returns: 
+     * {Boolean} A point was added.
+     */
+    redo: function() {
+        var target = this.redoStack && this.redoStack.pop();
+        if (target) {
+            this.line.geometry.addComponent(target, this.getCurrentPointIndex());
+            this.drawFeature();
+        }
+        return !!target;
     },
     
     /**
@@ -151,12 +320,16 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      * Parameters:
      * pixel - {<OpenLayers.Pixel>} The updated pixel location for the latest
      *     point.
+     * drawing - {Boolean} Indicate if we're currently drawing.
      */
-    modifyFeature: function(pixel) {
+    modifyFeature: function(pixel, drawing) {
+        if(!this.line) {
+            this.createFeature(pixel);
+        }
         var lonlat = this.control.map.getLonLatFromPixel(pixel);
         this.point.geometry.x = lonlat.lon;
         this.point.geometry.y = lonlat.lat;
-        this.callback("modify", [this.point.geometry, this.getSketch()]);
+        this.callback("modify", [this.point.geometry, this.getSketch(), drawing]);
         this.point.geometry.clearBounds();
         this.drawFeature();
     },
@@ -198,8 +371,40 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
     },
 
     /**
-     * Method: mousedown
-     * Handle mouse down.  Add a new point to the geometry and
+     * method: touchstart
+     * handle touchstart.
+     *
+     * parameters:
+     * evt - {event} the browser event
+     *
+     * returns:
+     * {boolean} allow event propagation
+     */
+    touchstart: function(evt) {
+        if (this.timerId &&
+            this.passesTolerance(this.lastTouchPx, evt.xy,
+                                 this.doubleTouchTolerance)) {
+            // double-tap, finalize the geometry
+            this.finishGeometry();
+            window.clearTimeout(this.timerId);
+            this.timerId = null;
+            return false;
+        } else {
+            if (this.timerId) {
+                window.clearTimeout(this.timerId);
+                this.timerId = null;
+            }
+            this.timerId = window.setTimeout(
+                OpenLayers.Function.bind(function() {
+                    this.timerId = null;
+                }, this), 300);
+            return OpenLayers.Handler.Point.prototype.touchstart.call(this, evt);
+        }
+    },
+
+    /**
+     * Method: down
+     * Handle mousedown and touchstart.  Add a new point to the geometry and
      * render it. Return determines whether to propagate the event on the map.
      * 
      * Parameters:
@@ -208,28 +413,25 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      * Returns: 
      * {Boolean} Allow event propagation
      */
-    mousedown: function(evt) {
-        // ignore double-clicks
-        if (this.lastDown && this.lastDown.equals(evt.xy)) {
-            return false;
+    down: function(evt) {
+        var stopDown = this.stopDown;
+        if(this.freehandMode(evt)) {
+            stopDown = true;
         }
-        if(this.lastDown == null) {
-            if(this.persist) {
-                this.destroyFeature();
-            }
-            this.createFeature(evt.xy);
-        } else if((this.lastUp == null) || !this.lastUp.equals(evt.xy)) {
-            this.addPoint(evt.xy);
+        if (!this.touch && (!this.lastDown ||
+                            !this.passesTolerance(this.lastDown, evt.xy,
+                                                  this.pixelTolerance))) {
+            this.modifyFeature(evt.xy, !!this.lastUp);
         }
         this.mouseDown = true;
         this.lastDown = evt.xy;
-        this.drawing = true;
-        return false;
+        this.stoppedDown = stopDown;
+        return !stopDown;
     },
 
     /**
-     * Method: mousemove
-     * Handle mouse move.  Adjust the geometry and redraw.
+     * Method: move
+     * Handle mousemove and touchmove.  Adjust the geometry and redraw.
      * Return determines whether to propagate the event on the map.
      * 
      * Parameters:
@@ -238,20 +440,23 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      * Returns: 
      * {Boolean} Allow event propagation
      */
-    mousemove: function (evt) {
-        if(this.drawing) { 
-            if(this.mouseDown && this.freehandMode(evt)) {
-                this.addPoint(evt.xy);
-            } else {
-                this.modifyFeature(evt.xy);
+    move: function (evt) {
+        if(this.stoppedDown && this.freehandMode(evt)) {
+            if(this.persist) {
+                this.destroyPersistedFeature();
             }
+            this.addPoint(evt.xy);
+            return false;
+        }
+        if (!this.touch && (!this.mouseDown || this.stoppedDown)) {
+            this.modifyFeature(evt.xy, !!this.lastUp);
         }
         return true;
     },
     
     /**
-     * Method: mouseup
-     * Handle mouse up.  Send the latest point in the geometry to
+     * Method: up
+     * Handle mouseup and touchend.  Send the latest point in the geometry to
      * the control. Return determines whether to propagate the event on the map.
      * 
      * Parameters:
@@ -260,27 +465,50 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      * Returns: 
      * {Boolean} Allow event propagation
      */
-    mouseup: function (evt) {
-        this.mouseDown = false;
-        if(this.drawing) {
-            if(this.freehandMode(evt)) {
+    up: function (evt) {
+        if (this.mouseDown && (!this.lastUp || !this.lastUp.equals(evt.xy))) {
+            if(this.stoppedDown && this.freehandMode(evt)) {
+                if (this.persist) {
+                    this.destroyPersistedFeature();
+                }
                 this.removePoint();
                 this.finalize();
             } else {
-                if(this.lastUp == null) {
-                   this.addPoint(evt.xy);
+                if (this.passesTolerance(this.lastDown, evt.xy,
+                                         this.pixelTolerance)) {
+                    if (this.touch) {
+                        this.modifyFeature(evt.xy);
+                    }
+                    if(this.lastUp == null && this.persist) {
+                        this.destroyPersistedFeature();
+                    }
+                    this.addPoint(evt.xy);
+                    this.lastUp = evt.xy;
+                    if(this.line.geometry.components.length === this.maxVertices + 1) {
+                        this.finishGeometry();
+                    }
                 }
-                this.lastUp = evt.xy;
             }
-            return false;
         }
-        return true;
+        this.stoppedDown = this.stopDown;
+        this.mouseDown = false;
+        return !this.stopUp;
+    },
+
+    /**
+     * APIMethod: finishGeometry
+     * Finish the geometry and send it back to the control.
+     */
+    finishGeometry: function() {
+        var index = this.line.geometry.components.length - 1;
+        this.line.geometry.removeComponent(this.line.geometry.components[index]);
+        this.removePoint();
+        this.finalize();
     },
   
     /**
      * Method: dblclick 
-     * Handle double-clicks.  Finish the geometry and send it back
-     * to the control.
+     * Handle double-clicks.
      * 
      * Parameters:
      * evt - {Event} The browser event
@@ -290,10 +518,7 @@ OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
      */
     dblclick: function(evt) {
         if(!this.freehandMode(evt)) {
-            var index = this.line.geometry.components.length - 1;
-            this.line.geometry.removeComponent(this.line.geometry.components[index]);
-            this.removePoint();
-            this.finalize();
+            this.finishGeometry();
         }
         return false;
     },
diff --git a/lib/OpenLayers/Handler/Pinch.js b/lib/OpenLayers/Handler/Pinch.js
new file mode 100644
index 0000000..2138a45
--- /dev/null
+++ b/lib/OpenLayers/Handler/Pinch.js
@@ -0,0 +1,233 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the Clear BSD license.
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Handler.js
+ */
+
+/**
+ * Class: OpenLayers.Handler.Pinch
+ * The pinch handler is used to deal with sequences of browser events related
+ *     to pinch gestures. The handler is used by controls that want to know
+ *     when a pinch sequence begins, when a pinch is happening, and when it has
+ *     finished.
+ *
+ * Controls that use the pinch handler typically construct it with callbacks
+ *     for 'start', 'move', and 'done'.  Callbacks for these keys are
+ *     called when the pinch begins, with each change, and when the pinch is
+ *     done.
+ *
+ * Create a new pinch handler with the <OpenLayers.Handler.Pinch> constructor.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Handler>
+ */
+OpenLayers.Handler.Pinch = OpenLayers.Class(OpenLayers.Handler, {
+
+    /**
+     * Property: started
+     * {Boolean} When a touchstart event is received, we want to record it,
+     *     but not set 'pinching' until the touchmove get started after
+     *     starting.
+     */
+    started: false,
+
+    /**
+     * Property: stopDown
+     * {Boolean} Stop propagation of touchstart events from getting to
+     *     listeners on the same element. Default is false.
+     */
+    stopDown: false,
+
+    /**
+     * Property: pinching
+     * {Boolean}
+     */
+    pinching: false,
+
+    /**
+     * Property: last
+     * {Object} Object that store informations related to pinch last touch.
+     */
+    last: null,
+
+    /**
+     * Property: start
+     * {Object} Object that store informations related to pinch touchstart.
+     */
+    start: null,
+
+    /**
+     * Constructor: OpenLayers.Handler.Pinch
+     * Returns OpenLayers.Handler.Pinch
+     *
+     * Parameters:
+     * control - {<OpenLayers.Control>} The control that is making use of
+     *     this handler.  If a handler is being used without a control, the
+     *     handlers setMap method must be overridden to deal properly with
+     *     the map.
+     * callbacks - {Object} An object containing functions to be called when
+     *     the pinch operation start, change, or is finished. The callbacks
+     *     should expect to receive an object argument, which contains
+     *     information about scale, distance, and position of touch points.
+     * options - {Object}
+     */
+    initialize: function(control, callbacks, options) {
+        OpenLayers.Handler.prototype.initialize.apply(this, arguments);
+    },
+
+    /**
+     * Method: touchstart
+     * Handle touchstart events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchstart: function(evt) {
+        var propagate = true;
+        this.pinching = false;
+        if (OpenLayers.Event.isMultiTouch(evt)) {
+            this.started = true;
+            this.last = this.start = {
+                distance: this.getDistance(evt.touches),
+                delta: 0,
+                scale: 1
+            };
+            this.callback("start", [evt, this.start]);
+            propagate = !this.stopDown;
+        } else {
+            this.started = false;
+            this.start = null;
+            this.last = null;
+        }
+        // prevent document dragging
+        OpenLayers.Event.stop(evt);
+        return propagate;
+    },
+
+    /**
+     * Method: touchmove
+     * Handle touchmove events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchmove: function(evt) {
+        if (this.started && OpenLayers.Event.isMultiTouch(evt)) {
+            this.pinching = true;
+            var current = this.getPinchData(evt);
+            this.callback("move", [evt, current]);
+            this.last = current;
+            // prevent document dragging
+            OpenLayers.Event.stop(evt);
+        }
+        return true;
+    },
+
+    /**
+     * Method: touchend
+     * Handle touchend events
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Boolean} Let the event propagate.
+     */
+    touchend: function(evt) {
+        if (this.started) {
+            this.started = false;
+            this.pinching = false;
+            this.callback("done", [evt, this.start, this.last]);
+            this.start = null;
+            this.last = null;
+        }
+        return true;
+    },
+
+    /**
+     * Method: activate
+     * Activate the handler.
+     *
+     * Returns:
+     * {Boolean} The handler was successfully activated.
+     */
+    activate: function() {
+        var activated = false;
+        if (OpenLayers.Handler.prototype.activate.apply(this, arguments)) {
+            this.pinching = false;
+            activated = true;
+        }
+        return activated;
+    },
+
+    /**
+     * Method: deactivate
+     * Deactivate the handler.
+     *
+     * Returns:
+     * {Boolean} The handler was successfully deactivated.
+     */
+    deactivate: function() {
+        var deactivated = false;
+        if (OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
+            this.started = false;
+            this.pinching = false;
+            this.start = null;
+            this.last = null;
+            deactivated = true;
+        }
+        return deactivated;
+    },
+
+    /**
+     * Method: getDistance
+     * Get the distance in pixels between two touches.
+     *
+     * Parameters:
+     * touches - {Array(Object)}
+     *
+     * Returns:
+     * {Number} The distance in pixels.
+     */
+    getDistance: function(touches) {
+        var t0 = touches[0];
+        var t1 = touches[1];
+        return Math.sqrt(
+            Math.pow(t0.clientX - t1.clientX, 2) +
+            Math.pow(t0.clientY - t1.clientY, 2)
+        );
+    },
+
+
+    /**
+     * Method: getPinchData
+     * Get informations about the pinch event.
+     *
+     * Parameters:
+     * evt - {Event}
+     *
+     * Returns:
+     * {Object} Object that contains data about the current pinch.
+     */
+    getPinchData: function(evt) {
+        var distance = this.getDistance(evt.touches);
+        var scale = distance / this.start.distance;
+        return {
+            distance: distance,
+            delta: this.last.distance - distance,
+            scale: scale
+        };
+    },
+
+    CLASS_NAME: "OpenLayers.Handler.Pinch"
+});
+
diff --git a/lib/OpenLayers/Handler/Point.js b/lib/OpenLayers/Handler/Point.js
index ed2e2e8..da31296 100644
--- a/lib/OpenLayers/Handler/Point.js
+++ b/lib/OpenLayers/Handler/Point.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -11,9 +11,9 @@
 
 /**
  * Class: OpenLayers.Handler.Point
- * Handler to draw a point on the map.  Point is displayed on mouse down,
- *     moves on mouse move, and is finished on mouse up.  The handler triggers
- *     callbacks for 'done', 'cancel', and 'modify'.  The modify callback is
+ * Handler to draw a point on the map. Point is displayed on activation,
+ *     moves on mouse move, and is finished on mouse up. The handler triggers
+ *     callbacks for 'done', 'cancel', and 'modify'. The modify callback is
  *     called with each change in the sketch and will receive the latest point
  *     drawn.  Create a new instance with the <OpenLayers.Handler.Point>
  *     constructor.
@@ -43,18 +43,19 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
     multi: false,
     
     /**
-     * Property: drawing 
-     * {Boolean} A point is being drawn
-     */
-    drawing: false,
-    
-    /**
      * Property: mouseDown
      * {Boolean} The mouse is down
      */
     mouseDown: false,
 
     /**
+     * Property: stoppedDown
+     * {Boolean} Indicate whether the last mousedown stopped the event
+     * propagation.
+     */
+    stoppedDown: null,
+
+    /**
      * Property: lastDown
      * {<OpenLayers.Pixel>} Location of the last mouse down
      */
@@ -76,10 +77,47 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
     persist: false,
 
     /**
+     * APIProperty: stopDown
+     * {Boolean} Stop event propagation on mousedown. Must be false to
+     *     allow "pan while drawing". Defaults to false.
+     */
+    stopDown: false,
+
+    /**
+     * APIPropery: stopUp
+     * {Boolean} Stop event propagation on mouse. Must be false to
+     *     allow "pan while dragging". Defaults to fase.
+     */
+    stopUp: false,
+
+    /**
      * Property: layerOptions
      * {Object} Any optional properties to be set on the sketch layer.
      */
     layerOptions: null,
+    
+    /**
+     * APIProperty: pixelTolerance
+     * {Number} Maximum number of pixels between down and up (mousedown
+     *     and mouseup, or touchstart and touchend) for the handler to
+     *     add a new point. If set to an integer value, if the
+     *     displacement between down and up is great to this value
+     *     no point will be added. Default value is 5.
+     */
+    pixelTolerance: 5,
+
+    /**
+     * Property: touch
+     * {Boolean} Indcates the support of touch events.
+     */
+    touch: false,
+
+    /**
+     * Property: lastTouchPx
+     * {<OpenLayers.Pixel>} The last pixel used to know the distance between
+     * two touches (for double touch).
+     */
+    lastTouchPx: null,
 
     /**
      * Constructor: OpenLayers.Handler.Point
@@ -142,9 +180,10 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
      */
     createFeature: function(pixel) {
         var lonlat = this.map.getLonLatFromPixel(pixel);
-        this.point = new OpenLayers.Feature.Vector(
-            new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat)
+        var geometry = new OpenLayers.Geometry.Point(
+            lonlat.lon, lonlat.lat
         );
+        this.point = new OpenLayers.Feature.Vector(geometry);
         this.callback("create", [this.point.geometry, this.point]);
         this.point.geometry.clearBounds();
         this.layer.addFeatures([this.point], {silent: true});
@@ -158,52 +197,62 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
         if(!OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
             return false;
         }
-        // call the cancel callback if mid-drawing
-        if(this.drawing) {
-            this.cancel();
-        }
-        this.destroyFeature();
+        this.cancel();
         // If a layer's map property is set to null, it means that that layer
         // isn't added to the map. Since we ourself added the layer to the map
         // in activate(), we can assume that if this.layer.map is null it means
         // that the layer has been destroyed (as a result of map.destroy() for
         // example.
         if (this.layer.map != null) {
+            this.destroyFeature(true);
             this.layer.destroy(false);
         }
         this.layer = null;
+        this.touch = false;
         return true;
     },
     
     /**
      * Method: destroyFeature
      * Destroy the temporary geometries
+     *
+     * Parameters:
+     * force - {Boolean} Destroy even if persist is true.
      */
-    destroyFeature: function() {
-        if(this.layer) {
+    destroyFeature: function(force) {
+        if(this.layer && (force || !this.persist)) {
             this.layer.destroyFeatures();
         }
         this.point = null;
     },
 
     /**
+     * Method: destroyPersistedFeature
+     * Destroy the persisted feature.
+     */
+    destroyPersistedFeature: function() {
+        var layer = this.layer;
+        if(layer && layer.features.length > 1) {
+            this.layer.features[0].destroy();
+        }
+    },
+
+    /**
      * Method: finalize
      * Finish the geometry and call the "done" callback.
      *
      * Parameters:
-     * cancel - {Boolean} Call cancel instead of done callback.  Default is
-     *     false.
+     * cancel - {Boolean} Call cancel instead of done callback.  Default
+     *          is false.
      */
     finalize: function(cancel) {
         var key = cancel ? "cancel" : "done";
-        this.drawing = false;
         this.mouseDown = false;
         this.lastDown = null;
         this.lastUp = null;
+        this.lastTouchPx = null;
         this.callback(key, [this.geometryClone()]);
-        if(cancel || !this.persist) {
-            this.destroyFeature();
-        }
+        this.destroyFeature(cancel);
     },
 
     /**
@@ -254,10 +303,13 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
      * pixel - {<OpenLayers.Pixel>} A pixel location on the map.
      */
     modifyFeature: function(pixel) {
+        if(!this.point) {
+            this.createFeature(pixel);
+        }
         var lonlat = this.map.getLonLatFromPixel(pixel);
         this.point.geometry.x = lonlat.lon;
         this.point.geometry.y = lonlat.lat;
-        this.callback("modify", [this.point.geometry, this.point]);
+        this.callback("modify", [this.point.geometry, this.point, false]);
         this.point.geometry.clearBounds();
         this.drawFeature();
     },
@@ -297,11 +349,10 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
         var geom = this.getGeometry();
         return geom && geom.clone();
     },
-  
+
     /**
      * Method: mousedown
-     * Handle mouse down.  Adjust the geometry and redraw.
-     * Return determines whether to propagate the event on the map.
+     * Handle mousedown.
      * 
      * Parameters:
      * evt - {Event} The browser event
@@ -310,30 +361,118 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
      * {Boolean} Allow event propagation
      */
     mousedown: function(evt) {
-        // check keyboard modifiers
-        if(!this.checkModifiers(evt)) {
-            return true;
-        }
-        // ignore double-clicks
-        if(this.lastDown && this.lastDown.equals(evt.xy)) {
-            return true;
+        return this.down(evt);
+    },
+
+    /**
+     * Method: touchstart
+     * Handle touchstart.
+     * 
+     * Parameters:
+     * evt - {Event} The browser event
+     *
+     * Returns: 
+     * {Boolean} Allow event propagation
+     */
+    touchstart: function(evt) {
+        if (!this.touch) {
+            this.touch = true;
+            // unregister mouse listeners
+            this.map.events.un({
+                mousedown: this.mousedown,
+                mouseup: this.mouseup,
+                mousemove: this.mousemove,
+                click: this.click,
+                dblclick: this.dblclick,
+                scope: this
+            });
         }
-        this.drawing = true;
-        if(this.lastDown == null) {
-            if(this.persist) {
-                this.destroyFeature();
-            }
-            this.createFeature(evt.xy);
-        } else {
+        this.lastTouchPx = evt.xy;
+        return this.down(evt);
+    },
+
+    /**
+     * Method: mousemove
+     * Handle mousemove.
+     * 
+     * Parameters:
+     * evt - {Event} The browser event
+     *
+     * Returns: 
+     * {Boolean} Allow event propagation
+     */
+    mousemove: function(evt) {
+        return this.move(evt);
+    },
+
+    /**
+     * Method: touchmove
+     * Handle touchmove.
+     * 
+     * Parameters:
+     * evt - {Event} The browser event
+     *
+     * Returns: 
+     * {Boolean} Allow event propagation
+     */
+    touchmove: function(evt) {
+        this.lastTouchPx = evt.xy;
+        return this.move(evt);
+    },
+
+    /**
+     * Method: mouseup
+     * Handle mouseup.
+     * 
+     * Parameters:
+     * evt - {Event} The browser event
+     *
+     * Returns: 
+     * {Boolean} Allow event propagation
+     */
+    mouseup: function(evt) {
+        return this.up(evt);
+    },
+
+    /**
+     * Method: touchend
+     * Handle touchend.
+     * 
+     * Parameters:
+     * evt - {Event} The browser event
+     *
+     * Returns: 
+     * {Boolean} Allow event propagation
+     */
+    touchend: function(evt) {
+        evt.xy = this.lastTouchPx;
+        return this.up(evt);
+    },
+  
+    /**
+     * Method: down
+     * Handle mousedown and touchstart.  Adjust the geometry and redraw.
+     * Return determines whether to propagate the event on the map.
+     * 
+     * Parameters:
+     * evt - {Event} The browser event
+     *
+     * Returns: 
+     * {Boolean} Allow event propagation
+     */
+    down: function(evt) {
+        this.mouseDown = true;
+        this.lastDown = evt.xy;
+        if(!this.touch) { // no point displayed until up on touch devices
             this.modifyFeature(evt.xy);
         }
-        this.lastDown = evt.xy;
-        return false;
+        this.stoppedDown = this.stopDown;
+        return !this.stopDown;
     },
 
     /**
-     * Method: mousemove
-     * Handle mouse move.  Adjust the geometry and redraw.
+     * Method: move
+     * Handle mousemove and touchmove.  Adjust the geometry and redraw.
      * Return determines whether to propagate the event on the map.
      * 
      * Parameters:
@@ -342,16 +481,17 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
      * Returns: 
      * {Boolean} Allow event propagation
      */
-    mousemove: function (evt) {
-        if(this.drawing) {
+    move: function (evt) {
+        if(!this.touch // no point displayed until up on touch devices
+           && (!this.mouseDown || this.stoppedDown)) {
             this.modifyFeature(evt.xy);
         }
         return true;
     },
 
     /**
-     * Method: mouseup
-     * Handle mouse up.  Send the latest point in the geometry to the control.
+     * Method: up
+     * Handle mouseup and touchend.  Send the latest point in the geometry to the control.
      * Return determines whether to propagate the event on the map.
      *
      * Parameters:
@@ -360,14 +500,67 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
      * Returns: 
      * {Boolean} Allow event propagation
      */
-    mouseup: function (evt) {
-        if(this.drawing) {
+    up: function (evt) {
+        this.mouseDown = false;
+        this.stoppedDown = this.stopDown;
+
+        // check keyboard modifiers
+        if(!this.checkModifiers(evt)) {
+            return true;
+        }
+        // ignore double-clicks
+        if (this.lastUp && this.lastUp.equals(evt.xy)) {
+            return true;
+        }
+        if (this.lastDown && this.passesTolerance(this.lastDown, evt.xy,
+                                                  this.pixelTolerance)) {
+            if (this.touch) {
+                this.modifyFeature(evt.xy);
+            }
+            if(this.persist) {
+                this.destroyPersistedFeature();
+            }
+            this.lastUp = evt.xy;
             this.finalize();
-            return false;
+            return !this.stopUp;
         } else {
             return true;
         }
     },
 
+    /**
+     * Method: mouseout
+     * Handle mouse out.  For better user experience reset mouseDown
+     * and stoppedDown when the mouse leaves the map viewport.
+     *
+     * Parameters:
+     * evt - {Event} The browser event
+     */
+    mouseout: function(evt) {
+        if(OpenLayers.Util.mouseLeft(evt, this.map.eventsDiv)) {
+            this.stoppedDown = this.stopDown;
+            this.mouseDown = false;
+        }
+    },
+
+    /**
+     * Method: passesTolerance
+     * Determine whether the event is within the optional pixel tolerance.
+     *
+     * Returns:
+     * {Boolean} The event is within the pixel tolerance (if specified).
+     */
+    passesTolerance: function(pixel1, pixel2, tolerance) {
+        var passes = true;
+
+        if (tolerance != null && pixel1 && pixel2) {
+            var dist = pixel1.distanceTo(pixel2);
+            if (dist > tolerance) {
+                passes = false;
+            }
+        }
+        return passes;
+    },
+    
     CLASS_NAME: "OpenLayers.Handler.Point"
 });
diff --git a/lib/OpenLayers/Handler/Polygon.js b/lib/OpenLayers/Handler/Polygon.js
index 1c4abde..64e626e 100644
--- a/lib/OpenLayers/Handler/Polygon.js
+++ b/lib/OpenLayers/Handler/Polygon.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -20,6 +20,20 @@
  */
 OpenLayers.Handler.Polygon = OpenLayers.Class(OpenLayers.Handler.Path, {
     
+    /** 
+     * APIProperty: holeModifier
+     * {String} Key modifier to trigger hole digitizing.  Acceptable values are
+     *     "altKey", "shiftKey", or "ctrlKey".  If not set, no hole digitizing
+     *     will take place.  Default is null.
+     */
+    holeModifier: null,
+    
+    /**
+     * Property: drawingHole
+     * {Boolean} Currently drawing an interior ring.
+     */
+    drawingHole: false,
+    
     /**
      * Parameter: polygon
      * {<OpenLayers.Feature.Vector>}
@@ -61,10 +75,11 @@ OpenLayers.Handler.Polygon = OpenLayers.Class(OpenLayers.Handler.Path, {
      *     feature.
      */
     createFeature: function(pixel) {
-        var lonlat = this.control.map.getLonLatFromPixel(pixel);
-        this.point = new OpenLayers.Feature.Vector(
-            new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat)
+        var lonlat = this.map.getLonLatFromPixel(pixel);
+        var geometry = new OpenLayers.Geometry.Point(
+            lonlat.lon, lonlat.lat
         );
+        this.point = new OpenLayers.Feature.Vector(geometry);
         this.line = new OpenLayers.Feature.Vector(
             new OpenLayers.Geometry.LinearRing([this.point.geometry])
         );
@@ -77,11 +92,179 @@ OpenLayers.Handler.Polygon = OpenLayers.Class(OpenLayers.Handler.Path, {
     },
 
     /**
+     * Method: addPoint
+     * Add point to geometry.
+     *
+     * Parameters:
+     * pixel - {<OpenLayers.Pixel>} The pixel location for the new point.
+     */
+    addPoint: function(pixel) {
+        if(!this.drawingHole && this.holeModifier &&
+           this.evt && this.evt[this.holeModifier]) {
+            var geometry = this.point.geometry;
+            var features = this.control.layer.features;
+            var candidate, polygon;
+            // look for intersections, last drawn gets priority
+            for (var i=features.length-1; i>=0; --i) {
+                candidate = features[i].geometry;
+                if ((candidate instanceof OpenLayers.Geometry.Polygon || 
+                    candidate instanceof OpenLayers.Geometry.MultiPolygon) && 
+                    candidate.intersects(geometry)) {
+                    polygon = features[i];
+                    this.control.layer.removeFeatures([polygon], {silent: true});
+                    this.control.layer.events.registerPriority(
+                        "sketchcomplete", this, this.finalizeInteriorRing
+                    );
+                    this.control.layer.events.registerPriority(
+                        "sketchmodified", this, this.enforceTopology
+                    );
+                    polygon.geometry.addComponent(this.line.geometry);
+                    this.polygon = polygon;
+                    this.drawingHole = true;
+                    break;
+                }
+            }
+        }
+        OpenLayers.Handler.Path.prototype.addPoint.apply(this, arguments);
+    },
+
+    /**
+     * Method: getCurrentPointIndex
+     * 
+     * Returns:
+     * {Number} The index of the most recently drawn point.
+     */
+    getCurrentPointIndex: function() {
+        return this.line.geometry.components.length - 2;
+    },
+
+    /**
+     * Method: enforceTopology
+     * Simple topology enforcement for drawing interior rings.  Ensures vertices
+     *     of interior rings are contained by exterior ring.  Other topology 
+     *     rules are enforced in <finalizeInteriorRing> to allow drawing of 
+     *     rings that intersect only during the sketch (e.g. a "C" shaped ring
+     *     that nearly encloses another ring).
+     */
+    enforceTopology: function(event) {
+        var point = event.vertex;
+        var components = this.line.geometry.components;
+        // ensure that vertices of interior ring are contained by exterior ring
+        if (!this.polygon.geometry.intersects(point)) {
+            var last = components[components.length-3];
+            point.x = last.x;
+            point.y = last.y;
+        }
+    },
+
+    /**
+     * Method: finishGeometry
+     * Finish the geometry and send it back to the control.
+     */
+    finishGeometry: function() {
+        var index = this.line.geometry.components.length - 2;
+        this.line.geometry.removeComponent(this.line.geometry.components[index]);
+        this.removePoint();
+        this.finalize();
+    },
+
+    /**
+     * Method: finalizeInteriorRing
+     * Enforces that new ring has some area and doesn't contain vertices of any
+     *     other rings.
+     */
+    finalizeInteriorRing: function() {
+        var ring = this.line.geometry;
+        // ensure that ring has some area
+        var modified = (ring.getArea() !== 0);
+        if (modified) {
+            // ensure that new ring doesn't intersect any other rings
+            var rings = this.polygon.geometry.components;
+            for (var i=rings.length-2; i>=0; --i) {
+                if (ring.intersects(rings[i])) {
+                    modified = false;
+                    break;
+                }
+            }
+            if (modified) {
+                // ensure that new ring doesn't contain any other rings
+                var target;
+                outer: for (var i=rings.length-2; i>0; --i) {
+                    var points = rings[i].components;
+                    for (var j=0, jj=points.length; j<jj; ++j) {
+                        if (ring.containsPoint(points[j])) {
+                            modified = false;
+                            break outer;
+                        }
+                    }
+                }
+            }
+        }
+        if (modified) {
+            if (this.polygon.state !== OpenLayers.State.INSERT) {
+                this.polygon.state = OpenLayers.State.UPDATE;
+            }
+        } else {
+            this.polygon.geometry.removeComponent(ring);
+        }
+        this.restoreFeature();
+        return false;
+    },
+
+    /**
+     * APIMethod: cancel
+     * Finish the geometry and call the "cancel" callback.
+     */
+    cancel: function() {
+        if (this.drawingHole) {
+            this.polygon.geometry.removeComponent(this.line.geometry);
+            this.restoreFeature(true);
+        }
+        return OpenLayers.Handler.Path.prototype.cancel.apply(this, arguments);
+    },
+    
+    /**
+     * Method: restoreFeature
+     * Move the feature from the sketch layer to the target layer.
+     *
+     * Properties: 
+     * cancel - {Boolean} Cancel drawing.  If falsey, the "sketchcomplete" event
+     *     will be fired.
+     */
+    restoreFeature: function(cancel) {
+        this.control.layer.events.unregister(
+            "sketchcomplete", this, this.finalizeInteriorRing
+        );
+        this.control.layer.events.unregister(
+            "sketchmodified", this, this.enforceTopology
+        );
+        this.layer.removeFeatures([this.polygon], {silent: true});
+        this.control.layer.addFeatures([this.polygon], {silent: true});
+        this.drawingHole = false;
+        if (!cancel) {
+            // Re-trigger "sketchcomplete" so other listeners can do their
+            // business.  While this is somewhat sloppy (if a listener is 
+            // registered with registerPriority - not common - between the start
+            // and end of a single ring drawing - very uncommon - it will be 
+            // called twice).
+            // TODO: In 3.0, collapse sketch handlers into geometry specific
+            // drawing controls.
+            this.control.layer.events.triggerEvent(
+                "sketchcomplete", {feature : this.polygon}
+            );
+        }
+    },
+
+    /**
      * Method: destroyFeature
      * Destroy temporary geometries
+     *
+     * Parameters:
+     * force - {Boolean} Destroy even if persist is true.
      */
-    destroyFeature: function() {
-        OpenLayers.Handler.Path.prototype.destroyFeature.apply(this);
+    destroyFeature: function(force) {
+        OpenLayers.Handler.Path.prototype.destroyFeature.call(
+            this, force);
         this.polygon = null;
     },
 
@@ -121,24 +304,5 @@ OpenLayers.Handler.Polygon = OpenLayers.Class(OpenLayers.Handler.Path, {
         return geometry;
     },
 
-    /**
-     * Method: dblclick
-     * Handle double-clicks.  Finish the geometry and send it back
-     * to the control.
-     * 
-     * Parameters:
-     * evt - {Event} 
-     */
-    dblclick: function(evt) {
-        if(!this.freehandMode(evt)) {
-            // remove the penultimate point
-            var index = this.line.geometry.components.length - 2;
-            this.line.geometry.removeComponent(this.line.geometry.components[index]);
-            this.removePoint();
-            this.finalize();
-        }
-        return false;
-    },
-
     CLASS_NAME: "OpenLayers.Handler.Polygon"
 });
diff --git a/lib/OpenLayers/Handler/RegularPolygon.js b/lib/OpenLayers/Handler/RegularPolygon.js
index e5b248a..3627497 100644
--- a/lib/OpenLayers/Handler/RegularPolygon.js
+++ b/lib/OpenLayers/Handler/RegularPolygon.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -16,7 +16,7 @@
  *     instance with the <OpenLayers.Handler.RegularPolygon> constructor.
  * 
  * Inherits from:
- *  - <OpenLayers.Handler>
+ *  - <OpenLayers.Handler.Drag>
  */
 OpenLayers.Handler.RegularPolygon = OpenLayers.Class(OpenLayers.Handler.Drag, {
     
@@ -141,7 +141,7 @@ OpenLayers.Handler.RegularPolygon = OpenLayers.Class(OpenLayers.Handler.Drag, {
             this.style = OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'], {});
         }
 
-        OpenLayers.Handler.prototype.initialize.apply(this,
+        OpenLayers.Handler.Drag.prototype.initialize.apply(this,
                                                 [control, callbacks, options]);
         this.options = (options) ? options : {};
     },
@@ -166,7 +166,7 @@ OpenLayers.Handler.RegularPolygon = OpenLayers.Class(OpenLayers.Handler.Drag, {
      */
     activate: function() {
         var activated = false;
-        if(OpenLayers.Handler.prototype.activate.apply(this, arguments)) {
+        if(OpenLayers.Handler.Drag.prototype.activate.apply(this, arguments)) {
             // create temporary vector layer for rendering geometry sketch
             var options = OpenLayers.Util.extend({
                 displayInLayerSwitcher: false,
diff --git a/lib/OpenLayers/Icon.js b/lib/OpenLayers/Icon.js
index 0977ba6..c5d4d44 100644
--- a/lib/OpenLayers/Icon.js
+++ b/lib/OpenLayers/Icon.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Class: OpenLayers.Icon
  * 
  * The icon represents a graphical icon on the screen.  Typically used in
diff --git a/lib/OpenLayers/Kinetic.js b/lib/OpenLayers/Kinetic.js
new file mode 100644
index 0000000..7b6a3e7
--- /dev/null
+++ b/lib/OpenLayers/Kinetic.js
@@ -0,0 +1,183 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+OpenLayers.Kinetic = OpenLayers.Class({
+
+    /**
+     * Property: threshold
+     * In most cases changing the threshold isn't needed.
+     * In px/ms, default to 0.
+     */
+    threshold: 0,
+
+    /**
+     * Property: interval
+     * {Integer} Interval in milliseconds between 2 steps in the "kinetic
+     *     dragging". Defaults to 10 milliseconds.
+     */
+    interval: 10,
+
+    /**
+     * Property: deceleration
+     * {Float} the deseleration in px/ms², default to 0.0035.
+     */
+    deceleration: 0.0035,
+
+    /**
+     * Property: nbPoints
+     * {Integer} the number of points we use to calculate the kinetic
+     * initial values.
+     */
+    nbPoints: 100,
+
+    /**
+     * Property: delay
+     * {Float} time to consider to calculate the kinetic initial values.
+     * In ms, default to 200.
+     */
+    delay: 200,
+
+    /**
+     * Property: points
+     * List of points use to calculate the kinetic initial values.
+     */
+    points: undefined,
+
+    /**
+     * Property: timerId
+     * ID of the timer.
+     */
+    timerId: undefined,
+
+    /**
+     * Constructor: OpenLayers.Kinetic
+     *
+     * Parameters:
+     * options - {Object}
+     */
+    initialize: function(options) {
+        OpenLayers.Util.extend(this, options);
+    },
+
+    /**
+     * Method: begin
+     * Begins the dragging.
+     */
+    begin: function() {
+        clearInterval(this.timerId);
+        this.timerId = undefined;
+        this.points = [];
+    },
+
+    /**
+     * Method: update
+     * Updates during the dragging.
+     *
+     * Parameters:
+     * xy - {<OpenLayers.Pixel>} The new position.
+     */
+    update: function(xy) {
+        this.points.unshift({xy: xy, tick: new Date().getTime()});
+        if (this.points.length > this.nbPoints) {
+            this.points.pop();
+        }
+    },
+
+    /**
+     * Method: end
+     * Ends the dragging, start the kinetic.
+     *
+     * Parameters:
+     * xy - {<OpenLayers.Pixel>} The last position.
+     *
+     * Returns:
+     * {Object} An object with two properties: "speed", and "theta". The
+     *     "speed" and "theta" values are to be passed to the move 
+     *     function when starting the animation.
+     */
+    end: function(xy) {
+        var last, now = new Date().getTime();
+        for (var i = 0, l = this.points.length, point; i < l; i++) {
+            point = this.points[i];
+            if (now - point.tick > this.delay) {
+                break;
+            }
+            last = point;
+        }
+        if (!last) {
+            return;
+        }
+        var time = new Date().getTime() - last.tick;
+        var dist = Math.sqrt(Math.pow(xy.x - last.xy.x, 2) +
+                             Math.pow(xy.y - last.xy.y, 2));
+        var speed = dist / time;
+        if (speed == 0 || speed < this.threshold) {
+            return;
+        }
+        var theta = Math.asin((xy.y - last.xy.y) / dist);
+        if (last.xy.x <= xy.x) {
+            theta = Math.PI - theta;
+        }
+        return {speed: speed, theta: theta};
+    },
+
+    /**
+     * Method: move
+     * Launch the kinetic move pan.
+     *
+     * Parameters:
+     * info - {Object} An object with two properties, "speed", and "theta".
+     *     These values are those returned from the "end" call.
+     * callback - {Function} Function called on every step of the animation,
+     *     receives x, y (values to pan), end (is the last point).
+     */
+    move: function(info, callback) {
+        var v0 = info.speed;
+        var fx = Math.cos(info.theta);
+        var fy = -Math.sin(info.theta);
+
+        var time = 0;
+        var initialTime = new Date().getTime();
+
+        var lastX = 0;
+        var lastY = 0;
+
+        var timerCallback = function() {
+            if (this.timerId == null) {
+                return;
+            }
+
+            time += this.interval;
+            var realTime = new Date().getTime() - initialTime;
+            var t = (time + realTime) / 2.0;
+
+            var p = (-this.deceleration * Math.pow(t, 2)) / 2.0 + v0 * t;
+            var x = p * fx;
+            var y = p * fy;
+
+            var args = {};
+            args.end = false;
+            var v = -this.deceleration * t + v0;
+
+            if (v <= 0) {
+                clearInterval(this.timerId);
+                this.timerId = null;
+                args.end = true;
+            }
+
+            args.x = x - lastX;
+            args.y = y - lastY;
+            lastX = x;
+            lastY = y;
+            callback(args.x, args.y, args.end);
+        };
+
+        this.timerId = window.setInterval(
+            OpenLayers.Function.bind(timerCallback, this),
+            this.interval);
+    },
+
+    CLASS_NAME: "OpenLayers.Kinetic"
+});
diff --git a/lib/OpenLayers/Lang.js b/lib/OpenLayers/Lang.js
index 03738bb..82230e0 100644
--- a/lib/OpenLayers/Lang.js
+++ b/lib/OpenLayers/Lang.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes.js
  * @requires OpenLayers/Console.js
  */
 
@@ -58,7 +59,7 @@ OpenLayers.Lang = {
     setCode: function(code) {
         var lang;
         if(!code) {
-            code = (OpenLayers.Util.getBrowserName() == "msie") ?
+            code = (OpenLayers.BROWSER_NAME == "msie") ?
                 navigator.userLanguage : navigator.language;
         }
         var parts = code.split('-');
@@ -101,7 +102,7 @@ OpenLayers.Lang = {
      */
     translate: function(key, context) {
         var dictionary = OpenLayers.Lang[OpenLayers.Lang.getCode()];
-        var message = dictionary[key];
+        var message = dictionary && dictionary[key];
         if(!message) {
             // Message not found, fall back to message key
             message = key;
diff --git a/lib/OpenLayers/Lang/ar.js b/lib/OpenLayers/Lang/ar.js
index 17d9bef..6317d06 100644
--- a/lib/OpenLayers/Lang/ar.js
+++ b/lib/OpenLayers/Lang/ar.js
@@ -15,9 +15,9 @@
  */
 OpenLayers.Lang["ar"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "وصلة دائمة",
+    'Permalink': "وصلة دائمة",
 
-    'baseLayer': "الطبقة الاساسية",
+    'Base Layer': "الطبقة الاساسية",
 
     'readNotImplemented': "القراءة غير محققة.",
 
@@ -25,7 +25,7 @@ OpenLayers.Lang["ar"] = OpenLayers.Util.applyDefaults({
 
     'errorLoadingGML': "خطأ عند تحميل الملف جي ام ال ${url}",
 
-    'scale': "النسبة = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "النسبة = 1 : ${scaleDenom}",
 
     'W': "غ",
 
diff --git a/lib/OpenLayers/Lang/be-tarask.js b/lib/OpenLayers/Lang/be-tarask.js
index f0db8a0..03e5a63 100644
--- a/lib/OpenLayers/Lang/be-tarask.js
+++ b/lib/OpenLayers/Lang/be-tarask.js
@@ -17,13 +17,11 @@ OpenLayers.Lang["be-tarask"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Неапрацаваны вынік запыту ${statusText}",
 
-    'permalink': "Сталая спасылка",
+    'Permalink': "Сталая спасылка",
 
-    'overlays': "Слаі",
+    'Overlays': "Слаі",
 
-    'baseLayer': "Базавы слой",
-
-    'sameProjection': "Аглядная мапа працуе толькі калі яна мае тую ж праекцыю, што і асноўная мапа",
+    'Base Layer': "Базавы слой",
 
     'readNotImplemented': "Функцыянальнасьць чытаньня ня створаная.",
 
@@ -49,7 +47,7 @@ OpenLayers.Lang["be-tarask"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Немагчыма загрузіць слой ${layerType}.\x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3eХутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі ${layerLib} ня быў слушна ўключаны.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",
 
-    'scale': "Маштаб = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Маштаб = 1 : ${scaleDenom}",
 
     'W': "З",
 
@@ -73,8 +71,6 @@ OpenLayers.Lang["be-tarask"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Тып геамэтрыі не падтрымліваецца: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition failed: верагодна элемэнт з ідэнтыфікатарам ${elemId} займае няслушнае месца.",
-
     'filterEvaluateNotImplemented': "evaluate не рэалізаваны для гэтага тыпу фільтру."
 
 });
diff --git a/lib/OpenLayers/Lang/bg.js b/lib/OpenLayers/Lang/bg.js
index 97a1ae6..17044d8 100644
--- a/lib/OpenLayers/Lang/bg.js
+++ b/lib/OpenLayers/Lang/bg.js
@@ -14,13 +14,13 @@
  */
 OpenLayers.Lang["bg"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "Постоянна препратка",
+    'Permalink': "Постоянна препратка",
 
-    'baseLayer': "Основен слой",
+    'Base Layer': "Основен слой",
 
     'errorLoadingGML': "Грешка при зареждане на GML файл ${url}",
 
-    'scale': "Мащаб = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Мащаб = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Опитахте да добавите слой ${layerName} в картата, но той вече е добавен",
 
diff --git a/lib/OpenLayers/Lang/br.js b/lib/OpenLayers/Lang/br.js
index 59feb34..a781de0 100644
--- a/lib/OpenLayers/Lang/br.js
+++ b/lib/OpenLayers/Lang/br.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["br"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Distro evel reked anveret ${statusText}",
 
-    'permalink': "Peurliamm",
+    'Permalink': "Peurliamm",
 
-    'overlays': "Gwiskadoù",
+    'Overlays': "Gwiskadoù",
 
-    'baseLayer': "Gwiskad diazez",
-
-    'sameProjection': "Ne\'z ar gartenn lec\'hiañ en-dro nemet pa vez heñvel ar banndres anezhi ha hini ar gartenn bennañ",
+    'Base Layer': "Gwiskad diazez",
 
     'readNotImplemented': "N\'eo ket emplementet al lenn.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["br"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "N\'haller ket kargañ ar gwiskad ${layerType} ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het mat al levraoueg ${layerLib}.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit gouzout penaos reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",
 
-    'scale': "Skeul = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Skeul = 1 : ${scaleDenom}",
 
     'W': "K",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["br"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Seurt mentoniezh anskoret : ${geomType}",
 
-    'pagePositionFailed': "C\'hwitet eo OpenLayers.Util.pagePosition : marteze emañ lec\'hiet fall an elfenn id ${elemId}.",
-
     'filterEvaluateNotImplemented': "N\'eo ket bet emplementet ar priziañ evit seurt siloù c\'hoazh."
 
 });
diff --git a/lib/OpenLayers/Lang/ca.js b/lib/OpenLayers/Lang/ca.js
index 96a4794..5bb2b24 100644
--- a/lib/OpenLayers/Lang/ca.js
+++ b/lib/OpenLayers/Lang/ca.js
@@ -12,14 +12,11 @@ OpenLayers.Lang.ca = {
 
     'unhandledRequest': "Resposta a petició no gestionada ${statusText}",
 
-    'permalink': "Enllaç permanent",
+    'Permalink': "Enllaç permanent",
 
-    'overlays': "Capes addicionals",
+    'Overlays': "Capes addicionals",
 
-    'baseLayer': "Capa Base",
-
-    'sameProjection':
-        "El mapa de referència només funciona si té la mateixa projecció que el mapa principal",
+    'Base Layer': "Capa Base",
 
     'readNotImplemented': "Lectura no implementada.",
 
@@ -76,14 +73,14 @@ OpenLayers.Lang.ca = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>féu clic aquí</a>",
 
-    'scale': "Escala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Escala = 1 : ${scaleDenom}",
 
     //labels for the graticule control
     'W': 'O',
     'E': 'E',
     'N': 'N',
     'S': 'S',
-    'graticule': 'Retícula',    
+    'Graticule': 'Retícula',    
         
     // console message
     'layerAlreadyAdded':
@@ -116,10 +113,6 @@ OpenLayers.Lang.ca = {
     'unsupportedGeometryType': "Tipus de geometria no suportada: ${geomType}",
 
     // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition ha fallat: l'element amb id ${elemId} pot estar fora de lloc.",
-                    
-    // console message
     'filterEvaluateNotImplemented': "evaluate no està implementat per aquest tipus de filtre.",
 
     // **** end ****
diff --git a/lib/OpenLayers/Lang/cs-CZ.js b/lib/OpenLayers/Lang/cs-CZ.js
index 945e24c..52bf309 100644
--- a/lib/OpenLayers/Lang/cs-CZ.js
+++ b/lib/OpenLayers/Lang/cs-CZ.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["cs-CZ"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Nezpracovaná návratová hodnota ${statusText}",
 
-    'permalink': "Trvalý odkaz",
+    'Permalink': "Trvalý odkaz",
 
-    'overlays': "Překryvné vrstvy",
+    'Overlays': "Překryvné vrstvy",
 
-    'baseLayer': "Podkladové vrstvy",
-
-    'sameProjection': "Přehledka pracuje správně pouze tehdy, pokud je ve stejné projekci jako hlavní mapa",
+    'Base Layer': "Podkladové vrstvy",
 
     'readNotImplemented': "Read není implementováno.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["cs-CZ"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "The ${layerType} Layer was unable to load correctly.\x3cbr\x3e\x3cbr\x3eTo get rid of this message, select a new BaseLayer in the layer switcher in the upper-right corner.\x3cbr\x3e\x3cbr\x3eMost likely, this is because the ${layerLib} library script was either not correctly included.\x3cbr\x3e\x3cbr\x3eDevelopers: For help getting this working correctly, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",
 
-    'scale': "Měřítko = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Měřítko = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Pokusili jste se přidat vrstvu: ${layerName} do mapy, ale tato vrstva je již v mapě přítomna.",
 
@@ -62,8 +60,6 @@ OpenLayers.Lang["cs-CZ"] = OpenLayers.Util.applyDefaults({
 
     'pixelAddError': "Pro přídavnou funkci musíte zadat obě souřadnice x a y.",
 
-    'unsupportedGeometryType': "Nepodporovaný typ geometrie: ${geomType}",
-
-    'pagePositionFailed': "OpenLayers.Util.pagePosition selhalo: element s  id ${elemId} je asi umístěn chybně."
+    'unsupportedGeometryType': "Nepodporovaný typ geometrie: ${geomType}"
 
 });
diff --git a/lib/OpenLayers/Lang/da-DK.js b/lib/OpenLayers/Lang/da-DK.js
index 680c212..6e04f89 100644
--- a/lib/OpenLayers/Lang/da-DK.js
+++ b/lib/OpenLayers/Lang/da-DK.js
@@ -12,14 +12,11 @@ OpenLayers.Lang['da-DK'] = {
 
     'unhandledRequest': "En ikke håndteret forespørgsel returnerede ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Kortlag",
+    'Overlays': "Kortlag",
 
-    'baseLayer': "Baggrundslag",
-
-    'sameProjection':
-        "Oversigtskortet fungerer kun når det har samme projektion som hovedkortet",
+    'Base Layer': "Baggrundslag",
 
     'readNotImplemented': "Læsning er ikke implementeret.",
 
@@ -78,7 +75,7 @@ OpenLayers.Lang['da-DK'] = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>klik her</a>",
 
-    'scale': "Målforhold = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Målforhold = 1 : ${scaleDenom}",
 
     // console message
     'layerAlreadyAdded':
@@ -111,9 +108,5 @@ OpenLayers.Lang['da-DK'] = {
     'unsupportedGeometryType': "Geometri typen: ${geomType} er ikke understøttet.",
 
     // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition fejlede: elementet med id ${elemId} er måske placeret forkert.",
-
-    // console message
     'filterEvaluateNotImplemented': "evaluering er ikke implementeret for denne filter type."
 };
diff --git a/lib/OpenLayers/Lang/de.js b/lib/OpenLayers/Lang/de.js
index dc81557..e83cadf 100644
--- a/lib/OpenLayers/Lang/de.js
+++ b/lib/OpenLayers/Lang/de.js
@@ -18,13 +18,11 @@ OpenLayers.Lang["de"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Unbehandelte Anfragerückmeldung ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Overlays",
+    'Overlays': "Overlays",
 
-    'baseLayer': "Grundkarte",
-
-    'sameProjection': "Die Übersichtskarte funktioniert nur, wenn sie dieselbe Projektion wie die Hauptkarte verwendet",
+    'Base Layer': "Grundkarte",
 
     'readNotImplemented': "Lesen nicht implementiert.",
 
@@ -50,7 +48,7 @@ OpenLayers.Lang["de"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Der ${layerType}-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der \'${layerLib}\'-Bibliothek nicht eingebunden wurde.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ed [...]
 
-    'scale': "Maßstab = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Maßstab = 1 : ${scaleDenom}",
 
     'W': "W",
 
@@ -74,8 +72,6 @@ OpenLayers.Lang["de"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Nicht unterstützter Geometrie-Typ: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition fehlgeschlagen: Element mit Id ${elemId} möglicherweise falsch platziert.",
-
     'filterEvaluateNotImplemented': "„evaluate“ ist für diesen Filter-Typ nicht implementiert."
 
 });
diff --git a/lib/OpenLayers/Lang/el.js b/lib/OpenLayers/Lang/el.js
index deedf7f..0b3d067 100644
--- a/lib/OpenLayers/Lang/el.js
+++ b/lib/OpenLayers/Lang/el.js
@@ -14,6 +14,6 @@
  */
 OpenLayers.Lang["el"] = OpenLayers.Util.applyDefaults({
 
-    'scale': "Κλίμακα ~ 1 : ${scaleDenom}"
+    'Scale = 1 : ${scaleDenom}': "Κλίμακα ~ 1 : ${scaleDenom}"
 
 });
diff --git a/lib/OpenLayers/Lang/en.js b/lib/OpenLayers/Lang/en.js
index f687d2e..b1ebf15 100644
--- a/lib/OpenLayers/Lang/en.js
+++ b/lib/OpenLayers/Lang/en.js
@@ -12,14 +12,11 @@ OpenLayers.Lang.en = {
 
     'unhandledRequest': "Unhandled request return ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Overlays",
+    'Overlays': "Overlays",
 
-    'baseLayer': "Base Layer",
-
-    'sameProjection':
-        "The overview map only works when it is in the same projection as the main map",
+    'Base Layer': "Base Layer",
 
     'readNotImplemented': "Read not implemented.",
 
@@ -76,14 +73,14 @@ OpenLayers.Lang.en = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>click here</a>",
 
-    'scale': "Scale = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Scale = 1 : ${scaleDenom}",
     
     //labels for the graticule control
     'W': 'W',
     'E': 'E',
     'N': 'N',
     'S': 'S',
-    'graticule': 'Graticule',
+    'Graticule': 'Graticule',
 
     // console message
     'layerAlreadyAdded':
@@ -116,12 +113,11 @@ OpenLayers.Lang.en = {
     'unsupportedGeometryType': "Unsupported geometry type: ${geomType}",
 
     // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",
-
-    // console message
     'filterEvaluateNotImplemented': "evaluate is not implemented for this filter type.",
 
+    'proxyNeeded': "You probably need to set OpenLayers.ProxyHost to access ${url}."+
+        "See http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#ProxyHost",
+
     // **** end ****
     'end': ''
     
diff --git a/lib/OpenLayers/Lang/es.js b/lib/OpenLayers/Lang/es.js
index ff6d3dc..47c2af2 100644
--- a/lib/OpenLayers/Lang/es.js
+++ b/lib/OpenLayers/Lang/es.js
@@ -12,14 +12,11 @@ OpenLayers.Lang.es = {
 
     'unhandledRequest': "Respuesta a petición no gestionada ${statusText}",
 
-    'permalink': "Enlace permanente",
+    'Permalink': "Enlace permanente",
 
-    'overlays': "Capas superpuestas",
+    'Overlays': "Capas superpuestas",
 
-    'baseLayer': "Capa Base",
-
-    'sameProjection':
-        "El mapa de vista general sólo funciona si está en la misma proyección que el mapa principal",
+    'Base Layer': "Capa Base",
 
     'readNotImplemented': "Lectura no implementada.",
 
@@ -77,14 +74,14 @@ OpenLayers.Lang.es = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>haga clic aquí</a>",
 
-    'scale': "Escala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Escala = 1 : ${scaleDenom}",
 
     //labels for the graticule control
     'W': 'O',
     'E': 'E',
     'N': 'N',
     'S': 'S',
-    'graticule': 'Retícula',
+    'Graticule': 'Retícula',
     
     // console message
     'layerAlreadyAdded':
@@ -117,10 +114,6 @@ OpenLayers.Lang.es = {
     'unsupportedGeometryType': "Tipo de geometría no soportada: ${geomType}",
 
     // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition falló: el elemento con id ${elemId} puede haberse colocado de manera errónea.",
-                    
-    // console message
     'filterEvaluateNotImplemented': "evaluate no está implementado para este tipo de filtro.",
 
     // **** end ****
diff --git a/lib/OpenLayers/Lang/fi.js b/lib/OpenLayers/Lang/fi.js
index 1cfd626..078508e 100644
--- a/lib/OpenLayers/Lang/fi.js
+++ b/lib/OpenLayers/Lang/fi.js
@@ -15,13 +15,11 @@
  */
 OpenLayers.Lang["fi"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "Ikilinkki",
+    'Permalink': "Ikilinkki",
 
-    'overlays': "Kerrokset",
+    'Overlays': "Kerrokset",
 
-    'baseLayer': "Peruskerros",
-
-    'sameProjection': "Yleiskuvakarttaa voi käyttää vain, kun sillä on sama projektio kuin pääkartalla.",
+    'Base Layer': "Peruskerros",
 
     'W': "L",
 
diff --git a/lib/OpenLayers/Lang/fr.js b/lib/OpenLayers/Lang/fr.js
index a3a66cc..d197206 100644
--- a/lib/OpenLayers/Lang/fr.js
+++ b/lib/OpenLayers/Lang/fr.js
@@ -17,13 +17,11 @@ OpenLayers.Lang["fr"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Requête non gérée, retournant ${statusText}",
 
-    'permalink': "Permalien",
+    'Permalink': "Permalien",
 
-    'overlays': "Calques",
+    'Overlays': "Calques",
 
-    'baseLayer': "Calque de base",
-
-    'sameProjection': "La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",
+    'Base Layer': "Calque de base",
 
     'readNotImplemented': "Lecture non implémentée.",
 
@@ -49,7 +47,7 @@ OpenLayers.Lang["fr"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "La couche ${layerType} n\'est pas en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie ${layerLib}.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",
 
-    'scale': "Echelle ~ 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Echelle ~ 1 : ${scaleDenom}",
 
     'W': "O",
 
@@ -73,8 +71,7 @@ OpenLayers.Lang["fr"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Type de géométrie non supporté : ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition a échoué: l\'élément d\'id ${elemId} pourrait être mal positionné.",
-
-    'filterEvaluateNotImplemented': "évaluer n\'a pas encore été implémenté pour ce type de filtre."
+    'filterEvaluateNotImplemented': "évaluer n\'a pas encore été implémenté pour ce type de filtre.",
 
+    'proxyNeeded': "Vous avez très probablement besoin de renseigner OpenLayers.ProxyHost pour accéder à ${url}. Voir http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#ProxyHost"
 });
diff --git a/lib/OpenLayers/Lang/fur.js b/lib/OpenLayers/Lang/fur.js
index b274986..4e99f32 100644
--- a/lib/OpenLayers/Lang/fur.js
+++ b/lib/OpenLayers/Lang/fur.js
@@ -14,15 +14,15 @@
  */
 OpenLayers.Lang["fur"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "Leam Permanent",
+    'Permalink': "Leam Permanent",
 
-    'overlays': "Livei parsore",
+    'Overlays': "Livei parsore",
 
-    'baseLayer': "Livel di base",
+    'Base Layer': "Livel di base",
 
     'browserNotSupported': "Il to sgarfadôr nol supuarte la renderizazion vetoriâl. Al moment a son supuartâts:\n${renderers}",
 
-    'scale': "Scjale = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Scjale = 1 : ${scaleDenom}",
 
     'W': "O",
 
diff --git a/lib/OpenLayers/Lang/gl.js b/lib/OpenLayers/Lang/gl.js
index 4d6ab29..ba09e24 100644
--- a/lib/OpenLayers/Lang/gl.js
+++ b/lib/OpenLayers/Lang/gl.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["gl"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Solicitude non xerada; a resposta foi: ${statusText}",
 
-    'permalink': "Ligazón permanente",
+    'Permalink': "Ligazón permanente",
 
-    'overlays': "Capas superpostas",
+    'Overlays': "Capas superpostas",
 
-    'baseLayer': "Capa base",
-
-    'sameProjection': "A vista xeral do mapa só funciona cando está na mesma proxección có mapa principal",
+    'Base Layer': "Capa base",
 
     'readNotImplemented': "Lectura non implementada.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["gl"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "A capa ${layerType} foi incapaz de cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría ${layerLib} non foi ben incluída.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eprem [...]
 
-    'scale': "Escala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Escala = 1 : ${scaleDenom}",
 
     'W': "O",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["gl"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Tipo xeométrico non soportado: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition fallou: o elemento con id ${elemId} pode non estar na súa posición.",
-
     'filterEvaluateNotImplemented': "avaliar non está implementado para este tipo de filtro."
 
 });
diff --git a/lib/OpenLayers/Lang/gsw.js b/lib/OpenLayers/Lang/gsw.js
index 68c052b..62f9d40 100644
--- a/lib/OpenLayers/Lang/gsw.js
+++ b/lib/OpenLayers/Lang/gsw.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["gsw"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Nit behandleti Aafrogsruckmäldig ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Iberlagerige",
+    'Overlays': "Iberlagerige",
 
-    'baseLayer': "Grundcharte",
-
-    'sameProjection': "D Ibersichts-Charte funktioniert nume, wänn si di glych Projäktion brucht wie d Hauptcharte",
+    'Base Layer': "Grundcharte",
 
     'readNotImplemented': "Läse nit implementiert.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["gsw"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Dr ${layerType}-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr \'${layerLib}\'-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vu Layer \x3ca href=\'http://trac.openlayers.org/wiki/ [...]
 
-    'scale': "Maßstab = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Maßstab = 1 : ${scaleDenom}",
 
     'W': "W",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["gsw"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Nit unterstitze Geometrii-Typ: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition fählgschlaa: Elemänt mit ID ${elemId} isch villicht falsch gsetzt.",
-
     'filterEvaluateNotImplemented': "evaluiere isch nit implemäntiert in däm Filtertyp."
 
 });
diff --git a/lib/OpenLayers/Lang/hr.js b/lib/OpenLayers/Lang/hr.js
index c3f2bd8..b763b44 100644
--- a/lib/OpenLayers/Lang/hr.js
+++ b/lib/OpenLayers/Lang/hr.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["hr"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Nepodržani zahtjev ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Overlays",
+    'Overlays': "Overlays",
 
-    'baseLayer': "Osnovna karta",
-
-    'sameProjection': "Pregledna karta radi jedino kao je u istoj projekciji kao i glava karta",
+    'Base Layer': "Osnovna karta",
 
     'readNotImplemented': "Čitanje nije implementirano.",
 
@@ -42,7 +40,7 @@ OpenLayers.Lang["hr"] = OpenLayers.Util.applyDefaults({
 
     'commitFailed': "WFS Transakcija: NEUSPJEŠNA ${response}",
 
-    'scale': "Mjerilo = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Mjerilo = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Pokušali ste dodati layer:  ${layerName} na kartu, ali je već dodan",
 
@@ -54,8 +52,6 @@ OpenLayers.Lang["hr"] = OpenLayers.Util.applyDefaults({
 
     'pixelAddError': "Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",
 
-    'unsupportedGeometryType': "Nepodržani tip geometrije: ${geomType}",
-
-    'pagePositionFailed': "OpenLayers.Util.pagePosition nije uspjelo: element sa id ${elemId} može biti krivo smješten."
+    'unsupportedGeometryType': "Nepodržani tip geometrije: ${geomType}"
 
 });
diff --git a/lib/OpenLayers/Lang/hsb.js b/lib/OpenLayers/Lang/hsb.js
index 5cbf48e..1534f01 100644
--- a/lib/OpenLayers/Lang/hsb.js
+++ b/lib/OpenLayers/Lang/hsb.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["hsb"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Wotmołwa njewobdźěłaneho naprašowanja ${statusText}",
 
-    'permalink': "Trajny wotkaz",
+    'Permalink': "Trajny wotkaz",
 
-    'overlays': "Naworštowanja",
+    'Overlays': "Naworštowanja",
 
-    'baseLayer': "Zakładna runina",
-
-    'sameProjection': "Přehladowa karta jenož funguje, hdyž je w samsnej projekciji kaž hłowna karta",
+    'Base Layer': "Zakładna runina",
 
     'readNotImplemented': "Čitanje njeimplementowane.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["hsb"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Woršta ${layerType} njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki ${layerLib} njebu korektnje zapřijaty.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",
 
-    'scale': "Měritko = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Měritko = 1 : ${scaleDenom}",
 
     'W': "Z",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["hsb"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Njepodpěrowany geometrijowy typ: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition je so njeporadźił: element z id ${elemId} bu snano wopak zaměstnjeny.",
-
     'filterEvaluateNotImplemented': "wuhódnoćenje njeje za tutón filtrowy typ implementowany."
 
 });
diff --git a/lib/OpenLayers/Lang/hu.js b/lib/OpenLayers/Lang/hu.js
index d7278a8..9e0ba11 100644
--- a/lib/OpenLayers/Lang/hu.js
+++ b/lib/OpenLayers/Lang/hu.js
@@ -17,13 +17,11 @@ OpenLayers.Lang["hu"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Nem kezelt kérés visszatérése ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Rávetítések",
+    'Overlays': "Rávetítések",
 
-    'baseLayer': "Alapréteg",
-
-    'sameProjection': "Az áttekintő térkép csak abban az esetben működik, ha ugyanazon a vetületen van, mint a fő térkép.",
+    'Base Layer': "Alapréteg",
 
     'readNotImplemented': "Olvasás nincs végrehajtva.",
 
@@ -49,7 +47,7 @@ OpenLayers.Lang["hu"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "A(z) ${layerType} fólia nem töltődött be helyesen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a(z) ${layerLib} könyvtár parancsfájlja helytelen.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib} [...]
 
-    'scale': "Lépték = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Lépték = 1 : ${scaleDenom}",
 
     'W': "Ny",
 
@@ -73,8 +71,6 @@ OpenLayers.Lang["hu"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Nem támogatott geometriatípus: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition sikertelen: lehetséges, hogy a(z) ${elemId} azonosítójú elem téves helyre került.",
-
     'filterEvaluateNotImplemented': "ennél a szűrőtípusnál kiértékelés nem hajtódik végre."
 
 });
diff --git a/lib/OpenLayers/Lang/ia.js b/lib/OpenLayers/Lang/ia.js
index 4fe9a03..ec9012b 100644
--- a/lib/OpenLayers/Lang/ia.js
+++ b/lib/OpenLayers/Lang/ia.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["ia"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Le responsa a un requesta non esseva maneate: ${statusText}",
 
-    'permalink': "Permaligamine",
+    'Permalink': "Permaligamine",
 
-    'overlays': "Superpositiones",
+    'Overlays': "Superpositiones",
 
-    'baseLayer': "Strato de base",
-
-    'sameProjection': "Le mini-carta functiona solmente si illo es in le mesme projection que le carta principal",
+    'Base Layer': "Strato de base",
 
     'readNotImplemented': "Lectura non implementate.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["ia"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Le strato ${layerType} non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de ${layerLib} non esseva correctemente includite.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclicca hic [...]
 
-    'scale': "Scala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Scala = 1 : ${scaleDenom}",
 
     'W': "W",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["ia"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Typo de geometria non supportate: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition falleva: le elemento con id ${elemId} pote esser mal placiate.",
-
     'filterEvaluateNotImplemented': "\"evaluate\" non es implementate pro iste typo de filtro."
 
 });
diff --git a/lib/OpenLayers/Lang/id.js b/lib/OpenLayers/Lang/id.js
index 3d714c9..c460838 100644
--- a/lib/OpenLayers/Lang/id.js
+++ b/lib/OpenLayers/Lang/id.js
@@ -17,13 +17,11 @@ OpenLayers.Lang["id"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Permintaan yang tak tertangani menghasilkan ${statusText}",
 
-    'permalink': "Pranala permanen",
+    'Permalink': "Pranala permanen",
 
-    'overlays': "Hamparan",
+    'Overlays': "Hamparan",
 
-    'baseLayer': "Lapisan Dasar",
-
-    'sameProjection': "Peta tinjauan hanya bekerja bila dalam proyeksi yang sama dengan peta utama",
+    'Base Layer': "Lapisan Dasar",
 
     'readNotImplemented': "Membaca tidak diterapkan.",
 
@@ -49,7 +47,7 @@ OpenLayers.Lang["id"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Lapisan ${layerType} tidak dapat dimuat dengan benar.\x3cbr\x3e\x3cbr\x3eUntuk menghilangkan pesan ini, pilih suatu BaseLayer baru melalui penukar lapisan (layer switcher) di ujung kanan atas.\x3cbr\x3e\x3cbr\x3eKemungkinan besar ini karena pustaka skrip Google Maps tidak disertakan dengan benar.\x3cbr\x3e\x3cbr\x3ePengembang: Untuk bantuan mengatasi masalah ini, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik di sini\x3c/a\x3e",
 
-    'scale': "Sekala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Sekala = 1 : ${scaleDenom}",
 
     'W': "B",
 
@@ -73,8 +71,6 @@ OpenLayers.Lang["id"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Tipe geometri tak didukung: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition gagal: elemen dengan id ${elemId} mungkin salah tempat.",
-
     'filterEvaluateNotImplemented': "evaluasi tidak tersedia untuk tipe filter ini."
 
 });
diff --git a/lib/OpenLayers/Lang/io.js b/lib/OpenLayers/Lang/io.js
index 773a52f..6f2263a 100644
--- a/lib/OpenLayers/Lang/io.js
+++ b/lib/OpenLayers/Lang/io.js
@@ -14,6 +14,6 @@
  */
 OpenLayers.Lang["io"] = OpenLayers.Util.applyDefaults({
 
-    'scale': "Skalo = 1 : ${scaleDenom}"
+    'Scale = 1 : ${scaleDenom}': "Skalo = 1 : ${scaleDenom}"
 
 });
diff --git a/lib/OpenLayers/Lang/is.js b/lib/OpenLayers/Lang/is.js
index 6dffaea..61b8a92 100644
--- a/lib/OpenLayers/Lang/is.js
+++ b/lib/OpenLayers/Lang/is.js
@@ -14,13 +14,11 @@
  */
 OpenLayers.Lang["is"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "Varanlegur tengill",
+    'Permalink': "Varanlegur tengill",
 
-    'overlays': "Þekjur",
+    'Overlays': "Þekjur",
 
-    'baseLayer': "Grunnlag",
-
-    'sameProjection': "Yfirlitskortið virkar aðeins ef það er í sömu vörpun og aðalkortið",
+    'Base Layer': "Grunnlag",
 
     'readNotImplemented': "Skrifun er óútfærð.",
 
@@ -28,7 +26,7 @@ OpenLayers.Lang["is"] = OpenLayers.Util.applyDefaults({
 
     'errorLoadingGML': "Villa kom upp við að hlaða inn GML skránni ${url}",
 
-    'scale': "Skali = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Skali = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Þú reyndir að bæta laginu ${layerName} á kortið en það er þegar búið að bæta því við",
 
diff --git a/lib/OpenLayers/Lang/it.js b/lib/OpenLayers/Lang/it.js
index 201d4e0..1a79897 100644
--- a/lib/OpenLayers/Lang/it.js
+++ b/lib/OpenLayers/Lang/it.js
@@ -12,14 +12,11 @@ OpenLayers.Lang.it = {
 
     'unhandledRequest': "Codice di ritorno della richiesta ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Overlays",
+    'Overlays': "Overlays",
 
-    'baseLayer': "Livello base",
-
-    'sameProjection':
-        "La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",
+    'Base Layer': "Livello base",
 
     'readNotImplemented': "Lettura non implementata.",
 
@@ -76,7 +73,7 @@ OpenLayers.Lang.it = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>clicca qui</a>",
 
-    'scale': "Scala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Scala = 1 : ${scaleDenom}",
 
     // console message
     'layerAlreadyAdded':
@@ -108,9 +105,5 @@ OpenLayers.Lang.it = {
     // console message
     'unsupportedGeometryType': "Tipo di geometria non supportata: ${geomType}",
 
-    // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",
-                    
     'end': ''
 };
diff --git a/lib/OpenLayers/Lang/ja.js b/lib/OpenLayers/Lang/ja.js
index 590422a..a917f0d 100644
--- a/lib/OpenLayers/Lang/ja.js
+++ b/lib/OpenLayers/Lang/ja.js
@@ -17,13 +17,11 @@ OpenLayers.Lang["ja"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "未処理の要求は ${statusText} を返します",
 
-    'permalink': "パーマリンク",
+    'Permalink': "パーマリンク",
 
-    'overlays': "オーバーレイ",
+    'Overlays': "オーバーレイ",
 
-    'baseLayer': "基底レイヤー",
-
-    'sameProjection': "概観地図はメインの地図と同じ投影法をとる場合のみ機能します",
+    'Base Layer': "基底レイヤー",
 
     'readNotImplemented': "読み込みは実装されていません。",
 
@@ -49,7 +47,7 @@ OpenLayers.Lang["ja"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "${layerType} レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは ${layerLib} ライブラリのスクリプトが正しく組み込まれていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",
 
-    'scale': "縮尺 = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "縮尺 = 1 : ${scaleDenom}",
 
     'W': "西",
 
@@ -73,8 +71,6 @@ OpenLayers.Lang["ja"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "未対応の形状型: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition が失敗しました: id ${elemId} をもつ要素が誤った位置にある可能性があります。",
-
     'filterEvaluateNotImplemented': "このフィルター型について evaluate は実装されていません。"
 
 });
diff --git a/lib/OpenLayers/Lang/km.js b/lib/OpenLayers/Lang/km.js
index a8ebd0d..70907f5 100644
--- a/lib/OpenLayers/Lang/km.js
+++ b/lib/OpenLayers/Lang/km.js
@@ -14,12 +14,12 @@
  */
 OpenLayers.Lang["km"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "តំណភ្ជាប់អចិន្ត្រៃយ៍",
+    'Permalink': "តំណភ្ជាប់អចិន្ត្រៃយ៍",
 
-    'baseLayer': "ស្រទាប់បាត​",
+    'Base Layer': "ស្រទាប់បាត​",
 
     'errorLoadingGML': "កំហុសកំឡុងពេលផ្ទុកឯកសារ GML ${url}",
 
-    'scale': "មាត្រដ្ឋាន = ១ ៖ ${scaleDenom}"
+    'Scale = 1 : ${scaleDenom}': "មាត្រដ្ឋាន = ១ ៖ ${scaleDenom}"
 
 });
diff --git a/lib/OpenLayers/Lang/ksh.js b/lib/OpenLayers/Lang/ksh.js
index 45e504b..42f9a1c 100644
--- a/lib/OpenLayers/Lang/ksh.js
+++ b/lib/OpenLayers/Lang/ksh.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["ksh"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Met dä Antwoot op en Aanfrooch ham_mer nix aanjefange: ${statusText}",
 
-    'permalink': "Lengk op Duuer",
+    'Permalink': "Lengk op Duuer",
 
-    'overlays': "Drövver jelaat",
+    'Overlays': "Drövver jelaat",
 
-    'baseLayer': "Jrund-Nivoh",
-
-    'sameProjection': "De Övverseeschs_Kaat deiht et bloß, wann se de sälve Projäxjuhn bruche deiht, wi de Houp_Kaat",
+    'Base Layer': "Jrund-Nivoh",
 
     'readNotImplemented': "„\x3ccode lang=\"en\"\x3eread\x3c/code\x3e“ is em Projramm nit fürjesinn.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["ksh"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Dat Nivvoh \x3ccode\x3e${layerType}\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhkre, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat, wiel dat Skrepp \x3ccode\x3e${layerLib}\x3c/code\x3e nit reschtesch enjebonge wood.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_Et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/${layerLib}\" target=\"_bla [...]
 
-    'scale': "Mohßshtaab = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Mohßshtaab = 1 : ${scaleDenom}",
 
     'W': "W",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["ksh"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "De Zoot Jommetrii dom_mer nit ongershtöze: \x3ccode\x3e${geomType}\x3c/code\x3e",
 
-    'pagePositionFailed': "\x3ccode lang=\"en\"\x3eOpenLayers.Util.pagePosition\x3c/code\x3e es donevve jejange: dat Denge met dä Kännong \x3ccode\x3e${elemId}\x3c/code\x3e künnt am verkeehte Plaz sin.",
-
     'filterEvaluateNotImplemented': "„\x3ccode lang=\"en\"\x3eevaluate\x3c/code\x3e“ es för di Zoot Fellter nit enjereschdt."
 
 });
diff --git a/lib/OpenLayers/Lang/lt.js b/lib/OpenLayers/Lang/lt.js
new file mode 100644
index 0000000..a240b55
--- /dev/null
+++ b/lib/OpenLayers/Lang/lt.js
@@ -0,0 +1,75 @@
+/**
+ * @requires OpenLayers/Lang.js
+ */
+
+/**
+ * Namespace: OpenLayers.Lang["lt"]
+ * Dictionary for Lithuanian.  Keys for entries are used in calls to
+ *     <OpenLayers.Lang.translate>.  Entry bodies are normal strings or
+ *     strings formatted for use with <OpenLayers.String.format> calls.
+ */
+OpenLayers.Lang['lt'] = OpenLayers.Util.applyDefaults({
+
+    'unhandledRequest': "Neapdorota užklausa gražino ${statusText}",
+
+    'Permalink': "Pastovi nuoroda",
+
+    'Overlays': "Papildomi sluoksniai",
+
+    'Base Layer': "Pagrindinis sluoksnis",
+
+    'readNotImplemented': "Skaitymas nėra įgyvendintas.",
+
+    'writeNotImplemented': "Rašymas nėra įgyvendintas.",
+
+    'noFID': "Negaliu atnaujinti objekto, kuris neturi FID.",
+
+    'errorLoadingGML': "Klaida užkraunant GML failą ${url}",
+
+    'browserNotSupported':
+	"Jūsų naršyklė nemoka parodyti vektorių. Šiuo metu galima naudotis tokiais rodymo varikliais:\n{renderers}",
+
+    'componentShouldBe': "addFeatures : komponentas turi būti ${geomType}",
+
+    // console message
+    'getFeatureError':
+	"getFeatureFromEvent buvo iškviestas sluoksniui, kuris neturi priskirto paišymo variklio. Tai paprastai nutinka, kai jūs pašalinate sluoksnį, bet paliekate su juo susijusį [handler]",
+
+    'commitSuccess': "WFS Tranzakcija: PAVYKO ${response}",
+
+    'commitFailed': "WFS Tranzakcija: ŽLUGO ${response}",
+
+    'Scale = 1 : ${scaleDenom}': "Mastelis = 1 : ${scaleDenom}",
+    
+    //labels for the graticule control
+    'W': 'V',
+    'E': 'R',
+    'N': 'Š',
+    'S': 'P',
+    'Graticule': 'Tinklelis',
+
+    // console message
+    'layerAlreadyAdded':
+        "Bandėte pridėti prie žemėlapio sluoksnį ${layerName}, tačiau jis jau yra pridėtas",
+
+    // console message
+    'methodDeprecated':
+	"Šis metodas yra pasenęs ir 3.0 versijoje bus pašalintas. " +
+	"Prašome naudoti ${newMethod}.",
+
+    // console message
+    'boundsAddError': "Add funkcijai reikia pateikti tiek x, tiek y reikšmes.",
+
+    // console message
+    'lonlatAddError': "Add funkcijai reikia pateikti tiek lon, tiek lat reikšmes",
+
+    // console message
+    'pixelAddError': "Add funkcijai būtina perduoti tiek x, tiek y reikšmes.",
+
+    // console message
+    'unsupportedGeometryType': "Nepalaikomas geometrijos tipas: ${geomType}",
+
+    // **** end ****
+    'end': ''
+    
+});
diff --git a/lib/OpenLayers/Lang/nb.js b/lib/OpenLayers/Lang/nb.js
index 2e9d140..9f8f652 100644
--- a/lib/OpenLayers/Lang/nb.js
+++ b/lib/OpenLayers/Lang/nb.js
@@ -12,14 +12,11 @@ OpenLayers.Lang["nb"] = {
 
     'unhandledRequest': "Ubehandlet forespørsel returnerte ${statusText}",
 
-    'permalink': "Kobling til denne siden",
+    'Permalink': "Kobling til denne siden",
 
-    'overlays': "Kartlag",
+    'Overlays': "Kartlag",
 
-    'baseLayer': "Bakgrunnskart",
-
-    'sameProjection':
-        "Oversiktskartet fungerer bare når det har samme projeksjon som hovedkartet",
+    'Base Layer': "Bakgrunnskart",
 
     'readNotImplemented': "Lesing er ikke implementert.",
 
@@ -77,7 +74,7 @@ OpenLayers.Lang["nb"] = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>her</a>.",
 
-    'scale': "<strong>Skala</strong> 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "<strong>Skala</strong> 1 : ${scaleDenom}",
 
     // console message
     'layerAlreadyAdded':
@@ -108,10 +105,6 @@ OpenLayers.Lang["nb"] = {
     // console message
     'unsupportedGeometryType': "Geometritypen ${geomType} er ikke støttet",
 
-    // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition feilet: elementet med id ${elemId} kan være feilplassert.",
-                    
     'end': ''
 };
 
diff --git a/lib/OpenLayers/Lang/nds.js b/lib/OpenLayers/Lang/nds.js
index a28ce6f..380eba2 100644
--- a/lib/OpenLayers/Lang/nds.js
+++ b/lib/OpenLayers/Lang/nds.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["nds"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Unbehannelt Trüchmellels för de Anfraag ${statusText}",
 
-    'permalink': "Permalink",
+    'Permalink': "Permalink",
 
-    'overlays': "Overlays",
+    'Overlays': "Overlays",
 
-    'baseLayer': "Achtergrundkoort",
-
-    'sameProjection': "De Översichtskoort geiht blot, wenn de sülve Projekschoon as bi de Hööftkoort bruukt warrt",
+    'Base Layer': "Achtergrundkoort",
 
     'readNotImplemented': "Lesen is nich inricht.",
 
@@ -42,7 +40,7 @@ OpenLayers.Lang["nds"] = OpenLayers.Util.applyDefaults({
 
     'commitFailed': "WFS-Transakschoon: hett nich klappt ${response}",
 
-    'scale': "Skaal = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Skaal = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Du versöchst de Laag „${layerName}“ to de Koort totofögen, man de is al toföögt",
 
@@ -54,8 +52,6 @@ OpenLayers.Lang["nds"] = OpenLayers.Util.applyDefaults({
 
     'pixelAddError': "De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",
 
-    'unsupportedGeometryType': "Nich ünnerstütt Geometrie-Typ: ${geomType}",
-
-    'pagePositionFailed': "OpenLayers.Util.pagePosition güng nich: Element mit de Id ${elemId} is villicht an’n verkehrten Platz."
+    'unsupportedGeometryType': "Nich ünnerstütt Geometrie-Typ: ${geomType}"
 
 });
diff --git a/lib/OpenLayers/Lang/nl.js b/lib/OpenLayers/Lang/nl.js
index 968a0fb..eef24c1 100644
--- a/lib/OpenLayers/Lang/nl.js
+++ b/lib/OpenLayers/Lang/nl.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["nl"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Het verzoek is niet afgehandeld met de volgende melding: ${statusText}",
 
-    'permalink': "Permanente verwijzing",
+    'Permalink': "Permanente verwijzing",
 
-    'overlays': "Overlays",
+    'Overlays': "Overlays",
 
-    'baseLayer': "Achtergrondkaart",
-
-    'sameProjection': "De overzichtskaart werkt alleen als de projectie gelijk is aan de projectie van de hoofdkaart",
+    'Base Layer': "Achtergrondkaart",
 
     'readNotImplemented': "Lezen is niet geïmplementeerd.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["nl"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "De laag ${layerType} kon niet goed geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct is ingevoegd.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te [...]
 
-    'scale': "Schaal = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Schaal = 1 : ${scaleDenom}",
 
     'W': "W",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["nl"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Dit geometrietype wordt niet ondersteund: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition is mislukt: het element met id ${elemId} is wellicht onjuist geplaatst.",
-
     'filterEvaluateNotImplemented': "evalueren is niet geïmplementeerd voor dit filtertype."
 
 });
diff --git a/lib/OpenLayers/Lang/nn.js b/lib/OpenLayers/Lang/nn.js
index 46c0be6..b794df2 100644
--- a/lib/OpenLayers/Lang/nn.js
+++ b/lib/OpenLayers/Lang/nn.js
@@ -14,7 +14,7 @@
  */
 OpenLayers.Lang["nn"] = OpenLayers.Util.applyDefaults({
 
-    'scale': "Skala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Skala = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Du freista å leggja til laget «${layerName}» på kartet, men det har alt vorte lagt til.",
 
diff --git a/lib/OpenLayers/Lang/oc.js b/lib/OpenLayers/Lang/oc.js
index 4956fb5..d0ed802 100644
--- a/lib/OpenLayers/Lang/oc.js
+++ b/lib/OpenLayers/Lang/oc.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["oc"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Requèsta pas gerida, retorna ${statusText}",
 
-    'permalink': "Permaligam",
+    'Permalink': "Permaligam",
 
-    'overlays': "Calques",
+    'Overlays': "Calques",
 
-    'baseLayer': "Calc de basa",
-
-    'sameProjection': "La carta de situacion fonciona pas que quora sa projeccion es la meteissa que la de la carta principala",
+    'Base Layer': "Calc de basa",
 
     'readNotImplemented': "Lectura pas implementada.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["oc"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Lo jaç ${layerType} es pas en mesura de se cargar corrèctament.\x3cbr\x3e\x3cbr\x3ePer suprimir aqueste messatge, causissètz una  BaseLayer novèla dins lo selector de jaç en naut a drecha.\x3cbr\x3e\x3cbr\x3eAquò es possiblament causat per la non-inclusion de la librariá ${layerLib}.\x3cbr\x3e\x3cbr\x3eDesvolopaires : per saber cossí corregir aquí, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclicatz aicí\x3c/a\x3e",
 
-    'scale': "Escala ~ 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Escala ~ 1 : ${scaleDenom}",
 
     'W': "O",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["oc"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Tipe de geometria pas suportat : ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition a fracassat : l\'element d\'id ${elemId} poiriá èsser mal posicionat.",
-
     'filterEvaluateNotImplemented': "evaluar es pas encara estat implementat per aqueste tipe de filtre."
 
 });
diff --git a/lib/OpenLayers/Lang/pt-BR.js b/lib/OpenLayers/Lang/pt-BR.js
index 9f413ed..2e5a557 100644
--- a/lib/OpenLayers/Lang/pt-BR.js
+++ b/lib/OpenLayers/Lang/pt-BR.js
@@ -17,13 +17,11 @@ OpenLayers.Lang["pt-br"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "A requisição retornou um erro não tratado: ${statusText}",
 
-    'permalink': "Link para essa página",
+    'Permalink': "Link para essa página",
 
-    'overlays': "Camadas de Sobreposição",
+    'Overlays': "Camadas de Sobreposição",
 
-    'baseLayer': "Camada Base",
-
-    'sameProjection': "O mapa de referência só funciona quando ele está na mesma projeção do mapa principal",
+    'Base Layer': "Camada Base",
 
     'readNotImplemented': "Leitura não implementada.",
 
@@ -49,7 +47,7 @@ OpenLayers.Lang["pt-br"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Não foi possível carregar a camada ${layerType} corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca ${layerLib} não foi incluído corretamente.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers [...]
 
-    'scale': "Escala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Escala = 1 : ${scaleDenom}",
 
     'W': "O",
 
@@ -73,8 +71,6 @@ OpenLayers.Lang["pt-br"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Tipo geométrico não suportado: ${geomType}.",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition falhou: o elemento de id ${elemId} deve estar fora do lugar.",
-
     'filterEvaluateNotImplemented': "evaluete não está implementado para este tipo de filtro."
 
 });
diff --git a/lib/OpenLayers/Lang/pt.js b/lib/OpenLayers/Lang/pt.js
index 1548512..33d0c69 100644
--- a/lib/OpenLayers/Lang/pt.js
+++ b/lib/OpenLayers/Lang/pt.js
@@ -18,13 +18,11 @@ OpenLayers.Lang["pt"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Servidor devolveu erro não contemplado ${statusText}",
 
-    'permalink': "Ligação permanente",
+    'Permalink': "Ligação permanente",
 
-    'overlays': "Sobreposições",
+    'Overlays': "Sobreposições",
 
-    'baseLayer': "Camada Base",
-
-    'sameProjection': "O mapa panorâmico só funciona quando está na mesma projeção que o mapa principal",
+    'Base Layer': "Camada Base",
 
     'readNotImplemented': "Leitura não implementada.",
 
@@ -50,7 +48,7 @@ OpenLayers.Lang["pt"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "A camada ${layerType} não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara desactivar esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca ${layerLib} não foi incluído correctamente.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target [...]
 
-    'scale': "Escala = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Escala = 1 : ${scaleDenom}",
 
     'W': "O",
 
@@ -74,8 +72,6 @@ OpenLayers.Lang["pt"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Tipo de geometria não suportado: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition falhou: o elemento com o id ${elemId} poderá estar mal-posicionado.",
-
     'filterEvaluateNotImplemented': "avaliar não está implementado para este tipo de filtro."
 
 });
diff --git a/lib/OpenLayers/Lang/ru.js b/lib/OpenLayers/Lang/ru.js
index ace8151..9c21a92 100644
--- a/lib/OpenLayers/Lang/ru.js
+++ b/lib/OpenLayers/Lang/ru.js
@@ -19,13 +19,11 @@ OpenLayers.Lang["ru"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Необработанный запрос вернул ${statusText}",
 
-    'permalink': "Постоянная ссылка",
+    'Permalink': "Постоянная ссылка",
 
-    'overlays': "Слои",
+    'Overlays': "Слои",
 
-    'baseLayer': "Основной слой",
-
-    'sameProjection': "Обзорная карта работает только тогда, когда имеет ту же проекцию, что и основная",
+    'Base Layer': "Основной слой",
 
     'readNotImplemented': "Чтение не реализовано.",
 
@@ -51,7 +49,7 @@ OpenLayers.Lang["ru"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Слой ${layerType} не удалось нормально загрузить. \x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека ${layerLib} не была включена или была включена некорректно.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eщёлкните [...]
 
-    'scale': "Масштаб = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Масштаб = 1 : ${scaleDenom}",
 
     'W': "З",
 
@@ -75,8 +73,6 @@ OpenLayers.Lang["ru"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Неподдерживаемый тип геометрии: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition failed: элемент с id ${elemId} может находиться не в нужном месте.",
-
     'filterEvaluateNotImplemented': "evaluate не реализовано для фильтра данного типа."
 
 });
diff --git a/lib/OpenLayers/Lang/sk.js b/lib/OpenLayers/Lang/sk.js
index 6d82d99..3cc3043 100644
--- a/lib/OpenLayers/Lang/sk.js
+++ b/lib/OpenLayers/Lang/sk.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["sk"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Neobslúžené požiadavky vracajú ${statusText}",
 
-    'permalink': "Trvalý odkaz",
+    'Permalink': "Trvalý odkaz",
 
-    'overlays': "Prekrytia",
+    'Overlays': "Prekrytia",
 
-    'baseLayer': "Základná vrstva",
-
-    'sameProjection': "Prehľadová mapka funguje iba vtedy, keď je v rovnakej projekcii ako hlavná mapa",
+    'Base Layer': "Základná vrstva",
 
     'readNotImplemented': "Čítanie nie je implementované.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["sk"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Vrstvu ${layerType} nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice ${layerType} buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/${layerType}\' target=\'_blank\'\x3epomoc so sfunkčne [...]
 
-    'scale': "Mierka = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Mierka = 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Pokúsili ste sa do mapy pridať vrstvu ${layerName}, ale tá už bola pridaná",
 
@@ -64,8 +62,6 @@ OpenLayers.Lang["sk"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Nepodporovaný typ geometrie: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition zlyhalo: prvok s id ${elemId} môže byť zle umiestnený.",
-
     'filterEvaluateNotImplemented': "evaluate nie je implementovaný pre tento typ filtra"
 
 });
diff --git a/lib/OpenLayers/Lang/sv-SE.js b/lib/OpenLayers/Lang/sv-SE.js
index 0b70e80..a1b4dee 100644
--- a/lib/OpenLayers/Lang/sv-SE.js
+++ b/lib/OpenLayers/Lang/sv-SE.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["sv"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Ej hanterad fråga retur ${statusText}",
 
-    'permalink': "Permalänk",
+    'Permalink': "Permalänk",
 
-    'overlays': "Kartlager",
+    'Overlays': "Kartlager",
 
-    'baseLayer': "Bakgrundskarta",
-
-    'sameProjection': "Översiktskartan fungerar endast när den har samma projektion som huvudkartan",
+    'Base Layer': "Bakgrundskarta",
 
     'readNotImplemented': "Läsning ej implementerad.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["sv"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "${layerType}-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att ${layerLib}-biblioteket inte är inkluderat på webbsidan.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",
 
-    'scale': "\x3cstrong\x3eSkala\x3c/strong\x3e 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "\x3cstrong\x3eSkala\x3c/strong\x3e 1 : ${scaleDenom}",
 
     'layerAlreadyAdded': "Du försökte lägga till lagret: ${layerName} på kartan, men det har lagts till tidigare",
 
@@ -64,8 +62,6 @@ OpenLayers.Lang["sv"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Stöd saknas för geometritypen: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition misslyckades: elementet med id ${elemId} kan placeras fel.",
-
     'filterEvaluateNotImplemented': "evaluering har ej implementerats för denna typ av filter."
 
 });
diff --git a/lib/OpenLayers/Lang/te.js b/lib/OpenLayers/Lang/te.js
index 6594927..289eff3 100644
--- a/lib/OpenLayers/Lang/te.js
+++ b/lib/OpenLayers/Lang/te.js
@@ -14,7 +14,7 @@
  */
 OpenLayers.Lang["te"] = OpenLayers.Util.applyDefaults({
 
-    'permalink': "స్థిరలింకు",
+    'Permalink': "స్థిరలింకు",
 
     'W': "ప",
 
diff --git a/lib/OpenLayers/Lang/vi.js b/lib/OpenLayers/Lang/vi.js
index 5452700..6c6a4a6 100644
--- a/lib/OpenLayers/Lang/vi.js
+++ b/lib/OpenLayers/Lang/vi.js
@@ -16,13 +16,11 @@ OpenLayers.Lang["vi"] = OpenLayers.Util.applyDefaults({
 
     'unhandledRequest': "Không xử lý được phản hồi ${statusText} cho yêu cầu",
 
-    'permalink': "Liên kết thường trực",
+    'Permalink': "Liên kết thường trực",
 
-    'overlays': "Lấp bản đồ",
+    'Overlays': "Lấp bản đồ",
 
-    'baseLayer': "Lớp nền",
-
-    'sameProjection': "Bản đồ toàn cảnh chỉ hoạt động khi cùng phép chiếu với bản đồ chính",
+    'Base Layer': "Lớp nền",
 
     'readNotImplemented': "Chưa hỗ trợ chức năng đọc.",
 
@@ -48,7 +46,7 @@ OpenLayers.Lang["vi"] = OpenLayers.Util.applyDefaults({
 
     'getLayerWarning': "Không thể tải lớp ${layerType} đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện ${layerLib} không được bao gồm đúng kiểu.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",
 
-    'scale': "Tỷ lệ = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Tỷ lệ = 1 : ${scaleDenom}",
 
     'W': "T",
 
@@ -72,8 +70,6 @@ OpenLayers.Lang["vi"] = OpenLayers.Util.applyDefaults({
 
     'unsupportedGeometryType': "Không hỗ trợ kiểu địa lý: ${geomType}",
 
-    'pagePositionFailed': "OpenLayers.Util.pagePosition bị thất bại: nguyên tố với ID ${elemId} có thể ở chỗ sai.",
-
     'filterEvaluateNotImplemented': "chưa hỗ trợ evaluate cho loại bộ lọc này."
 
 });
diff --git a/lib/OpenLayers/Lang/zh-CN.js b/lib/OpenLayers/Lang/zh-CN.js
index 67c084a..31ecb03 100644
--- a/lib/OpenLayers/Lang/zh-CN.js
+++ b/lib/OpenLayers/Lang/zh-CN.js
@@ -12,14 +12,11 @@ OpenLayers.Lang["zh-CN"] = {
 
     'unhandledRequest': "未处理的请求,返回值为 ${statusText}",
 
-    'permalink': "永久链接",
+    'Permalink': "永久链接",
 
-    'overlays': "叠加层",
+    'Overlays': "叠加层",
 
-    'baseLayer': "基础图层",
-
-    'sameProjection':
-        "鹰眼地图只有在和主地图使用相同的投影的时候才能正常共工作",
+    'Base Layer': "基础图层",
 
     'readNotImplemented': "读取功能没有实现。",
 
@@ -76,7 +73,7 @@ OpenLayers.Lang["zh-CN"] = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>点击这里</a>",
 
-    'scale': "比例尺 = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "比例尺 = 1 : ${scaleDenom}",
 
     // console message
     'layerAlreadyAdded':
@@ -108,9 +105,5 @@ OpenLayers.Lang["zh-CN"] = {
     // console message
     'unsupportedGeometryType': "不支持的几何体类型: ${geomType}",
 
-    // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition 失败:id 为 ${elemId} 的元素可能被错置。",
-                    
     'end': ''
 };
diff --git a/lib/OpenLayers/Lang/zh-TW.js b/lib/OpenLayers/Lang/zh-TW.js
index 67eea71..25adefc 100644
--- a/lib/OpenLayers/Lang/zh-TW.js
+++ b/lib/OpenLayers/Lang/zh-TW.js
@@ -13,14 +13,11 @@ OpenLayers.Lang["zh-TW"] = {
 
     'unhandledRequest': "未處理的請求,傳回值為 ${statusText}。",
 
-    'permalink': "永久連結",
+    'Permalink': "永久連結",
 
-    'overlays': "額外圖層",
+    'Overlays': "額外圖層",
 
-    'baseLayer': "基礎圖層",
-
-    'sameProjection':
-        "地圖縮覽(OverviewMap)只能在跟主地圖相同投影時起作用。",
+    'Base Layer': "基礎圖層",
 
     'readNotImplemented': "沒有實作讀取的功能。",
 
@@ -77,7 +74,7 @@ OpenLayers.Lang["zh-TW"] = {
         "<a href='http://trac.openlayers.org/wiki/${layerLib}' " +
         "target='_blank'>請按這裡</a>",
 
-    'scale': "Scale = 1 : ${scaleDenom}",
+    'Scale = 1 : ${scaleDenom}': "Scale = 1 : ${scaleDenom}",
 
     // console message
     'layerAlreadyAdded':
@@ -109,9 +106,5 @@ OpenLayers.Lang["zh-TW"] = {
     // console message
     'unsupportedGeometryType': "未支援的幾何型別: ${geomType}。",
 
-    // console message
-    'pagePositionFailed':
-        "OpenLayers.Util.pagePosition 失敗: id ${elemId} 的 element 可能被錯置。",
-                    
     'end': ''
 };
diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js
index fc3635e..4a2cc4b 100644
--- a/lib/OpenLayers/Layer.js
+++ b/lib/OpenLayers/Layer.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Map.js
  * @requires OpenLayers/Projection.js
  */
@@ -80,9 +81,15 @@ OpenLayers.Layer = OpenLayers.Class({
      * moveend - Triggered when layer is done moving, object passed as
      *     argument has a zoomChanged boolean property which tells that the
      *     zoom has changed.
+     * added - Triggered after the layer is added to a map.  Listeners will
+     *     receive an object with a *map* property referencing the map and a
+     *     *layer* property referencing the layer.
+     * removed - Triggered after the layer is removed from the map.  Listeners
+     *     will receive an object with a *map* property referencing the map and
+     *     a *layer* property referencing the layer.
      */
     EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
-                  "move", "moveend"],
+                  "move", "moveend", "added", "removed"],
 
     /**
      * Constant: RESOLUTION_PROPERTIES
@@ -267,7 +274,7 @@ OpenLayers.Layer = OpenLayers.Class({
      * {Integer}
      */
     numZoomLevels: null,
-   
+    
     /**
      * APIProperty: minScale
      * {Float}
@@ -455,8 +462,12 @@ OpenLayers.Layer = OpenLayers.Class({
     * 
     * Parameters:
     * newOptions - {Object}
+    * reinitialize - {Boolean} If set to true, and if resolution options of the
+    *     current baseLayer were changed, the map will be recentered to make
+    *     sure that it is displayed with a valid resolution, and a
+    *     changebaselayer event will be triggered.
     */
-    addOptions: function (newOptions) {
+    addOptions: function (newOptions, reinitialize) {
 
         if (this.options == null) {
             this.options = {};
@@ -483,6 +494,8 @@ OpenLayers.Layer = OpenLayers.Class({
         // properties of the "properties" array defined below is set
         // in the new options
         if(this.map) {
+            // store current resolution so we can try to restore it later
+            var resolution = this.map.getResolution();
             var properties = this.RESOLUTION_PROPERTIES.concat(
                 ["projection", "units", "minExtent", "maxExtent"]
             );
@@ -491,6 +504,20 @@ OpenLayers.Layer = OpenLayers.Class({
                    OpenLayers.Util.indexOf(properties, o) >= 0) {
 
                     this.initResolutions();
+                    if (reinitialize && this.map.baseLayer === this) {
+                        // update map position, and restore previous resolution
+                        this.map.setCenter(this.map.getCenter(),
+                            this.map.getZoomForResolution(resolution),
+                            false, true
+                        );
+                        // trigger a changebaselayer event to make sure that
+                        // all controls (especially
+                        // OpenLayers.Control.PanZoomBar) get notified of the
+                        // new options
+                        this.map.events.triggerEvent("changebaselayer", {
+                            layer: this
+                        });
+                    }
                     break;
                 }
             }
@@ -537,7 +564,7 @@ OpenLayers.Layer = OpenLayers.Class({
      * Method: moveTo
      * 
      * Parameters:
-     * bound - {<OpenLayers.Bounds>}
+     * bounds - {<OpenLayers.Bounds>}
      * zoomChanged - {Boolean} Tells when zoom has changed, as layers have to
      *     do some init work in that case.
      * dragging - {Boolean}
@@ -551,6 +578,17 @@ OpenLayers.Layer = OpenLayers.Class({
     },
 
     /**
+     * Method: moveByPx
+     * Move the layer based on pixel vector. To be implemented by subclasses.
+     *
+     * Parameters:
+     * dx - {Number} The x coord of the displacement vector.
+     * dy - {Number} The y coord of the displacement vector.
+     */
+    moveByPx: function(dx, dy) {
+    },
+
+    /**
      * Method: setMap
      * Set the map property for the layer. This is done through an accessor
      *     so that subclasses can override this and take special action once 
@@ -685,7 +723,7 @@ OpenLayers.Layer = OpenLayers.Class({
      *     subverted.
      * 
      * Parameters:
-     * visible - {Boolean} Whether or not to display the layer (if in range)
+     * visibility - {Boolean} Whether or not to display the layer (if in range)
      */
     setVisibility: function(visibility) {
         if (visibility != this.visibility) {
@@ -704,7 +742,9 @@ OpenLayers.Layer = OpenLayers.Class({
 
     /** 
      * APIMethod: display
-     * Hide or show the Layer
+     * Hide or show the Layer. This is designed to be used internally, and 
+     *     is not generally the way to enable or disable the layer. For that,
+     *     use the setVisibility function instead..
      * 
      * Parameters:
      * display - {Boolean}
@@ -793,13 +833,13 @@ OpenLayers.Layer = OpenLayers.Class({
         //    map
         // 7. hope for the best!
 
-        var i, len;
+        var i, len, p;
         var props = {}, alwaysInRange = true;
 
         // get resolution data from layer config
         // (we also set alwaysInRange in the layer as appropriate)
         for(i=0, len=this.RESOLUTION_PROPERTIES.length; i<len; i++) {
-            var p = this.RESOLUTION_PROPERTIES[i];
+            p = this.RESOLUTION_PROPERTIES[i];
             props[p] = this.options[p];
             if(alwaysInRange && this.options[p]) {
                 alwaysInRange = false;
@@ -823,7 +863,7 @@ OpenLayers.Layer = OpenLayers.Class({
         // in the map
         if(props.resolutions == null) {
             for(i=0, len=this.RESOLUTION_PROPERTIES.length; i<len; i++) {
-                var p = this.RESOLUTION_PROPERTIES[i];
+                p = this.RESOLUTION_PROPERTIES[i];
                 props[p] = this.options[p] != null ?
                     this.options[p] : this.map[p];
             }
@@ -938,6 +978,8 @@ OpenLayers.Layer = OpenLayers.Class({
      */
     calculateResolutions: function(props) {
 
+        var viewSize, wRes, hRes;
+
         // determine maxResolution
         var maxResolution = props.maxResolution;
         if(props.minScale != null) {
@@ -945,9 +987,9 @@ OpenLayers.Layer = OpenLayers.Class({
                 OpenLayers.Util.getResolutionFromScale(props.minScale,
                                                        this.units);
         } else if(maxResolution == "auto" && this.maxExtent != null) {
-            var viewSize = this.map.getSize();
-            var wRes = this.maxExtent.getWidth() / viewSize.w;
-            var hRes = this.maxExtent.getHeight() / viewSize.h;
+            viewSize = this.map.getSize();
+            wRes = this.maxExtent.getWidth() / viewSize.w;
+            hRes = this.maxExtent.getHeight() / viewSize.h;
             maxResolution = Math.max(wRes, hRes);
         }
 
@@ -958,9 +1000,9 @@ OpenLayers.Layer = OpenLayers.Class({
                 OpenLayers.Util.getResolutionFromScale(props.maxScale,
                                                        this.units);
         } else if(props.minResolution == "auto" && this.minExtent != null) {
-            var viewSize = this.map.getSize();
-            var wRes = this.minExtent.getWidth() / viewSize.w;
-            var hRes = this.minExtent.getHeight()/ viewSize.h;
+            viewSize = this.map.getSize();
+            wRes = this.minExtent.getWidth() / viewSize.w;
+            hRes = this.minExtent.getHeight()/ viewSize.h;
             minResolution = Math.max(wRes, hRes);
         }
 
@@ -1044,7 +1086,7 @@ OpenLayers.Layer = OpenLayers.Class({
      * APIMethod: getZoomForExtent
      * 
      * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
+     * extent - {<OpenLayers.Bounds>}
      * closest - {Boolean} Find the zoom level that most closely fits the 
      *     specified bounds. Note that this may result in a zoom that does 
      *     not exactly contain the entire extent.
@@ -1119,14 +1161,14 @@ OpenLayers.Layer = OpenLayers.Class({
      *     value and the 'closest' specification.
      */
     getZoomForResolution: function(resolution, closest) {
-        var zoom;
+        var zoom, i, len;
         if(this.map.fractionalZoom) {
             var lowZoom = 0;
             var highZoom = this.resolutions.length - 1;
             var highRes = this.resolutions[lowZoom];
             var lowRes = this.resolutions[highZoom];
             var res;
-            for(var i=0, len=this.resolutions.length; i<len; ++i) {
+            for(i=0, len=this.resolutions.length; i<len; ++i) {
                 res = this.resolutions[i];
                 if(res >= resolution) {
                     highRes = res;
@@ -1147,7 +1189,7 @@ OpenLayers.Layer = OpenLayers.Class({
         } else {
             var diff;
             var minDiff = Number.POSITIVE_INFINITY;
-            for(var i=0, len=this.resolutions.length; i<len; i++) {            
+            for(i=0, len=this.resolutions.length; i<len; i++) {            
                 if (closest) {
                     diff = Math.abs(this.resolutions[i] - resolution);
                     if (diff > minDiff) {
@@ -1177,22 +1219,17 @@ OpenLayers.Layer = OpenLayers.Class({
      */
     getLonLatFromViewPortPx: function (viewPortPx) {
         var lonlat = null;
-        if (viewPortPx != null) {
-            var size = this.map.getSize();
-            var center = this.map.getCenter();
-            if (center) {
-                var res  = this.map.getResolution();
-        
-                var delta_x = viewPortPx.x - (size.w / 2);
-                var delta_y = viewPortPx.y - (size.h / 2);
-            
-                lonlat = new OpenLayers.LonLat(center.lon + delta_x * res ,
-                                             center.lat - delta_y * res); 
-
-                if (this.wrapDateLine) {
-                    lonlat = lonlat.wrapDateLine(this.maxExtent);
-                }
-            } // else { DEBUG STATEMENT }
+        var map = this.map;
+        if (viewPortPx != null && map.minPx) {
+            var res = map.getResolution();
+            var maxExtent = map.getMaxExtent({restricted: true});
+            var lon = (viewPortPx.x - map.minPx.x) * res + maxExtent.left;
+            var lat = (map.minPx.y - viewPortPx.y) * res + maxExtent.top;
+            lonlat = new OpenLayers.LonLat(lon, lat);
+
+            if (this.wrapDateLine) {
+                lonlat = lonlat.wrapDateLine(this.maxExtent);
+            }
         }
         return lonlat;
     },
@@ -1292,7 +1329,8 @@ OpenLayers.Layer = OpenLayers.Class({
         if (this.wrapDateLine) {
             // wrap around the date line, within the limits of rounding error
             var wrappingOptions = { 
-                'rightTolerance':this.getResolution()
+                'rightTolerance':this.getResolution(),
+                'leftTolerance':this.getResolution()
             };    
             bounds = bounds.wrapDateLine(this.maxExtent, wrappingOptions);
                               
diff --git a/lib/OpenLayers/Layer/ArcGIS93Rest.js b/lib/OpenLayers/Layer/ArcGIS93Rest.js
index 1c1c70d..c0d065d 100644
--- a/lib/OpenLayers/Layer/ArcGIS93Rest.js
+++ b/lib/OpenLayers/Layer/ArcGIS93Rest.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -232,22 +232,5 @@ OpenLayers.Layer.ArcGIS93Rest = OpenLayers.Class(OpenLayers.Layer.Grid, {
                                                              newArguments);
     },
 
-    /**
-     * Method: addTile
-     * addTile creates a tile, initializes it, and adds it to the layer div. 
-     *
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
-    },
-
-    
     CLASS_NAME: "OpenLayers.Layer.ArcGIS93Rest"
 });
diff --git a/lib/OpenLayers/Layer/ArcGISCache.js b/lib/OpenLayers/Layer/ArcGISCache.js
new file mode 100644
index 0000000..30563da
--- /dev/null
+++ b/lib/OpenLayers/Layer/ArcGISCache.js
@@ -0,0 +1,477 @@
+/** 
+ * @requires OpenLayers/Layer/XYZ.js 
+ */ 
+
+/** 
+ * Class: OpenLayers.Layer.ArcGISCache   
+ * Layer for accessing cached map tiles from an ArcGIS Server style mapcache. 
+ * Tile must already be cached for this layer to access it. This does not require 
+ * ArcGIS Server itself.
+ * 
+ * A few attempts have been made at this kind of layer before. See 
+ * http://trac.osgeo.org/openlayers/ticket/1967 
+ * and 
+ * http://trac.osgeo.org/openlayers/browser/sandbox/tschaub/arcgiscache/lib/OpenLayers/Layer/ArcGISCache.js
+ *
+ * Typically the problem encountered is that the tiles seem to "jump around".
+ * This is due to the fact that the actual max extent for the tiles on AGS layers
+ * changes at each zoom level due to the way these caches are constructed.
+ * We have attempted to use the resolutions, tile size, and tile origin
+ * from the cache meta data to make the appropriate changes to the max extent
+ * of the tile to compensate for this behavior.  This must be done as zoom levels change
+ * and before tiles are requested, which is why methods from base classes are overridden.
+ *
+ * For reference, you can access mapcache meta data in two ways. For accessing a 
+ * mapcache through ArcGIS Server, you can simply go to the landing page for the
+ * layer. (ie. http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer)
+ * For accessing it directly through HTTP, there should always be a conf.xml file
+ * in the root directory. 
+ * (ie. http://serverx.esri.com/arcgiscache/DG_County_roads_yesA_backgroundDark/Layers/conf.xml)
+ *  
+ *Inherits from: 
+ *  - <OpenLayers.Layer.XYZ>             
+ */    
+OpenLayers.Layer.ArcGISCache = OpenLayers.Class(OpenLayers.Layer.XYZ, {  
+
+    /**
+     * APIProperty: url
+     * {String | Array} The base URL for the layer cache.  You can also
+     *     provide a list of URL strings for the layer if your cache is
+     *     available from multiple origins.  This must be set before the layer
+     *     is drawn.
+     */
+    url: null,
+    
+   /**
+    * APIProperty: tileOrigin
+    * {<OpenLayers.LonLat>} The location of the tile origin for the cache.
+    *     An ArcGIS cache has it's origin at the upper-left (lowest x value
+    *     and highest y value of the coordinate system).  The units for the
+    *     tile origin should be the same as the units for the cached data.
+    */
+    tileOrigin: null, 
+   
+   /**
+    * APIProperty: tileSize
+    * {<OpenLayers.Size>} This size of each tile. Defaults to 256 by 256 pixels.
+    */
+    tileSize: new OpenLayers.Size(256, 256),
+    
+   /**
+    * APIProperty: useAGS
+    * {Boolean} Indicates if we are going to be accessing the ArcGIS Server (AGS)
+    *     cache via an AGS MapServer or directly through HTTP. When accessing via
+    *     AGS the path structure uses a standard z/y/x structure. But AGS actually
+    *     stores the tile images on disk using a hex based folder structure that looks
+    *     like "http://example.com/mylayer/L00/R00000000/C00000000.png".  Learn more
+    *     about this here:
+    *     http://blogs.esri.com/Support/blogs/mappingcenter/archive/2010/08/20/Checking-Your-Local-Cache-Folders.aspx
+    *     Defaults to true;
+    */    
+    useArcGISServer: true,
+
+   /**
+    * APIProperty: type
+    * {String} Image type for the layer.  This becomes the filename extension
+    *     in tile requests.  Default is "png" (generating a url like
+    *     "http://example.com/mylayer/L00/R00000000/C00000000.png").
+    */
+    type: 'png',
+    
+    /**
+    * APIProperty: useScales
+    * {Boolean} Optional override to indicate that the layer should use 'scale' information
+    *     returned from the server capabilities object instead of 'resolution' information.
+    *     This can be important if your tile server uses an unusual DPI for the tiles.
+    */
+    useScales: false,
+    
+   /**
+    * APIProperty: overrideDPI
+    * {Boolean} Optional override to change the OpenLayers.DOTS_PER_INCH setting based 
+    *     on the tile information in the server capabilities object.  This can be useful 
+    *     if your server has a non-standard DPI setting on its tiles, and you're only using 
+    *     tiles with that DPI.  This value is used while OpenLayers is calculating resolution
+    *     using scales, and is not necessary if you have resolution information. (This is
+    *     typically the case)  Regardless, this setting can be useful, but is dangerous
+    *     because it will impact other layers while calculating resolution.  Only use this
+    *     if you know what you are doing.  (See OpenLayers.Util.getResolutionFromScale)
+    */
+    overrideDPI: false,
+    
+   /**
+    * Constructor: OpenLayers.Layer.ArcGISCache 
+    * Creates a new instance of this class 
+    * 
+    * Parameters: 
+    * name - {String} 
+    * url - {String} 
+    * options - {Object} extra layer options
+    */ 
+    initialize: function(name, url, options) { 
+        OpenLayers.Layer.XYZ.prototype.initialize.apply(this, arguments);
+
+        if (this.resolutions) {        
+            this.serverResolutions = this.resolutions;
+            this.maxExtent = this.getMaxExtentForResolution(this.resolutions[0]);
+        }
+
+        // this block steps through translating the values from the server layer JSON 
+        // capabilities object into values that we can use.  This is also a helpful
+        // reference when configuring this layer directly.
+        if (this.layerInfo) {
+            // alias the object
+            var info = this.layerInfo;
+            
+            // build our extents
+            var startingTileExtent = new OpenLayers.Bounds(
+                info.fullExtent.xmin, 
+                info.fullExtent.ymin, 
+                info.fullExtent.xmax, 
+                info.fullExtent.ymax  
+            );
+
+            // set our projection based on the given spatial reference.
+            // esri uses slightly different IDs, so this may not be comprehensive
+            this.projection = 'EPSG:' + info.spatialReference.wkid;
+            this.sphericalMercator = (info.spatialReference.wkid == 102100);
+            
+            // convert esri units into openlayers units (basic feet or meters only)
+            this.units = (info.units == "esriFeet") ? 'ft' : 'm';
+
+            // optional extended section based on whether or not the server returned
+            // specific tile information
+            if (!!info.tileInfo) {            
+                // either set the tiles based on rows/columns, or specific width/height
+                this.tileSize = new OpenLayers.Size(
+                    info.tileInfo.width || info.tileInfo.cols, 
+                    info.tileInfo.height || info.tileInfo.rows
+                );
+                
+                // this must be set when manually configuring this layer
+                this.tileOrigin = new OpenLayers.LonLat(
+                    info.tileInfo.origin.x, 
+                    info.tileInfo.origin.y
+                );
+
+                var upperLeft = new OpenLayers.Geometry.Point(
+                    startingTileExtent.left, 
+                    startingTileExtent.top
+                );
+                
+                var bottomRight = new OpenLayers.Geometry.Point(
+                    startingTileExtent.right, 
+                    startingTileExtent.bottom
+                );            
+                
+                if (this.useScales) {
+                    this.scales = [];
+                } else {
+                    this.resolutions = [];
+                }
+                
+                this.lods = [];
+                for(var key in info.tileInfo.lods) {
+                    if (info.tileInfo.lods.hasOwnProperty(key)) {
+                        var lod = info.tileInfo.lods[key];
+                        if (this.useScales) {
+                            this.scales.push(lod.scale);
+                        } else {
+                            this.resolutions.push(lod.resolution);
+                        }
+                    
+                        var start = this.getContainingTileCoords(upperLeft, lod.resolution);
+                        lod.startTileCol = start.x;
+                        lod.startTileRow = start.y;
+                    
+                        var end = this.getContainingTileCoords(bottomRight, lod.resolution);
+                        lod.endTileCol = end.x;
+                        lod.endTileRow = end.y;    
+                        this.lods.push(lod);
+                    }
+                }
+
+                this.maxExtent = this.calculateMaxExtentWithLOD(this.lods[0]);
+                this.serverResolutions = this.resolutions;
+                if (this.overrideDPI && info.tileInfo.dpi) {
+                    // see comment above for 'overrideDPI'
+                    OpenLayers.DOTS_PER_INCH = info.tileInfo.dpi;
+                }
+            } 
+       }
+    }, 
+
+   /** 
+    * Method: getContainingTileCoords
+    * Calculates the x/y pixel corresponding to the position of the tile
+    *     that contains the given point and for the for the given resolution.
+    * 
+    * Parameters:
+    * point - {<OpenLayers.Geometry.Point>} 
+    * res - {Float} The resolution for which to compute the extent.
+    * 
+    * Returns: 
+    * {<OpenLayers.Pixel>} The x/y pixel corresponding to the position 
+    * of the upper left tile for the given resolution.
+    */
+    getContainingTileCoords: function(point, res) {
+        return new OpenLayers.Pixel(
+           Math.max(Math.floor((point.x - this.tileOrigin.lon) / (this.tileSize.w * res)),0),
+           Math.max(Math.floor((this.tileOrigin.lat - point.y) / (this.tileSize.h * res)),0)
+        );
+    },
+    
+   /** 
+    * Method: calculateMaxExtentWithLOD
+    * Given a Level of Detail object from the server, this function
+    *     calculates the actual max extent
+    * 
+    * Parameters: 
+    * lod - {Object} a Level of Detail Object from the server capabilities object 
+            representing a particular zoom level
+    * 
+    * Returns: 
+    * {<OpenLayers.Bounds>} The actual extent of the tiles for the given zoom level
+    */
+   calculateMaxExtentWithLOD: function(lod) {
+        // the max extent we're provided with just overlaps some tiles
+        // our real extent is the bounds of all the tiles we touch
+
+        var numTileCols = (lod.endTileCol - lod.startTileCol) + 1;
+        var numTileRows = (lod.endTileRow - lod.startTileRow) + 1;        
+
+        var minX = this.tileOrigin.lon + (lod.startTileCol * this.tileSize.w * lod.resolution);
+        var maxX = minX + (numTileCols * this.tileSize.w * lod.resolution);
+
+        var maxY = this.tileOrigin.lat - (lod.startTileRow * this.tileSize.h * lod.resolution);
+        var minY = maxY - (numTileRows * this.tileSize.h * lod.resolution);
+        return new OpenLayers.Bounds(minX, minY, maxX, maxY);
+   },
+    
+   /** 
+    * Method: calculateMaxExtentWithExtent
+    * Given a 'suggested' max extent from the server, this function uses
+    *     information about the actual tile sizes to determine the actual
+    *     extent of the layer.
+    * 
+    * Parameters: 
+    * extent - {<OpenLayers.Bounds>} The 'suggested' extent for the layer
+    * res - {Float} The resolution for which to compute the extent.
+    * 
+    * Returns: 
+    * {<OpenLayers.Bounds>} The actual extent of the tiles for the given zoom level
+    */
+   calculateMaxExtentWithExtent: function(extent, res) {
+        var upperLeft = new OpenLayers.Geometry.Point(extent.left, extent.top);
+        var bottomRight = new OpenLayers.Geometry.Point(extent.right, extent.bottom);
+        var start = this.getContainingTileCoords(upperLeft, res);
+        var end = this.getContainingTileCoords(bottomRight, res);
+        var lod = {
+            resolution: res,
+            startTileCol: start.x,
+            startTileRow: start.y,
+            endTileCol: end.x,
+            endTileRow: end.y
+        };
+        return this.calculateMaxExtentWithLOD(lod);
+   },
+    
+    /** 
+    * Method: getUpperLeftTileCoord
+    * Calculates the x/y pixel corresponding to the position 
+    *     of the upper left tile for the given resolution.
+    * 
+    * Parameters: 
+    * res - {Float} The resolution for which to compute the extent.
+    * 
+    * Returns: 
+    * {<OpenLayers.Pixel>} The x/y pixel corresponding to the position 
+    * of the upper left tile for the given resolution.
+    */
+    getUpperLeftTileCoord: function(res) {
+        var upperLeft = new OpenLayers.Geometry.Point(
+            this.maxExtent.left,
+            this.maxExtent.top);
+        return this.getContainingTileCoords(upperLeft, res);
+    },
+
+    /** 
+    * Method: getLowerRightTileCoord
+    * Calculates the x/y pixel corresponding to the position 
+    *     of the lower right tile for the given resolution.
+    *  
+    * Parameters: 
+    * res - {Float} The resolution for which to compute the extent.
+    * 
+    * Returns: 
+    * {<OpenLayers.Pixel>} The x/y pixel corresponding to the position
+    * of the lower right tile for the given resolution.
+    */
+    getLowerRightTileCoord: function(res) {
+        var bottomRight = new OpenLayers.Geometry.Point(
+            this.maxExtent.right,
+            this.maxExtent.bottom);
+        return this.getContainingTileCoords(bottomRight, res);
+    },
+    
+   /** 
+    * Method: getMaxExtentForResolution
+    * Since the max extent of a set of tiles can change from zoom level
+    *     to zoom level, we need to be able to calculate that max extent 
+    *     for a given resolution.
+    *
+    * Parameters: 
+    * res - {Float} The resolution for which to compute the extent.
+    * 
+    * Returns: 
+    * {<OpenLayers.Bounds>} The extent for this resolution
+    */ 
+    getMaxExtentForResolution: function(res) {
+        var start = this.getUpperLeftTileCoord(res);
+        var end = this.getLowerRightTileCoord(res);
+
+        var numTileCols = (end.x - start.x) + 1;
+        var numTileRows = (end.y - start.y) + 1;
+
+        var minX = this.tileOrigin.lon + (start.x * this.tileSize.w * res);
+        var maxX = minX + (numTileCols * this.tileSize.w * res);
+        
+        var maxY = this.tileOrigin.lat - (start.y * this.tileSize.h * res);
+        var minY = maxY - (numTileRows * this.tileSize.h * res);
+        return new OpenLayers.Bounds(minX, minY, maxX, maxY);
+    },
+    
+   /** 
+    * APIMethod: clone 
+    * Returns an exact clone of this OpenLayers.Layer.ArcGISCache
+    * 
+    * Parameters: 
+    * [obj] - {Object} optional object to assign the cloned instance to.
+    *  
+    * Returns: 
+    * {<OpenLayers.Layer.ArcGISCache>} clone of this instance 
+    */ 
+    clone: function (obj) { 
+        if (obj == null) { 
+            obj = new OpenLayers.Layer.ArcGISCache(this.name, this.url, this.options);
+        }
+        return OpenLayers.Layer.XYZ.prototype.clone.apply(this, [obj]);
+    },
+
+    /**
+     * Method: getMaxExtent
+     * Get this layer's maximum extent.
+     *
+     * Returns:
+     * {OpenLayers.Bounds}
+     */
+    getMaxExtent: function() {
+        var resolution = this.map.getResolution();
+        return this.maxExtent = this.getMaxExtentForResolution(resolution);
+    },
+
+    /**
+     * Method: getTileOrigin
+     * Determine the origin for aligning the grid of tiles.  
+     *     The origin will be derived from the layer's <maxExtent> property. 
+     *
+     * Returns:
+     * {<OpenLayers.LonLat>} The tile origin.
+     */
+    getTileOrigin: function() {
+        var extent = this.getMaxExtent();
+        return new OpenLayers.LonLat(extent.left, extent.bottom);
+    },
+
+   /**
+    * Method: getURL
+    * Determine the URL for a tile given the tile bounds.  This is should support
+    *     urls that access tiles through an ArcGIS Server MapServer or directly through
+    *     the hex folder structure using HTTP.  Just be sure to set the useArcGISServer
+    *     property appropriately!  This is basically the same as 
+    *     'OpenLayers.Layer.TMS.getURL',  but with the addition of hex addressing,
+    *     and tile rounding.
+    *
+    * Parameters:
+    * bounds - {<OpenLayers.Bounds>}
+    *
+    * Returns:
+    * {String} The URL for a tile based on given bounds.
+    */
+    getURL: function (bounds) {
+        var res = this.getResolution(); 
+
+        // tile center
+        var originTileX = (this.tileOrigin.lon + (res * this.tileSize.w/2)); 
+        var originTileY = (this.tileOrigin.lat - (res * this.tileSize.h/2));
+
+        var center = bounds.getCenterLonLat();
+        var point = { x: center.lon, y: center.lat };
+        var x = (Math.round(Math.abs((center.lon - originTileX) / (res * this.tileSize.w)))); 
+        var y = (Math.round(Math.abs((originTileY - center.lat) / (res * this.tileSize.h)))); 
+        var z = this.map.getZoom();
+
+        // this prevents us from getting pink tiles (non-existant tiles)
+        if (this.lods) {        
+            var lod = this.lods[this.map.getZoom()];
+            if ((x < lod.startTileCol || x > lod.endTileCol) 
+                || (y < lod.startTileRow || y > lod.endTileRow)) {
+                    return null;
+            }
+        }
+        else {
+            var start = this.getUpperLeftTileCoord(res);
+            var end = this.getLowerRightTileCoord(res);
+            if ((x < start.x || x >= end.x)
+                || (y < start.y || y >= end.y)) {
+                    return null;
+            }        
+        }
+
+        // Construct the url string
+        var url = this.url;
+        var s = '' + x + y + z;
+
+        if (OpenLayers.Util.isArray(url)) {
+            url = this.selectUrl(s, url);
+        }
+
+        // Accessing tiles through ArcGIS Server uses a different path
+        // structure than direct access via the folder structure.
+        if (this.useArcGISServer) {
+            // AGS MapServers have pretty url access to tiles
+            url = url + '/tile/${z}/${y}/${x}';
+        } else {
+            // The tile images are stored using hex values on disk.
+            x = 'C' + this.zeroPad(x, 8, 16);
+            y = 'R' + this.zeroPad(y, 8, 16);
+            z = 'L' + this.zeroPad(z, 2, 16);
+            url = url + '/${z}/${y}/${x}.' + this.type;
+        }
+
+        // Write the values into our formatted url
+        url = OpenLayers.String.format(url, {'x': x, 'y': y, 'z': z});
+
+        return url;
+    },
+
+    /**
+     * Method: zeroPad
+     * Create a zero padded string optionally with a radix for casting numbers.
+     *
+     * Parameters:
+     * num - {Number} The number to be zero padded.
+     * len - {Number} The length of the string to be returned.
+     * radix - {Number} An integer between 2 and 36 specifying the base to use
+     *     for representing numeric values.
+     */
+    zeroPad: function(num, len, radix) {
+        var str = num.toString(radix || 10);
+        while (str.length < len) {
+            str = "0" + str;
+        }
+        return str;
+    },
+
+    CLASS_NAME: 'OpenLayers.Layer.ArcGISCache' 
+}); 
diff --git a/lib/OpenLayers/Layer/ArcIMS.js b/lib/OpenLayers/Layer/ArcIMS.js
index 96d4934..4eabeb5 100644
--- a/lib/OpenLayers/Layer/ArcIMS.js
+++ b/lib/OpenLayers/Layer/ArcIMS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -445,22 +445,5 @@ OpenLayers.Layer.ArcIMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
         return obj;
     },
     
-    /**
-     * Method: addTile
-     * addTile creates a tile, initializes it, and adds it to the layer div. 
-     *
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added image tile.
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(
-            this, position, bounds, null, this.tileSize
-        );
-    },
-    
     CLASS_NAME: "OpenLayers.Layer.ArcIMS"
 });
diff --git a/lib/OpenLayers/Layer/Bing.js b/lib/OpenLayers/Layer/Bing.js
new file mode 100644
index 0000000..fa330bb
--- /dev/null
+++ b/lib/OpenLayers/Layer/Bing.js
@@ -0,0 +1,278 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Layer/XYZ.js
+ * @requires OpenLayers/Layer/SphericalMercator.js
+ */
+
+/** 
+ * Class: OpenLayers.Layer.Bing
+ * Bing layer using direct tile access as provided by Bing Maps REST Services.
+ * See http://msdn.microsoft.com/en-us/library/ff701713.aspx for more
+ * information. Note: Terms of Service compliant use requires the map to be
+ * configured with an <OpenLayers.Control.Attribution> control and the
+ * attribution placed on or near the map.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Layer.XYZ>
+ */
+OpenLayers.Layer.Bing = OpenLayers.Class(OpenLayers.Layer.XYZ, {
+
+    /**
+     * Property: serverResolutions
+     * {Array} the resolutions provided by the Bing servers.
+     */
+    serverResolutions: [
+        156543.03390625, 78271.516953125, 39135.7584765625,
+        19567.87923828125, 9783.939619140625, 4891.9698095703125,
+        2445.9849047851562, 1222.9924523925781, 611.4962261962891,
+        305.74811309814453, 152.87405654907226, 76.43702827453613,
+        38.218514137268066, 19.109257068634033, 9.554628534317017,
+        4.777314267158508, 2.388657133579254, 1.194328566789627,
+        0.5971642833948135, 0.29858214169740677, 0.14929107084870338,
+        0.07464553542435169
+    ],
+    
+    /**
+     * Property: attributionTemplate
+     * {String}
+     */
+    attributionTemplate: '<span class="olBingAttribution ${type}">' +
+         '<div><a target="_blank" href="http://www.bing.com/maps/">' +
+         '<img src="${logo}" /></a></div>${copyrights}' +
+         '<a style="white-space: nowrap" target="_blank" '+
+         'href="http://www.microsoft.com/maps/product/terms.html">' +
+         'Terms of Use</a></span>',
+
+    /**
+     * Property: metadata
+     * {Object} Metadata for this layer, as returned by the callback script
+     */
+    metadata: null,
+    
+    /**
+     * APIProperty: type
+     * {String} The layer identifier.  Any non-birdseye imageryType
+     *     from http://msdn.microsoft.com/en-us/library/ff701716.aspx can be
+     *     used.  Default is "Road".
+     */
+    type: "Road",
+    
+    /**
+     * APIProperty: metadataParams
+     * {Object} Optional url parameters for the Get Imagery Metadata request
+     * as described here: http://msdn.microsoft.com/en-us/library/ff701716.aspx
+     */
+    metadataParams: null,
+
+    /**
+     * Constructor: OpenLayers.Layer.Bing
+     * Create a new Bing layer.
+     *
+     * Example:
+     * (code)
+     * var road = new OpenLayers.Layer.Bing({
+     *     name: "My Bing Aerial Layer",
+     *     type: "Aerial",
+     *     key: "my-api-key-here",
+     * });
+     * (end)
+     *
+     * Parameters:
+     * config - {Object} Configuration properties for the layer.
+     *
+     * Required configuration properties:
+     * key - {String} Bing Maps API key for your application. Get one at
+     *     http://bingmapsportal.com/.
+     * type - {String} The layer identifier.  Any non-birdseye imageryType
+     *     from http://msdn.microsoft.com/en-us/library/ff701716.aspx can be
+     *     used.
+     *
+     * Any other documented layer properties can be provided in the config object.
+     */
+    initialize: function(options) {
+        options = OpenLayers.Util.applyDefaults({
+            sphericalMercator: true
+        }, options);
+        var name = options.name || "Bing " + (options.type || this.type);
+        
+        var newArgs = [name, null, options];
+        OpenLayers.Layer.XYZ.prototype.initialize.apply(this, newArgs);
+        this.loadMetadata(); 
+    },
+
+    /**
+     * Method: loadMetadata
+     */
+    loadMetadata: function() {
+        this._callbackId = "_callback_" + this.id.replace(/\./g, "_");
+        // link the processMetadata method to the global scope and bind it
+        // to this instance
+        window[this._callbackId] = OpenLayers.Function.bind(
+            OpenLayers.Layer.Bing.processMetadata, this
+        );
+        var params = OpenLayers.Util.applyDefaults({
+            key: this.key,
+            jsonp: this._callbackId,
+            include: "ImageryProviders"
+        }, this.metadataParams);
+        var url = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/" +
+            this.type + "?" + OpenLayers.Util.getParameterString(params);
+        var script = document.createElement("script");
+        script.type = "text/javascript";
+        script.src = url;
+        script.id = this._callbackId;
+        document.getElementsByTagName("head")[0].appendChild(script);
+    },
+    
+    /**
+     * Method: initLayer
+     *
+     * Sets layer properties according to the metadata provided by the API
+     */
+    initLayer: function() {
+        var res = this.metadata.resourceSets[0].resources[0];
+        var url = res.imageUrl.replace("{quadkey}", "${quadkey}");
+        this.url = [];
+        for (var i=0; i<res.imageUrlSubdomains.length; ++i) {
+            this.url.push(url.replace("{subdomain}", res.imageUrlSubdomains[i]));
+        };
+        this.addOptions({
+            maxResolution: Math.min(
+                this.serverResolutions[res.zoomMin], this.maxResolution
+            ),
+            zoomOffset: res.zoomMin,
+            numZoomLevels: Math.min(
+                res.zoomMax + 1 - res.zoomMin, this.numZoomLevels
+            )
+        }, true);
+    },
+
+    /**
+     * Method: getURL
+     *
+     * Paramters:
+     * bounds - {<OpenLayers.Bounds>}
+     */
+    getURL: function(bounds) {
+        if (!this.url) {
+            return OpenLayers.Util.getImagesLocation() + "blank.gif";
+        }
+        var xyz = this.getXYZ(bounds), x = xyz.x, y = xyz.y, z = xyz.z;
+        var quadDigits = [];
+        for (var i = z; i > 0; --i) {
+            var digit = '0';
+            var mask = 1 << (i - 1);
+            if ((x & mask) != 0) {
+                digit++;
+            }
+            if ((y & mask) != 0) {
+                digit++;
+                digit++;
+            }
+            quadDigits.push(digit);
+        }
+        var quadKey = quadDigits.join("");
+        var url = this.selectUrl('' + x + y + z, this.url);
+
+        return OpenLayers.String.format(url, {'quadkey': quadKey});
+    },
+    
+    /**
+     * Method: updateAttribution
+     * Updates the attribution according to the requirements outlined in
+     * http://gis.638310.n2.nabble.com/Bing-imagery-td5789168.html
+     */
+    updateAttribution: function() {
+        var metadata = this.metadata;
+        if (!metadata || !this.map || !this.map.center) {
+            return;
+        }
+        var res = metadata.resourceSets[0].resources[0];
+        var extent = this.map.getExtent().transform(
+            this.map.getProjectionObject(),
+            new OpenLayers.Projection("EPSG:4326")
+        );
+        var providers = res.imageryProviders, zoom = this.map.getZoom() + 1,
+            copyrights = "", provider, i, ii, j, jj, bbox, coverage;
+        for (i=0,ii=providers.length; i<ii; ++i) {
+            provider = providers[i];
+            for (j=0,jj=provider.coverageAreas.length; j<jj; ++j) {
+                coverage = provider.coverageAreas[j];
+                bbox = OpenLayers.Bounds.fromArray(coverage.bbox);
+                if (extent.intersectsBounds(bbox) &&
+                        zoom <= coverage.zoomMax && zoom >= coverage.zoomMin) {
+                    copyrights += provider.attribution + " ";
+                }
+            }
+        }
+        this.attribution = OpenLayers.String.format(this.attributionTemplate, {
+            type: this.type.toLowerCase(),
+            logo: metadata.brandLogoUri,
+            copyrights: copyrights
+        });
+        this.map && this.map.events.triggerEvent("changelayer", {
+            layer: this,
+            property: "attribution"
+        });
+    },
+    
+    /**
+     * Method: setMap
+     */
+    setMap: function() {
+        OpenLayers.Layer.XYZ.prototype.setMap.apply(this, arguments);
+        this.updateAttribution();
+        this.map.events.register("moveend", this, this.updateAttribution);
+    },
+    
+    /**
+     * APIMethod: clone
+     * 
+     * Parameters:
+     * obj - {Object}
+     * 
+     * Returns:
+     * {<OpenLayers.Layer.Bing>} An exact clone of this <OpenLayers.Layer.Bing>
+     */
+    clone: function(obj) {
+        if (obj == null) {
+            obj = new OpenLayers.Layer.Bing(this.options);
+        }
+        //get all additions from superclasses
+        obj = OpenLayers.Layer.XYZ.prototype.clone.apply(this, [obj]);
+        // copy/set any non-init, non-simple values here
+        return obj;
+    },
+    
+    /**
+     * Method: destroy
+     */
+    destroy: function() {
+        this.map &&
+            this.map.events.unregister("moveend", this, this.updateAttribution);
+        OpenLayers.Layer.XYZ.prototype.destroy.apply(this, arguments);
+    },
+    
+    CLASS_NAME: "OpenLayers.Layer.Bing"
+});
+
+/**
+ * Function: OpenLayers.Layer.Bing.processMetadata
+ * This function will be bound to an instance, linked to the global scope with
+ * an id, and called by the JSONP script returned by the API.
+ *
+ * Parameters:
+ * metadata - {Object} metadata as returned by the API
+ */
+OpenLayers.Layer.Bing.processMetadata = function(metadata) {
+    this.metadata = metadata;
+    this.initLayer();
+    var script = document.getElementById(this._callbackId);
+    script.parentNode.removeChild(script);
+    window[this._callbackId] = undefined; // cannot delete from window in IE
+    delete this._callbackId;
+};
diff --git a/lib/OpenLayers/Layer/Boxes.js b/lib/OpenLayers/Layer/Boxes.js
index c4d292e..21a9959 100644
--- a/lib/OpenLayers/Layer/Boxes.js
+++ b/lib/OpenLayers/Layer/Boxes.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/EventPane.js b/lib/OpenLayers/Layer/EventPane.js
index e6a95d5..8a82212 100644
--- a/lib/OpenLayers/Layer/EventPane.js
+++ b/lib/OpenLayers/Layer/EventPane.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -102,13 +102,13 @@ OpenLayers.Layer.EventPane = OpenLayers.Class(OpenLayers.Layer, {
         this.pane.style.display = this.div.style.display;
         this.pane.style.width="100%";
         this.pane.style.height="100%";
-        if (OpenLayers.Util.getBrowserName() == "msie") {
+        if (OpenLayers.BROWSER_NAME == "msie") {
             this.pane.style.background = 
                 "url(" + OpenLayers.Util.getImagesLocation() + "blank.gif)";
         }
 
         if (this.isFixed) {
-            this.map.viewPortDiv.appendChild(this.pane);
+            this.map.eventsDiv.appendChild(this.pane);
         } else {
             this.map.layerContainerDiv.appendChild(this.pane);
         }
@@ -211,6 +211,24 @@ OpenLayers.Layer.EventPane = OpenLayers.Class(OpenLayers.Layer, {
         OpenLayers.Layer.prototype.setZIndex.apply(this, arguments);
         this.pane.style.zIndex = parseInt(this.div.style.zIndex) + 1;
     },
+    
+    /**
+     * Method: moveByPx
+     * Move the layer based on pixel vector. To be implemented by subclasses.
+     *
+     * Parameters:
+     * dx - {Number} The x coord of the displacement vector.
+     * dy - {Number} The y coord of the displacement vector.
+     */
+    moveByPx: function(dx, dy) {
+        OpenLayers.Layer.prototype.moveByPx.apply(this, arguments);
+        
+        if (this.dragPanMapObject) {
+            this.dragPanMapObject(dx, -dy);
+        } else {
+            this.moveTo(this.map.getCachedCenter());
+        }
+    },
 
     /**
      * Method: moveTo
@@ -240,7 +258,7 @@ OpenLayers.Layer.EventPane = OpenLayers.Class(OpenLayers.Layer, {
                 if ( !(newCenter.equals(oldCenter)) || 
                      !(newZoom == oldZoom) ) {
 
-                    if (dragging && this.dragPanMapObject && 
+                    if (!zoomChanged && oldCenter && this.dragPanMapObject && 
                         this.smoothDragPan) {
                         var oldPx = this.map.getViewPortPxFromLonLat(oldCenter);
                         var newPx = this.map.getViewPortPxFromLonLat(newCenter);
diff --git a/lib/OpenLayers/Layer/FixedZoomLevels.js b/lib/OpenLayers/Layer/FixedZoomLevels.js
index 4d63633..571398a 100644
--- a/lib/OpenLayers/Layer/FixedZoomLevels.js
+++ b/lib/OpenLayers/Layer/FixedZoomLevels.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -287,6 +287,11 @@ OpenLayers.Layer.FixedZoomLevels = OpenLayers.Class({
         var zoom = null;
         if (moZoom != null) {
             zoom = moZoom - this.minZoomLevel;
+            if (this.map.baseLayer !== this) {
+                zoom = this.map.baseLayer.getZoomForResolution(
+                    this.getResolutionForZoom(zoom)
+                )
+            }
         }
         return zoom;
     },
@@ -306,6 +311,11 @@ OpenLayers.Layer.FixedZoomLevels = OpenLayers.Class({
         var zoom = null; 
         if (olZoom != null) {
             zoom = olZoom + this.minZoomLevel;
+            if (this.map.baseLayer !== this) {
+                zoom = this.getZoomForResolution(
+                    this.map.baseLayer.getResolutionForZoom(zoom)
+                );
+            }
         }
         return zoom;
     },
diff --git a/lib/OpenLayers/Layer/GML.js b/lib/OpenLayers/Layer/GML.js
index 6631cd6..ab81016 100644
--- a/lib/OpenLayers/Layer/GML.js
+++ b/lib/OpenLayers/Layer/GML.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -7,6 +7,7 @@
  * @requires OpenLayers/Layer/Vector.js
  * @requires OpenLayers/Request/XMLHttpRequest.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Layer/GeoRSS.js b/lib/OpenLayers/Layer/GeoRSS.js
index 4e72ba4..86405ce 100644
--- a/lib/OpenLayers/Layer/GeoRSS.js
+++ b/lib/OpenLayers/Layer/GeoRSS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/Google.js b/lib/OpenLayers/Layer/Google.js
index 6437ee3..e3849d2 100644
--- a/lib/OpenLayers/Layer/Google.js
+++ b/lib/OpenLayers/Layer/Google.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -8,6 +8,7 @@
  * @requires OpenLayers/Layer/SphericalMercator.js
  * @requires OpenLayers/Layer/EventPane.js
  * @requires OpenLayers/Layer/FixedZoomLevels.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Layer/Google/v3.js b/lib/OpenLayers/Layer/Google/v3.js
index 38a86c6..aa56717 100644
--- a/lib/OpenLayers/Layer/Google/v3.js
+++ b/lib/OpenLayers/Layer/Google/v3.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -26,13 +26,13 @@ OpenLayers.Layer.Google.v3 = {
      * (code)
      * {
      *     maxExtent: new OpenLayers.Bounds(
-     *         -128 * 156543.0339,
-     *         -128 * 156543.0339,
-     *         128 * 156543.0339,
-     *         128 * 156543.0339
+     *         -128 * 156543.03390625,
+     *         -128 * 156543.03390625,
+     *         128 * 156543.03390625,
+     *         128 * 156543.03390625
      *     ),
      *     sphericalMercator: true,
-     *     maxResolution: 156543.0339,
+     *     maxResolution: 156543.03390625,
      *     units: "m",
      *     projection: "EPSG:900913"
      * }
@@ -40,17 +40,30 @@ OpenLayers.Layer.Google.v3 = {
      */
     DEFAULTS: {
         maxExtent: new OpenLayers.Bounds(
-            -128 * 156543.0339,
-            -128 * 156543.0339,
-            128 * 156543.0339,
-            128 * 156543.0339
+            -128 * 156543.03390625,
+            -128 * 156543.03390625,
+            128 * 156543.03390625,
+            128 * 156543.03390625
         ),
         sphericalMercator: true,
-        maxResolution: 156543.0339,
+        maxResolution: 156543.03390625,
         units: "m",
         projection: "EPSG:900913"
     },
 
+    /**
+     * APIProperty: animationEnabled
+     * {Boolean} If set to true, the transition between zoom levels will be
+     *     animated (if supported by the GMaps API for the device used). Set to
+     *     false to match the zooming experience of other layer types. Default
+     *     is true. Note that the GMaps API does not give us control over zoom
+     *     animation, so if set to false, when zooming, this will make the
+     *     layer temporarily invisible, wait until GMaps reports the map being
+     *     idle, and make it visible again. The result will be a blank layer
+     *     for a few moments while zooming.
+     */
+    animationEnabled: true, 
+
     /** 
      * Method: loadMapObject
      * Load the GMap and register appropriate event listeners. If we can't 
@@ -90,7 +103,8 @@ OpenLayers.Layer.Google.v3 = {
                 keyboardShortcuts: false,
                 draggable: false,
                 disableDoubleClickZoom: true,
-                scrollwheel: false
+                scrollwheel: false,
+                streetViewControl: false
             });
             
             // cache elements for use by any other google layers added to
@@ -133,6 +147,11 @@ OpenLayers.Layer.Google.v3 = {
 
         var cache = OpenLayers.Layer.Google.cache[this.map.id];
         var container = this.map.viewPortDiv;
+        
+        // move the Map Data popup to the container, if any
+        while (div.lastChild.style.display == "none") {
+            container.appendChild(div.lastChild);
+        }
 
         // move the ToS and branding stuff up to the container div
         var termsOfUse = div.lastChild;
@@ -162,15 +181,16 @@ OpenLayers.Layer.Google.v3 = {
         if (this.visibility) {
             google.maps.event.trigger(this.mapObject, "resize");
         } else {
-            if (!this._resized) {
+            var cache = OpenLayers.Layer.Google.cache[this.map.id];
+            if (!cache.resized) {
                 var layer = this;
                 google.maps.event.addListenerOnce(this.mapObject, "tilesloaded", function() {
-                    delete layer._resized;
                     google.maps.event.trigger(layer.mapObject, "resize");
                     layer.moveTo(layer.map.getCenter(), layer.map.getZoom());
+                    delete cache.resized;
                 });
             }
-            this._resized = true;
+            cache.resized = true;
         }
     },
 
@@ -334,6 +354,17 @@ OpenLayers.Layer.Google.v3 = {
      * zoom - {int} MapObject zoom format
      */
     setMapObjectCenter: function(center, zoom) {
+        if (this.animationEnabled === false && zoom != this.mapObject.zoom) {
+            var mapContainer = this.getMapContainer();
+            google.maps.event.addListenerOnce(
+                this.mapObject, 
+                "idle", 
+                function() {
+                    mapContainer.style.visibility = "";
+                }
+            );
+            mapContainer.style.visibility = "hidden";
+        }
         this.mapObject.setOptions({
             center: center,
             zoom: zoom
diff --git a/lib/OpenLayers/Layer/Grid.js b/lib/OpenLayers/Layer/Grid.js
index 1eca360..243de05 100644
--- a/lib/OpenLayers/Layer/Grid.js
+++ b/lib/OpenLayers/Layer/Grid.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -24,6 +24,32 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
      * {<OpenLayers.Size>}
      */
     tileSize: null,
+
+    /**
+     * Property: tileOriginCorner
+     * {String} If the <tileOrigin> property is not provided, the tile origin 
+     *     will be derived from the layer's <maxExtent>.  The corner of the 
+     *     <maxExtent> used is determined by this property.  Acceptable values
+     *     are "tl" (top left), "tr" (top right), "bl" (bottom left), and "br"
+     *     (bottom right).  Default is "bl".
+     */
+    tileOriginCorner: "bl",
+    
+    /**
+     * APIProperty: tileOrigin
+     * {<OpenLayers.LonLat>} Optional origin for aligning the grid of tiles.
+     *     If provided, requests for tiles at all resolutions will be aligned
+     *     with this location (no tiles shall overlap this location).  If
+     *     not provided, the grid of tiles will be aligned with the layer's
+     *     <maxExtent>.  Default is ``null``.
+     */
+    tileOrigin: null,
+    
+    /** APIProperty: tileOptions
+     *  {Object} optional configuration options for <OpenLayers.Tile> instances
+     *  created by this Layer, if supported by the tile class.
+     */
+    tileOptions: null,
     
     /**
      * Property: grid
@@ -52,8 +78,11 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
      * {Integer} Used only when in gridded mode, this specifies the number of 
      *           extra rows and colums of tiles on each side which will
      *           surround the minimum grid tiles to cover the map.
+     *           For very slow loading layers, a larger value may increase
+     *           performance somewhat when dragging, but will increase bandwidth
+     *           use significantly. 
      */
-    buffer: 2,
+    buffer: 0,
 
     /**
      * APIProperty: numLoadingTiles
@@ -62,6 +91,19 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
     numLoadingTiles: 0,
 
     /**
+     * APIProperty: tileLoadingDelay
+     * {Integer} - Number of milliseconds before we shift and load
+     *     tiles. Default is 100.
+     */
+    tileLoadingDelay: 100,
+
+    /**
+     * Property: timerId
+     * {Number} - The id of the tileLoadingDelay timer.
+     */
+    timerId: null,
+
+    /**
      * Constructor: OpenLayers.Layer.Grid
      * Create a new grid layer
      *
@@ -83,6 +125,24 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
         this.events.addEventType("tileloaded");
 
         this.grid = [];
+        
+        this._moveGriddedTiles = OpenLayers.Function.bind(
+            this.moveGriddedTiles, this
+        );
+    },
+
+    /**
+     * Method: removeMap
+     * Called when the layer is removed from the map.
+     *
+     * Parameters:
+     * map - {<OpenLayers.Map>} The map.
+     */
+    removeMap: function(map) {
+        if(this.timerId != null) {
+            window.clearTimeout(this.timerId);
+            this.timerId = null;
+        }
     },
 
     /**
@@ -191,12 +251,39 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
                 if (forceReTile || !tilesBounds.containsBounds(bounds, true)) {
                     this.initGriddedTiles(bounds);
                 } else {
-                    //we might have to shift our buffer tiles
-                    this.moveGriddedTiles(bounds);
+                    this.scheduleMoveGriddedTiles();
                 }
             }
         }
     },
+
+    /**
+     * Method: moveByPx
+     * Move the layer based on pixel vector.
+     *
+     * Parameters:
+     * dx - {Number}
+     * dy - {Number}
+     */
+    moveByPx: function(dx, dy) {
+        if (!this.singleTile) {
+            this.scheduleMoveGriddedTiles();
+        }
+    },
+
+    /**
+     * Method: scheduleMoveGriddedTiles
+     * Schedule the move of tiles.
+     */
+    scheduleMoveGriddedTiles: function() {
+        if (this.timerId != null) {
+            window.clearTimeout(this.timerId);
+        }
+        this.timerId = window.setTimeout(
+            this._moveGriddedTiles,
+            this.tileLoadingDelay
+        );
+    },
     
     /**
      * APIMethod: setTileSize
@@ -303,32 +390,32 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
 
     /** 
      * Method: calculateGridLayout
-     * Generate parameters for the grid layout. This  
+     * Generate parameters for the grid layout.
      *
      * Parameters:
      * bounds - {<OpenLayers.Bound>}
-     * extent - {<OpenLayers.Bounds>}
+     * origin - {<OpenLayers.LonLat>}
      * resolution - {Number}
      *
      * Returns:
      * Object containing properties tilelon, tilelat, tileoffsetlat,
      * tileoffsetlat, tileoffsetx, tileoffsety
      */
-    calculateGridLayout: function(bounds, extent, resolution) {
+    calculateGridLayout: function(bounds, origin, resolution) {
         var tilelon = resolution * this.tileSize.w;
         var tilelat = resolution * this.tileSize.h;
         
-        var offsetlon = bounds.left - extent.left;
+        var offsetlon = bounds.left - origin.lon;
         var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
         var tilecolremain = offsetlon/tilelon - tilecol;
         var tileoffsetx = -tilecolremain * this.tileSize.w;
-        var tileoffsetlon = extent.left + tilecol * tilelon;
+        var tileoffsetlon = origin.lon + tilecol * tilelon;
         
-        var offsetlat = bounds.top - (extent.bottom + tilelat);  
+        var offsetlat = bounds.top - (origin.lat + tilelat);  
         var tilerow = Math.ceil(offsetlat/tilelat) + this.buffer;
         var tilerowremain = tilerow - offsetlat/tilelat;
         var tileoffsety = -tilerowremain * this.tileSize.h;
-        var tileoffsetlat = extent.bottom + tilerow * tilelat;
+        var tileoffsetlat = origin.lat + tilerow * tilelat;
         
         return { 
           tilelon: tilelon, tilelat: tilelat,
@@ -337,6 +424,32 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
         };
 
     },
+    
+    /**
+     * Method: getTileOrigin
+     * Determine the origin for aligning the grid of tiles.  If a <tileOrigin>
+     *     property is supplied, that will be returned.  Otherwise, the origin
+     *     will be derived from the layer's <maxExtent> property.  In this case,
+     *     the tile origin will be the corner of the <maxExtent> given by the 
+     *     <tileOriginCorner> property.
+     *
+     * Returns:
+     * {<OpenLayers.LonLat>} The tile origin.
+     */
+    getTileOrigin: function() {
+        var origin = this.tileOrigin;
+        if (!origin) {
+            var extent = this.getMaxExtent();
+            var edges = ({
+                "tl": ["left", "top"],
+                "tr": ["right", "top"],
+                "bl": ["left", "bottom"],
+                "br": ["right", "bottom"]
+            })[this.tileOriginCorner];
+            origin = new OpenLayers.LonLat(extent[edges[0]], extent[edges[1]]);
+        }
+        return origin;
+    },
 
     /**
      * Method: initGriddedTiles
@@ -355,10 +468,10 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
         var minCols = Math.ceil(viewSize.w/this.tileSize.w) +
                       Math.max(1, 2 * this.buffer);
         
-        var extent = this.getMaxExtent();
+        var origin = this.getTileOrigin();
         var resolution = this.map.getResolution();
         
-        var tileLayout = this.calculateGridLayout(bounds, extent, resolution);
+        var tileLayout = this.calculateGridLayout(bounds, origin, resolution);
 
         var tileoffsetx = Math.round(tileLayout.tileoffsetx); // heaven help us
         var tileoffsety = Math.round(tileLayout.tileoffsety);
@@ -518,9 +631,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
 
     /**
      * APIMethod: addTile
-     * Gives subclasses of Grid the opportunity to create an 
-     * OpenLayer.Tile of their choosing. The implementer should initialize 
-     * the new tile and take whatever steps necessary to display it.
+     * Create a tile, initialize it, and add it to the layer div. 
      *
      * Parameters
      * bounds - {<OpenLayers.Bounds>}
@@ -530,7 +641,8 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
      * {<OpenLayers.Tile>} The added OpenLayers.Tile
      */
     addTile:function(bounds, position) {
-        // Should be implemented by subclasses
+        return new OpenLayers.Tile.Image(this, position, bounds, null, 
+                                         this.tileSize, this.tileOptions);
     },
     
     /** 
@@ -584,28 +696,31 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
     
     /**
      * Method: moveGriddedTiles
-     * 
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
      */
-    moveGriddedTiles: function(bounds) {
+    moveGriddedTiles: function() {
+        var shifted = true;
         var buffer = this.buffer || 1;
-        while (true) {
-            var tlLayer = this.grid[0][0].position;
-            var tlViewPort = 
-                this.map.getViewPortPxFromLayerPx(tlLayer);
-            if (tlViewPort.x > -this.tileSize.w * (buffer - 1)) {
-                this.shiftColumn(true);
-            } else if (tlViewPort.x < -this.tileSize.w * buffer) {
-                this.shiftColumn(false);
-            } else if (tlViewPort.y > -this.tileSize.h * (buffer - 1)) {
-                this.shiftRow(true);
-            } else if (tlViewPort.y < -this.tileSize.h * buffer) {
-                this.shiftRow(false);
-            } else {
-                break;
-            }
-        };
+        var tlLayer = this.grid[0][0].position;
+        var offsetX = parseInt(this.map.layerContainerDiv.style.left);
+        var offsetY = parseInt(this.map.layerContainerDiv.style.top);
+        var tlViewPort = tlLayer.add(offsetX, offsetY);
+        if (tlViewPort.x > -this.tileSize.w * (buffer - 1)) {
+            this.shiftColumn(true);
+        } else if (tlViewPort.x < -this.tileSize.w * buffer) {
+            this.shiftColumn(false);
+        } else if (tlViewPort.y > -this.tileSize.h * (buffer - 1)) {
+            this.shiftRow(true);
+        } else if (tlViewPort.y < -this.tileSize.h * buffer) {
+            this.shiftRow(false);
+        } else {
+            shifted = false;
+        }
+        if (shifted) {
+            // we may have other row or columns to shift, schedule it
+            // with a setTimeout, to give the user a chance to sneak
+            // in moveTo's
+            this.timerId = window.setTimeout(this._moveGriddedTiles, 0);
+        }
     },
 
     /**
@@ -685,7 +800,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
      * 
      * Parameters:
      * rows - {Integer} Maximum number of rows we want our grid to have.
-     * colums - {Integer} Maximum number of columns we want our grid to have.
+     * columns - {Integer} Maximum number of columns we want our grid to have.
      */
     removeExcessTiles: function(rows, columns) {
         
diff --git a/lib/OpenLayers/Layer/HTTPRequest.js b/lib/OpenLayers/Layer/HTTPRequest.js
index 1bf8385..ddf3d51 100644
--- a/lib/OpenLayers/Layer/HTTPRequest.js
+++ b/lib/OpenLayers/Layer/HTTPRequest.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -38,7 +38,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, {
     
     /** 
      * APIProperty: reproject
-     * *Deprecated*. See http://trac.openlayers.org/wiki/SpatialMercator
+     * *Deprecated*. See http://docs.openlayers.org/library/spherical_mercator.html
      * for information on the replacement for this functionality. 
      * {Boolean} Whether layer should reproject itself based on base layer 
      *           locations. This allows reprojection onto commercial layers. 
@@ -58,9 +58,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, {
      * options - {Object} Hashtable of extra options to tag onto the layer
      */
     initialize: function(name, url, params, options) {
-        var newArguments = arguments;
-        newArguments = [name, options];
-        OpenLayers.Layer.prototype.initialize.apply(this, newArguments);
+        OpenLayers.Layer.prototype.initialize.apply(this, [name, options]);
         this.url = url;
         this.params = OpenLayers.Util.extend( {}, params);
     },
@@ -209,7 +207,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, {
         // in which case we will deterministically select one of them in 
         // order to evenly distribute requests to different urls.
         //
-        if (url instanceof Array) {
+        if (OpenLayers.Util.isArray(url)) {
             url = this.selectUrl(paramsString, url);
         }   
  
diff --git a/lib/OpenLayers/Layer/Image.js b/lib/OpenLayers/Layer/Image.js
index 7d28504..d547e81 100644
--- a/lib/OpenLayers/Layer/Image.js
+++ b/lib/OpenLayers/Layer/Image.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/KaMap.js b/lib/OpenLayers/Layer/KaMap.js
index 9a63942..9a08f3f 100644
--- a/lib/OpenLayers/Layer/KaMap.js
+++ b/lib/OpenLayers/Layer/KaMap.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -94,22 +94,6 @@ OpenLayers.Layer.KaMap = OpenLayers.Class(OpenLayers.Layer.Grid, {
                       });
     },
 
-    /**
-     * Method: addTile
-     * 
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>}
-     */    
-    addTile:function(bounds,position) {
-        var url = this.getURL(bounds);
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                             url, this.tileSize);
-    },
-
     /** 
      * Method: calculateGridLayout
      * ka-Map uses the center point of the map as an origin for 
@@ -118,14 +102,14 @@ OpenLayers.Layer.KaMap = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *
      * Parameters:
      * bounds - {<OpenLayers.Bound>}
-     * extent - {<OpenLayers.Bounds>}
+     * origin - {<OpenLayers.LonLat>}
      * resolution - {Number}
      *
      * Returns:
      * Object containing properties tilelon, tilelat, tileoffsetlat,
      * tileoffsetlat, tileoffsetx, tileoffsety
      */
-    calculateGridLayout: function(bounds, extent, resolution) {
+    calculateGridLayout: function(bounds, origin, resolution) {
         var tilelon = resolution*this.tileSize.w;
         var tilelat = resolution*this.tileSize.h;
         
diff --git a/lib/OpenLayers/Layer/KaMapCache.js b/lib/OpenLayers/Layer/KaMapCache.js
index b4ac08f..4cf8e7e 100644
--- a/lib/OpenLayers/Layer/KaMapCache.js
+++ b/lib/OpenLayers/Layer/KaMapCache.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -117,7 +117,7 @@ OpenLayers.Layer.KaMapCache = OpenLayers.Class(OpenLayers.Layer.KaMap, {
         // order to evenly distribute requests to different urls.
         //
         var url = this.url;
-        if (url instanceof Array) {
+        if (OpenLayers.Util.isArray(url)) {
             url = this.selectUrl(paramsString, url);
         }  
     
diff --git a/lib/OpenLayers/Layer/MapGuide.js b/lib/OpenLayers/Layer/MapGuide.js
index 52392b0..7b020b5 100644
--- a/lib/OpenLayers/Layer/MapGuide.js
+++ b/lib/OpenLayers/Layer/MapGuide.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -116,6 +116,12 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
      **/
     defaultSize: new OpenLayers.Size(300,300),
 
+    /** 
+     * Property: tileOriginCorner
+     * {String} MapGuide tile server uses top-left as tile origin
+     **/
+    tileOriginCorner: "tl",
+
     /**
      * Constructor: OpenLayers.Layer.MapGuide
      * Create a new Mapguide layer, either tiled or untiled.  
@@ -162,7 +168,7 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *       groups to hide eg: 'cvc-xcv34,453-345-345sdf'
      *   - selectionXml - {String} A selection xml string Some server plumbing
      *       is required to read such a value.
-     * options - {Ojbect} Hashtable of extra options to tag onto the layer; 
+     * options - {Object} Hashtable of extra options to tag onto the layer; 
      *          will vary depending if tiled or untiled maps are being requested
      */
     initialize: function(name, url, params, options) {
@@ -234,22 +240,6 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
     },
 
     /**
-     * Method: addTile
-     * Creates a tile, initializes it, and adds it to the layer div. 
-     *
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
-    },
-
-    /**
      * Method: getURL
      * Return a query string for this layer
      *
@@ -455,28 +445,28 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *
      * Parameters:
      * bounds - {<OpenLayers.Bound>}
-     * extent - {<OpenLayers.Bounds>}
+     * origin - {<OpenLayers.LonLat>}
      * resolution - {Number}
      *
      * Returns:
      * Object containing properties tilelon, tilelat, tileoffsetlat,
      * tileoffsetlat, tileoffsetx, tileoffsety
      */
-    calculateGridLayout: function(bounds, extent, resolution) {
+    calculateGridLayout: function(bounds, origin, resolution) {
         var tilelon = resolution * this.tileSize.w;
         var tilelat = resolution * this.tileSize.h;
         
-        var offsetlon = bounds.left - extent.left;
+        var offsetlon = bounds.left - origin.lon;
         var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
         var tilecolremain = offsetlon/tilelon - tilecol;
         var tileoffsetx = -tilecolremain * this.tileSize.w;
-        var tileoffsetlon = extent.left + tilecol * tilelon;
+        var tileoffsetlon = origin.lon + tilecol * tilelon;
         
-        var offsetlat = extent.top - bounds.top + tilelat; 
+        var offsetlat = origin.lat - bounds.top + tilelat; 
         var tilerow = Math.floor(offsetlat/tilelat) - this.buffer;
         var tilerowremain = tilerow - offsetlat/tilelat;
         var tileoffsety = tilerowremain * this.tileSize.h;
-        var tileoffsetlat = extent.top - tilelat*tilerow;
+        var tileoffsetlat = origin.lat - tilelat*tilerow;
         
         return { 
           tilelon: tilelon, tilelat: tilelat,
diff --git a/lib/OpenLayers/Layer/MapServer.js b/lib/OpenLayers/Layer/MapServer.js
index 6e93d3a..e009be8 100644
--- a/lib/OpenLayers/Layer/MapServer.js
+++ b/lib/OpenLayers/Layer/MapServer.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -36,7 +36,7 @@ OpenLayers.Layer.MapServer = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *       (e.g. http://www2.dmsolutions.ca/cgi-bin/mapserv)
      * params - {Object} An object with key/value pairs representing the
      *          GetMap query string parameters and parameter values.
-     * options - {Ojbect} Hashtable of extra options to tag onto the layer
+     * options - {Object} Hashtable of extra options to tag onto the layer
      */
     initialize: function(name, url, params, options) {
         var newArguments = [];
@@ -76,22 +76,6 @@ OpenLayers.Layer.MapServer = OpenLayers.Class(OpenLayers.Layer.Grid, {
 
         return obj;
     },
-
-    /**
-     * Method: addTile
-     * Creates a tile, initializes it, and adds it to the layer div. 
-     *
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
-    },
     
     /**
      * Method: getURL
@@ -152,7 +136,7 @@ OpenLayers.Layer.MapServer = OpenLayers.Class(OpenLayers.Layer.Grid, {
         // if url is not a string, it should be an array of strings, 
         // in which case we will deterministically select one of them in 
         // order to evenly distribute requests to different urls.
-        if (url instanceof Array) {
+        if (OpenLayers.Util.isArray(url)) {
             url = this.selectUrl(paramsString, url);
         }   
         
diff --git a/lib/OpenLayers/Layer/MapServer/Untiled.js b/lib/OpenLayers/Layer/MapServer/Untiled.js
index 1967eb6..3935919 100644
--- a/lib/OpenLayers/Layer/MapServer/Untiled.js
+++ b/lib/OpenLayers/Layer/MapServer/Untiled.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/Markers.js b/lib/OpenLayers/Layer/Markers.js
index 1efed48..09a262a 100644
--- a/lib/OpenLayers/Layer/Markers.js
+++ b/lib/OpenLayers/Layer/Markers.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/MultiMap.js b/lib/OpenLayers/Layer/MultiMap.js
index e390e78..3052b82 100644
--- a/lib/OpenLayers/Layer/MultiMap.js
+++ b/lib/OpenLayers/Layer/MultiMap.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,12 +6,14 @@
 /**
  * @requires OpenLayers/Layer/EventPane.js
  * @requires OpenLayers/Layer/FixedZoomLevels.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
  * Class: OpenLayers.Layer.MultiMap
  * Note that MultiMap does not fully support the sphericalMercator
  * option. See Ticket #953 for more details.
+ * *Deprecated*.  Use OpenLayers.Layer.Bing instead. See #3063
  * 
  * Inherits from:
  *  - <OpenLayers.Layer.EventPane>
diff --git a/lib/OpenLayers/Layer/PointGrid.js b/lib/OpenLayers/Layer/PointGrid.js
new file mode 100644
index 0000000..7a82835
--- /dev/null
+++ b/lib/OpenLayers/Layer/PointGrid.js
@@ -0,0 +1,299 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Layer/Vector.js
+ * @requires OpenLayers/Geometry/Polygon.js
+ */
+
+/**
+ * Class: OpenLayers.Layer.PointGrid
+ * A point grid layer dynamically generates a regularly spaced grid of point
+ *     features.  This is a specialty layer for cases where an application needs
+ *     a regular grid of points.  It can be used, for example, in an editing
+ *     environment to snap to a grid.
+ *
+ * Create a new vector layer with the <OpenLayers.Layer.PointGrid> constructor.
+ * (code)
+ * // create a grid with points spaced at 10 map units
+ * var points = new OpenLayers.Layer.PointGrid({dx: 10, dy: 10});
+ *
+ * // create a grid with different x/y spacing rotated 15 degrees clockwise.
+ * var points = new OpenLayers.Layer.PointGrid({dx: 5, dy: 10, rotation: 15});
+ * (end)
+ *
+ * Inherits from:
+ *  - <OpenLayers.Layer.Vector>
+ */
+OpenLayers.Layer.PointGrid = OpenLayers.Class(OpenLayers.Layer.Vector, {
+
+    /**
+     * APIProperty: dx
+     * {Number} Point grid spacing in the x-axis direction (map units).  
+     * Read-only.  Use the <setSpacing> method to modify this value.
+     */
+    dx: null,
+
+    /**
+     * APIProperty: dy
+     * {Number} Point grid spacing in the y-axis direction (map units).  
+     * Read-only.  Use the <setSpacing> method to modify this value.
+     */
+    dy: null,
+
+    /**
+     * APIProperty: ratio
+     * {Number} Ratio of the desired grid size to the map viewport size.  
+     * Default is 1.5.  Larger ratios mean the grid is recalculated less often 
+     * while panning.  The <maxFeatures> setting has precedence when determining
+     * grid size.  Read-only.  Use the <setRatio> method to modify this value.
+     */
+    ratio: 1.5,
+
+    /**
+     * APIProperty: maxFeatures
+     * {Number} The maximum number of points to generate in the grid.  Default
+     * is 250.  Read-only.  Use the <setMaxFeatures> method to modify this value.
+     */
+    maxFeatures: 250,
+
+    /**
+     * APIProperty: rotation
+     * {Number} Grid rotation (in degrees clockwise from the positive x-axis).
+     * Default is 0.  Read-only.  Use the <setRotation> method to modify this
+     * value.
+     */
+    rotation: 0,
+
+    /**
+     * APIProperty: origin
+     * {OpenLayers.LonLat} Grid origin.  The grid lattice will be aligned with 
+     * the origin.  If not set at construction, the center of the map's maximum 
+     * extent is used.  Read-only.  Use the <setOrigin> method to modify this 
+     * value.
+     */
+    origin: null,
+
+    /**
+     * Property: gridBounds
+     * {<OpenLayers.Bounds>}  Internally cached grid bounds (with optional 
+     * rotation applied).
+     */
+    gridBounds: null,
+
+    /**
+     * Constructor: OpenLayers.Layer.PointGrid
+     * Creates a new point grid layer.
+     *
+     * Parameters:
+     * config - {Object} An object containing all configuration properties for
+     *     the layer.  The <dx> and <dy> properties are required to be set at 
+     *     construction.  Any other layer properties may be set in this object.
+     */
+    initialize: function(config) {
+        config = config || {};
+        OpenLayers.Layer.Vector.prototype.initialize.apply(this, [config.name, config]);
+    },
+    
+    /** 
+     * Method: setMap
+     * The layer has been added to the map. 
+     * 
+     * Parameters:
+     * map - {<OpenLayers.Map>} 
+     */
+    setMap: function(map) {        
+        OpenLayers.Layer.Vector.prototype.setMap.apply(this, arguments);
+        map.events.register("moveend", this, this.onMoveEnd);
+    },
+
+    /**
+     * Method: removeMap
+     * The layer has been removed from the map.
+     *
+     * Parameters:
+     * map - {<OpenLayers.Map>}
+     */
+    removeMap: function(map) {
+        map.events.unregister("moveend", this, this.onMoveEnd);
+        OpenLayers.Layer.Vector.prototype.removeMap.apply(this, arguments);
+    },
+    
+    /**
+     * APIMethod: setRatio
+     * Set the grid <ratio> property and update the grid.  Can only be called
+     *     after the layer has been added to a map with a center/extent.
+     *
+     * Parameters:
+     * ratio - {Number}
+     */
+    setRatio: function(ratio) {
+        this.ratio = ratio;
+        this.updateGrid(true);
+    },
+    
+    /**
+     * APIMethod: setMaxFeatures
+     * Set the grid <maxFeatures> property and update the grid.  Can only be 
+     *     called after the layer has been added to a map with a center/extent.
+     *
+     * Parameters:
+     * maxFeatures - {Number}
+     */
+    setMaxFeatures: function(maxFeatures) {
+        this.maxFeatures = maxFeatures;
+        this.updateGrid(true);
+    },
+
+    /**
+     * APIMethod: setSpacing
+     * Set the grid <dx> and <dy> properties and update the grid.  If only one
+     *     argument is provided, it will be set as <dx> and <dy>.  Can only be 
+     *     called after the layer has been added to a map with a center/extent.
+     *
+     * Parameters:
+     * dx - {Number}
+     * dy - {Number}
+     */
+    setSpacing: function(dx, dy) {
+        this.dx = dx;
+        this.dy = dy || dx;
+        this.updateGrid(true);
+    },
+    
+    /**
+     * APIMethod: setOrigin
+     * Set the grid <origin> property and update the grid.  Can only be called
+     *     after the layer has been added to a map with a center/extent.
+     *
+     * Parameters:
+     * origin - {<OpenLayers.LonLat>}
+     */
+    setOrigin: function(origin) {
+        this.origin = origin;
+        this.updateGrid(true);
+    },
+    
+    /**
+     * APIMethod: getOrigin
+     * Get the grid <origin> property.
+     *
+     * Returns:
+     * {<OpenLayers.LonLat>} The grid origin.
+     */
+    getOrigin: function() {
+        if (!this.origin) {
+            this.origin = this.map.getExtent().getCenterLonLat();
+        }
+        return this.origin;
+    },
+    
+    /**
+     * APIMethod: setRotation
+     * Set the grid <rotation> property and update the grid.  Rotation values
+     *     are in degrees clockwise from the positive x-axis (negative values
+     *     for counter-clockwise rotation).  Can only be called after the layer 
+     *     has been added to a map with a center/extent.
+     *
+     * Parameters:
+     * rotation - {Number} Degrees clockwise from the positive x-axis.
+     */
+    setRotation: function(rotation) {
+        this.rotation = rotation;
+        this.updateGrid(true);
+    },
+    
+    /**
+     * Method: onMoveEnd
+     * Listener for map "moveend" events.
+     */
+    onMoveEnd: function() {
+        this.updateGrid();
+    },
+    
+    /**
+     * Method: getViewBounds
+     * Gets the (potentially rotated) view bounds for grid calculations.
+     *
+     * Returns:
+     * {<OpenLayers.Bounds>}
+     */
+    getViewBounds: function() {
+        var bounds = this.map.getExtent();
+        if (this.rotation) {
+            var origin = this.getOrigin();
+            var rotationOrigin = new OpenLayers.Geometry.Point(origin.lon, origin.lat);
+            var rect = bounds.toGeometry();
+            rect.rotate(-this.rotation, rotationOrigin);
+            bounds = rect.getBounds();
+        }
+        return bounds;
+    },
+    
+    /**
+     * Method: updateGrid
+     * Update the grid.
+     *
+     * Parameters:
+     * force - {Boolean} Update the grid even if the previous bounds are still
+     *     valid.
+     */
+    updateGrid: function(force) {
+        if (force || this.invalidBounds()) {
+            var viewBounds = this.getViewBounds();
+            var origin = this.getOrigin();
+            var rotationOrigin = new OpenLayers.Geometry.Point(origin.lon, origin.lat);
+            var viewBoundsWidth = viewBounds.getWidth();
+            var viewBoundsHeight = viewBounds.getHeight();
+            var aspectRatio = viewBoundsWidth / viewBoundsHeight;
+            var maxHeight = Math.sqrt(this.dx * this.dy * this.maxFeatures / aspectRatio);
+            var maxWidth = maxHeight * aspectRatio; 
+            var gridWidth = Math.min(viewBoundsWidth * this.ratio, maxWidth);
+            var gridHeight = Math.min(viewBoundsHeight * this.ratio, maxHeight);
+            var center = viewBounds.getCenterLonLat();
+            this.gridBounds = new OpenLayers.Bounds(
+                center.lon - (gridWidth / 2),
+                center.lat - (gridHeight / 2),
+                center.lon + (gridWidth / 2),
+                center.lat + (gridHeight / 2)
+            );
+            var rows = Math.floor(gridHeight / this.dy);
+            var cols = Math.floor(gridWidth / this.dx);
+            var gridLeft = origin.lon + (this.dx * Math.ceil((this.gridBounds.left - origin.lon) / this.dx));
+            var gridBottom = origin.lat + (this.dy * Math.ceil((this.gridBounds.bottom - origin.lat) / this.dy));
+            var features = new Array(rows * cols);
+            var x, y, point;
+            for (var i=0; i<cols; ++i) {
+                x = gridLeft + (i * this.dx);
+                for (var j=0; j<rows; ++j) {
+                    y = gridBottom + (j * this.dy);
+                    point = new OpenLayers.Geometry.Point(x, y);
+                    if (this.rotation) {
+                        point.rotate(this.rotation, rotationOrigin);
+                    }
+                    features[(i*rows)+j] = new OpenLayers.Feature.Vector(point);
+                }
+            }
+            this.destroyFeatures(this.features, {silent: true});
+            this.addFeatures(features, {silent: true});
+        }
+    },
+
+    /**
+     * Method: invalidBounds
+     * Determine whether the previously generated point grid is invalid. 
+     *     This occurs when the map bounds extends beyond the previously 
+     *     generated grid bounds.
+     *
+     * Returns:
+     * {Boolean} 
+     */
+    invalidBounds: function() {
+        return !this.gridBounds || !this.gridBounds.containsBounds(this.getViewBounds());
+    },
+
+    CLASS_NAME: "OpenLayers.Layer.PointGrid"
+    
+});
diff --git a/lib/OpenLayers/Layer/PointTrack.js b/lib/OpenLayers/Layer/PointTrack.js
index 27607ca..e8d5e7d 100644
--- a/lib/OpenLayers/Layer/PointTrack.js
+++ b/lib/OpenLayers/Layer/PointTrack.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -20,13 +20,23 @@ OpenLayers.Layer.PointTrack = OpenLayers.Class(OpenLayers.Layer.Vector, {
   
     /**
      * APIProperty:
-     * dataFrom  - {<OpenLayers.Layer.PointTrack.dataFrom>} optional. If the
-     *             lines should get the data/attributes from one of the two
-     *             points, creating it, which one should it be?
+     * dataFrom  - {<OpenLayers.Layer.PointTrack.TARGET_NODE>} or
+     *     {<OpenLayers.Layer.PointTrack.SOURCE_NODE>} optional. If the lines
+     *     should get the data/attributes from one of the two points it is
+     *     composed of, which one should it be?
      */
     dataFrom: null,
     
     /**
+     * APIProperty:
+     * styleFrom  - {<OpenLayers.Layer.PointTrack.TARGET_NODE>} or
+     *     {<OpenLayers.Layer.PointTrack.SOURCE_NODE>} optional. If the lines
+     *     should get the style from one of the two points it is composed of,
+     *     which one should it be?
+     */
+    styleFrom: null,
+    
+    /**
      * Constructor: OpenLayers.PointTrack
      * Constructor for a new OpenLayers.PointTrack instance.
      *
@@ -47,9 +57,12 @@ OpenLayers.Layer.PointTrack = OpenLayers.Class(OpenLayers.Layer.Vector, {
      * 
      * Parameters:
      * pointFeatures - {Array(<OpenLayers.Feature>)}
+     * options - {Object}
      * 
+     * Supported options:
+     * silent - {Boolean} true to suppress (before)feature(s)added events
      */
-    addNodes: function(pointFeatures) {
+    addNodes: function(pointFeatures, options) {
         if (pointFeatures.length < 2) {
             OpenLayers.Console.error(
                     "At least two point features have to be added to create" +
@@ -78,26 +91,43 @@ OpenLayers.Layer.PointTrack = OpenLayers.Class(OpenLayers.Layer.Vector, {
                         (pointFeatures[i+this.dataFrom].data ||
                                 pointFeatures[i+this.dataFrom].attributes) :
                         null;
+                var style = (this.styleFrom != null) ?
+                        (pointFeatures[i+this.styleFrom].style) :
+                        null;
                 var line = new OpenLayers.Geometry.LineString([startPoint,
                         endPoint]);
                         
-                lines[i-1] = new OpenLayers.Feature.Vector(line, attributes);
+                lines[i-1] = new OpenLayers.Feature.Vector(line, attributes,
+                    style);
             }
             
             startPoint = endPoint;
         }
 
-        this.addFeatures(lines);
+        this.addFeatures(lines, options);
     },
     
     CLASS_NAME: "OpenLayers.Layer.PointTrack"
 });
 
 /**
+ * Constant: OpenLayers.Layer.PointTrack.SOURCE_NODE
+ * {Number} value for <OpenLayers.Layer.PointTrack.dataFrom> and
+ * <OpenLayers.Layer.PointTrack.styleFrom>
+ */
+OpenLayers.Layer.PointTrack.SOURCE_NODE = -1;
+
+/**
+ * Constant: OpenLayers.Layer.PointTrack.TARGET_NODE
+ * {Number} value for <OpenLayers.Layer.PointTrack.dataFrom> and
+ * <OpenLayers.Layer.PointTrack.styleFrom>
+ */
+OpenLayers.Layer.PointTrack.TARGET_NODE = 0;
+
+/**
  * Constant: OpenLayers.Layer.PointTrack.dataFrom
- * {Object} with the following keys
+ * {Object} with the following keys - *deprecated*
  * - SOURCE_NODE: take data/attributes from the source node of the line
  * - TARGET_NODE: take data/attributes from the target node of the line
  */
 OpenLayers.Layer.PointTrack.dataFrom = {'SOURCE_NODE': -1, 'TARGET_NODE': 0};
-
diff --git a/lib/OpenLayers/Layer/SphericalMercator.js b/lib/OpenLayers/Layer/SphericalMercator.js
index 85418fe..a4c5e28 100644
--- a/lib/OpenLayers/Layer/SphericalMercator.js
+++ b/lib/OpenLayers/Layer/SphericalMercator.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -95,7 +95,7 @@ OpenLayers.Layer.SphericalMercator = {
     initMercatorParameters: function() {
         // set up properties for Mercator - assume EPSG:900913
         this.RESOLUTIONS = [];
-        var maxResolution = 156543.0339;
+        var maxResolution = 156543.03390625;
         for(var zoom=0; zoom<=this.MAX_ZOOM_LEVEL; ++zoom) {
             this.RESOLUTIONS[zoom] = maxResolution / Math.pow(2, zoom);
         }
@@ -186,11 +186,32 @@ OpenLayers.Layer.SphericalMercator = {
 };
 
 /**
- * Note: Two transforms declared
- * Transforms from EPSG:4326 to EPSG:900913 and from EPSG:900913 to EPSG:4326
- *     are set by this class.
+ * Note: Transforms for web mercator <-> EPSG:4326
+ * OpenLayers recognizes EPSG:3857, EPSG:900913, EPSG:102113 and EPSG:102100.
+ * OpenLayers originally started referring to EPSG:900913 as web mercator.
+ * The EPSG has declared EPSG:3857 to be web mercator.  
+ * ArcGIS 10 recognizes the EPSG:3857, EPSG:102113, and EPSG:102100 as 
+ * equivalent.  See http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2009/11/20/ArcGIS-Online-moving-to-Google-_2F00_-Bing-tiling-scheme_3A00_-What-does-this-mean-for-you_3F00_.aspx#12084
  */
-OpenLayers.Projection.addTransform("EPSG:4326", "EPSG:900913",
-    OpenLayers.Layer.SphericalMercator.projectForward);
-OpenLayers.Projection.addTransform("EPSG:900913", "EPSG:4326",
-    OpenLayers.Layer.SphericalMercator.projectInverse);
+(function() {
+    
+    // list of equivalent codes for web mercator
+    var codes = ["EPSG:900913", "EPSG:3857", "EPSG:102113", "EPSG:102100"];
+    
+    var add = OpenLayers.Projection.addTransform;
+    var merc = OpenLayers.Layer.SphericalMercator;
+    var same = OpenLayers.Projection.nullTransform;
+    
+    var i, len, code, other, j;
+    for (i=0, len=codes.length; i<len; ++i) {
+        code = codes[i];
+        add("EPSG:4326", code, merc.projectForward);
+        add(code, "EPSG:4326", merc.projectInverse);
+        for (j=i+1; j<len; ++j) {
+            other = codes[j];
+            add(code, other, same);
+            add(other, code, same);
+        }
+    }
+    
+})();
diff --git a/lib/OpenLayers/Layer/TMS.js b/lib/OpenLayers/Layer/TMS.js
index 3314c31..930a80a 100644
--- a/lib/OpenLayers/Layer/TMS.js
+++ b/lib/OpenLayers/Layer/TMS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -11,6 +11,18 @@
 
 /**
  * Class: OpenLayers.Layer.TMS
+ * Create a layer for accessing tiles from services that conform with the 
+ *     Tile Map Service Specification 
+ *     (http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification).
+ *
+ * Example:
+ * (code)
+ *     var layer = OpenLayers.Layer.TMS(
+ *         "My Layer", // name for display in LayerSwitcher
+ *         "http://tilecache.osgeo.org/wms-c/Basic.py/", // service endpoint
+ *         {layername: "basic", type: "png"} // required properties
+ *     );
+ * (end)
  * 
  * Inherits from:
  *  - <OpenLayers.Layer.Grid>
@@ -19,19 +31,57 @@ OpenLayers.Layer.TMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
 
     /**
      * APIProperty: serviceVersion
-     * {String}
+     * {String} Service version for tile requests.  Default is "1.0.0".
      */
     serviceVersion: "1.0.0",
 
     /**
+     * APIProperty: layername
+     * {String} The identifier for the <TileMap> as advertised by the service.  
+     *     For example, if the service advertises a <TileMap> with 
+     *    'href="http://tms.osgeo.org/1.0.0/vmap0"', the <layername> property 
+     *     would be set to "vmap0".
+     */
+    layername: null,
+
+    /**
+     * APIProperty: type
+     * {String} The format extension corresponding to the requested tile image
+     *     type.  This is advertised in a <TileFormat> element as the 
+     *     "extension" attribute.  For example, if the service advertises a 
+     *     <TileMap> with <TileFormat width="256" height="256" mime-type="image/jpeg" extension="jpg" />,
+     *     the <type> property would be set to "jpg".
+     */
+    type: null,
+
+    /**
      * APIProperty: isBaseLayer
-     * {Boolean}
+     * {Boolean} Make this layer a base layer.  Default is true.  Set false to
+     *     use the layer as an overlay.
      */
     isBaseLayer: true,
 
     /**
      * APIProperty: tileOrigin
-     * {<OpenLayers.Pixel>}
+     * {<OpenLayers.LonLat>} Optional origin for aligning the grid of tiles.
+     *     If provided, requests for tiles at all resolutions will be aligned
+     *     with this location (no tiles shall overlap this location).  If
+     *     not provided, the grid of tiles will be aligned with the bottom-left
+     *     corner of the map's <maxExtent>.  Default is ``null``.
+     *
+     * Example:
+     * (code)
+     *     var layer = OpenLayers.Layer.TMS(
+     *         "My Layer",
+     *         "http://tilecache.osgeo.org/wms-c/Basic.py/",
+     *         {
+     *             layername: "basic", 
+     *             type: "png",
+     *             // set if different than the bottom left of map.maxExtent
+     *             tileOrigin: new OpenLayers.LonLat(-180, -90)
+     *         }
+     *     );
+     * (end)
      */
     tileOrigin: null,
 
@@ -60,9 +110,11 @@ OpenLayers.Layer.TMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
      * Constructor: OpenLayers.Layer.TMS
      * 
      * Parameters:
-     * name - {String}
-     * url - {String}
-     * options - {Object} Hashtable of extra options to tag onto the layer
+     * name - {String} Title to be displayed in a <OpenLayers.Control.LayerSwitcher>
+     * url - {String} Service endpoint (without the version number).  E.g.
+     *     "http://tms.osgeo.org/".
+     * options - {Object} Additional properties to be set on the layer.  The
+     *     <layername> and <type> properties must be set here.
      */
     initialize: function(name, url, options) {
         var newArguments = [];
@@ -81,9 +133,11 @@ OpenLayers.Layer.TMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
     
     /**
      * APIMethod: clone
-     * 
+     * Create a complete copy of this layer.
+     *
      * Parameters:
-     * obj - {Object}
+     * obj - {Object} Should only be provided by subclasses that call this
+     *     method.
      * 
      * Returns:
      * {<OpenLayers.Layer.TMS>} An exact clone of this <OpenLayers.Layer.TMS>
@@ -125,30 +179,14 @@ OpenLayers.Layer.TMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
             this.map.getZoom() + this.zoomOffset;
         var path = this.serviceVersion + "/" + this.layername + "/" + z + "/" + x + "/" + y + "." + this.type; 
         var url = this.url;
-        if (url instanceof Array) {
+        if (OpenLayers.Util.isArray(url)) {
             url = this.selectUrl(path, url);
         }
         return url + path;
     },
 
-    /**
-     * Method: addTile
-     * addTile creates a tile, initializes it, and adds it to the layer div. 
-     * 
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
-    },
-
     /** 
-     * APIMethod: setMap
+     * Method: setMap
      * When the layer is added to a map, then we can fetch our origin 
      *    (if we don't have one.) 
      * 
diff --git a/lib/OpenLayers/Layer/Text.js b/lib/OpenLayers/Layer/Text.js
index 658b5ea..870905e 100644
--- a/lib/OpenLayers/Layer/Text.js
+++ b/lib/OpenLayers/Layer/Text.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/TileCache.js b/lib/OpenLayers/Layer/TileCache.js
index b3c0c2d..3510af5 100644
--- a/lib/OpenLayers/Layer/TileCache.js
+++ b/lib/OpenLayers/Layer/TileCache.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 
 /**
  * @requires OpenLayers/Layer/Grid.js
+ * @requires OpenLayers/Tile/Image.js
  */
 
 /**
@@ -137,29 +138,12 @@ OpenLayers.Layer.TileCache = OpenLayers.Class(OpenLayers.Layer.Grid, {
         ];
         var path = components.join('/'); 
         var url = this.url;
-        if (url instanceof Array) {
+        if (OpenLayers.Util.isArray(url)) {
             url = this.selectUrl(path, url);
         }
         url = (url.charAt(url.length - 1) == '/') ? url : url + '/';
         return url + path;
     },
-
-    /**
-     * Method: addTile
-     * Create a tile, initialize it, and add it to the layer div. 
-     *
-     * Parameters: 
-     * bounds - {<OpenLayers.Bounds>} 
-     * position - {<OpenLayers.Pixel>}
-     *
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added <OpenLayers.Tile.Image>
-     */
-    addTile:function(bounds, position) {
-        var url = this.getURL(bounds);
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                             url, this.tileSize);
-    },
     
     CLASS_NAME: "OpenLayers.Layer.TileCache"
 });
diff --git a/lib/OpenLayers/Layer/Vector.js b/lib/OpenLayers/Layer/Vector.js
index d16e1a2..bf48a02 100644
--- a/lib/OpenLayers/Layer/Vector.js
+++ b/lib/OpenLayers/Layer/Vector.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,6 +9,7 @@
  * @requires OpenLayers/StyleMap.js
  * @requires OpenLayers/Feature/Vector.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -64,6 +65,10 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
      * featuresremoved - Triggered after features are removed. The event
      *      object passed to listeners will have a *features* property with a
      *      reference to an array of removed features.
+     * beforefeatureselected - Triggered after a feature is selected.  Listeners
+     *      will receive an object with a *feature* property referencing the
+     *      feature to be selected. To stop the feature from being selectd, a
+     *      listener should return false.
      * featureselected - Triggered after a feature is selected.  Listeners
      *      will receive an object with a *feature* property referencing the
      *      selected feature.
@@ -85,6 +90,12 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
      *      property referencing the vertex modified (always a point geometry),
      *      and a *pixel* property referencing the pixel location of the
      *      modification.
+     * vertexremoved - Triggered when a vertex within any feature geometry
+     *      has been deleted.  Listeners will receive an object with a
+     *      *feature* property referencing the modified feature, a *vertex*
+     *      property referencing the vertex modified (always a point geometry),
+     *      and a *pixel* property referencing the pixel location of the
+     *      removal.
      * sketchstarted - Triggered when a feature sketch bound for this layer
      *      is started.  Listeners will receive an object with a *feature*
      *      property referencing the new sketch feature and a *vertex* property
@@ -105,8 +116,8 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
                   "beforefeaturesremoved", "featureremoved", "featuresremoved",
                   "beforefeatureselected", "featureselected", "featureunselected", 
                   "beforefeaturemodified", "featuremodified", "afterfeaturemodified",
-                  "vertexmodified", "sketchstarted", "sketchmodified",
-                  "sketchcomplete", "refresh"],
+                  "vertexmodified", "vertexremoved", "sketchstarted",
+                  "sketchmodified", "sketchcomplete", "refresh"],
 
     /**
      * APIProperty: isBaseLayer
@@ -123,12 +134,6 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
     isFixed: false,
 
     /** 
-     * APIProperty: isVector
-     * {Boolean} Whether the layer is a vector layer.
-     */
-    isVector: true,
-    
-    /** 
      * APIProperty: features
      * {Array(<OpenLayers.Feature.Vector>)} 
      */
@@ -467,34 +472,38 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
     moveTo: function(bounds, zoomChanged, dragging) {
         OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
         
-        var coordSysUnchanged = true;
+        var ng = (OpenLayers.Renderer.NG && this.renderer instanceof OpenLayers.Renderer.NG);
+        if (ng) {
+            dragging || this.renderer.updateDimensions(zoomChanged);
+        } else {
+            var coordSysUnchanged = true;
 
-        if (!dragging) {
-            this.renderer.root.style.visibility = "hidden";
+            if (!dragging) {
+                this.renderer.root.style.visibility = "hidden";
             
-            this.div.style.left = -parseInt(this.map.layerContainerDiv.style.left) + "px";
-            this.div.style.top = -parseInt(this.map.layerContainerDiv.style.top) + "px";
-            var extent = this.map.getExtent();
-            coordSysUnchanged = this.renderer.setExtent(extent, zoomChanged);
+                this.div.style.left = -parseInt(this.map.layerContainerDiv.style.left) + "px";
+                this.div.style.top = -parseInt(this.map.layerContainerDiv.style.top) + "px";
+                var extent = this.map.getExtent();
+                coordSysUnchanged = this.renderer.setExtent(extent, zoomChanged);
             
-            this.renderer.root.style.visibility = "visible";
+                this.renderer.root.style.visibility = "visible";
 
-            // Force a reflow on gecko based browsers to prevent jump/flicker.
-            // This seems to happen on only certain configurations; it was originally
-            // noticed in FF 2.0 and Linux.
-            if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
-                this.div.scrollLeft = this.div.scrollLeft;
-            }
+                // Force a reflow on gecko based browsers to prevent jump/flicker.
+                // This seems to happen on only certain configurations; it was originally
+                // noticed in FF 2.0 and Linux.
+                if (OpenLayers.IS_GECKO === true) {
+                    this.div.scrollLeft = this.div.scrollLeft;
+                }
             
-            if(!zoomChanged && coordSysUnchanged) {
-                for(var i in this.unrenderedFeatures) {
-                    var feature = this.unrenderedFeatures[i];
-                    this.drawFeature(feature);
+                if(!zoomChanged && coordSysUnchanged) {
+                    for(var i in this.unrenderedFeatures) {
+                        var feature = this.unrenderedFeatures[i];
+                        this.drawFeature(feature);
+                    }
                 }
             }
         }
-        
-        if (!this.drawn || zoomChanged || !coordSysUnchanged) {
+        if (!this.drawn || (!ng && (zoomChanged || !coordSysUnchanged))) {
             this.drawn = true;
             var feature;
             for(var i=0, len=this.features.length; i<len; i++) {
@@ -505,6 +514,20 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
         }    
     },
     
+    /**
+     * APIMethod: redraw
+     * Redraws the layer.  Returns true if the layer was redrawn, false if not.
+     *
+     * Returns:
+     * {Boolean} The layer was redrawn.
+     */
+    redraw: function() {
+        if (OpenLayers.Renderer.NG && this.renderer instanceof OpenLayers.Renderer.NG) {
+            this.drawn = false;
+        }
+        return OpenLayers.Layer.prototype.redraw.apply(this, arguments);
+    },
+    
     /** 
      * APIMethod: display
      * Hide or show the Layer
@@ -531,7 +554,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
      * options - {Object}
      */
     addFeatures: function(features, options) {
-        if (!(features instanceof Array)) {
+        if (!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         
@@ -574,7 +597,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
                 if(this.events.triggerEvent("beforefeatureadded",
                                             {feature: feature}) === false) {
                     continue;
-                };
+                }
                 this.preFeatureInsert(feature);
             }
 
@@ -620,7 +643,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
         if (features === this.features) {
             return this.removeAllFeatures(options);
         }
-        if (!(features instanceof Array)) {
+        if (!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         if (features === this.selectedFeatures) {
@@ -774,7 +797,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
         // don't try to draw the feature with the renderer if the layer is not 
         // drawn itself
         if (!this.drawn) {
-            return
+            return;
         }
         if (typeof style != "object") {
             if(!style && feature.state === OpenLayers.State.DELETE) {
@@ -787,11 +810,13 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
             }
         }
         
-        if (!this.renderer.drawFeature(feature, style)) {
+        var drawn = this.renderer.drawFeature(feature, style);
+        //TODO remove the check for null when we get rid of Renderer.SVG
+        if (drawn === false || drawn === null) {
             this.unrenderedFeatures[feature.id] = feature;
         } else {
             delete this.unrenderedFeatures[feature.id];
-        };
+        }
     },
     
     /**
@@ -820,9 +845,17 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
         if (!this.renderer) {
             OpenLayers.Console.error(OpenLayers.i18n("getFeatureError")); 
             return null;
-        }    
+        }
+        var feature = null;
         var featureId = this.renderer.getFeatureIdFromEvent(evt);
-        return this.getFeatureById(featureId);
+        if (featureId) {
+            if (typeof featureId === "string") {
+                feature = this.getFeatureById(featureId);
+            } else {
+                feature = featureId;
+            }
+        }
+        return feature;
     },
 
     /**
@@ -878,6 +911,36 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
     getFeatureByFid: function(featureFid) {
         return this.getFeatureBy('fid', featureFid);
     },
+    
+    /**
+     * APIMethod: getFeaturesByAttribute
+     * Returns an array of features that have the given attribute key set to the
+     * given value. Comparison of attribute values takes care of datatypes, e.g.
+     * the string '1234' is not equal to the number 1234.
+     *
+     * Parameters:
+     * attrName - {String}
+     * attrValue - {Mixed}
+     *
+     * Returns:
+     * Array(<OpenLayers.Feature.Vector>) An array of features that have the 
+     * passed named attribute set to the given value.
+     */
+    getFeaturesByAttribute: function(attrName, attrValue) {
+        var i,
+            feature,    
+            len = this.features.length,
+            foundFeatures = [];
+        for(i = 0; i < len; i++) {            
+            feature = this.features[i];
+            if(feature && feature.attributes) {
+                if (feature.attributes[attrName] === attrValue) {
+                    foundFeatures.push(feature);
+                }
+            }
+        }
+        return foundFeatures;
+    },
 
     /**
      * Unselect the selected features
@@ -925,17 +988,20 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
      * Calculates the max extent which includes all of the features.
      * 
      * Returns:
-     * {<OpenLayers.Bounds>}
+     * {<OpenLayers.Bounds>} or null if the layer has no features with
+     * geometries.
      */
     getDataExtent: function () {
         var maxExtent = null;
         var features = this.features;
         if(features && (features.length > 0)) {
-            maxExtent = new OpenLayers.Bounds();
             var geometry = null;
             for(var i=0, len=features.length; i<len; i++) {
                 geometry = features[i].geometry;
                 if (geometry) {
+                    if (maxExtent === null) {
+                        maxExtent = new OpenLayers.Bounds();
+                    }
                     maxExtent.extend(geometry.getBounds());
                 }
             }
diff --git a/lib/OpenLayers/Layer/Vector/RootContainer.js b/lib/OpenLayers/Layer/Vector/RootContainer.js
index c2b3da4..bf98fe9 100644
--- a/lib/OpenLayers/Layer/Vector/RootContainer.js
+++ b/lib/OpenLayers/Layer/Vector/RootContainer.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/VirtualEarth.js b/lib/OpenLayers/Layer/VirtualEarth.js
index 4fba250..5e090e5 100644
--- a/lib/OpenLayers/Layer/VirtualEarth.js
+++ b/lib/OpenLayers/Layer/VirtualEarth.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -8,11 +8,16 @@
  * @requires OpenLayers/Layer/SphericalMercator.js
  * @requires OpenLayers/Layer/EventPane.js
  * @requires OpenLayers/Layer/FixedZoomLevels.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
  * Class: OpenLayers.Layer.VirtualEarth
- * 
+ * Instances of OpenLayers.Layer.VirtualEarth are used to display the data from
+ *     the Bing Maps AJAX Control (see e.g. 
+ *     http://msdn.microsoft.com/library/bb429619.aspx). Create a VirtualEarth 
+ *     layer with the <OpenLayers.Layer.VirtualEarth> constructor.
+ *     
  * Inherits from:
  *  - <OpenLayers.Layer.EventPane>
  *  - <OpenLayers.Layer.FixedZoomLevels>
@@ -93,6 +98,22 @@ OpenLayers.Layer.VirtualEarth = OpenLayers.Class(
 
     /** 
      * Constructor: OpenLayers.Layer.VirtualEarth
+     * Creates a new instance of a OpenLayers.Layer.VirtualEarth. If you use an
+     *     instance of OpenLayers.Layer.VirtualEarth in you map, you should set 
+     *     the <OpenLayers.Map> option restrictedExtent to a meaningful value,
+     *     e.g.:
+     * (code)
+     * var map = new OpenLayers.Map( 'map', {
+     *     // other map options
+     *     restrictedExtent : OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
+     * } );
+     * 
+     * var veLayer = new OpenLayers.Layer.VirtualEarth (
+     *     "Virtual Earth Layer"
+     * );
+     * 
+     * map.addLayer( veLayer );
+     * (end)
      * 
      * Parameters:
      * name - {String}
diff --git a/lib/OpenLayers/Layer/WFS.js b/lib/OpenLayers/Layer/WFS.js
index 61c4c3f..af9ef03 100644
--- a/lib/OpenLayers/Layer/WFS.js
+++ b/lib/OpenLayers/Layer/WFS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,6 +9,7 @@
  * @requires OpenLayers/Layer/Vector.js
  * @requires OpenLayers/Layer/Markers.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Layer/WMS.js b/lib/OpenLayers/Layer/WMS.js
index c35bd17..60bf8cc 100644
--- a/lib/OpenLayers/Layer/WMS.js
+++ b/lib/OpenLayers/Layer/WMS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -28,7 +28,6 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
                       version: "1.1.1",
                       request: "GetMap",
                       styles: "",
-                      exceptions: "application/vnd.ogc.se_inimage",
                       format: "image/jpeg"
                      },
     
@@ -37,7 +36,7 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
      * *Deprecated*. See http://trac.openlayers.org/wiki/SphericalMercator
      * for information on the replacement for this functionality. 
      * {Boolean} Try to reproject this layer if its coordinate reference system
-     *           is different than that of the base layer.  Default is true.  
+     *           is different than that of the base layer.  Default is false.  
      *           Set this in the layer options.  Should be set to false in 
      *           most cases.
      */
@@ -77,12 +76,37 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
      * Constructor: OpenLayers.Layer.WMS
      * Create a new WMS layer object
      *
-     * Example:
+     * Examples:
+     *
+     * The code below creates a simple WMS layer using the image/jpeg format.
      * (code)
      * var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
      *                                    "http://wms.jpl.nasa.gov/wms.cgi", 
      *                                    {layers: "modis,global_mosaic"});
      * (end)
+     * Note the 3rd argument (params). Properties added to this object will be
+     * added to the WMS GetMap requests used for this layer's tiles. The only
+     * mandatory parameter is "layers". Other common WMS params include
+     * "transparent", "styles" and "format". Note that the "srs" param will
+     * always be ignored. Instead, it will be derived from the baseLayer's or
+     * map's projection.
+     *
+     * The code below creates a transparent WMS layer with additional options.
+     * (code)
+     * var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
+     *                                    "http://wms.jpl.nasa.gov/wms.cgi", 
+     *                                    {
+     *                                        layers: "modis,global_mosaic",
+     *                                        transparent: true
+     *                                    }, {
+     *                                        opacity: 0.5,
+     *                                        singleTile: true
+     *                                    });
+     * (end)
+     * Note that by default, a WMS layer is configured as baseLayer. Setting
+     * the "transparent" param to true will apply some magic (see <noMagic>).
+     * The default image format changes from image/jpeg to image/png, and the
+     * layer is not configured as baseLayer.
      *
      * Parameters:
      * name - {String} A name for the layer
@@ -90,7 +114,9 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *                (e.g. http://wms.jpl.nasa.gov/wms.cgi)
      * params - {Object} An object with key/value pairs representing the
      *                   GetMap query string parameters and parameter values.
-     * options - {Ojbect} Hashtable of extra options to tag onto the layer
+     * options - {Object} Hashtable of extra options to tag onto the layer.
+     *     These options include all properties listed above, plus the ones
+     *     inherited from superclasses.
      */
     initialize: function(name, url, params, options) {
         var newArguments = [];
@@ -117,7 +143,7 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
             } 
             
             // jpegs can never be transparent, so intelligently switch the 
-            //  format, depending on teh browser's capabilities
+            //  format, depending on the browser's capabilities
             if (this.params.FORMAT == "image/jpeg") {
                 this.params.FORMAT = OpenLayers.Util.alphaHack() ? "image/gif"
                                                                  : "image/png";
@@ -203,22 +229,6 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
     },
 
     /**
-     * Method: addTile
-     * addTile creates a tile, initializes it, and adds it to the layer div. 
-     *
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
-    },
-
-    /**
      * APIMethod: mergeNewParams
      * Catch changeParams and uppercase the new params to be merged in
      *     before calling changeParams on the super class.
@@ -252,13 +262,20 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {
      * {String} 
      */
     getFullRequestString:function(newParams, altUrl) {
-        var projectionCode = this.map.getProjection();
-        var value = (projectionCode == "none") ? null : projectionCode
+        var mapProjection = this.map.getProjectionObject();
+        var projectionCode = this.projection && this.projection.equals(mapProjection) ?
+            this.projection.getCode() :
+            mapProjection.getCode();
+        var value = (projectionCode == "none") ? null : projectionCode;
         if (parseFloat(this.params.VERSION) >= 1.3) {
             this.params.CRS = value;
         } else {
             this.params.SRS = value;
         }
+        
+        if (typeof this.params.TRANSPARENT == "boolean") {
+            newParams.TRANSPARENT = this.params.TRANSPARENT ? "TRUE" : "FALSE";
+        }
 
         return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(
                                                     this, arguments);
diff --git a/lib/OpenLayers/Layer/WMS/Post.js b/lib/OpenLayers/Layer/WMS/Post.js
index 0758042..0042fbb 100644
--- a/lib/OpenLayers/Layer/WMS/Post.js
+++ b/lib/OpenLayers/Layer/WMS/Post.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -15,18 +15,16 @@
  * Web Mapping Services via HTTP-POST (application/x-www-form-urlencoded). 
  * Create a new WMS layer with the <OpenLayers.Layer.WMS.Post> constructor.
  *
+ * *Deprecated*. Instead of this layer, use <OpenLayers.Layer.WMS> with
+ * <OpenLayers.Tile.Image.maxGetUrlLength> configured in the layer's
+ * <OpenLayers.Layer.WMS.tileOptions>.
+ *
  * Inherits from:
  *  - <OpenLayers.Layer.WMS>
  */
 OpenLayers.Layer.WMS.Post = OpenLayers.Class(OpenLayers.Layer.WMS, {
 
     /**
-     * Property: tileClass
-     * {Object} Class, used to create tiles.
-     */
-    tileClass: null,
-
-    /**
      * APIProperty: unsupportedBrowsers
      * {Array} Array with browsers, which should use the HTTP-GET protocol 
      * instead of HTTP-POST for fetching tiles from a WMS .
@@ -35,7 +33,7 @@ OpenLayers.Layer.WMS.Post = OpenLayers.Class(OpenLayers.Layer.WMS, {
      * effects of viewport-shaking when panning the map. Both browsers, Opera
      * and Firefox/Mozilla, have no problem with long urls, which is the reason
      * for using POST instead of GET. The strings to pass to this array are
-     * the ones returned by <OpenLayers.Util.getBrowserName()>.
+     * the ones returned by <OpenLayers.BROWSER_NAME>.
      */
     unsupportedBrowsers: ["mozilla", "firefox", "opera"],
 
@@ -46,6 +44,12 @@ OpenLayers.Layer.WMS.Post = OpenLayers.Class(OpenLayers.Layer.WMS, {
      * possible to modify the initialized tiles (iframes)
      */
     SUPPORTED_TRANSITIONS: [],
+    
+    /**
+     * Property: usePost
+     * {Boolean}
+     */
+    usePost: null,
 
     /**
      * Constructor: OpenLayers.Layer.WMS.Post
@@ -72,10 +76,8 @@ OpenLayers.Layer.WMS.Post = OpenLayers.Class(OpenLayers.Layer.WMS, {
         newArguments.push(name, url, params, options);
         OpenLayers.Layer.WMS.prototype.initialize.apply(this, newArguments);
 
-        this.tileClass = OpenLayers.Util.indexOf(
-            this.unsupportedBrowsers, OpenLayers.Util.getBrowserName()) != -1
-                ? OpenLayers.Tile.Image
-                : OpenLayers.Tile.Image.IFrame;
+        this.usePost = OpenLayers.Util.indexOf(
+            this.unsupportedBrowsers, OpenLayers.BROWSER_NAME) == -1;
     },
     
     /**
@@ -91,8 +93,10 @@ OpenLayers.Layer.WMS.Post = OpenLayers.Class(OpenLayers.Layer.WMS, {
      * {<OpenLayers.Tile.Image.IFrame>} The added OpenLayers.Tile.Image.IFrame
      */
     addTile: function(bounds,position) {
-        return new this.tileClass(
-            this, position, bounds, null, this.tileSize);
+        return new OpenLayers.Tile.Image(
+            this, position, bounds, null, this.tileSize, {
+                maxGetUrlLength: this.usePost ? 0 : null
+            });
     },
 
     CLASS_NAME: 'OpenLayers.Layer.WMS.Post'
diff --git a/lib/OpenLayers/Layer/WMS/Untiled.js b/lib/OpenLayers/Layer/WMS/Untiled.js
index c40860c..7589e77 100644
--- a/lib/OpenLayers/Layer/WMS/Untiled.js
+++ b/lib/OpenLayers/Layer/WMS/Untiled.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Layer/WMTS.js b/lib/OpenLayers/Layer/WMTS.js
index c1ec099..0e6045b 100644
--- a/lib/OpenLayers/Layer/WMTS.js
+++ b/lib/OpenLayers/Layer/WMTS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -408,7 +408,7 @@ OpenLayers.Layer.WMTS = OpenLayers.Class(OpenLayers.Layer.Grid, {
                 path = path + this.matrixSet + "/" + this.matrix.identifier + 
                     "/" + info.row + "/" + info.col + "." + this.formatSuffix;
                 
-                if (this.url instanceof Array) {
+                if (OpenLayers.Util.isArray(this.url)) {
                     url = this.selectUrl(path, this.url);
                 } else {
                     url = this.url;
@@ -456,21 +456,5 @@ OpenLayers.Layer.WMTS = OpenLayers.Class(OpenLayers.Layer.Grid, {
         }
     },
 
-    /**
-     * Method: addTile
-     * Create a tile, initialize it, and add it to the layer div. 
-     * 
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile: function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
-    },
-
     CLASS_NAME: "OpenLayers.Layer.WMTS"
 });
diff --git a/lib/OpenLayers/Layer/WorldWind.js b/lib/OpenLayers/Layer/WorldWind.js
index f281cb7..c15789d 100644
--- a/lib/OpenLayers/Layer/WorldWind.js
+++ b/lib/OpenLayers/Layer/WorldWind.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -21,20 +21,19 @@ OpenLayers.Layer.WorldWind = OpenLayers.Class(OpenLayers.Layer.Grid, {
 
     /**
      * APIProperty: isBaseLayer
-     * WorldWind layer is a base layer by default.
+     * {Boolean} WorldWind layer is a base layer by default.
      */
-    isBaseLayer: true,    
+    isBaseLayer: true,
 
-    
     /** 
      * APIProperty: lzd
-     * LevelZeroTileSizeDegrees
+     * {Float} LevelZeroTileSizeDegrees
      */
     lzd: null,
 
     /**
      * APIProperty: zoomLevels
-     * Number of zoom levels.
+     * {Integer} Number of zoom levels.
      */
     zoomLevels: null,
     
@@ -45,7 +44,7 @@ OpenLayers.Layer.WorldWind = OpenLayers.Class(OpenLayers.Layer.Grid, {
      * name - {String} Name of Layer
      * url - {String} Base URL  
      * lzd - {Float} Level zero tile size degrees 
-     * zoomLevels - {Int} number of zoom levels
+     * zoomLevels - {Integer} number of zoom levels
      * params - {Object} additional parameters
      * options - {Object} additional options
      */
@@ -59,20 +58,6 @@ OpenLayers.Layer.WorldWind = OpenLayers.Class(OpenLayers.Layer.Grid, {
             this.params, this.DEFAULT_PARAMS
         );
     },
-    /**
-     * Method: addTile
-     * 
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                             null, this.tileSize);
-    },
 
     /**
      * Method: getZoom
diff --git a/lib/OpenLayers/Layer/XYZ.js b/lib/OpenLayers/Layer/XYZ.js
index 6aba72f..86520ab 100644
--- a/lib/OpenLayers/Layer/XYZ.js
+++ b/lib/OpenLayers/Layer/XYZ.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -40,11 +40,20 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *     for a requested tile.  For example, if you supply a zoomOffset
      *     of 3, when the map is at the zoom 0, tiles will be requested from
      *     level 3 of your cache.  Default is 0 (assumes cache level and map
-     *     zoom are equivalent).
+     *     zoom are equivalent).  Using <zoomOffset> is an alternative to
+     *     setting <serverResolutions> if you only want to expose a subset
+     *     of the server resolutions.
      */
     zoomOffset: 0,
     
     /**
+     * APIProperty: serverResolutions
+     * {Array} A list of all resolutions available on the server.  Only set this
+     *     property if the map resolutions differs from the server.
+     */
+    serverResolutions: null,
+
+    /**
      * Constructor: OpenLayers.Layer.XYZ
      *
      * Parameters:
@@ -56,12 +65,12 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, {
         if (options && options.sphericalMercator || this.sphericalMercator) {
             options = OpenLayers.Util.extend({
                 maxExtent: new OpenLayers.Bounds(
-                    -128 * 156543.0339,
-                    -128 * 156543.0339,
-                    128 * 156543.0339,
-                    128 * 156543.0339
+                    -128 * 156543.03390625,
+                    -128 * 156543.03390625,
+                    128 * 156543.03390625,
+                    128 * 156543.03390625
                 ),
-                maxResolution: 156543.0339,
+                maxResolution: 156543.03390625,
                 numZoomLevels: 19,
                 units: "m",
                 projection: "EPSG:900913"
@@ -98,7 +107,7 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, {
     },    
 
     /**
-     * Method: getUrl
+     * Method: getURL
      *
      * Parameters:
      * bounds - {<OpenLayers.Bounds>}
@@ -109,41 +118,45 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *          parameters
      */
     getURL: function (bounds) {
-        var res = this.map.getResolution();
-        var x = Math.round((bounds.left - this.maxExtent.left) 
-            / (res * this.tileSize.w));
-        var y = Math.round((this.maxExtent.top - bounds.top) 
-            / (res * this.tileSize.h));
-        var z = this.map.getZoom() + this.zoomOffset;
-
+        var xyz = this.getXYZ(bounds);
         var url = this.url;
-        var s = '' + x + y + z;
-        if (url instanceof Array)
-        {
+        if (OpenLayers.Util.isArray(url)) {
+            var s = '' + xyz.x + xyz.y + xyz.z;
             url = this.selectUrl(s, url);
         }
         
-        var path = OpenLayers.String.format(url, {'x': x, 'y': y, 'z': z});
-
-        return path;
+        return OpenLayers.String.format(url, xyz);
     },
     
     /**
-     * Method: addTile
-     * addTile creates a tile, initializes it, and adds it to the layer div. 
-     * 
+     * Method: getXYZ
+     * Calculates x, y and z for the given bounds.
+     *
      * Parameters:
      * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     * 
+     *
      * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
+     * {Object} - an object with x, y and z properties.
      */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds, 
-                                         null, this.tileSize);
+    getXYZ: function(bounds) {
+        var res = this.map.getResolution();
+        var x = Math.round((bounds.left - this.maxExtent.left) /
+            (res * this.tileSize.w));
+        var y = Math.round((this.maxExtent.top - bounds.top) /
+            (res * this.tileSize.h));
+        var z = this.serverResolutions != null ?
+            OpenLayers.Util.indexOf(this.serverResolutions, res) :
+            this.map.getZoom() + this.zoomOffset;
+
+        var limit = Math.pow(2, z);
+        if (this.wrapDateLine)
+        {
+           x = ((x % limit) + limit) % limit;
+        }
+
+        return {'x': x, 'y': y, 'z': z};
     },
-     
+    
     /* APIMethod: setMap
      * When the layer is added to a map, then we can fetch our origin 
      *    (if we don't have one.) 
@@ -192,5 +205,6 @@ OpenLayers.Layer.OSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
          obj = OpenLayers.Layer.XYZ.prototype.clone.apply(this, [obj]);
          return obj;
      },
+     wrapDateLine: true,
      CLASS_NAME: "OpenLayers.Layer.OSM"
 });
diff --git a/lib/OpenLayers/Layer/Yahoo.js b/lib/OpenLayers/Layer/Yahoo.js
index 1f0b375..2818387 100644
--- a/lib/OpenLayers/Layer/Yahoo.js
+++ b/lib/OpenLayers/Layer/Yahoo.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -8,6 +8,7 @@
  * @requires OpenLayers/Layer/SphericalMercator.js
  * @requires OpenLayers/Layer/EventPane.js
  * @requires OpenLayers/Layer/FixedZoomLevels.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
diff --git a/lib/OpenLayers/Layer/Zoomify.js b/lib/OpenLayers/Layer/Zoomify.js
index d2ae0e3..b6150a9 100644
--- a/lib/OpenLayers/Layer/Zoomify.js
+++ b/lib/OpenLayers/Layer/Zoomify.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -45,6 +45,12 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
      */
     standardTileSize: 256,
 
+    /** 
+     * Property: tileOriginCorner
+     * {String} This layer uses top-left as tile origin
+     **/
+    tileOriginCorner: "tl",
+
     /**
      * Property: numberOfTiers
      * {Integer} Depth of the Zoomify pyramid, number of tiers (zoom levels)
@@ -105,7 +111,7 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
      */
     initializeZoomify: function( size ) {
 
-        var imageSize = size.clone()
+        var imageSize = size.clone();
         var tiles = new OpenLayers.Size(
             Math.ceil( imageSize.w / this.standardTileSize ),
             Math.ceil( imageSize.h / this.standardTileSize )
@@ -151,9 +157,9 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
         OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);
 
         // Remove from memory the Zoomify pyramid - is that enough?
-        this.tileCountUpToTier.length = 0
-        this.tierSizeInTiles.length = 0
-        this.tierImageSize.length = 0
+        this.tileCountUpToTier.length = 0;
+        this.tierSizeInTiles.length = 0;
+        this.tierImageSize.length = 0;
 
     },
 
@@ -205,7 +211,7 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
         var path = "TileGroup" + Math.floor( (tileIndex) / 256 ) +
             "/" + z + "-" + x + "-" + y + ".jpg";
         var url = this.url;
-        if (url instanceof Array) {
+        if (OpenLayers.Util.isArray(url)) {
             url = this.selectUrl(path, url);
         }
         return url + path;
@@ -219,7 +225,7 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
      */
     getImageSize: function() {
         if (arguments.length > 0) {
-            bounds = this.adjustBounds(arguments[0]);
+            var bounds = this.adjustBounds(arguments[0]);
             var res = this.map.getResolution();
             var x = Math.round((bounds.left - this.tileOrigin.lon) / (res * this.tileSize.w));
             var y = Math.round((this.tileOrigin.lat - bounds.top) / (res * this.tileSize.h));
@@ -239,22 +245,6 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
     },
 
     /**
-     * Method: addTile
-     * addTile creates a tile, initializes it, and adds it to the layer div.
-     *
-     * Parameters:
-     * bounds - {<OpenLayers.Bounds>}
-     * position - {<OpenLayers.Pixel>}
-     *
-     * Returns:
-     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
-     */
-    addTile:function(bounds,position) {
-        return new OpenLayers.Tile.Image(this, position, bounds,
-                                         null, this.tileSize);
-    },
-
-    /**
      * APIMethod: setMap
      * When the layer is added to a map, then we can fetch our origin
      *    (if we don't have one.)
@@ -274,28 +264,28 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {
      *
      * Parameters:
      * bounds - {<OpenLayers.Bound>}
-     * extent - {<OpenLayers.Bounds>}
+     * origin - {<OpenLayers.LonLat>}
      * resolution - {Number}
      *
      * Returns:
      * Object containing properties tilelon, tilelat, tileoffsetlat,
      * tileoffsetlat, tileoffsetx, tileoffsety
      */
-    calculateGridLayout: function(bounds, extent, resolution) {
+    calculateGridLayout: function(bounds, origin, resolution) {
         var tilelon = resolution * this.tileSize.w;
         var tilelat = resolution * this.tileSize.h;
 
-        var offsetlon = bounds.left - extent.left;
+        var offsetlon = bounds.left - origin.lon;
         var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
         var tilecolremain = offsetlon/tilelon - tilecol;
         var tileoffsetx = -tilecolremain * this.tileSize.w;
-        var tileoffsetlon = extent.left + tilecol * tilelon;
+        var tileoffsetlon = origin.lon + tilecol * tilelon;
 
-        var offsetlat = extent.top - bounds.top + tilelat;
+        var offsetlat = origin.lat - bounds.top + tilelat;
         var tilerow = Math.floor(offsetlat/tilelat) - this.buffer;
         var tilerowremain = tilerow - offsetlat/tilelat;
         var tileoffsety = tilerowremain * this.tileSize.h;
-        var tileoffsetlat = extent.top - tilelat*tilerow;
+        var tileoffsetlat = origin.lat - tilelat*tilerow;
 
         return {
           tilelon: tilelon, tilelat: tilelat,
diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js
index 12f1b9a..285ae0c 100644
--- a/lib/OpenLayers/Map.js
+++ b/lib/OpenLayers/Map.js
@@ -1,13 +1,15 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  * @requires OpenLayers/Events.js
  * @requires OpenLayers/Tween.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
@@ -56,19 +58,24 @@ OpenLayers.Map = OpenLayers.Class({
      * Supported map event types:
      *  - *preaddlayer* triggered before a layer has been added.  The event
      *      object will include a *layer* property that references the layer  
-     *      to be added.
+     *      to be added. When a listener returns "false" the adding will be 
+     *      aborted.
      *  - *addlayer* triggered after a layer has been added.  The event object
      *      will include a *layer* property that references the added layer.
+     *  - *preremovelayer* triggered before a layer has been removed. The event
+     *      object will include a *layer* property that references the layer  
+     *      to be removed. When a listener returns "false" the removal will be 
+     *      aborted.
      *  - *removelayer* triggered after a layer has been removed.  The event
      *      object will include a *layer* property that references the removed
      *      layer.
      *  - *changelayer* triggered after a layer name change, order change,
-     *      opacity change, params change or visibility change
-     *      (due to resolution thresholds). Listeners will receive an event
-     *      object with *layer* and *property* properties. The *layer*
-     *      property will be a reference to the changed layer. 
-     *      The *property* property will be a key to the
-     *      changed property (name, order, opacity, params or visibility).
+     *      opacity change, params change, visibility change (due to resolution
+     *      thresholds) or attribution change (due to extent change). Listeners
+     *      will receive an event object with *layer* and *property* properties.
+     *      The *layer* property will be a reference to the changed layer. The
+     *      *property* property will be a key to the changed property (name,
+     *      order, opacity, params, visibility or attribution).
      *  - *movestart* triggered after the start of a drag, pan, or zoom
      *  - *move* triggered after each drag, pan, or zoom
      *  - *moveend* triggered after a drag, pan, or zoom completes
@@ -79,7 +86,8 @@ OpenLayers.Map = OpenLayers.Class({
      *  - *changebaselayer* triggered after the base layer changes
      */
     EVENT_TYPES: [ 
-        "preaddlayer", "addlayer", "removelayer", "changelayer", "movestart",
+        "preaddlayer", "addlayer","preremovelayer", "removelayer", 
+        "changelayer", "movestart",
         "move", "moveend", "zoomend", "popupopen", "popupclose",
         "addmarker", "removemarker", "clearmarkers", "mouseover",
         "mouseout", "mousemove", "dragstart", "drag", "dragend",
@@ -414,6 +422,23 @@ OpenLayers.Map = OpenLayers.Class({
     paddingForPopups : null,
     
     /**
+     * Property: minPx
+     * {<OpenLayers.Pixel>} Lower left of maxExtent in viewport pixel space.
+     *     Used to verify in moveByPx that the new location we're moving to
+     *     is valid. It is also used in the getLonLatFromViewPortPx function
+     *     of Layer.
+     */
+    minPx: null,
+    
+    /**
+     * Property: maxPx
+     * {<OpenLayers.Pixel>} Top right of maxExtent in viewport pixel space.
+     *     Used to verify in moveByPx that the new location we're moving to
+     *     is valid.
+     */
+    maxPx: null,
+    
+    /**
      * Constructor: OpenLayers.Map
      * Constructor for a new OpenLayers.Map instance.  There are two possible
      *     ways to call the map constructor.  See the examples below.
@@ -424,7 +449,7 @@ OpenLayers.Map = OpenLayers.Class({
      *     provided or if you intend to call the <render> method later.
      * options - {Object} Optional object with properties to tag onto the map.
      *
-     * Examples (method one):
+     * Examples:
      * (code)
      * // create a map with default options in an element with the id "map1"
      * var map = new OpenLayers.Map("map1");
@@ -437,11 +462,8 @@ OpenLayers.Map = OpenLayers.Class({
      *     projection: "EPSG:41001"
      * };
      * var map = new OpenLayers.Map("map2", options);
-     * (end)
      *
-     * Examples (method two - single argument):
-     * (code)
-     * // create a map with non-default options
+     * // map with non-default options - same as above but with a single argument
      * var map = new OpenLayers.Map({
      *     div: "map_id",
      *     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),
@@ -457,6 +479,7 @@ OpenLayers.Map = OpenLayers.Class({
      *     units: 'm',
      *     projection: "EPSG:41001"
      * });
+     * (end)
      */    
     initialize: function (div, options) {
         
@@ -505,18 +528,27 @@ OpenLayers.Map = OpenLayers.Class({
         this.viewPortDiv.className = "olMapViewport";
         this.div.appendChild(this.viewPortDiv);
 
+        // the eventsDiv is where we listen for all map events
+        var eventsDiv = document.createElement("div");
+        eventsDiv.id = this.id + "_events";
+        eventsDiv.style.position = "absolute";
+        eventsDiv.style.width = "100%";
+        eventsDiv.style.height = "100%";
+        eventsDiv.style.zIndex = this.Z_INDEX_BASE.Control - 1;
+        this.viewPortDiv.appendChild(eventsDiv);
+        this.eventsDiv = eventsDiv;
+        this.events = new OpenLayers.Events(
+            this, this.eventsDiv, this.EVENT_TYPES, this.fallThrough, 
+            {includeXY: true}
+        );
+
         // the layerContainerDiv is the one that holds all the layers
         id = this.id + "_OpenLayers_Container";
         this.layerContainerDiv = OpenLayers.Util.createDiv(id);
         this.layerContainerDiv.style.zIndex=this.Z_INDEX_BASE['Popup']-1;
         
-        this.viewPortDiv.appendChild(this.layerContainerDiv);
+        this.eventsDiv.appendChild(this.layerContainerDiv);
 
-        this.events = new OpenLayers.Events(this, 
-                                            this.div, 
-                                            this.EVENT_TYPES, 
-                                            this.fallThrough, 
-                                            {includeXY: true});
         this.updateSize();
         if(this.eventListeners instanceof Object) {
             this.events.on(this.eventListeners);
@@ -589,6 +621,14 @@ OpenLayers.Map = OpenLayers.Class({
         
         // add any initial layers
         if (options && options.layers) {
+            /** 
+             * If you have set options.center, the map center property will be
+             * set at this point.  However, since setCenter has not been caleld,
+             * addLayers gets confused.  So we delete the map center in this 
+             * case.  Because the check below uses options.center, it will
+             * be properly set below.
+             */
+            delete this.center;
             this.addLayers(options.layers);        
             // set center (and optionally zoom)
             if (options.center) {
@@ -610,7 +650,6 @@ OpenLayers.Map = OpenLayers.Class({
     render: function(div) {
         this.div = OpenLayers.Util.getElement(div);
         OpenLayers.Element.addClass(this.div, 'olMap');
-        this.events.attachToElement(this.div);
         this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);
         this.div.appendChild(this.viewPortDiv);
         this.updateSize();
@@ -633,7 +672,15 @@ OpenLayers.Map = OpenLayers.Class({
 
     /**
      * APIMethod: destroy
-     * Destroy this map
+     * Destroy this map.
+     *    Note that if you are using an application which removes a container
+     *    of the map from the DOM, you need to ensure that you destroy the
+     *    map *before* this happens; otherwise, the page unload handler
+     *    will fail because the DOM elements that map.destroy() wants
+     *    to clean up will be gone. (See 
+     *    http://trac.osgeo.org/openlayers/ticket/2277 for more information).
+     *    This will apply to GeoExt and also to other applications which
+     *    modify the DOM of the container of the OpenLayers Map.
      */
     destroy:function() {
         // if unloadDestroy is null, we've already been destroyed
@@ -696,7 +743,13 @@ OpenLayers.Map = OpenLayers.Class({
      * options - {Object} Hashtable of options to tag to the map
      */
     setOptions: function(options) {
+        var updatePxExtent = this.minPx &&
+            options.restrictedExtent != this.restrictedExtent;
         OpenLayers.Util.extend(this, options);
+        // force recalculation of minPx and maxPx
+        updatePxExtent && this.moveTo(this.getCachedCenter(), this.zoom, {
+            forceZoomChange: true
+        });
     },
 
     /**
@@ -910,13 +963,13 @@ OpenLayers.Map = OpenLayers.Class({
                 return false;
             }
         }
+        if (this.events.triggerEvent("preaddlayer", {layer: layer}) === false) {
+            return;
+        }
         if(this.allOverlays) {
             layer.isBaseLayer = false;
         }
 
-        if (this.events.triggerEvent("preaddlayer", {layer: layer}) === false) {
-            return;
-        }
         
         layer.div.className = "olLayerDiv";
         layer.div.style.overflow = "";
@@ -942,6 +995,7 @@ OpenLayers.Map = OpenLayers.Class({
         }
 
         this.events.triggerEvent("addlayer", {layer: layer});
+        layer.events.triggerEvent("added", {map: this, layer: layer});
         layer.afterAdd();
     },
 
@@ -986,6 +1040,9 @@ OpenLayers.Map = OpenLayers.Class({
      * setNewBaseLayer - {Boolean} Default is true
      */
     removeLayer: function(layer, setNewBaseLayer) {
+        if (this.events.triggerEvent("preremovelayer", {layer: layer}) === false) {
+            return;
+        }
         if (setNewBaseLayer == null) {
             setNewBaseLayer = true;
         }
@@ -1016,6 +1073,7 @@ OpenLayers.Map = OpenLayers.Class({
         this.resetLayersZIndex();
 
         this.events.triggerEvent("removelayer", {layer: layer});
+        layer.events.triggerEvent("removed", {map: this, layer: layer});
     },
 
     /**
@@ -1112,7 +1170,7 @@ OpenLayers.Map = OpenLayers.Class({
             if (OpenLayers.Util.indexOf(this.layers, newBaseLayer) != -1) {
 
                 // preserve center and scale when changing base layers
-                var center = this.getCenter();
+                var center = this.getCachedCenter();
                 var newResolution = OpenLayers.Util.getResolutionFromScale(
                     this.getScale(), newBaseLayer.units
                 );
@@ -1374,7 +1432,7 @@ OpenLayers.Map = OpenLayers.Class({
                     this.layers[i].onMapResize();                
                 }
     
-                var center = this.getCenter();
+                var center = this.getCachedCenter();
     
                 if (this.baseLayer != null && center != null) {
                     var zoom = this.getZoom();
@@ -1425,7 +1483,7 @@ OpenLayers.Map = OpenLayers.Class({
         var extent = null;
         
         if (center == null) {
-            center = this.getCenter();
+            center = this.getCachedCenter();
         }                
         if (resolution == null) {
             resolution = this.getResolution();
@@ -1465,12 +1523,27 @@ OpenLayers.Map = OpenLayers.Class({
      */
     getCenter: function () {
         var center = null;
-        if (this.center) {
-            center = this.center.clone();
+        var cachedCenter = this.getCachedCenter();
+        if (cachedCenter) {
+            center = cachedCenter.clone();
         }
         return center;
     },
 
+    /**
+     * Method: getCachedCenter
+     *
+     * Returns:
+     * {<OpenLayers.LonLat>}
+     */
+    getCachedCenter: function() {
+        if (!this.center && this.size) {
+            this.center = this.getLonLatFromViewPortPx(
+                new OpenLayers.Pixel(this.size.w / 2, this.size.h / 2)
+            );
+        }
+        return this.center;
+    },
 
     /**
      * APIMethod: getZoom
@@ -1499,21 +1572,28 @@ OpenLayers.Map = OpenLayers.Class({
             animate: true,
             dragging: false
         });
-        // getCenter
-        var centerPx = this.getViewPortPxFromLonLat(this.getCenter());
+        if (options.dragging) {
+            if (dx != 0 || dy != 0) {
+                this.moveByPx(dx, dy);
+            }
+        } else {
+            // getCenter
+            var centerPx = this.getViewPortPxFromLonLat(this.getCachedCenter());
 
-        // adjust
-        var newCenterPx = centerPx.add(dx, dy);
-        
-        // only call setCenter if not dragging or there has been a change
-        if (!options.dragging || !newCenterPx.equals(centerPx)) {
-            var newCenterLonLat = this.getLonLatFromViewPortPx(newCenterPx);
-            if (options.animate) {
-                this.panTo(newCenterLonLat);
-            } else {
-                this.setCenter(newCenterLonLat, null, options.dragging);
-            }    
-        }
+            // adjust
+            var newCenterPx = centerPx.add(dx, dy);
+
+            if (this.dragging || !newCenterPx.equals(centerPx)) {
+                var newCenterLonLat = this.getLonLatFromViewPortPx(newCenterPx);
+                if (options.animate) {
+                    this.panTo(newCenterLonLat);
+                } else {
+                    this.moveTo(newCenterLonLat);
+                    this.dragging = false;
+                    this.events.triggerEvent("moveend");
+                }    
+            }
+        }        
 
    },
    
@@ -1523,46 +1603,37 @@ OpenLayers.Map = OpenLayers.Class({
      * If the new lonlat is in the current extent the map will slide smoothly
      * 
      * Parameters:
-     * lonlat - {<OpenLayers.Lonlat>}
+     * lonlat - {<OpenLayers.LonLat>}
      */
     panTo: function(lonlat) {
         if (this.panMethod && this.getExtent().scale(this.panRatio).containsLonLat(lonlat)) {
             if (!this.panTween) {
                 this.panTween = new OpenLayers.Tween(this.panMethod);
             }
-            var center = this.getCenter();
+            var center = this.getCachedCenter();
 
             // center will not change, don't do nothing
-            if (lonlat.lon == center.lon &&
-                lonlat.lat == center.lat) {
+            if (lonlat.equals(center)) {
                 return;
             }
 
-            var from = {
-                lon: center.lon,
-                lat: center.lat
-            };
-            var to = {
-                lon: lonlat.lon,
-                lat: lonlat.lat
-            };
-            this.panTween.start(from, to, this.panDuration, {
+            var from = this.getPixelFromLonLat(center);
+            var to = this.getPixelFromLonLat(lonlat);
+            var vector = { x: to.x - from.x, y: to.y - from.y };
+            var last = { x: 0, y: 0 };
+
+            this.panTween.start( { x: 0, y: 0 }, vector, this.panDuration, {
                 callbacks: {
-                    start: OpenLayers.Function.bind(function(lonlat) {
-                        this.events.triggerEvent("movestart");
-                    }, this),
-                    eachStep: OpenLayers.Function.bind(function(lonlat) {
-                        lonlat = new OpenLayers.LonLat(lonlat.lon, lonlat.lat);
-                        this.moveTo(lonlat, this.zoom, {
-                            'dragging': true,
-                            'noEvent': true
-                        });
+                    eachStep: OpenLayers.Function.bind(function(px) {
+                        var x = px.x - last.x,
+                            y = px.y - last.y;
+                        this.moveByPx(x, y);
+                        last.x = Math.round(px.x);
+                        last.y = Math.round(px.y);
                     }, this),
-                    done: OpenLayers.Function.bind(function(lonlat) {
-                        lonlat = new OpenLayers.LonLat(lonlat.lon, lonlat.lat);
-                        this.moveTo(lonlat, this.zoom, {
-                            'noEvent': true
-                        });
+                    done: OpenLayers.Function.bind(function(px) {
+                        this.moveTo(lonlat);
+                        this.dragging = false;
                         this.events.triggerEvent("moveend");
                     }, this)
                 }
@@ -1587,12 +1658,79 @@ OpenLayers.Map = OpenLayers.Class({
      * TBD: reconsider forceZoomChange in 3.0
      */
     setCenter: function(lonlat, zoom, dragging, forceZoomChange) {
+        this.panTween && this.panTween.stop();             
         this.moveTo(lonlat, zoom, {
             'dragging': dragging,
-            'forceZoomChange': forceZoomChange,
-            'caller': 'setCenter'
+            'forceZoomChange': forceZoomChange
         });
     },
+    
+    /** 
+     * Method: moveByPx
+     * Drag the map by pixels.
+     *
+     * Parameters:
+     * dx - {Number}
+     * dy - {Number}
+     */
+    moveByPx: function(dx, dy) {
+        var hw = this.size.w / 2;
+        var hh = this.size.h / 2;
+        var x = hw + dx;
+        var y = hh + dy;
+        var wrapDateLine = this.baseLayer.wrapDateLine;
+        var xRestriction = 0;
+        var yRestriction = 0;
+        if (this.restrictedExtent) {
+            xRestriction = hw;
+            yRestriction = hh;
+            // wrapping the date line makes no sense for restricted extents
+            wrapDateLine = false;
+        }
+        dx = wrapDateLine ||
+                    x <= this.maxPx.x - xRestriction &&
+                    x >= this.minPx.x + xRestriction ? Math.round(dx) : 0;
+        dy = y <= this.maxPx.y - yRestriction &&
+                    y >= this.minPx.y + yRestriction ? Math.round(dy) : 0;
+        var minX = this.minPx.x, maxX = this.maxPx.x;
+        if (dx || dy) {
+            if (!this.dragging) {
+                this.dragging = true;
+                this.events.triggerEvent("movestart");
+            }
+            this.center = null;
+            if (dx) {
+                this.layerContainerDiv.style.left =
+                    parseInt(this.layerContainerDiv.style.left) - dx + "px";
+                this.minPx.x -= dx;
+                this.maxPx.x -= dx;
+                if (wrapDateLine) {
+                    if (this.maxPx.x > maxX) {
+                        this.maxPx.x -= (maxX - minX);
+                    }
+                    if (this.minPx.x < minX) {
+                        this.minPx.x += (maxX - minX);
+                    }
+                }
+            }
+            if (dy) {
+                this.layerContainerDiv.style.top =
+                    parseInt(this.layerContainerDiv.style.top) - dy + "px";
+                this.minPx.y -= dy;
+                this.maxPx.y -= dy;
+            }
+            var layer, i, len;
+            for (i=0, len=this.layers.length; i<len; ++i) {
+                layer = this.layers[i];
+                if (layer.visibility &&
+                    (layer === this.baseLayer || layer.inRange)) {
+                    layer.moveByPx(dx, dy);
+                    layer.events.triggerEvent("move");
+                }
+            }
+            this.events.triggerEvent("move");
+        }
+    },
 
     /**
      * Method: moveTo
@@ -1613,24 +1751,19 @@ OpenLayers.Map = OpenLayers.Class({
             }
         }
         // dragging is false by default
-        var dragging = options.dragging;
+        var dragging = options.dragging || this.dragging;
         // forceZoomChange is false by default
         var forceZoomChange = options.forceZoomChange;
-        // noEvent is false by default
-        var noEvent = options.noEvent;
 
-        if (this.panTween && options.caller == "setCenter") {
-            this.panTween.stop();
-        }    
-             
-        if (!this.center && !this.isValidLonLat(lonlat)) {
+        if (!this.getCachedCenter() && !this.isValidLonLat(lonlat)) {
             lonlat = this.maxExtent.getCenterLonLat();
+            this.center = lonlat.clone();
         }
 
         if(this.restrictedExtent != null) {
             // In 3.0, decide if we want to change interpretation of maxExtent.
             if(lonlat == null) { 
-                lonlat = this.getCenter(); 
+                lonlat = this.center; 
             }
             if(zoom == null) { 
                 zoom = this.getZoom(); 
@@ -1668,16 +1801,12 @@ OpenLayers.Map = OpenLayers.Class({
         var centerChanged = (this.isValidLonLat(lonlat)) && 
                             (!lonlat.equals(this.center));
 
-
         // if neither center nor zoom will change, no need to do anything
-        if (zoomChanged || centerChanged || !dragging) {
-
-            if (!this.dragging && !noEvent) {
-                this.events.triggerEvent("movestart");
-            }
+        if (zoomChanged || centerChanged || dragging) {
+            dragging || this.events.triggerEvent("movestart");
 
             if (centerChanged) {
-                if ((!zoomChanged) && (this.center)) { 
+                if (!zoomChanged && this.center) { 
                     // if zoom hasnt changed, just slide layerContainer
                     //  (must be done before setting this.center to new value)
                     this.centerLayerContainer(lonlat);
@@ -1685,16 +1814,28 @@ OpenLayers.Map = OpenLayers.Class({
                 this.center = lonlat.clone();
             }
 
+            var res = zoomChanged ?
+                this.getResolutionForZoom(zoom) : this.getResolution();
             // (re)set the layerContainerDiv's location
-            if ((zoomChanged) || (this.layerContainerOrigin == null)) {
-                this.layerContainerOrigin = this.center.clone();
+            if (zoomChanged || this.layerContainerOrigin == null) {
+                this.layerContainerOrigin = this.getCachedCenter();
                 this.layerContainerDiv.style.left = "0px";
                 this.layerContainerDiv.style.top  = "0px";
+                var maxExtent = this.getMaxExtent({restricted: true});
+                var maxExtentCenter = maxExtent.getCenterLonLat();
+                var lonDelta = this.center.lon - maxExtentCenter.lon;
+                var latDelta = maxExtentCenter.lat - this.center.lat;
+                var extentWidth = Math.round(maxExtent.getWidth() / res);
+                var extentHeight = Math.round(maxExtent.getHeight() / res);
+                var left = (this.size.w - extentWidth) / 2 - lonDelta / res;
+                var top = (this.size.h - extentHeight) / 2 - latDelta / res;
+                this.minPx = new OpenLayers.Pixel(left, top);
+                this.maxPx = new OpenLayers.Pixel(left + extentWidth, top + extentHeight);
             }
 
             if (zoomChanged) {
                 this.zoom = zoom;
-                this.resolution = this.getResolutionForZoom(zoom);
+                this.resolution = res;
                 // zoom level has changed, increment viewRequestID.
                 this.viewRequestID++;
             }    
@@ -1704,19 +1845,15 @@ OpenLayers.Map = OpenLayers.Class({
             //send the move call to the baselayer and all the overlays    
 
             if(this.baseLayer.visibility) {
-                this.baseLayer.moveTo(bounds, zoomChanged, dragging);
-                if(dragging) {
-                    this.baseLayer.events.triggerEvent("move");
-                } else {
-                    this.baseLayer.events.triggerEvent("moveend",
-                        {"zoomChanged": zoomChanged}
-                    );
-                }
+                this.baseLayer.moveTo(bounds, zoomChanged, options.dragging);
+                options.dragging || this.baseLayer.events.triggerEvent(
+                    "moveend", {zoomChanged: zoomChanged}
+                );
             }
             
             bounds = this.baseLayer.getExtent();
             
-            for (var i=0, len=this.layers.length; i<len; i++) {
+            for (var i=this.layers.length-1; i>=0; --i) {
                 var layer = this.layers[i];
                 if (layer !== this.baseLayer && !layer.isBaseLayer) {
                     var inRange = layer.calculateInRange();
@@ -1734,38 +1871,25 @@ OpenLayers.Map = OpenLayers.Class({
                         });
                     }
                     if (inRange && layer.visibility) {
-                        layer.moveTo(bounds, zoomChanged, dragging);
-                        if(dragging) {
-                            layer.events.triggerEvent("move");
-                        } else {
-                            layer.events.triggerEvent("moveend",
-                                {"zoomChanged": zoomChanged}
-                            );
-                        }
+                        layer.moveTo(bounds, zoomChanged, options.dragging);
+                        options.dragging || layer.events.triggerEvent(
+                            "moveend", {zoomChanged: zoomChanged}
+                        );
                     }
                 }                
             }
             
+            this.events.triggerEvent("move");
+            dragging || this.events.triggerEvent("moveend");
+
             if (zoomChanged) {
                 //redraw popups
                 for (var i=0, len=this.popups.length; i<len; i++) {
                     this.popups[i].updatePosition();
                 }
-            }    
-            
-            this.events.triggerEvent("move");
-    
-            if (zoomChanged) { this.events.triggerEvent("zoomend"); }
-        }
-
-        // even if nothing was done, we want to notify of this
-        if (!dragging && !noEvent) {
-            this.events.triggerEvent("moveend");
+                this.events.triggerEvent("zoomend");
+            }
         }
-        
-        // Store the map dragging state for later use
-        this.dragging = !!dragging; 
-
     },
 
     /** 
@@ -1776,14 +1900,23 @@ OpenLayers.Map = OpenLayers.Class({
      * lonlat - {<OpenLayers.LonLat>}
      */
     centerLayerContainer: function (lonlat) {
-
         var originPx = this.getViewPortPxFromLonLat(this.layerContainerOrigin);
         var newPx = this.getViewPortPxFromLonLat(lonlat);
 
         if ((originPx != null) && (newPx != null)) {
-            this.layerContainerDiv.style.left = Math.round(originPx.x - newPx.x) + "px";
-            this.layerContainerDiv.style.top  = Math.round(originPx.y - newPx.y) + "px";
-        }
+            var oldLeft = parseInt(this.layerContainerDiv.style.left);
+            var oldTop = parseInt(this.layerContainerDiv.style.top);
+            var newLeft = Math.round(originPx.x - newPx.x);
+            var newTop = Math.round(originPx.y - newPx.y);
+            this.layerContainerDiv.style.left = newLeft + "px";
+            this.layerContainerDiv.style.top  = newTop + "px";
+            var dx = oldLeft - newLeft;
+            var dy = oldTop - newTop;
+            this.minPx.x -= dx;
+            this.maxPx.x -= dx;
+            this.minPx.y -= dy;
+            this.maxPx.y -= dy;
+        }        
     },
 
     /**
@@ -1797,9 +1930,9 @@ OpenLayers.Map = OpenLayers.Class({
      *           within the min/max range of zoom levels.
      */
     isValidZoomLevel: function(zoomLevel) {
-       return ( (zoomLevel != null) &&
-                (zoomLevel >= 0) && 
-                (zoomLevel < this.getNumZoomLevels()) );
+        return ( (zoomLevel != null) &&
+                 (zoomLevel >= 0) && 
+                 (zoomLevel < this.getNumZoomLevels()) );
     },
     
     /**
@@ -2088,8 +2221,6 @@ OpenLayers.Map = OpenLayers.Class({
     /**
      * APIMethod: zoomIn
      * 
-     * Parameters:
-     * zoom - {int}
      */
     zoomIn: function() {
         this.zoomTo(this.getZoom() + 1);
@@ -2098,8 +2229,6 @@ OpenLayers.Map = OpenLayers.Class({
     /**
      * APIMethod: zoomOut
      * 
-     * Parameters:
-     * zoom - {int}
      */
     zoomOut: function() {
         this.zoomTo(this.getZoom() - 1);
@@ -2183,7 +2312,7 @@ OpenLayers.Map = OpenLayers.Class({
         var size = this.getSize();
         var w_deg = size.w * res;
         var h_deg = size.h * res;
-        var center = this.getCenter();
+        var center = this.getCachedCenter();
 
         var extent = new OpenLayers.Bounds(center.lon - w_deg / 2,
                                            center.lat - h_deg / 2,
@@ -2295,8 +2424,8 @@ OpenLayers.Map = OpenLayers.Class({
      * {<OpenLayers.Size>} The geodesic size of the pixel in kilometers.
      */
     getGeodesicPixelSize: function(px) {
-        var lonlat = px ? this.getLonLatFromPixel(px) : (this.getCenter() ||
-            new OpenLayers.LonLat(0, 0));
+        var lonlat = px ? this.getLonLatFromPixel(px) : (
+            this.getCachedCenter() || new OpenLayers.LonLat(0, 0));
         var res = this.getResolution();
         var left = lonlat.add(-res / 2, 0);
         var right = lonlat.add(res / 2, 0);
diff --git a/lib/OpenLayers/Marker.js b/lib/OpenLayers/Marker.js
index ad850aa..c3debf8 100644
--- a/lib/OpenLayers/Marker.js
+++ b/lib/OpenLayers/Marker.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Events.js
  * @requires OpenLayers/Icon.js
  */
diff --git a/lib/OpenLayers/Marker/Box.js b/lib/OpenLayers/Marker/Box.js
index ca4f5ea..74cd95a 100644
--- a/lib/OpenLayers/Marker/Box.js
+++ b/lib/OpenLayers/Marker/Box.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Popup.js b/lib/OpenLayers/Popup.js
index 449d297..0a4d99f 100644
--- a/lib/OpenLayers/Popup.js
+++ b/lib/OpenLayers/Popup.js
@@ -1,8 +1,12 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
+/**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
 
 /**
  * Class: OpenLayers.Popup
@@ -337,7 +341,7 @@ OpenLayers.Popup = OpenLayers.Class({
         }
         
         //listen to movestart, moveend to disable overflow (FF bug)
-        if (!this.disableFirefoxOverflowHack && OpenLayers.Util.getBrowserName() == 'firefox') {
+        if (!this.disableFirefoxOverflowHack && OpenLayers.BROWSER_NAME == 'firefox') {
             this.map.events.register("movestart", this, function() {
                 var style = document.defaultView.getComputedStyle(
                     this.contentDiv, null
@@ -427,7 +431,7 @@ OpenLayers.Popup = OpenLayers.Class({
      * Makes the popup visible.
      */
     show: function() {
-        OpenLayers.Element.show(this.div);
+        this.div.style.display = '';
 
         if (this.panMapIfOutOfView) {
             this.panIntoView();
@@ -439,7 +443,7 @@ OpenLayers.Popup = OpenLayers.Class({
      * Makes the popup invisible.
      */
     hide: function() {
-        OpenLayers.Element.hide(this.div);
+        this.div.style.display = 'none';
     },
 
     /**
@@ -478,7 +482,7 @@ OpenLayers.Popup = OpenLayers.Class({
         //now if our browser is IE, we need to actually make the contents 
         // div itself bigger to take its own padding into effect. this makes 
         // me want to shoot someone, but so it goes.
-        if (OpenLayers.Util.getBrowserName() == "msie") {
+        if (OpenLayers.BROWSER_NAME == "msie") {
             this.contentSize.w += 
                 contentDivPadding.left + contentDivPadding.right;
             this.contentSize.h += 
@@ -884,6 +888,8 @@ OpenLayers.Popup = OpenLayers.Class({
             this.hide();
             OpenLayers.Event.stop(e);
         };
+        OpenLayers.Event.observe(this.closeDiv, "touchend", 
+                OpenLayers.Function.bindAsEventListener(closePopup, this));
         OpenLayers.Event.observe(this.closeDiv, "click", 
                 OpenLayers.Function.bindAsEventListener(closePopup, this));
     },
@@ -940,7 +946,8 @@ OpenLayers.Popup = OpenLayers.Class({
      *   Because the user might select the zoom-rectangle option and
      *    then drag it over a popup, we need a safe way to allow the
      *    mousemove and mouseup events to pass through the popup when
-     *    they are initiated from outside.
+     *    they are initiated from outside. The same procedure is needed for
+     *    touchmove and touchend events.
      * 
      *   Otherwise, we want to essentially kill the event propagation
      *    for all other events, though we have to do so carefully, 
@@ -950,6 +957,9 @@ OpenLayers.Popup = OpenLayers.Class({
      registerEvents:function() {
         this.events = new OpenLayers.Events(this, this.div, null, true);
 
+        function onTouchstart(evt) {
+            OpenLayers.Event.stop(evt, true);
+        }
         this.events.on({
             "mousedown": this.onmousedown,
             "mousemove": this.onmousemove,
@@ -957,6 +967,7 @@ OpenLayers.Popup = OpenLayers.Class({
             "click": this.onclick,
             "mouseout": this.onmouseout,
             "dblclick": this.ondblclick,
+            "touchstart": onTouchstart,
             scope: this
         });
         
diff --git a/lib/OpenLayers/Popup/Anchored.js b/lib/OpenLayers/Popup/Anchored.js
index b89b211..f36c0d7 100644
--- a/lib/OpenLayers/Popup/Anchored.js
+++ b/lib/OpenLayers/Popup/Anchored.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -186,10 +186,10 @@ OpenLayers.Popup.Anchored =
         var size = this.size || this.contentSize;
 
         var top = (this.relativePosition.charAt(0) == 't');
-        newPx.y += (top) ? -(size.h + this.anchor.size.h) : this.anchor.size.h;
+        newPx.y += (top) ? -size.h : this.anchor.size.h;
         
         var left = (this.relativePosition.charAt(1) == 'l');
-        newPx.x += (left) ? -(size.w + this.anchor.size.w) : this.anchor.size.w;
+        newPx.x += (left) ? -size.w : this.anchor.size.w;
 
         return newPx;   
     },
diff --git a/lib/OpenLayers/Popup/AnchoredBubble.js b/lib/OpenLayers/Popup/AnchoredBubble.js
index 94809ca..76e6dd2 100644
--- a/lib/OpenLayers/Popup/AnchoredBubble.js
+++ b/lib/OpenLayers/Popup/AnchoredBubble.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,7 @@
 
 /**
  * @requires OpenLayers/Popup/Anchored.js
+ * @requires Rico/Corner.js
  */
 
 /**
diff --git a/lib/OpenLayers/Popup/Framed.js b/lib/OpenLayers/Popup/Framed.js
index 6dfc763..efa1428 100644
--- a/lib/OpenLayers/Popup/Framed.js
+++ b/lib/OpenLayers/Popup/Framed.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Popup/FramedCloud.js b/lib/OpenLayers/Popup/FramedCloud.js
index 81782de..6dec387 100644
--- a/lib/OpenLayers/Popup/FramedCloud.js
+++ b/lib/OpenLayers/Popup/FramedCloud.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -6,6 +6,9 @@
 /**
  * @requires OpenLayers/Popup/Framed.js
  * @requires OpenLayers/Util.js
+ * @requires OpenLayers/BaseTypes/Bounds.js
+ * @requires OpenLayers/BaseTypes/Pixel.js
+ * @requires OpenLayers/BaseTypes/Size.js
  */
 
 /**
diff --git a/lib/OpenLayers/Projection.js b/lib/OpenLayers/Projection.js
index 48b0ff8..7e652ba 100644
--- a/lib/OpenLayers/Projection.js
+++ b/lib/OpenLayers/Projection.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  */
 
@@ -26,6 +27,12 @@ OpenLayers.Projection = OpenLayers.Class({
      * {String}
      */
     projCode: null,
+    
+    /**
+     * Property: titleRegEx
+     * {RegExp} regular expression to strip the title from a proj4js definition
+     */
+    titleRegEx: /\+title=[^\+]*/,
 
     /**
      * Constructor: OpenLayers.Projection
@@ -92,11 +99,20 @@ OpenLayers.Projection = OpenLayers.Class({
      * {Boolean} The two projections are equivalent.
      */
     equals: function(projection) {
-        if (projection && projection.getCode) {
-            return this.getCode() == projection.getCode();
-        } else {
-            return false;
-        }    
+        var p = projection, equals = false;
+        if (p) {
+            if (window.Proj4js && this.proj.defData && p.proj.defData) {
+                equals = this.proj.defData.replace(this.titleRegEx, "") ==
+                    p.proj.defData.replace(this.titleRegEx, "");
+            } else if (p.getCode) {
+                var source = this.getCode(), target = p.getCode();
+                equals = source == target ||
+                    !!OpenLayers.Projection.transforms[source] &&
+                    OpenLayers.Projection.transforms[source][target] ===
+                        OpenLayers.Projection.nullTransform;
+            }
+        }
+        return equals;   
     },
 
     /* Method: destroy
@@ -158,10 +174,10 @@ OpenLayers.Projection.addTransform = function(from, to, method) {
  *     the input point is transformed in place.
  * 
  * Parameters:
- * point - {{OpenLayers.Geometry.Point> | Object} An object with x and y
+ * point - {<OpenLayers.Geometry.Point> | Object} An object with x and y
  *     properties representing coordinates in those dimensions.
- * sourceProj - {OpenLayers.Projection} Source map coordinate system
- * destProj - {OpenLayers.Projection} Destination map coordinate system
+ * source - {OpenLayers.Projection} Source map coordinate system
+ * dest - {OpenLayers.Projection} Destination map coordinate system
  *
  * Returns:
  * point - {object} A transformed coordinate.  The original point is modified.
@@ -176,3 +192,23 @@ OpenLayers.Projection.transform = function(point, source, dest) {
     }
     return point;
 };
+
+/**
+ * APIFunction: nullTransform
+ * A null transformation - useful for defining projection aliases when
+ * proj4js is not available:
+ *
+ * (code)
+ * OpenLayers.Projection.addTransform("EPSG:4326", "EPSG:3857",
+ *     OpenLayers.Layer.SphericalMercator.projectForward);
+ * OpenLayers.Projection.addTransform("EPSG:3857", "EPSG:3857",
+ *     OpenLayers.Layer.SphericalMercator.projectInverse);
+ * OpenLayers.Projection.addTransform("EPSG:3857", "EPSG:900913",
+ *     OpenLayers.Projection.nullTransform);
+ * OpenLayers.Projection.addTransform("EPSG:900913", "EPSG:3857",
+ *     OpenLayers.Projection.nullTransform);
+ * (end)
+ */
+OpenLayers.Projection.nullTransform = function(point) {
+    return point;
+};
diff --git a/lib/OpenLayers/Protocol.js b/lib/OpenLayers/Protocol.js
index 1e6b05e..601e595 100644
--- a/lib/OpenLayers/Protocol.js
+++ b/lib/OpenLayers/Protocol.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Class: OpenLayers.Protocol
  * Abstract vector layer protocol class.  Not to be instantiated directly.  Use
  *     one of the protocol subclasses instead.
@@ -245,6 +249,12 @@ OpenLayers.Protocol.Response = OpenLayers.Class({
     priv: null,
 
     /**
+     * Property: error
+     * {Object} The error object in case a service exception was encountered.
+     */
+    error: null,
+
+    /**
      * Constructor: OpenLayers.Protocol.Response
      *
      * Parameters:
diff --git a/lib/OpenLayers/Protocol/HTTP.js b/lib/OpenLayers/Protocol/HTTP.js
index 3b231cd..2b86c0c 100644
--- a/lib/OpenLayers/Protocol/HTTP.js
+++ b/lib/OpenLayers/Protocol/HTTP.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/Console.js
  * @requires OpenLayers/Protocol.js
  * @requires OpenLayers/Feature/Vector.js
  * @requires OpenLayers/Filter/Spatial.js
@@ -13,6 +14,11 @@
  */
 
 /**
+ * TODO: remove this dependency in 3.0
+ * @requires OpenLayers/Format/QueryStringFilter.js
+ */
+
+/**
  * Class: OpenLayers.Protocol.HTTP
  * A basic HTTP protocol for vector layers.  Create a new instance with the
  *     <OpenLayers.Protocol.HTTP> constructor.
@@ -79,6 +85,15 @@ OpenLayers.Protocol.HTTP = OpenLayers.Class(OpenLayers.Protocol, {
     wildcarded: false,
 
     /**
+     * APIProperty: srsInBBOX
+     * {Boolean} Include the SRS identifier in BBOX query string parameter.  
+     *     Default is false.  If true and the layer has a projection object set,
+     *     any BBOX filter will be serialized with a fifth item identifying the
+     *     projection.  E.g. bbox=-1000,-1000,1000,1000,EPSG:900913
+     */
+    srsInBBOX: false,
+
+    /**
      * Constructor: OpenLayers.Protocol.HTTP
      * A class for giving layers generic HTTP protocol.
      *
@@ -99,6 +114,16 @@ OpenLayers.Protocol.HTTP = OpenLayers.Class(OpenLayers.Protocol, {
         this.params = {};
         this.headers = {};
         OpenLayers.Protocol.prototype.initialize.apply(this, arguments);
+
+        if (!this.filterToParams && OpenLayers.Format.QueryStringFilter) {
+            var format = new OpenLayers.Format.QueryStringFilter({
+                wildcarded: this.wildcarded,
+                srsInBBOX: this.srsInBBOX
+            });
+            this.filterToParams = function(filter, params) {
+                return format.write(filter, params);
+            }
+        }
     },
     
     /**
@@ -110,7 +135,22 @@ OpenLayers.Protocol.HTTP = OpenLayers.Class(OpenLayers.Protocol, {
         this.headers = null;
         OpenLayers.Protocol.prototype.destroy.apply(this);
     },
-   
+
+    /**
+     * APIMethod: filterToParams
+     * Optional method to translate an <OpenLayers.Filter> object into an object
+     *     that can be serialized as request query string provided.  If a custom
+     *     method is not provided, the filter will be serialized using the 
+     *     <OpenLayers.Protocol.simpleFilterSerializer> method.
+     *
+     * Parameters:
+     * filter - {<OpenLayers.Filter>} filter to convert.
+     * params - {Object} The parameters object.
+     *
+     * Returns:
+     * {Object} The resulting parameters object.
+     */
+    
     /**
      * APIMethod: read
      * Construct a request for reading new features.
@@ -135,12 +175,14 @@ OpenLayers.Protocol.HTTP = OpenLayers.Class(OpenLayers.Protocol, {
      */
     read: function(options) {
         OpenLayers.Protocol.prototype.read.apply(this, arguments);
-        options = OpenLayers.Util.applyDefaults(options, this.options);
+        options = options || {};
         options.params = OpenLayers.Util.applyDefaults(
             options.params, this.options.params);
-        if(options.filter) {
+        options = OpenLayers.Util.applyDefaults(options, this.options);
+        if (options.filter && this.filterToParams) {
             options.params = this.filterToParams(
-                options.filter, options.params);
+                options.filter, options.params
+            );
         }
         var readWithPOST = (options.readWithPOST !== undefined) ?
                            options.readWithPOST : this.readWithPOST;
@@ -180,121 +222,6 @@ OpenLayers.Protocol.HTTP = OpenLayers.Class(OpenLayers.Protocol, {
     },
 
     /**
-     * Method: filterToParams
-     * Convert an <OpenLayers.Filter> object to parameters.
-     *
-     * Parameters:
-     * filter - {OpenLayers.Filter} filter to convert.
-     * params - {Object} The parameters object.
-     *
-     * Returns:
-     * {Object} The resulting parameters object.
-     */
-    filterToParams: function(filter, params) {
-        params = params || {};
-        var className = filter.CLASS_NAME;
-        var filterType = className.substring(className.lastIndexOf(".") + 1);
-        switch(filterType) {
-            case "Spatial":
-                switch(filter.type) {
-                    case OpenLayers.Filter.Spatial.BBOX:
-                        params.bbox = filter.value.toArray();
-                        break;
-                    case OpenLayers.Filter.Spatial.DWITHIN:
-                        params.tolerance = filter.distance;
-                        // no break here
-                    case OpenLayers.Filter.Spatial.WITHIN:
-                        params.lon = filter.value.x;
-                        params.lat = filter.value.y;
-                        break;
-                    default:
-                        OpenLayers.Console.warn(
-                            "Unknown spatial filter type " + filter.type);
-                }
-                break;
-            case "Comparison":
-                var op = OpenLayers.Protocol.HTTP.COMP_TYPE_TO_OP_STR[filter.type];
-                if(op !== undefined) {
-                    var value = filter.value;
-                    if(filter.type == OpenLayers.Filter.Comparison.LIKE) {
-                        value = this.regex2value(value);
-                        if(this.wildcarded) {
-                            value = "%" + value + "%";
-                        }
-                    }
-                    params[filter.property + "__" + op] = value;
-                    params.queryable = params.queryable || [];
-                    params.queryable.push(filter.property);
-                } else {
-                    OpenLayers.Console.warn(
-                        "Unknown comparison filter type " + filter.type);
-                }
-                break;
-            case "Logical":
-                if(filter.type === OpenLayers.Filter.Logical.AND) {
-                    for(var i=0,len=filter.filters.length; i<len; i++) {
-                        params = this.filterToParams(filter.filters[i], params);
-                    }
-                } else {
-                    OpenLayers.Console.warn(
-                        "Unsupported logical filter type " + filter.type);
-                }
-                break;
-            default:
-                OpenLayers.Console.warn("Unknown filter type " + filterType);
-        }
-        return params;
-    },
-
-    /**
-     * Method: regex2value
-     * Convert the value from a regular expression string to a LIKE/ILIKE
-     * string known to the web service.
-     *
-     * Parameters:
-     * value - {String} The regex string.
-     *
-     * Returns:
-     * {String} The converted string.
-     */
-    regex2value: function(value) {
-
-        // highly sensitive!! Do not change this without running the
-        // Protocol/HTTP.html unit tests
-
-        // convert % to \%
-        value = value.replace(/%/g, "\\%");
-
-        // convert \\. to \\_ (\\.* occurences converted later)
-        value = value.replace(/\\\\\.(\*)?/g, function($0, $1) {
-            return $1 ? $0 : "\\\\_";
-        });
-
-        // convert \\.* to \\%
-        value = value.replace(/\\\\\.\*/g, "\\\\%");
-
-        // convert . to _ (\. and .* occurences converted later)
-        value = value.replace(/(\\)?\.(\*)?/g, function($0, $1, $2) {
-            return $1 || $2 ? $0 : "_";
-        });
-
-        // convert .* to % (\.* occurnces converted later)
-        value = value.replace(/(\\)?\.\*/g, function($0, $1) {
-            return $1 ? $0 : "%";
-        });
-
-        // convert \. to .
-        value = value.replace(/\\\./g, ".");
-
-        // replace \* with * (watching out for \\*)
-        value = value.replace(/(\\)?\\\*/g, function($0, $1) {
-            return $1 ? $0 : "*";
-        });
-
-        return value;
-    },
-
-    /**
      * APIMethod: create
      * Construct a request for writing newly created features.
      *
@@ -635,21 +562,3 @@ OpenLayers.Protocol.HTTP = OpenLayers.Class(OpenLayers.Protocol, {
 
     CLASS_NAME: "OpenLayers.Protocol.HTTP" 
 });
-
-/**
- * Property: OpenLayers.Protocol.HTTP.COMP_TYPE_TO_OP_STR
- * {Object} A private class-level property mapping the
- *     OpenLayers.Filter.Comparison types to the operation
- *     strings of the protocol.
- */
-(function() {
-    var o = OpenLayers.Protocol.HTTP.COMP_TYPE_TO_OP_STR = {};
-    o[OpenLayers.Filter.Comparison.EQUAL_TO]                 = "eq";
-    o[OpenLayers.Filter.Comparison.NOT_EQUAL_TO]             = "ne";
-    o[OpenLayers.Filter.Comparison.LESS_THAN]                = "lt";
-    o[OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO]    = "lte";
-    o[OpenLayers.Filter.Comparison.GREATER_THAN]             = "gt";
-    o[OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO] = "gte";
-    o[OpenLayers.Filter.Comparison.LIKE]                     = "ilike";
-})();
-
diff --git a/lib/OpenLayers/Protocol/SOS.js b/lib/OpenLayers/Protocol/SOS.js
index eb95b50..8f3ba9a 100644
--- a/lib/OpenLayers/Protocol/SOS.js
+++ b/lib/OpenLayers/Protocol/SOS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Protocol/SOS/v1_0_0.js b/lib/OpenLayers/Protocol/SOS/v1_0_0.js
index de47b1c..7e23644 100644
--- a/lib/OpenLayers/Protocol/SOS/v1_0_0.js
+++ b/lib/OpenLayers/Protocol/SOS/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Protocol/SQL.js b/lib/OpenLayers/Protocol/SQL.js
index 73982eb..404a3ba 100644
--- a/lib/OpenLayers/Protocol/SQL.js
+++ b/lib/OpenLayers/Protocol/SQL.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Protocol/SQL/Gears.js b/lib/OpenLayers/Protocol/SQL/Gears.js
index 233e030..55cb72d 100644
--- a/lib/OpenLayers/Protocol/SQL/Gears.js
+++ b/lib/OpenLayers/Protocol/SQL/Gears.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -302,7 +302,7 @@ OpenLayers.Protocol.SQL.Gears = OpenLayers.Class(OpenLayers.Protocol.SQL, {
      *          object.
      */
     createOrUpdate: function(features) {
-        if (!(features instanceof Array)) {
+        if (!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
 
@@ -397,7 +397,7 @@ OpenLayers.Protocol.SQL.Gears = OpenLayers.Class(OpenLayers.Protocol.SQL, {
      *          object.
      */
     "delete": function(features, options) {
-        if (!(features instanceof Array)) {
+        if (!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
 
diff --git a/lib/OpenLayers/Protocol/Script.js b/lib/OpenLayers/Protocol/Script.js
new file mode 100644
index 0000000..2e47de7
--- /dev/null
+++ b/lib/OpenLayers/Protocol/Script.js
@@ -0,0 +1,364 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Protocol.js
+ * @requires OpenLayers/Feature/Vector.js
+ * @requires OpenLayers/Format/GeoJSON.js
+ */
+
+/**
+ * Class: OpenLayers.Protocol.Script
+ * A basic Script protocol for vector layers.  Create a new instance with the
+ *     <OpenLayers.Protocol.Script> constructor.  A script protocol is used to
+ *     get around the same origin policy.  It works with services that return
+ *     JSONP - that is, JSON wrapped in a client-specified callback.  The
+ *     protocol handles fetching and parsing of feature data and sends parsed
+ *     features to the <callback> configured with the protocol.  The protocol
+ *     expects features serialized as GeoJSON by default, but can be configured
+ *     to work with other formats by setting the <format> property.
+ *
+ * Inherits from:
+ *  - <OpenLayers.Protocol>
+ */
+OpenLayers.Protocol.Script = OpenLayers.Class(OpenLayers.Protocol, {
+
+    /**
+     * APIProperty: url
+     * {String} Service URL.  The service is expected to return serialized 
+     *     features wrapped in a named callback (where the callback name is
+     *     generated by this protocol).
+     *     Read-only, set through the options passed to the constructor.
+     */
+    url: null,
+
+    /**
+     * APIProperty: params
+     * {Object} Query string parameters to be appended to the URL.
+     *     Read-only, set through the options passed to the constructor.
+     *     Example: {maxFeatures: 50}
+     */
+    params: null,
+    
+    /**
+     * APIProperty: callback
+     * {Object} Function to be called when the <read> operation completes.
+     */
+    callback: null,
+
+    /**
+     * APIProperty: scope
+     * {Object} Optional ``this`` object for the callback. Read-only, set 
+     *     through the options passed to the constructor.
+     */
+    scope: null,
+
+    /**
+     * APIProperty: format
+     * {<OpenLayers.Format>} Format for parsing features.  Default is an 
+     *     <OpenLayers.Format.GeoJSON> format.  If an alternative is provided,
+     *     the format's read method must take an object and return an array
+     *     of features.
+     */
+    format: null,
+
+    /**
+     * APIProperty: callbackKey
+     * {String} The name of the query string parameter that the service 
+     *     recognizes as the callback identifier.  Default is "callback".
+     *     This key is used to generate the URL for the script.  For example
+     *     setting <callbackKey> to "myCallback" would result in a URL like 
+     *     http://example.com/?myCallback=...
+     */
+    callbackKey: "callback",
+
+    /**
+     * APIProperty: callbackPrefix
+     * {String} Where a service requires that the callback query string 
+     *     parameter value is prefixed by some string, this value may be set.
+     *     For example, setting <callbackPrefix> to "foo:" would result in a
+     *     URL like http://example.com/?callback=foo:...  Default is "".
+     */
+    callbackPrefix: "",
+
+    /**
+     * Property: pendingRequests
+     * {Object} References all pending requests.  Property names are script 
+     *     identifiers and property values are script elements.
+     */
+    pendingRequests: null,
+
+    /**
+     * APIProperty: srsInBBOX
+     * {Boolean} Include the SRS identifier in BBOX query string parameter.
+     *     Setting this property has no effect if a custom filterToParams method
+     *     is provided.   Default is false.  If true and the layer has a 
+     *     projection object set, any BBOX filter will be serialized with a 
+     *     fifth item identifying the projection.  
+     *     E.g. bbox=-1000,-1000,1000,1000,EPSG:900913
+     */
+    srsInBBOX: false,
+
+    /**
+     * Constructor: OpenLayers.Protocol.Script
+     * A class for giving layers generic Script protocol.
+     *
+     * Parameters:
+     * options - {Object} Optional object whose properties will be set on the
+     *     instance.
+     *
+     * Valid options include:
+     * url - {String}
+     * params - {Object}
+     * callback - {Function}
+     * scope - {Object}
+     */
+    initialize: function(options) {
+        options = options || {};
+        this.params = {};
+        this.pendingRequests = {};
+        OpenLayers.Protocol.prototype.initialize.apply(this, arguments);
+        if (!this.format) {
+            this.format = new OpenLayers.Format.GeoJSON();
+        }
+
+        if (!this.filterToParams && OpenLayers.Format.QueryStringFilter) {
+            var format = new OpenLayers.Format.QueryStringFilter({
+                srsInBBOX: this.srsInBBOX
+            });
+            this.filterToParams = function(filter, params) {
+                return format.write(filter, params);
+            }
+        }
+    },
+    
+    /**
+     * APIMethod: read
+     * Construct a request for reading new features.
+     *
+     * Parameters:
+     * options - {Object} Optional object for configuring the request.
+     *     This object is modified and should not be reused.
+     *
+     * Valid options:
+     * url - {String} Url for the request.
+     * params - {Object} Parameters to get serialized as a query string.
+     * filter - {<OpenLayers.Filter>} Filter to get serialized as a
+     *     query string.
+     *
+     * Returns:
+     * {<OpenLayers.Protocol.Response>} A response object, whose "priv" property
+     *     references the injected script.  This object is also passed to the
+     *     callback function when the request completes, its "features" property
+     *     is then populated with the features received from the server.
+     */
+    read: function(options) {
+        OpenLayers.Protocol.prototype.read.apply(this, arguments);
+        options = OpenLayers.Util.applyDefaults(options, this.options);
+        options.params = OpenLayers.Util.applyDefaults(
+            options.params, this.options.params
+        );
+        if (options.filter && this.filterToParams) {
+            options.params = this.filterToParams(
+                options.filter, options.params
+            );
+        }
+        var response = new OpenLayers.Protocol.Response({requestType: "read"});
+        var request = this.createRequest(
+            options.url, 
+            options.params, 
+            OpenLayers.Function.bind(function(data) {
+                response.data = data;
+                this.handleRead(response, options);
+            }, this)
+        );
+        response.priv = request;
+        return response;
+    },
+
+    /** 
+     * APIMethod: filterToParams 
+     * Optional method to translate an <OpenLayers.Filter> object into an object 
+     *     that can be serialized as request query string provided.  If a custom 
+     *     method is not provided, any filter will not be serialized. 
+     * 
+     * Parameters: 
+     * filter - {<OpenLayers.Filter>} filter to convert. 
+     * params - {Object} The parameters object. 
+     * 
+     * Returns: 
+     * {Object} The resulting parameters object. 
+     */
+
+    /** 
+     * Method: createRequest
+     * Issues a request for features by creating injecting a script in the 
+     *     document head.
+     *
+     * Parameters:
+     * url - {String} Service URL.
+     * params - {Object} Query string parameters.
+     * callback - {Function} Callback to be called with resulting data.
+     *
+     * Returns:
+     * {HTMLScriptElement} The script pending execution.
+     */
+    createRequest: function(url, params, callback) {
+        var id = OpenLayers.Protocol.Script.register(callback);
+        var name = "OpenLayers.Protocol.Script.registry[" + id + "]";
+        params = OpenLayers.Util.extend({}, params);
+        params[this.callbackKey] = this.callbackPrefix + name;
+        url = OpenLayers.Util.urlAppend(
+            url, OpenLayers.Util.getParameterString(params)
+        );
+        var script = document.createElement("script");
+        script.type = "text/javascript";
+        script.src = url;
+        script.id = "OpenLayers_Protocol_Script_" + id;
+        this.pendingRequests[script.id] = script;
+        var head = document.getElementsByTagName("head")[0];
+        head.appendChild(script);
+        return script;
+    },
+    
+    /** 
+     * Method: destroyRequest
+     * Remove a script node associated with a response from the document.  Also
+     *     unregisters the callback and removes the script from the 
+     *     <pendingRequests> object.
+     *
+     * Parameters:
+     * script - {HTMLScriptElement}
+     */
+    destroyRequest: function(script) {
+        OpenLayers.Protocol.Script.unregister(script.id.split("_").pop());
+        delete this.pendingRequests[script.id];
+        if (script.parentNode) {
+            script.parentNode.removeChild(script);
+        }
+    },
+
+    /**
+     * Method: handleRead
+     * Individual callbacks are created for read, create and update, should
+     *     a subclass need to override each one separately.
+     *
+     * Parameters:
+     * response - {<OpenLayers.Protocol.Response>} The response object to pass to
+     *     the user callback.
+     * options - {Object} The user options passed to the read call.
+     */
+    handleRead: function(response, options) {
+        this.handleResponse(response, options);
+    },
+
+    /**
+     * Method: handleResponse
+     * Called by CRUD specific handlers.
+     *
+     * Parameters:
+     * response - {<OpenLayers.Protocol.Response>} The response object to pass to
+     *     any user callback.
+     * options - {Object} The user options passed to the create, read, update,
+     *     or delete call.
+     */
+    handleResponse: function(response, options) {
+        if (options.callback) {
+            if (response.data) {
+                response.features = this.parseFeatures(response.data);
+                response.code = OpenLayers.Protocol.Response.SUCCESS;
+            } else {
+                response.code = OpenLayers.Protocol.Response.FAILURE;
+            }
+            this.destroyRequest(response.priv);
+            options.callback.call(options.scope, response);
+        }
+    },
+
+    /**
+     * Method: parseFeatures
+     * Read Script response body and return features.
+     *
+     * Parameters:
+     * data - {Object} The data sent to the callback function by the server.
+     *
+     * Returns:
+     * {Array({<OpenLayers.Feature.Vector>})} or
+     *     {<OpenLayers.Feature.Vector>} Array of features or a single feature.
+     */
+    parseFeatures: function(data) {
+        return this.format.read(data);
+    },
+
+    /**
+     * APIMethod: abort
+     * Abort an ongoing request.  If no response is provided, all pending 
+     *     requests will be aborted.
+     *
+     * Parameters:
+     * response - {<OpenLayers.Protocol.Response>} The response object returned
+     *     from a <read> request.
+     */
+    abort: function(response) {
+        if (response) {
+            this.destroyRequest(response.priv);
+        } else {
+            for (var key in this.pendingRequests) {
+                this.destroyRequest(this.pendingRequests[key]);
+            }
+        }
+    },
+    
+    /**
+     * APIMethod: destroy
+     * Clean up the protocol.
+     */
+    destroy: function() {
+        this.abort();
+        delete this.params;
+        delete this.format;
+        OpenLayers.Protocol.prototype.destroy.apply(this);
+    },
+
+    CLASS_NAME: "OpenLayers.Protocol.Script" 
+});
+
+(function() {
+    var o = OpenLayers.Protocol.Script;
+    var counter = 0;
+    o.registry = [];
+    
+    /**
+     * Function: OpenLayers.Protocol.Script.register
+     * Register a callback for a newly created script.
+     *
+     * Parameters:
+     * callback: {Function} The callback to be executed when the newly added
+     *     script loads.  This callback will be called with a single argument
+     *     that is the JSON returned by the service.
+     *
+     * Returns:
+     * {Number} An identifier for retreiving the registered callback.
+     */
+    o.register = function(callback) {
+        var id = ++counter;
+        o.registry[id] = function() {
+            o.unregister(id);
+            callback.apply(this, arguments);
+        };
+        return id;
+    };
+    
+    /**
+     * Function: OpenLayers.Protocol.Script.unregister
+     * Unregister a callback previously registered with the register function.
+     *
+     * Parameters:
+     * id: {Number} The identifer returned by the register function.
+     */
+    o.unregister = function(id) {
+        delete o.registry[id];
+    };
+})();
diff --git a/lib/OpenLayers/Protocol/WFS.js b/lib/OpenLayers/Protocol/WFS.js
index d07d303..ca4ee5e 100644
--- a/lib/OpenLayers/Protocol/WFS.js
+++ b/lib/OpenLayers/Protocol/WFS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -8,11 +8,24 @@
  */
 
 /**
- * Function: OpenLayers.Protocol.WFS
+ * Class: OpenLayers.Protocol.WFS
  * Used to create a versioned WFS protocol.  Default version is 1.0.0.
  *
  * Returns:
  * {<OpenLayers.Protocol>} A WFS protocol of the given version.
+ *
+ * Example:
+ * (code)
+ *     var protocol = new OpenLayers.Protocol.WFS({
+ *         version: "1.1.0",
+ *         url:  "http://demo.opengeo.org/geoserver/wfs",
+ *         featureType: "tasmania_roads",
+ *         featureNS: "http://www.openplans.org/topp",
+ *         geometryName: "the_geom"
+ *     });
+ * (end)
+ *
+ * See the protocols for specific WFS versions for more detail.
  */
 OpenLayers.Protocol.WFS = function(options) {
     options = OpenLayers.Util.applyDefaults(
@@ -26,7 +39,7 @@ OpenLayers.Protocol.WFS = function(options) {
 };
 
 /**
- * Function: OpenLayers.Protocol.WFS.fromWMSLayer
+ * Function: fromWMSLayer
  * Convenience function to create a WFS protocol from a WMS layer.  This makes
  *     the assumption that a WFS requests can be issued at the same URL as
  *     WMS requests and that a WFS featureType exists with the same name as the
@@ -34,7 +47,7 @@ OpenLayers.Protocol.WFS = function(options) {
  *     
  * This function is designed to auto-configure <url>, <featureType>,
  *     <featurePrefix> and <srsName> for WFS <version> 1.1.0. Note that
- *     srsName matching with the WMS layer will not work with WFS 1.0.0..
+ *     srsName matching with the WMS layer will not work with WFS 1.0.0.
  * 
  * Parameters:
  * layer - {<OpenLayers.Layer.WMS>} WMS layer that has a matching WFS
@@ -45,7 +58,7 @@ OpenLayers.Protocol.WFS = function(options) {
 OpenLayers.Protocol.WFS.fromWMSLayer = function(layer, options) {
     var typeName, featurePrefix;
     var param = layer.params["LAYERS"];
-    var parts = (param instanceof Array ? param[0] : param).split(":");
+    var parts = (OpenLayers.Util.isArray(param) ? param[0] : param).split(":");
     if(parts.length > 1) {
         featurePrefix = parts[0];
     }
diff --git a/lib/OpenLayers/Protocol/WFS/v1.js b/lib/OpenLayers/Protocol/WFS/v1.js
index b6da13a..905dadc 100644
--- a/lib/OpenLayers/Protocol/WFS/v1.js
+++ b/lib/OpenLayers/Protocol/WFS/v1.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -43,7 +43,7 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
     /**
      * Property: geometryName
      * {String} Name of the geometry attribute for features.  Default is
-     *     "the_geom".
+     *     "the_geom" for WFS <version> 1.0, and null for higher versions.
      */
     geometryName: "the_geom",
     
@@ -77,7 +77,13 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
      *     the response with the default format (WFST) and we need a different 
      *     format for reading. 
      */ 
-    readFormat: null,     
+    readFormat: null,
+    
+    /**
+     * Property: readOptions
+     * {Object} Optional object to pass to format's read.
+     */
+    readOptions: null,
     
     /**
      * Constructor: OpenLayers.Protocol.WFS
@@ -91,11 +97,18 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
      * url - {String} URL to send requests to (required).
      * featureType - {String} Local (without prefix) feature typeName (required).
      * featureNS - {String} Feature namespace (required, but can be autodetected
-     *     for reading if featurePrefix is provided and identical to the prefix
-     *     in the server response).
+     *     during the first query if GML is used as readFormat and
+     *     featurePrefix is provided and matches the prefix used by the server
+     *     for this featureType).
      * featurePrefix - {String} Feature namespace alias (optional - only used
      *     for writing if featureNS is provided).  Default is 'feature'.
-     * geometryName - {String} Name of geometry attribute.  Default is 'the_geom'.
+     * geometryName - {String} Name of geometry attribute.  The default is
+     *     'the_geom' for WFS <version> 1.0, and null for higher versions. If
+     *     null, it will be set to the name of the first geometry found in the
+     *     first read operation.
+     * multi - {Boolean} If set to true, geometries will be casted to Multi
+     *     geometries before they are written in a transaction. No casting will
+     *     be done when reading features.
      */
     initialize: function(options) {
         OpenLayers.Protocol.prototype.initialize.apply(this, [options]);
@@ -110,16 +123,8 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
                 schema: this.schema
             }, this.formatOptions));
         }
-        if(!this.featureNS && this.featurePrefix) {
-            // featureNS autodetection
-            var readNode = this.format.readNode;
-            this.format.readNode = function(node, obj) {
-                if(!this.featureNS && node.prefix == this.featurePrefix) {
-                    this.featureNS = node.namespaceURI;
-                    this.setNamespace("feature", this.featureNS);
-                }
-                return readNode.apply(this, arguments);
-            };
+        if (!options.geometryName && parseFloat(this.format.version) > 1.0) {
+            this.setGeometryName(null);
         }
     },
     
@@ -136,12 +141,50 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
     },
 
     /**
-     * Method: read
+     * APIMethod: read
      * Construct a request for reading new features.  Since WFS splits the
      *     basic CRUD operations into GetFeature requests (for read) and
      *     Transactions (for all others), this method does not make use of the
      *     format's read method (that is only about reading transaction
      *     responses).
+     *
+     * Parameters:
+     * options - {Object} Options for the read operation, in addition to the
+     *     options set on the instance (options set here will take precedence).
+     *
+     * To use a configured protocol to get e.g. a WFS hit count, applications
+     * could do the following:
+     *
+     * (code)
+     * protocol.read({
+     *     readOptions: {output: "object"},
+     *     resultType: "hits",
+     *     maxFeatures: null,
+     *     callback: function(resp) {
+     *         // process resp.numberOfFeatures here
+     *     }
+     * });
+     * (end)
+     *
+     * To use a configured protocol to use WFS paging (if supported by the
+     * server), applications could do the following:
+     *
+     * (code)
+     * protocol.read({
+     *     startIndex: 0,
+     *     count: 50
+     * });
+     * (end)
+     *
+     * To limit the attributes returned by the GetFeature request, applications
+     * can use the propertyNames option to specify the properties to include in
+     * the response:
+     *
+     * (code)
+     * protocol.read({
+     *     propertyNames: ["DURATION", "INTENSITY"]
+     * });
+     * (end)
      */
     read: function(options) {
         OpenLayers.Protocol.prototype.read.apply(this, arguments);
@@ -159,10 +202,34 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
             params: options.params,
             headers: options.headers,
             data: data
-        });        
+        });
 
         return response;
     },
+
+    /**
+     * APIMethod: setFeatureType
+     * Change the feature type on the fly.
+     *
+     * Parameters:
+     * featureType - {String} Local (without prefix) feature typeName.
+     */
+    setFeatureType: function(featureType) {
+        this.featureType = featureType;
+        this.format.featureType = featureType;
+    },
+ 
+    /**
+     * APIMethod: setGeometryName
+     * Sets the geometryName option after instantiation.
+     *
+     * Parameters:
+     * geometryName - {String} Name of geometry attribute.
+     */
+    setGeometryName: function(geometryName) {
+        this.geometryName = geometryName;
+        this.format.geometryName = geometryName;
+    },
     
     /**
      * Method: handleRead
@@ -174,12 +241,26 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
      * options - {Object} The user options passed to the read call.
      */
     handleRead: function(response, options) {
+        options = OpenLayers.Util.extend({}, options);
+        OpenLayers.Util.applyDefaults(options, this.options);
+
         if(options.callback) {
             var request = response.priv;
             if(request.status >= 200 && request.status < 300) {
                 // success
-                response.features = this.parseFeatures(request);
-                response.code = OpenLayers.Protocol.Response.SUCCESS;
+                var result = this.parseResponse(request, options.readOptions);
+                if (result && result.success !== false) { 
+                    if (options.readOptions && options.readOptions.output == "object") {
+                        OpenLayers.Util.extend(response, result);
+                    } else {
+                        response.features = result;
+                    }
+                    response.code = OpenLayers.Protocol.Response.SUCCESS;
+                } else {
+                    // failure (service exception)
+                    response.code = OpenLayers.Protocol.Response.FAILURE;
+                    response.error = result;
+                }
             } else {
                 // failure
                 response.code = OpenLayers.Protocol.Response.FAILURE;
@@ -189,17 +270,20 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
     },
 
     /**
-     * Method: parseFeatures
+     * Method: parseResponse
      * Read HTTP response body and return features
      *
      * Parameters:
      * request - {XMLHttpRequest} The request object
+     * options - {Object} Optional object to pass to format's read
      *
      * Returns:
-     * {Array({<OpenLayers.Feature.Vector>})} or
-     *     {<OpenLayers.Feature.Vector>} Array of features or a single feature.
+     * {Object} or {Array({<OpenLayers.Feature.Vector>})} or
+     *     {<OpenLayers.Feature.Vector>} 
+     * An object with a features property, an array of features or a single 
+     * feature.
      */
-    parseFeatures: function(request) {
+    parseResponse: function(request, options) {
         var doc = request.responseXML;
         if(!doc || !doc.documentElement) {
             doc = request.responseText;
@@ -207,8 +291,18 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
         if(!doc || doc.length <= 0) {
             return null;
         }
-        return (this.readFormat !== null) ? this.readFormat.read(doc) : 
-            this.format.read(doc);
+        var result = (this.readFormat !== null) ? this.readFormat.read(doc) : 
+            this.format.read(doc, options);
+        if (!this.featureNS) {
+            var format = this.readFormat || this.format;
+            this.featureNS = format.featureNS;
+            // no need to auto-configure again on subsequent reads
+            format.autoConfig = false;
+            if (!this.geometryName) {
+                this.setGeometryName(format.geometryName);
+            }
+        }
+        return result;
     },
 
     /**
@@ -219,7 +313,15 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
      *     is used.
      *
      * Parameters:
-     * features - {Array(<OpenLayers.Feature.Vector>}
+     * features - {Array(<OpenLayers.Feature.Vector>)}
+     * options - {Object}
+     *
+     * Valid options properties:
+     * nativeElements - {Array({Object})} Array of objects with information for writing
+     * out <Native> elements, these objects have vendorId, safeToIgnore and
+     * value properties. The <Native> element is intended to allow access to 
+     * vendor specific capabilities of any particular web feature server or 
+     * datastore.
      *
      * Returns:
      * {<OpenLayers.Protocol.Response>} A response object with a features
@@ -237,6 +339,7 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
         });
         response.priv = OpenLayers.Request.POST({
             url: options.url,
+            headers: options.headers,
             data: this.format.write(features, options),
             callback: this.createCallback(this.handleCommit, response, options)
         });
@@ -266,9 +369,12 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
             var obj = this.format.read(data) || {};
             
             response.insertIds = obj.insertIds || [];
-            response.code = (obj.success) ?
-                OpenLayers.Protocol.Response.SUCCESS :
-                OpenLayers.Protocol.Response.FAILURE;
+            if (obj.success) {
+                response.code = OpenLayers.Protocol.Response.SUCCESS;
+            } else {
+                response.code = OpenLayers.Protocol.Response.FAILURE;
+                response.error = obj;
+            }
             options.callback.call(options.scope, response);
         }
     },
diff --git a/lib/OpenLayers/Protocol/WFS/v1_0_0.js b/lib/OpenLayers/Protocol/WFS/v1_0_0.js
index 3e94c81..1201e3f 100644
--- a/lib/OpenLayers/Protocol/WFS/v1_0_0.js
+++ b/lib/OpenLayers/Protocol/WFS/v1_0_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Protocol/WFS/v1_1_0.js b/lib/OpenLayers/Protocol/WFS/v1_1_0.js
index b670835..36c1038 100644
--- a/lib/OpenLayers/Protocol/WFS/v1_1_0.js
+++ b/lib/OpenLayers/Protocol/WFS/v1_1_0.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -42,7 +42,27 @@ OpenLayers.Protocol.WFS.v1_1_0 = OpenLayers.Class(OpenLayers.Protocol.WFS.v1, {
      * featurePrefix - {String} Feature namespace alias (optional - only used
      *     if featureNS is provided).  Default is 'feature'.
      * geometryName - {String} Name of geometry attribute.  Default is 'the_geom'.
+     * outputFormat - {String} Optional output format to use for WFS GetFeature
+     *     requests. This can be any format advertized by the WFS's
+     *     GetCapabilities response. If set, an appropriate readFormat also
+     *     has to be provided, unless outputFormat is GML3, GML2 or JSON.
+     * readFormat - {<OpenLayers.Format>} An appropriate format parser if
+     *     outputFormat is none of GML3, GML2 or JSON.
      */
+    initialize: function(options) {
+        OpenLayers.Protocol.WFS.v1.prototype.initialize.apply(this, arguments);
+        if (this.outputFormat && !this.readFormat) {
+            if (this.outputFormat.toLowerCase() == "gml2") {
+                this.readFormat = new OpenLayers.Format.GML.v2({
+                    featureType: this.featureType,
+                    featureNS: this.featureNS,
+                    geometryName: this.geometryName
+                });
+            } else if (this.outputFormat.toLowerCase() == "json") {
+                this.readFormat = new OpenLayers.Format.GeoJSON();
+            }
+        }
+    },
    
     CLASS_NAME: "OpenLayers.Protocol.WFS.v1_1_0"
 });
diff --git a/lib/OpenLayers/Renderer.js b/lib/OpenLayers/Renderer.js
index c7bc5e0..6a35b3f 100644
--- a/lib/OpenLayers/Renderer.js
+++ b/lib/OpenLayers/Renderer.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Class: OpenLayers.Renderer 
  * This is the base class for all renderers.
  *
@@ -79,6 +83,7 @@ OpenLayers.Renderer = OpenLayers.Class({
      */
     initialize: function(containerID, options) {
         this.container = OpenLayers.Util.getElement(containerID);
+        OpenLayers.Util.extend(this, options);
     },
     
     /**
@@ -181,8 +186,8 @@ OpenLayers.Renderer = OpenLayers.Class({
                 if(style.display != "none" && style.label && rendered !== false) {
                     var location = feature.geometry.getCentroid(); 
                     if(style.labelXOffset || style.labelYOffset) {
-                        xOffset = isNaN(style.labelXOffset) ? 0 : style.labelXOffset;
-                        yOffset = isNaN(style.labelYOffset) ? 0 : style.labelYOffset;
+                        var xOffset = isNaN(style.labelXOffset) ? 0 : style.labelXOffset;
+                        var yOffset = isNaN(style.labelYOffset) ? 0 : style.labelYOffset;
                         var res = this.getResolution();
                         location.move(xOffset*res, yOffset*res);
                     }
@@ -262,7 +267,7 @@ OpenLayers.Renderer = OpenLayers.Class({
      * features - {Array(<OpenLayers.Feature.Vector>)} 
      */
     eraseFeatures: function(features) {
-        if(!(features instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         for(var i=0, len=features.length; i<len; ++i) {
diff --git a/lib/OpenLayers/Renderer/Canvas.js b/lib/OpenLayers/Renderer/Canvas.js
index b03c40b..d9e7828 100644
--- a/lib/OpenLayers/Renderer/Canvas.js
+++ b/lib/OpenLayers/Renderer/Canvas.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,12 +9,28 @@
 
 /**
  * Class: OpenLayers.Renderer.Canvas 
- * A renderer based on the 2D 'canvas' drawing element.element
+ * A renderer based on the 2D 'canvas' drawing element.
  * 
  * Inherits:
  *  - <OpenLayers.Renderer>
  */
 OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
+    
+    /**
+     * APIProperty: hitDetection
+     * {Boolean} Allow for hit detection of features.  Default is true.
+     */
+    hitDetection: true,
+    
+    /**
+     * Property: hitOverflow
+     * {Number} The method for converting feature identifiers to color values
+     *     supports 16777215 sequential values.  Two features cannot be 
+     *     predictably detected if their identifiers differ by more than this
+     *     value.  The hitOverflow allows for bigger numbers (but the 
+     *     difference in values is still limited).
+     */
+    hitOverflow: 0,
 
     /**
      * Property: canvas
@@ -26,20 +42,32 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Property: features
      * {Object} Internal object of feature/style pairs for use in redrawing the layer.
      */
-    features: null, 
-   
+    features: null,
+    
+    /**
+     * Property: pendingRedraw
+     * {Boolean} The renderer needs a redraw call to render features added while
+     *     the renderer was locked.
+     */
+    pendingRedraw: false,
+    
     /**
      * Constructor: OpenLayers.Renderer.Canvas
      *
      * Parameters:
-     * containerID - {<String>} 
+     * containerID - {<String>}
+     * options - {Object} Optional properties to be set on the renderer.
      */
-    initialize: function(containerID) {
+    initialize: function(containerID, options) {
         OpenLayers.Renderer.prototype.initialize.apply(this, arguments);
         this.root = document.createElement("canvas");
         this.container.appendChild(this.root);
         this.canvas = this.root.getContext("2d");
         this.features = {};
+        if (this.hitDetection) {
+            this.hitCanvas = document.createElement("canvas");
+            this.hitContext = this.hitCanvas.getContext("2d");
+        }
     },
     
     /** 
@@ -68,22 +96,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
     },    
     
     /**
-     * Method: setExtent
-     * Set the visible part of the layer.
-     *
-     * Resolution has probably changed, so we nullify the resolution 
-     * cache (this.resolution), then redraw. 
-     *
-     * Parameters:
-     * extent - {<OpenLayers.Bounds>} 
-     */
-    setExtent: function(extent) {
-        this.extent = extent.clone();
-        this.resolution = null;
-        this.redraw();
-    },
-    
-    /**
      * Method: setSize
      * Sets the size of the drawing surface.
      *
@@ -94,11 +106,19 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      */
     setSize: function(size) {
         this.size = size.clone();
-        this.root.style.width = size.w + "px";
-        this.root.style.height = size.h + "px";
-        this.root.width = size.w;
-        this.root.height = size.h;
+        var root = this.root;
+        root.style.width = size.w + "px";
+        root.style.height = size.h + "px";
+        root.width = size.w;
+        root.height = size.h;
         this.resolution = null;
+        if (this.hitDetection) {
+            var hitCanvas = this.hitCanvas;
+            hitCanvas.style.width = size.w + "px";
+            hitCanvas.style.height = size.h + "px";
+            hitCanvas.width = size.w;
+            hitCanvas.height = size.h;
+        }
     },
     
     /**
@@ -109,16 +129,37 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Parameters:
      * feature - {<OpenLayers.Feature.Vector>} 
      * style - {<Object>} 
+     *
+     * Returns:
+     * {Boolean} The feature has been drawn completely.  If the feature has no
+     *     geometry, undefined will be returned.  If the feature is not rendered
+     *     for other reasons, false will be returned.
      */
     drawFeature: function(feature, style) {
-        style = style || feature.style;
-        style = this.applyDefaultSymbolizer(style);  
-        
-        this.features[feature.id] = [feature, style]; 
-        this.redraw();
+        var rendered;
+        if (feature.geometry) {
+            style = this.applyDefaultSymbolizer(style || feature.style);
+            // don't render if display none or feature outside extent
+            var bounds = feature.geometry.getBounds();
+            rendered = (style.display !== "none") && !!bounds && 
+                bounds.intersectsBounds(this.extent);
+            if (rendered) {
+                // keep track of what we have rendered for redraw
+                this.features[feature.id] = [feature, style];
+            }
+            else {
+                // remove from features tracked for redraw
+                delete(this.features[feature.id]);
+            }
+            this.pendingRedraw = true;
+        }
+        if (this.pendingRedraw && !this.locked) {
+            this.redraw();
+            this.pendingRedraw = false;
+        }
+        return rendered;
     },
 
-
     /** 
      * Method: drawGeometry
      * Used when looping (in redraw) over the features; draws
@@ -128,29 +169,29 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * geometry - {<OpenLayers.Geometry>} 
      * style - {Object} 
      */
-    drawGeometry: function(geometry, style) {
+    drawGeometry: function(geometry, style, featureId) {
         var className = geometry.CLASS_NAME;
         if ((className == "OpenLayers.Geometry.Collection") ||
             (className == "OpenLayers.Geometry.MultiPoint") ||
             (className == "OpenLayers.Geometry.MultiLineString") ||
             (className == "OpenLayers.Geometry.MultiPolygon")) {
             for (var i = 0; i < geometry.components.length; i++) {
-                this.drawGeometry(geometry.components[i], style);
+                this.drawGeometry(geometry.components[i], style, featureId);
             }
             return;
         }
         switch (geometry.CLASS_NAME) {
             case "OpenLayers.Geometry.Point":
-                this.drawPoint(geometry, style);
+                this.drawPoint(geometry, style, featureId);
                 break;
             case "OpenLayers.Geometry.LineString":
-                this.drawLineString(geometry, style);
+                this.drawLineString(geometry, style, featureId);
                 break;
             case "OpenLayers.Geometry.LinearRing":
-                this.drawLinearRing(geometry, style);
+                this.drawLinearRing(geometry, style, featureId);
                 break;
             case "OpenLayers.Geometry.Polygon":
-                this.drawPolygon(geometry, style);
+                this.drawPolygon(geometry, style, featureId);
                 break;
             default:
                 break;
@@ -164,37 +205,57 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Parameters: 
      * geometry - {<OpenLayers.Geometry>}
      * style    - {Object}
+     * featureId - {String}
      */ 
-    drawExternalGraphic: function(pt, style) {
-       var img = new Image();
-       
-       if(style.graphicTitle) {
-           img.title=style.graphicTitle;           
-       }
+    drawExternalGraphic: function(geometry, style, featureId) {
+        var img = new Image();
 
-       var width = style.graphicWidth || style.graphicHeight;
-       var height = style.graphicHeight || style.graphicWidth;
-       width = width ? width : style.pointRadius*2;
-       height = height ? height : style.pointRadius*2;
-       var xOffset = (style.graphicXOffset != undefined) ?
+        if (style.graphicTitle) {
+            img.title = style.graphicTitle;           
+        }
+
+        var width = style.graphicWidth || style.graphicHeight;
+        var height = style.graphicHeight || style.graphicWidth;
+        width = width ? width : style.pointRadius * 2;
+        height = height ? height : style.pointRadius * 2;
+        var xOffset = (style.graphicXOffset != undefined) ?
            style.graphicXOffset : -(0.5 * width);
-       var yOffset = (style.graphicYOffset != undefined) ?
+        var yOffset = (style.graphicYOffset != undefined) ?
            style.graphicYOffset : -(0.5 * height);
-       
-       var context = { img: img, 
-                       x: (pt[0]+xOffset), 
-                       y: (pt[1]+yOffset), 
-                       width: width, 
-                       height: height, 
-                       opacity: style.graphicOpacity || style.fillOpacity,
-                       canvas: this.canvas };
 
-       img.onload = OpenLayers.Function.bind( function() {
-           this.canvas.globalAlpha = this.opacity;
-           this.canvas.drawImage(this.img, this.x, 
-                                 this.y, this.width, this.height);
-       }, context);
-       img.src = style.externalGraphic;
+        var opacity = style.graphicOpacity || style.fillOpacity;
+        
+        var onLoad = function() {
+            if(!this.features[featureId]) {
+                return;
+            }
+            var pt = this.getLocalXY(geometry);
+            var p0 = pt[0];
+            var p1 = pt[1];
+            if(!isNaN(p0) && !isNaN(p1)) {
+                var x = (p0 + xOffset) | 0;
+                var y = (p1 + yOffset) | 0;
+                var canvas = this.canvas;
+                canvas.globalAlpha = opacity;
+                var factor = OpenLayers.Renderer.Canvas.drawImageScaleFactor ||
+                    (OpenLayers.Renderer.Canvas.drawImageScaleFactor =
+                        /android 2.1/.test(navigator.userAgent.toLowerCase()) ?
+                            // 320 is the screen width of the G1 phone, for
+                            // which drawImage works out of the box.
+                            320 / window.screen.width : 1
+                    );
+                canvas.drawImage(
+                    img, x*factor, y*factor, width*factor, height*factor
+                );
+                if (this.hitDetection) {
+                    this.setHitContextStyle("fill", featureId);
+                    this.hitContext.fillRect(x, y, width, height);
+                }
+            }
+        };
+
+        img.onload = OpenLayers.Function.bind(onLoad, this);
+        img.src = style.externalGraphic;
     },
 
     /**
@@ -206,10 +267,10 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * style - {Object} Symbolizer hash
      */
     setCanvasStyle: function(type, style) {
-        if (type == "fill") {     
+        if (type === "fill") {     
             this.canvas.globalAlpha = style['fillOpacity'];
             this.canvas.fillStyle = style['fillColor'];
-        } else if (type == "stroke") {  
+        } else if (type === "stroke") {  
             this.canvas.globalAlpha = style['strokeOpacity'];
             this.canvas.strokeStyle = style['strokeColor'];
             this.canvas.lineWidth = style['strokeWidth'];
@@ -218,6 +279,53 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
             this.canvas.lineWidth = 1;
         }
     },
+    
+    /**
+     * Method: featureIdToHex
+     * Convert a feature ID string into an RGB hex string.
+     *
+     * Parameters:
+     * featureId - {String} Feature id
+     *
+     * Returns:
+     * {String} RGB hex string.
+     */
+    featureIdToHex: function(featureId) {
+        var id = Number(featureId.split("_").pop()) + 1; // zero for no feature
+        if (id >= 16777216) {
+            this.hitOverflow = id - 16777215;
+            id = id % 16777216 + 1;
+        }
+        var hex = "000000" + id.toString(16);
+        var len = hex.length;
+        hex = "#" + hex.substring(len-6, len);
+        return hex;
+    },
+    
+    /**
+     * Method: setHitContextStyle
+     * Prepare the hit canvas for drawing by setting various global settings.
+     *
+     * Parameters:
+     * type - {String} one of 'stroke', 'fill', or 'reset'
+     * featureId - {String} The feature id.
+     * symbolizer - {<OpenLayers.Symbolizer>} The symbolizer.
+     */
+    setHitContextStyle: function(type, featureId, symbolizer) {
+        var hex = this.featureIdToHex(featureId);
+        if (type == "fill") {
+            this.hitContext.globalAlpha = 1.0;
+            this.hitContext.fillStyle = hex;
+        } else if (type == "stroke") {  
+            this.hitContext.globalAlpha = 1.0;
+            this.hitContext.strokeStyle = hex;
+            // bump up stroke width to deal with antialiasing
+            this.hitContext.lineWidth = symbolizer.strokeWidth + 2;
+        } else {
+            this.hitContext.globalAlpha = 0;
+            this.hitContext.lineWidth = 1;
+        }
+    },
 
     /**
      * Method: drawPoint
@@ -226,32 +334,50 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Parameters: 
      * geometry - {<OpenLayers.Geometry>}
      * style    - {Object}
+     * featureId - {String}
      */ 
-    drawPoint: function(geometry, style) {
+    drawPoint: function(geometry, style, featureId) {
         if(style.graphic !== false) {
-            var pt = this.getLocalXY(geometry);
-            
-            if (style.externalGraphic) {
-                this.drawExternalGraphic(pt, style);
+            if(style.externalGraphic) {
+                this.drawExternalGraphic(geometry, style, featureId);
             } else {
-                if(style.fill !== false) {
-                    this.setCanvasStyle("fill", style);
-                    this.canvas.beginPath();
-                    this.canvas.arc(pt[0], pt[1], style.pointRadius, 0, Math.PI*2, true);
-                    this.canvas.fill();
-                }
-                
-                if(style.stroke !== false) {
-                    this.setCanvasStyle("stroke", style);
-                    this.canvas.beginPath();
-                    this.canvas.arc(pt[0], pt[1], style.pointRadius, 0, Math.PI*2, true);
-                    this.canvas.stroke();
-                    this.setCanvasStyle("reset");
+                var pt = this.getLocalXY(geometry);
+                var p0 = pt[0];
+                var p1 = pt[1];
+                if(!isNaN(p0) && !isNaN(p1)) {
+                    var twoPi = Math.PI*2;
+                    var radius = style.pointRadius;
+                    if(style.fill !== false) {
+                        this.setCanvasStyle("fill", style);
+                        this.canvas.beginPath();
+                        this.canvas.arc(p0, p1, radius, 0, twoPi, true);
+                        this.canvas.fill();
+                        if (this.hitDetection) {
+                            this.setHitContextStyle("fill", featureId, style);
+                            this.hitContext.beginPath();
+                            this.hitContext.arc(p0, p1, radius, 0, twoPi, true);
+                            this.hitContext.fill();
+                        }
+                    }
+
+                    if(style.stroke !== false) {
+                        this.setCanvasStyle("stroke", style);
+                        this.canvas.beginPath();
+                        this.canvas.arc(p0, p1, radius, 0, twoPi, true);
+                        this.canvas.stroke();
+                        if (this.hitDetection) {
+                            this.setHitContextStyle("stroke", featureId, style);
+                            this.hitContext.beginPath();
+                            this.hitContext.arc(p0, p1, radius, 0, twoPi, true);
+                            this.hitContext.stroke();
+                        }
+                        this.setCanvasStyle("reset");
+                    }
                 }
             }
         }
     },
-
+    
     /**
      * Method: drawLineString
      * This method is only called by the renderer itself.
@@ -259,20 +385,11 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Parameters: 
      * geometry - {<OpenLayers.Geometry>}
      * style    - {Object}
+     * featureId - {String}
      */ 
-    drawLineString: function(geometry, style) {
-        if(style.stroke !== false) {
-            this.setCanvasStyle("stroke", style);
-            this.canvas.beginPath();
-            var start = this.getLocalXY(geometry.components[0]);
-            this.canvas.moveTo(start[0], start[1]);
-            for(var i = 1; i < geometry.components.length; i++) {
-                var pt = this.getLocalXY(geometry.components[i]);
-                this.canvas.lineTo(pt[0], pt[1]);
-            }
-            this.canvas.stroke();
-        }
-        this.setCanvasStyle("reset");
+    drawLineString: function(geometry, style, featureId) {
+        style = OpenLayers.Util.applyDefaults({fill: false}, style);
+        this.drawLinearRing(geometry, style, featureId);
     },    
     
     /**
@@ -282,33 +399,52 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Parameters: 
      * geometry - {<OpenLayers.Geometry>}
      * style    - {Object}
+     * featureId - {String}
      */ 
-    drawLinearRing: function(geometry, style) {
-        if(style.fill !== false) {
+    drawLinearRing: function(geometry, style, featureId) {
+        if (style.fill !== false) {
             this.setCanvasStyle("fill", style);
-            this.canvas.beginPath();
-            var start = this.getLocalXY(geometry.components[0]);
-            this.canvas.moveTo(start[0], start[1]);
-            for(var i = 1; i < geometry.components.length - 1 ; i++) {
-                var pt = this.getLocalXY(geometry.components[i]);
-                this.canvas.lineTo(pt[0], pt[1]);
+            this.renderPath(this.canvas, geometry, style, featureId, "fill");
+            if (this.hitDetection) {
+                this.setHitContextStyle("fill", featureId, style);
+                this.renderPath(this.hitContext, geometry, style, featureId, "fill");
             }
-            this.canvas.fill();
         }
-        
-        if(style.stroke !== false) {
+        if (style.stroke !== false) {
             this.setCanvasStyle("stroke", style);
-            this.canvas.beginPath();
-            var start = this.getLocalXY(geometry.components[0]);
-            this.canvas.moveTo(start[0], start[1]);
-            for(var i = 1; i < geometry.components.length; i++) {
-                var pt = this.getLocalXY(geometry.components[i]);
-                this.canvas.lineTo(pt[0], pt[1]);
+            this.renderPath(this.canvas, geometry, style, featureId, "stroke");
+            if (this.hitDetection) {
+                this.setHitContextStyle("stroke", featureId, style);
+                this.renderPath(this.hitContext, geometry, style, featureId, "stroke");
             }
-            this.canvas.stroke();
         }
         this.setCanvasStyle("reset");
-    },    
+    },
+    
+    /**
+     * Method: renderPath
+     * Render a path with stroke and optional fill.
+     */
+    renderPath: function(context, geometry, style, featureId, type) {
+        var components = geometry.components;
+        var len = components.length;
+        context.beginPath();
+        var start = this.getLocalXY(components[0]);
+        var x = start[0];
+        var y = start[1];
+        if (!isNaN(x) && !isNaN(y)) {
+            context.moveTo(start[0], start[1]);
+            for (var i=1; i<len; ++i) {
+                var pt = this.getLocalXY(components[i]);
+                context.lineTo(pt[0], pt[1]);
+            }
+            if (type === "fill") {
+                context.fill();
+            } else {
+                context.stroke();
+            }
+        }
+    },
     
     /**
      * Method: drawPolygon
@@ -317,17 +453,40 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Parameters: 
      * geometry - {<OpenLayers.Geometry>}
      * style    - {Object}
+     * featureId - {String}
      */ 
-    drawPolygon: function(geometry, style) {
-        this.drawLinearRing(geometry.components[0], style);
-        for (var i = 1; i < geometry.components.length; i++) {
-            this.drawLinearRing(geometry.components[i], {
-                fillOpacity: 0, 
-                strokeWidth: 0, 
-                strokeOpacity: 0, 
-                strokeColor: '#000000', 
-                fillColor: '#000000'}
-            ); // inner rings are 'empty'  
+    drawPolygon: function(geometry, style, featureId) {
+        var components = geometry.components;
+        var len = components.length;
+        this.drawLinearRing(components[0], style, featureId);
+        // erase inner rings
+        for (var i=1; i<len; ++i) {
+            /** 
+             * Note that this is overly agressive.  Here we punch holes through 
+             * all previously rendered features on the same canvas.  A better 
+             * solution for polygons with interior rings would be to draw the 
+             * polygon on a sketch canvas first.  We could erase all holes 
+             * there and then copy the drawing to the layer canvas. 
+             * TODO: http://trac.osgeo.org/openlayers/ticket/3130 
+             */
+            this.canvas.globalCompositeOperation = "destination-out";
+            if (this.hitDetection) {
+                this.hitContext.globalCompositeOperation = "destination-out";
+            }
+            this.drawLinearRing(
+                components[i], 
+                OpenLayers.Util.applyDefaults({stroke: false, fillOpacity: 1.0}, style),
+                featureId
+            );
+            this.canvas.globalCompositeOperation = "source-over";
+            if (this.hitDetection) {
+                this.hitContext.globalCompositeOperation = "source-over";
+            }
+            this.drawLinearRing(
+                components[i], 
+                OpenLayers.Util.applyDefaults({fill: false}, style),
+                featureId
+            );
         }
     },
     
@@ -345,42 +504,65 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
             labelAlign: "cm"
         }, style);
         var pt = this.getLocalXY(location);
-        
+
         this.setCanvasStyle("reset");
         this.canvas.fillStyle = style.fontColor;
         this.canvas.globalAlpha = style.fontOpacity || 1.0;
-        var fontStyle = style.fontWeight + " " + style.fontSize + " " + style.fontFamily;
+        var fontStyle = [style.fontStyle ? style.fontStyle : "normal",
+                         "normal", // "font-variant" not supported
+                         style.fontWeight ? style.fontWeight : "normal",
+                         style.fontSize ? style.fontSize : "1em",
+                         style.fontFamily ? style.fontFamily : "sans-serif"].join(" ");
+        var labelRows = style.label.split('\n');
+        var numRows = labelRows.length;
         if (this.canvas.fillText) {
             // HTML5
-            var labelAlign =
+            this.canvas.font = fontStyle;
+            this.canvas.textAlign =
                 OpenLayers.Renderer.Canvas.LABEL_ALIGN[style.labelAlign[0]] ||
                 "center";
-            this.canvas.font = fontStyle;
-            this.canvas.textAlign = labelAlign;
-            this.canvas.fillText(style.label, pt[0], pt[1]);
+            this.canvas.textBaseline =
+                OpenLayers.Renderer.Canvas.LABEL_ALIGN[style.labelAlign[1]] ||
+                "middle";
+            var vfactor =
+                OpenLayers.Renderer.Canvas.LABEL_FACTOR[style.labelAlign[1]];
+            if (vfactor == null) {
+                vfactor = -.5;
+            }
+            var lineHeight =
+                this.canvas.measureText('Mg').height ||
+                this.canvas.measureText('xx').width;
+            pt[1] += lineHeight*vfactor*(numRows-1);
+            for (var i = 0; i < numRows; i++) {
+                this.canvas.fillText(labelRows[i], pt[0], pt[1] + (lineHeight*i));
+            }
         } else if (this.canvas.mozDrawText) {
             // Mozilla pre-Gecko1.9.1 (<FF3.1)
             this.canvas.mozTextStyle = fontStyle;
             // No built-in text alignment, so we measure and adjust the position
-            var len = this.canvas.mozMeasureText(style.label);
-            switch(style.labelAlign[0]) {
-                case "l":
-                    break;
-                case "r":
-                    pt[0] -= len;
-                    break;
-                case "c":
-                default:
-                    pt[0] -= len / 2;
+            var hfactor =
+                OpenLayers.Renderer.Canvas.LABEL_FACTOR[style.labelAlign[0]];
+            if (hfactor == null) {
+                hfactor = -.5;
+            }
+            var vfactor =
+                OpenLayers.Renderer.Canvas.LABEL_FACTOR[style.labelAlign[1]];
+            if (vfactor == null) {
+                vfactor = -.5;
+            }
+            var lineHeight = this.canvas.mozMeasureText('xx');
+            pt[1] += lineHeight*(1 + (vfactor*numRows));
+            for (var i = 0; i < numRows; i++) {
+                var x = pt[0] + (hfactor*this.canvas.mozMeasureText(labelRows[i]));
+                var y = pt[1] + (i*lineHeight);
+                this.canvas.translate(x, y);
+                this.canvas.mozDrawText(labelRows[i]);
+                this.canvas.translate(-x, -y);
             }
-            this.canvas.translate(pt[0], pt[1]);
-            
-            this.canvas.mozDrawText(style.label);
-            this.canvas.translate(-1*pt[0], -1*pt[1]);
         }
         this.setCanvasStyle("reset");
     },
-
+    
     /**
      * Method: getLocalXY
      * transform geographic xy into pixel xy
@@ -401,8 +583,13 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * Clear all vectors from the renderer.
      */    
     clear: function() {
-        this.canvas.clearRect(0, 0, this.root.width, this.root.height);
+        var height = this.root.height;
+        var width = this.root.width;
+        this.canvas.clearRect(0, 0, width, height);
         this.features = {};
+        if (this.hitDetection) {
+            this.hitContext.clearRect(0, 0, width, height);
+        }
     },
 
     /**
@@ -413,23 +600,28 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * evt - {<OpenLayers.Event>} 
      *
      * Returns:
-     * {String} A feature id or null.
+     * {<OpenLayers.Feature.Vector} A feature or null.  This method returns a 
+     *     feature instead of a feature id to avoid an unnecessary lookup on the
+     *     layer.
      */
     getFeatureIdFromEvent: function(evt) {
-        var loc = this.map.getLonLatFromPixel(evt.xy);
-        var resolution = this.getResolution();
-        var bounds = new OpenLayers.Bounds(loc.lon - resolution * 5, 
-                                           loc.lat - resolution * 5, 
-                                           loc.lon + resolution * 5, 
-                                           loc.lat + resolution * 5);
-        var geom = bounds.toGeometry();
-        for (var feat in this.features) {
-            if (!this.features.hasOwnProperty(feat)) { continue; }
-            if (this.features[feat][0].geometry.intersects(geom)) {
-                return feat;
+        var feature = null;
+        if (this.hitDetection) {
+            // this dragging check should go in the feature handler
+            if (!this.map.dragging) {
+                var xy = evt.xy;
+                var x = xy.x | 0;
+                var y = xy.y | 0;
+                var data = this.hitContext.getImageData(x, y, 1, 1).data;
+                if (data[3] === 255) { // antialiased
+                    var id = data[2] + (256 * (data[1] + (256 * data[0])));
+                    if (id) {
+                        feature = this.features["OpenLayers.Feature.Vector_" + (id - 1 + this.hitOverflow)][0];
+                    }
+                }
             }
-        }   
-        return null;
+        }
+        return feature;
     },
     
     /**
@@ -441,7 +633,7 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      * features - {Array(<OpenLayers.Feature.Vector>)} 
      */
     eraseFeatures: function(features) {
-        if(!(features instanceof Array)) {
+        if(!(OpenLayers.Util.isArray(features))) {
             features = [features];
         }
         for(var i=0; i<features.length; ++i) {
@@ -460,15 +652,19 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
      */
     redraw: function() {
         if (!this.locked) {
-            this.canvas.clearRect(0, 0, this.root.width, this.root.height);
+            var height = this.root.height;
+            var width = this.root.width;
+            this.canvas.clearRect(0, 0, width, height);
+            if (this.hitDetection) {
+                this.hitContext.clearRect(0, 0, width, height);
+            }
             var labelMap = [];
             var feature, style;
             for (var id in this.features) {
                 if (!this.features.hasOwnProperty(id)) { continue; }
                 feature = this.features[id][0];
                 style = this.features[id][1];
-                if (!feature.geometry) { continue; }
-                this.drawGeometry(feature.geometry, style);
+                this.drawGeometry(feature.geometry, style, feature.id);
                 if(style.label) {
                     labelMap.push([feature, style]);
                 }
@@ -490,5 +686,26 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
  */
 OpenLayers.Renderer.Canvas.LABEL_ALIGN = {
     "l": "left",
-    "r": "right"
+    "r": "right",
+    "t": "top",
+    "b": "bottom"
 };
+
+/**
+ * Constant: OpenLayers.Renderer.Canvas.LABEL_FACTOR
+ * {Object}
+ */
+OpenLayers.Renderer.Canvas.LABEL_FACTOR = {
+    "l": 0,
+    "r": -1,
+    "t": 0,
+    "b": -1
+};
+
+/**
+ * Constant: OpenLayers.Renderer.Canvas.drawImageScaleFactor
+ * {Number} Scale factor to apply to the canvas drawImage arguments. This
+ *     is always 1 except for Android 2.1 devices, to work around
+ *     http://code.google.com/p/android/issues/detail?id=5141.
+ */
+OpenLayers.Renderer.Canvas.drawImageScaleFactor = null;
diff --git a/lib/OpenLayers/Renderer/Elements.js b/lib/OpenLayers/Renderer/Elements.js
index 4fc0a3d..12b036b 100644
--- a/lib/OpenLayers/Renderer/Elements.js
+++ b/lib/OpenLayers/Renderer/Elements.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -57,10 +57,8 @@ OpenLayers.ElementsIndexer = OpenLayers.Class({
         this.compare = yOrdering ? 
             OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER :
             OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER;
-            
-        this.order = [];
-        this.indices = {};
-        this.maxZIndex = 0;
+
+        this.clear();
     },
     
     /**
@@ -390,7 +388,7 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
     BACKGROUND_ID_SUFFIX: "_background",
     
     /**
-     * Constant: BACKGROUND_ID_SUFFIX
+     * Constant: LABEL_ID_SUFFIX
      * {String}
      */
     LABEL_ID_SUFFIX: "_label",
@@ -509,10 +507,13 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
         };
 
         rendered = false;
+        var removeBackground = false;
         if (style.display != "none") {
             if (style.backgroundGraphic) {
                 this.redrawBackgroundNode(geometry.id, geometry, style,
                     featureId);
+            } else {
+                removeBackground = true;
             }
             rendered = this.redrawNode(geometry.id, geometry, style,
                 featureId);
@@ -521,12 +522,18 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
             var node = document.getElementById(geometry.id);
             if (node) {
                 if (node._style.backgroundGraphic) {
-                    node.parentNode.removeChild(document.getElementById(
-                        geometry.id + this.BACKGROUND_ID_SUFFIX));
+                    removeBackground = true;
                 }
                 node.parentNode.removeChild(node);
             }
         }
+        if (removeBackground) {
+            var node = document.getElementById(
+                geometry.id + this.BACKGROUND_ID_SUFFIX);
+            if (node) {
+                node.parentNode.removeChild(node);
+            }
+        }
         return rendered;
     },
     
diff --git a/lib/OpenLayers/Renderer/NG.js b/lib/OpenLayers/Renderer/NG.js
new file mode 100644
index 0000000..7ce39ba
--- /dev/null
+++ b/lib/OpenLayers/Renderer/NG.js
@@ -0,0 +1,135 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Renderer/Elements.js
+ */
+
+/**
+ * Class: OpenLayers.Renderer.NG
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Renderer.Elements>
+ */
+OpenLayers.Renderer.NG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
+    
+    /**
+     * Constant: labelNodeType
+     * {String} The node type for text label containers. To be defined by
+     * subclasses.
+     */
+    labelNodeType: null,
+    
+    /**
+     * Constructor: OpenLayers.Renderer.NG
+     * 
+     * Parameters:
+     * containerID - {String}
+     * options - {Object} options for this renderer. Supported options are:
+     *     * yOrdering - {Boolean} Whether to use y-ordering
+     *     * zIndexing - {Boolean} Whether to use z-indexing. Will be ignored
+     *         if yOrdering is set to true.
+     */
+
+    /**
+     * Method: updateDimensions
+     * To be extended by subclasses - here we set positioning related styles
+     * on HTML elements, subclasses have to do the same for renderer specific
+     * elements (e.g. viewBox, width and height of the rendererRoot)
+     *
+     * Parameters:
+     * zoomChanged - {Boolean} Has the zoom changed? If so, subclasses may have
+     *     to update feature styles/dimensions.
+     */
+    updateDimensions: function(zoomChanged) {
+        var mapExtent = this.map.getExtent();
+        var renderExtent = mapExtent.scale(3);
+        this.setExtent(renderExtent, true);
+        var res = this.getResolution();
+        var div = this.rendererRoot.parentNode;
+        var layerLeft = parseFloat(div.parentNode.style.left);
+        var layerTop = parseFloat(div.parentNode.style.top);
+        div.style.left = ((renderExtent.left - mapExtent.left) / res - layerLeft) + "px";
+        div.style.top = ((mapExtent.top - renderExtent.top) / res - layerTop) + "px";
+    },
+    
+    /**
+     * Method: resize
+     */
+    setSize: function() {
+        this.map.getExtent() && this.updateDimensions();
+    },
+
+    /**
+     * Method: drawFeature
+     * Draw the feature.  The optional style argument can be used
+     * to override the feature's own style.  This method should only
+     * be called from layer.drawFeature().
+     *
+     * Parameters:
+     * feature - {<OpenLayers.Feature.Vector>} 
+     * style - {<Object>}
+     * 
+     * Returns:
+     * {Boolean} true if the feature has been drawn completely, false if not,
+     *     undefined if the feature had no geometry
+     */
+    drawFeature: function(feature, style) {
+        if(style == null) {
+            style = feature.style;
+        }
+        if (feature.geometry) {
+            var rendered = this.drawGeometry(feature.geometry, style, feature.id);
+            if(rendered !== false && style.label) {
+                var location = feature.geometry.getCentroid(); 
+                this.drawText(feature.id, style, location);
+            } else {
+                this.removeText(feature.id);
+            }
+            return rendered;
+        }
+    },
+    
+    /**
+     * Method: drawText
+     * Function for drawing text labels.
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * featureId - {String|DOMElement}
+     * style - {Object}
+     * location - {<OpenLayers.Geometry.Point>}, will be modified inline
+     *
+     * Returns:
+     * {DOMElement} container holding the text label (to be populated by
+     * subclasses)
+     */
+    drawText: function(featureId, style, location) {
+        var label;
+        if (typeof featureId !== "string") {
+            label = featureId;
+        } else {
+            label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, this.labelNodeType);
+            label._featureId = featureId;
+        }
+        label._style = style;
+        label._x = location.x;
+        label._y = location.y;
+        if(style.labelXOffset || style.labelYOffset) {
+            var xOffset = isNaN(style.labelXOffset) ? 0 : style.labelXOffset;
+            var yOffset = isNaN(style.labelYOffset) ? 0 : style.labelYOffset;
+            var res = this.getResolution();
+            location.move(xOffset*res, yOffset*res);
+        }
+
+        if(label.parentNode !== this.textRoot) {
+            this.textRoot.appendChild(label);
+        }   
+
+        return label;
+    },
+
+    CLASS_NAME: "OpenLayers.Renderer.NG"
+});
diff --git a/lib/OpenLayers/Renderer/SVG.js b/lib/OpenLayers/Renderer/SVG.js
index e704e03..f7f53bf 100644
--- a/lib/OpenLayers/Renderer/SVG.js
+++ b/lib/OpenLayers/Renderer/SVG.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -50,20 +50,6 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
     symbolMetrics: null,
     
     /**
-     * Property: isGecko
-     * {Boolean}
-     */
-    isGecko: null,
-
-    /**
-     * Property: supportUse
-     * {Boolean} true if defs/use is supported - known to not work as expected
-     * at least in some applewebkit/5* builds.
-     * See https://bugs.webkit.org/show_bug.cgi?id=33322
-     */
-    supportUse: null,
-
-    /**
      * Constructor: OpenLayers.Renderer.SVG
      * 
      * Parameters:
@@ -76,20 +62,11 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         OpenLayers.Renderer.Elements.prototype.initialize.apply(this, 
                                                                 arguments);
         this.translationParameters = {x: 0, y: 0};
-        this.supportUse = (navigator.userAgent.toLowerCase().indexOf("applewebkit/5") == -1);
-        this.isGecko = (navigator.userAgent.toLowerCase().indexOf("gecko/") != -1);
         
         this.symbolMetrics = {};
     },
 
     /**
-     * APIMethod: destroy
-     */
-    destroy: function() {
-        OpenLayers.Renderer.Elements.prototype.destroy.apply(this, arguments);
-    },
-    
-    /**
      * APIMethod: supported
      * 
      * Returns:
@@ -222,7 +199,7 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
                 if (style.externalGraphic) {
                     nodeType = "image";
                 } else if (this.isComplexSymbol(style.graphicName)) {
-                    nodeType = this.supportUse === false ? "svg" : "use";
+                    nodeType = "svg";
                 } else {
                     nodeType = "circle";
                 }
@@ -276,6 +253,10 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
                 
                 if (style.graphicTitle) {
                     node.setAttributeNS(null, "title", style.graphicTitle);
+                    //Standards-conformant SVG
+                    var label = this.nodeFactory(null, "title");
+                    label.textContent = style.graphicTitle;
+                    node.appendChild(label);
                 }
                 if (style.graphicWidth && style.graphicHeight) {
                   node.setAttributeNS(null, "preserveAspectRatio", "none");
@@ -297,13 +278,14 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
                 node.setAttributeNS(null, "height", height);
                 node.setAttributeNS(this.xlinkns, "href", style.externalGraphic);
                 node.setAttributeNS(null, "style", "opacity: "+opacity);
+                node.onclick = OpenLayers.Renderer.SVG.preventDefault;
             } else if (this.isComplexSymbol(style.graphicName)) {
                 // the symbol viewBox is three times as large as the symbol
                 var offset = style.pointRadius * 3;
                 var size = offset * 2;
-                var id = this.importSymbol(style.graphicName);
+                var src = this.importSymbol(style.graphicName);
                 pos = this.getPosition(node);
-                widthFactor = this.symbolMetrics[id][0] * 3 / size;
+                widthFactor = this.symbolMetrics[src.id][0] * 3 / size;
                 
                 // remove the node from the dom before we modify it. This
                 // prevents various rendering issues in Safari and FF
@@ -313,17 +295,16 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
                     parent.removeChild(node);
                 }
                 
-                if(this.supportUse === false) {
-                    // workaround for webkit versions that cannot do defs/use
-                    // (see https://bugs.webkit.org/show_bug.cgi?id=33322):
-                    // copy the symbol instead of referencing it
-                    var src = document.getElementById(id);
-                    node.firstChild && node.removeChild(node.firstChild);
-                    node.appendChild(src.firstChild.cloneNode(true));
-                    node.setAttributeNS(null, "viewBox", src.getAttributeNS(null, "viewBox"));
-                } else {
-                    node.setAttributeNS(this.xlinkns, "href", "#" + id);
-                }
+                // The more appropriate way to implement this would be use/defs,
+                // but due to various issues in several browsers, it is safer to
+                // copy the symbols instead of referencing them. 
+                // See e.g. ticket http://trac.osgeo.org/openlayers/ticket/2985 
+                // and this email thread
+                // http://osgeo-org.1803224.n2.nabble.com/Select-Control-Ctrl-click-on-Feature-with-a-graphicName-opens-new-browser-window-tc5846039.html
+                node.firstChild && node.removeChild(node.firstChild);
+                node.appendChild(src.firstChild.cloneNode(true));
+                node.setAttributeNS(null, "viewBox", src.getAttributeNS(null, "viewBox"));
+                
                 node.setAttributeNS(null, "width", size);
                 node.setAttributeNS(null, "height", size);
                 node.setAttributeNS(null, "x", pos.x - offset);
@@ -341,18 +322,20 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
             }
 
             var rotation = style.rotation;
+            
             if ((rotation !== undefined || node._rotation !== undefined) && pos) {
                 node._rotation = rotation;
                 rotation |= 0;
-                if(node.nodeName !== "svg") {
-                    node.setAttributeNS(null, "transform",
-                        "rotate(" + rotation + " " + pos.x + " " +
-                        pos.y + ")");
+                if (node.nodeName !== "svg") { 
+                    node.setAttributeNS(null, "transform", 
+                        "rotate(" + rotation + " " + pos.x + " " + 
+                        pos.y + ")"); 
                 } else {
-                     var metrics = this.symbolMetrics[id];
-                     node.firstChild.setAttributeNS(null, "transform",
-                     "rotate(" + style.rotation + " " + metrics[1] +
-                         " " +  metrics[2] + ")");
+                    var metrics = this.symbolMetrics[src.id];
+                    node.firstChild.setAttributeNS(null, "transform", "rotate(" 
+                        + rotation + " " 
+                        + metrics[1] + " "
+                        + metrics[2] + ")");
                 }
             }
         }
@@ -689,24 +672,23 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
     /**
      * Method: drawText
      * This method is only called by the renderer itself.
-     * 
-     * Parameters: 
+     *
+     * Parameters:
      * featureId - {String}
      * style -
      * location - {<OpenLayers.Geometry.Point>}
      */
     drawText: function(featureId, style, location) {
         var resolution = this.getResolution();
-        
+
         var x = (location.x / resolution + this.left);
         var y = (location.y / resolution - this.top);
-        
+
         var label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, "text");
-        var tspan = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_tspan", "tspan");
 
         label.setAttributeNS(null, "x", x);
         label.setAttributeNS(null, "y", -y);
-        
+
         if (style.fontColor) {
             label.setAttributeNS(null, "fill", style.fontColor);
         }
@@ -722,12 +704,12 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         if (style.fontWeight) {
             label.setAttributeNS(null, "font-weight", style.fontWeight);
         }
-        if(style.labelSelect === true) {
+        if (style.fontStyle) {
+            label.setAttributeNS(null, "font-style", style.fontStyle);
+        }
+        if (style.labelSelect === true) {
             label.setAttributeNS(null, "pointer-events", "visible");
             label._featureId = featureId;
-            tspan._featureId = featureId;
-            tspan._geometry = location;
-            tspan._geometryClass = location.CLASS_NAME;
         } else {
             label.setAttributeNS(null, "pointer-events", "none");
         }
@@ -735,20 +717,46 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         label.setAttributeNS(null, "text-anchor",
             OpenLayers.Renderer.SVG.LABEL_ALIGN[align[0]] || "middle");
 
-        if (this.isGecko) {
+        if (OpenLayers.IS_GECKO === true) {
             label.setAttributeNS(null, "dominant-baseline",
                 OpenLayers.Renderer.SVG.LABEL_ALIGN[align[1]] || "central");
-        } else {
-            tspan.setAttributeNS(null, "baseline-shift",
-                OpenLayers.Renderer.SVG.LABEL_VSHIFT[align[1]] || "-35%");
         }
 
-        tspan.textContent = style.label;
-        
-        if(!label.parentNode) {
-            label.appendChild(tspan);
+        var labelRows = style.label.split('\n');
+        var numRows = labelRows.length;
+        while (label.childNodes.length > numRows) {
+            label.removeChild(label.lastChild);
+        }
+        for (var i = 0; i < numRows; i++) {
+            var tspan = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_tspan_" + i, "tspan");
+            if (style.labelSelect === true) {
+                tspan._featureId = featureId;
+                tspan._geometry = location;
+                tspan._geometryClass = location.CLASS_NAME;
+            }
+            if (OpenLayers.IS_GECKO === false) {
+                tspan.setAttributeNS(null, "baseline-shift",
+                    OpenLayers.Renderer.SVG.LABEL_VSHIFT[align[1]] || "-35%");
+            }
+            tspan.setAttribute("x", x);
+            if (i == 0) {
+                var vfactor = OpenLayers.Renderer.SVG.LABEL_VFACTOR[align[1]];
+                if (vfactor == null) {
+                     vfactor = -.5;
+                }
+                tspan.setAttribute("dy", (vfactor*(numRows-1)) + "em");
+            } else {
+                tspan.setAttribute("dy", "1em");
+            }
+            tspan.textContent = (labelRows[i] === '') ? ' ' : labelRows[i];
+            if (!tspan.parentNode) {
+                label.appendChild(tspan);
+            }
+        }
+
+        if (!label.parentNode) {
             this.textRoot.appendChild(label);
-        }   
+        }
     },
     
     /** 
@@ -809,9 +817,9 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
      * inside the valid range.
      * 
      * Parameters:
-     * badComponent - {<OpenLayers.Geometry.Point>)} original geometry of the
+     * badComponent - {<OpenLayers.Geometry.Point>} original geometry of the
      *     invalid point
-     * goodComponent - {<OpenLayers.Geometry.Point>)} original geometry of the
+     * goodComponent - {<OpenLayers.Geometry.Point>} original geometry of the
      *     valid point
      * Returns
      * {String} the SVG coordinate pair of the clipped point (like
@@ -890,7 +898,7 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
      * graphicName - {String} name of the symbol to import
      * 
      * Returns:
-     * {String} - id of the imported symbol
+     * {DOMElement} - the imported symbol
      */      
     importSymbol: function (graphicName)  {
         if (!this.defs) {
@@ -900,8 +908,9 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         var id = this.container.id + "-" + graphicName;
         
         // check if symbol already exists in the defs
-        if (document.getElementById(id) != null) {
-            return id;
+        var existing = document.getElementById(id)
+        if (existing != null) {
+            return existing;
         }
         
         var symbol = OpenLayers.Renderer.symbol[graphicName];
@@ -943,7 +952,7 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         ];
         
         this.defs.appendChild(symbolNode);
-        return symbolNode.id;
+        return symbolNode;
     },
     
     /**
@@ -958,7 +967,7 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
      */
     getFeatureIdFromEvent: function(evt) {
         var featureId = OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent.apply(this, arguments);
-        if(this.supportUse === false && !featureId) {
+        if(!featureId) {
             var target = evt.target;
             featureId = target.parentNode && target != this.rendererRoot &&
                 target.parentNode._featureId;
@@ -993,3 +1002,21 @@ OpenLayers.Renderer.SVG.LABEL_VSHIFT = {
     "t": "-70%",
     "b": "0"    
 };
+
+/**
+ * Constant: OpenLayers.Renderer.SVG.LABEL_VFACTOR
+ * {Object}
+ */
+OpenLayers.Renderer.SVG.LABEL_VFACTOR = {
+    "t": 0,
+    "b": -1
+};
+
+/**
+ * Function: OpenLayers.Renderer.SVG.preventDefault
+ * Used to prevent default events (especially opening images in a new tab on
+ * ctrl-click) from being executed for externalGraphic symbols
+ */
+OpenLayers.Renderer.SVG.preventDefault = function(e) {
+    e.preventDefault && e.preventDefault();
+};
diff --git a/lib/OpenLayers/Renderer/SVG2.js b/lib/OpenLayers/Renderer/SVG2.js
new file mode 100644
index 0000000..bbaf6e4
--- /dev/null
+++ b/lib/OpenLayers/Renderer/SVG2.js
@@ -0,0 +1,826 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list of contributors). Published under the Clear BSD license.  
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Renderer/NG.js
+ */
+
+/**
+ * Class: OpenLayers.Renderer.SVG2
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Renderer.NG>
+ */
+OpenLayers.Renderer.SVG2 = OpenLayers.Class(OpenLayers.Renderer.NG, {
+
+    /** 
+     * Property: xmlns
+     * {String}
+     */
+    xmlns: "http://www.w3.org/2000/svg",
+    
+    /**
+     * Property: xlinkns
+     * {String}
+     */
+    xlinkns: "http://www.w3.org/1999/xlink",
+
+    /**
+     * Property: symbolMetrics
+     * {Object} Cache for symbol metrics according to their svg coordinate
+     *     space. This is an object keyed by the symbol's id, and values are
+     *     an object with size, x and y properties.
+     */
+    symbolMetrics: null,
+    
+    /**
+     * Constant: labelNodeType
+     * {String} The node type for text label containers.
+     */
+    labelNodeType: "g",
+
+    /**
+     * Constructor: OpenLayers.Renderer.SVG2
+     * 
+     * Parameters:
+     * containerID - {String}
+     */
+    initialize: function(containerID) {
+        if (!this.supported()) { 
+            return; 
+        }
+        OpenLayers.Renderer.Elements.prototype.initialize.apply(this, 
+                                                                arguments);
+        
+        this.symbolMetrics = {};
+    },
+
+    /**
+     * APIMethod: supported
+     * 
+     * Returns:
+     * {Boolean} Whether or not the browser supports the SVG renderer
+     */
+    supported: function() {
+        var svgFeature = "http://www.w3.org/TR/SVG11/feature#";
+        return (document.implementation && 
+           (document.implementation.hasFeature("org.w3c.svg", "1.0") || 
+            document.implementation.hasFeature(svgFeature + "SVG", "1.1") || 
+            document.implementation.hasFeature(svgFeature + "BasicStructure", "1.1") ));
+    },    
+
+    /**
+     * Method: updateDimensions
+     *
+     * Parameters:
+     * zoomChanged - {Boolean}
+     */
+    updateDimensions: function(zoomChanged) {
+        OpenLayers.Renderer.NG.prototype.updateDimensions.apply(this, arguments);
+        
+        var res = this.getResolution();
+        
+        var width = this.extent.getWidth();
+        var height = this.extent.getHeight();
+        
+        var extentString = [
+            this.extent.left,
+            -this.extent.top,
+            width,
+            height
+        ].join(" ");
+        this.rendererRoot.setAttributeNS(null, "viewBox", extentString);
+        this.rendererRoot.setAttributeNS(null, "width", width / res);
+        this.rendererRoot.setAttributeNS(null, "height", height / res);
+
+        if (zoomChanged === true) {
+            // update styles for the new resolution
+            var i, len;
+            var nodes = this.vectorRoot.childNodes;
+            for (i=0, len=nodes.length; i<len; ++i) {
+                this.setStyle(nodes[i]);
+            }
+            var textNodes = this.textRoot.childNodes;
+            var label;
+            for (i=0, len=textNodes.length; i<len; ++i) {
+                label = textNodes[i];
+                this.drawText(label, label._style,
+                    new OpenLayers.Geometry.Point(label._x, label._y)
+                );
+            }
+        }
+    },
+    
+    /** 
+     * Method: getNodeType
+     * 
+     * Parameters:
+     * geometry - {<OpenLayers.Geometry>}
+     * style - {Object}
+     * 
+     * Returns:
+     * {String} The corresponding node type for the specified geometry
+     */
+    getNodeType: function(geometry, style) {
+        var nodeType = null;
+        switch (geometry.CLASS_NAME) {
+            case "OpenLayers.Geometry.Point":
+                if (style.externalGraphic) {
+                    nodeType = "image";
+                } else if (this.isComplexSymbol(style.graphicName)) {
+                    nodeType = "svg";
+                } else {
+                    nodeType = "circle";
+                }
+                break;
+            case "OpenLayers.Geometry.Rectangle":
+                nodeType = "rect";
+                break;
+            case "OpenLayers.Geometry.LineString":
+                nodeType = "polyline";
+                break;
+            case "OpenLayers.Geometry.LinearRing":
+                nodeType = "polygon";
+                break;
+            case "OpenLayers.Geometry.Polygon":
+            case "OpenLayers.Geometry.Curve":
+            case "OpenLayers.Geometry.Surface":
+                nodeType = "path";
+                break;
+            default:
+                break;
+        }
+        return nodeType;
+    },
+
+    /** 
+     * Method: setStyle
+     * Use to set all the style attributes to a SVG node.
+     * 
+     * Takes care to adjust stroke width and point radius to be
+     * resolution-relative
+     *
+     * Parameters:
+     * node - {SVGDomElement} An SVG element to decorate
+     * style - {Object}
+     * options - {Object} Currently supported options include 
+     *                              'isFilled' {Boolean} and
+     *                              'isStroked' {Boolean}
+     */
+    setStyle: function(node, style, options) {
+        style = style  || node._style;
+        options = options || node._options;
+        var resolution = this.getResolution();
+        var r = node._radius;
+        var widthFactor = resolution;
+        if (node._geometryClass == "OpenLayers.Geometry.Point" && r) {
+            node.style.visibility = "";
+            if (style.graphic === false) {
+                node.style.visibility = "hidden";
+            } else if (style.externalGraphic) {
+                
+                if (style.graphicTitle) {
+                    node.setAttributeNS(null, "title", style.graphicTitle);
+                    //Standards-conformant SVG 
+                    var label = this.nodeFactory(null, "title"); 
+                    label.textContent = style.graphicTitle; 
+                    node.appendChild(label); 
+                }
+                if (style.graphicWidth && style.graphicHeight) {
+                    node.setAttributeNS(null, "preserveAspectRatio", "none");
+                }
+                var width = style.graphicWidth || style.graphicHeight;
+                var height = style.graphicHeight || style.graphicWidth;
+                width = width ? width : style.pointRadius*2;
+                height = height ? height : style.pointRadius*2;
+                width *= resolution;
+                height *= resolution;
+                
+                var xOffset = (style.graphicXOffset != undefined) ?
+                    style.graphicXOffset * resolution : -(0.5 * width);
+                var yOffset = (style.graphicYOffset != undefined) ?
+                    style.graphicYOffset * resolution : -(0.5 * height);
+
+                var opacity = style.graphicOpacity || style.fillOpacity;
+                
+                node.setAttributeNS(null, "x", node._x + xOffset);
+                node.setAttributeNS(null, "y", node._y + yOffset);
+                node.setAttributeNS(null, "width", width);
+                node.setAttributeNS(null, "height", height);
+                node.setAttributeNS(this.xlinkns, "href", style.externalGraphic);
+                node.setAttributeNS(null, "style", "opacity: "+opacity);
+                node.onclick = OpenLayers.Renderer.SVG2.preventDefault;
+            } else if (this.isComplexSymbol(style.graphicName)) {
+                // the symbol viewBox is three times as large as the symbol
+                var offset = style.pointRadius * 3 * resolution;
+                var size = offset * 2;
+                var src = this.importSymbol(style.graphicName);
+                widthFactor = this.symbolMetrics[src.id].size * 3 / size * resolution;
+                
+                // remove the node from the dom before we modify it. This
+                // prevents various rendering issues in Safari and FF
+                var parent = node.parentNode;
+                var nextSibling = node.nextSibling;
+                if(parent) {
+                    parent.removeChild(node);
+                }
+                
+                // The more appropriate way to implement this would be use/defs, 
+                // but due to various issues in several browsers, it is safer to 
+                // copy the symbols instead of referencing them.  
+                // See e.g. ticket http://trac.osgeo.org/openlayers/ticket/2985  
+                // and this email thread 
+                // http://osgeo-org.1803224.n2.nabble.com/Select-Control-Ctrl-click-on-Feature-with-a-graphicName-opens-new-browser-window-tc5846039.html 
+                node.firstChild && node.removeChild(node.firstChild); 
+                node.appendChild(src.firstChild.cloneNode(true)); 
+                node.setAttributeNS(null, "viewBox", src.getAttributeNS(null, "viewBox")); 
+
+                node.setAttributeNS(null, "width", size);
+                node.setAttributeNS(null, "height", size);
+                node.setAttributeNS(null, "x", node._x - offset);
+                node.setAttributeNS(null, "y", node._y - offset);
+                
+                // now that the node has all its new properties, insert it
+                // back into the dom where it was
+                if(nextSibling) {
+                    parent.insertBefore(node, nextSibling);
+                } else if(parent) {
+                    parent.appendChild(node);
+                }
+            } else {
+                node.setAttributeNS(null, "r", style.pointRadius * resolution);
+            }
+
+            var rotation = style.rotation;
+            if (rotation !== undefined || node._rotation !== undefined) {
+                node._rotation = rotation;
+                rotation |= 0;
+                if (node.nodeName !== "svg") { 
+                    node.setAttributeNS(null, "transform", 
+                        ["rotate(", rotation, node._x, node._y, ")"].join(" ")
+                    ); 
+                } else {
+                    var metrics = this.symbolMetrics[src.id]; 
+                    node.firstChild.setAttributeNS(null, "transform",
+                        ["rotate(", rotation, metrics.x, metrics.y, ")"].join(" ")
+                    );
+                }
+            }
+        }
+        
+        if (options.isFilled) {
+            node.setAttributeNS(null, "fill", style.fillColor);
+            node.setAttributeNS(null, "fill-opacity", style.fillOpacity);
+        } else {
+            node.setAttributeNS(null, "fill", "none");
+        }
+
+        if (options.isStroked) {
+            node.setAttributeNS(null, "stroke", style.strokeColor);
+            node.setAttributeNS(null, "stroke-opacity", style.strokeOpacity);
+            node.setAttributeNS(null, "stroke-width", style.strokeWidth * widthFactor);
+            node.setAttributeNS(null, "stroke-linecap", style.strokeLinecap || "round");
+            // Hard-coded linejoin for now, to make it look the same as in VML.
+            // There is no strokeLinejoin property yet for symbolizers.
+            node.setAttributeNS(null, "stroke-linejoin", "round");
+            style.strokeDashstyle && node.setAttributeNS(null,
+                "stroke-dasharray", this.dashStyle(style, widthFactor));
+        } else {
+            node.setAttributeNS(null, "stroke", "none");
+        }
+        
+        if (style.pointerEvents) {
+            node.setAttributeNS(null, "pointer-events", style.pointerEvents);
+        }
+                
+        if (style.cursor != null) {
+            node.setAttributeNS(null, "cursor", style.cursor);
+        }
+        
+        return node;
+    },
+
+    /** 
+     * Method: dashStyle
+     * 
+     * Parameters:
+     * style - {Object}
+     * widthFactor - {Number}
+     * 
+     * Returns:
+     * {String} A SVG compliant 'stroke-dasharray' value
+     */
+    dashStyle: function(style, widthFactor) {
+        var w = style.strokeWidth * widthFactor;
+        var str = style.strokeDashstyle;
+        switch (str) {
+            case 'solid':
+                return 'none';
+            case 'dot':
+                return [widthFactor, 4 * w].join();
+            case 'dash':
+                return [4 * w, 4 * w].join();
+            case 'dashdot':
+                return [4 * w, 4 * w, widthFactor, 4 * w].join();
+            case 'longdash':
+                return [8 * w, 4 * w].join();
+            case 'longdashdot':
+                return [8 * w, 4 * w, widthFactor, 4 * w].join();
+            default:
+                var parts = OpenLayers.String.trim(str).split(/\s+/g);
+                for (var i=0, ii=parts.length; i<ii; i++) {
+                    parts[i] = parts[i] * widthFactor;
+                }
+                return parts.join();            
+        }
+    },
+    
+    /** 
+     * Method: createNode
+     * 
+     * Parameters:
+     * type - {String} Kind of node to draw
+     * id - {String} Id for node
+     * 
+     * Returns:
+     * {DOMElement} A new node of the given type and id
+     */
+    createNode: function(type, id) {
+        var node = document.createElementNS(this.xmlns, type);
+        if (id) {
+            node.setAttributeNS(null, "id", id);
+        }
+        return node;    
+    },
+    
+    /** 
+     * Method: nodeTypeCompare
+     * 
+     * Parameters:
+     * node - {SVGDomElement} An SVG element
+     * type - {String} Kind of node
+     * 
+     * Returns:
+     * {Boolean} Whether or not the specified node is of the specified type
+     */
+    nodeTypeCompare: function(node, type) {
+        return (type == node.nodeName);
+    },
+   
+    /**
+     * Method: createRenderRoot
+     * 
+     * Returns:
+     * {DOMElement} The specific render engine's root element
+     */
+    createRenderRoot: function() {
+        return this.nodeFactory(this.container.id + "_svgRoot", "svg");
+    },
+
+    /**
+     * Method: createRoot
+     * 
+     * Parameter:
+     * suffix - {String} suffix to append to the id
+     * 
+     * Returns:
+     * {DOMElement}
+     */
+    createRoot: function(suffix) {
+        return this.nodeFactory(this.container.id + suffix, "g");
+    },
+
+    /**
+     * Method: createDefs
+     *
+     * Returns:
+     * {DOMElement} The element to which we'll add the symbol definitions
+     */
+    createDefs: function() {
+        var defs = this.nodeFactory(this.container.id + "_defs", "defs");
+        this.rendererRoot.appendChild(defs);
+        return defs;
+    },
+
+    /**************************************
+     *                                    *
+     *     GEOMETRY DRAWING FUNCTIONS     *
+     *                                    *
+     **************************************/
+
+    /**
+     * Method: drawPoint
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * 
+     * Returns:
+     * {DOMElement} or false if the renderer could not draw the point
+     */ 
+    drawPoint: function(node, geometry) {
+        return this.drawCircle(node, geometry, 1);
+    },
+
+    /**
+     * Method: drawCircle
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * radius - {Float}
+     * 
+     * Returns:
+     * {DOMElement} or false if the renderer could not draw the circle
+     */
+    drawCircle: function(node, geometry, radius) {
+        var x = geometry.x;
+        var y = -geometry.y;
+        node.setAttributeNS(null, "cx", x);
+        node.setAttributeNS(null, "cy", y);
+        node._x = x;
+        node._y = y;
+        node._radius = radius;
+        return node;
+    },
+    
+    /**
+     * Method: drawLineString
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * 
+     * Returns:
+     * {DOMElement} or null if the renderer could not draw all components of
+     *     the linestring, or false if nothing could be drawn
+     */ 
+    drawLineString: function(node, geometry) {
+        var path = this.getComponentsString(geometry.components);
+        node.setAttributeNS(null, "points", path);
+        return node;
+    },
+    
+    /**
+     * Method: drawLinearRing
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * 
+     * Returns:
+     * {DOMElement} or null if the renderer could not draw all components
+     *     of the linear ring, or false if nothing could be drawn
+     */ 
+    drawLinearRing: function(node, geometry) {
+        var path = this.getComponentsString(geometry.components);
+        node.setAttributeNS(null, "points", path);
+        return node;
+    },
+    
+    /**
+     * Method: drawPolygon
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * 
+     * Returns:
+     * {DOMElement} or null if the renderer could not draw all components
+     *     of the polygon, or false if nothing could be drawn
+     */ 
+    drawPolygon: function(node, geometry) {
+        var d = [];
+        var draw = true;
+        var complete = true;
+        var linearRingResult, path;
+        for (var j=0, len=geometry.components.length; j<len; j++) {
+            d.push("M");
+            path = this.getComponentsString(
+                geometry.components[j].components, " ");
+            d.push(path);
+        }
+        d.push("z");
+        node.setAttributeNS(null, "d", d.join(" "));
+        node.setAttributeNS(null, "fill-rule", "evenodd");
+        return node;
+    },
+    
+    /**
+     * Method: drawRectangle
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * 
+     * Returns:
+     * {DOMElement} or false if the renderer could not draw the rectangle
+     */ 
+    drawRectangle: function(node, geometry) {
+        node.setAttributeNS(null, "x", geometry.x);
+        node.setAttributeNS(null, "y", -geometry.y);
+        node.setAttributeNS(null, "width", geometry.width);
+        node.setAttributeNS(null, "height", geometry.height);
+        return node;
+    },
+    
+    /**
+     * Method: drawSurface
+     * This method is only called by the renderer itself.
+     * 
+     * Parameters: 
+     * node - {DOMElement}
+     * geometry - {<OpenLayers.Geometry>}
+     * 
+     * Returns:
+     * {DOMElement} or false if the renderer could not draw the surface
+     */ 
+    drawSurface: function(node, geometry) {
+
+        // create the svg path string representation
+        var d = [];
+        var draw = true;
+        for (var i=0, len=geometry.components.length; i<len; i++) {
+            if ((i%3) == 0 && (i/3) == 0) {
+                var component = this.getShortString(geometry.components[i]);
+                d.push("M", component);
+            } else if ((i%3) == 1) {
+                var component = this.getShortString(geometry.components[i]);
+                d.push("C", component);
+            } else {
+                var component = this.getShortString(geometry.components[i]);
+                d.push(component);
+            }
+        }
+        d.push("Z");
+        node.setAttributeNS(null, "d", d.join(" "));
+        return node;
+    },
+    
+    /**
+     * Method: drawText
+     * Function for drawing text labels.
+     * This method is only called by the renderer itself.
+     *
+     * Parameters:
+     * featureId - {String|DOMElement}
+     * style - {Object}
+     * location - {<OpenLayers.Geometry.Point>}, will be modified inline
+     *
+     * Returns:
+     * {DOMElement} container holding the text label
+     */
+    drawText: function(featureId, style, location) {
+        var g = OpenLayers.Renderer.NG.prototype.drawText.apply(this, arguments);
+        var text = g.firstChild ||
+            this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_text", "text");
+
+        var res = this.getResolution();
+        text.setAttributeNS(null, "x", location.x / res);
+        text.setAttributeNS(null, "y", - location.y / res);
+        g.setAttributeNS(null, "transform", "scale(" + res + ")");
+
+        if (style.fontColor) {
+            text.setAttributeNS(null, "fill", style.fontColor);
+        }
+        if (style.fontOpacity) {
+            text.setAttributeNS(null, "opacity", style.fontOpacity);
+        }
+        if (style.fontFamily) {
+            text.setAttributeNS(null, "font-family", style.fontFamily);
+        }
+        if (style.fontSize) {
+            text.setAttributeNS(null, "font-size", style.fontSize);
+        }
+        if (style.fontWeight) {
+            text.setAttributeNS(null, "font-weight", style.fontWeight);
+        }
+        if (style.fontStyle) {
+            text.setAttributeNS(null, "font-style", style.fontStyle);
+        }
+        if (style.labelSelect === true) {
+            text.setAttributeNS(null, "pointer-events", "visible");
+            text._featureId = featureId;
+        } else {
+            text.setAttributeNS(null, "pointer-events", "none");
+        }
+        var align = style.labelAlign || "cm";
+        text.setAttributeNS(null, "text-anchor",
+            OpenLayers.Renderer.SVG2.LABEL_ALIGN[align[0]] || "middle");
+
+        if (OpenLayers.IS_GECKO === true) {
+            text.setAttributeNS(null, "dominant-baseline",
+                OpenLayers.Renderer.SVG2.LABEL_ALIGN[align[1]] || "central");
+        }
+
+        var labelRows = style.label.split('\n');
+        var numRows = labelRows.length;
+        while (text.childNodes.length > numRows) {
+            text.removeChild(text.lastChild);
+        }
+        for (var i = 0; i < numRows; i++) {
+            var tspan = text.childNodes[i] ||
+                this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_tspan_" + i, "tspan");
+            if (style.labelSelect === true) {
+                tspan._featureId = featureId;
+            }
+            if (OpenLayers.IS_GECKO === false) {
+                tspan.setAttributeNS(null, "baseline-shift",
+                    OpenLayers.Renderer.SVG2.LABEL_VSHIFT[align[1]] || "-35%");
+            }
+            tspan.setAttribute("x", location.x / res);
+            if (i == 0) {
+                var vfactor = OpenLayers.Renderer.SVG2.LABEL_VFACTOR[align[1]];
+                if (vfactor == null) {
+                    vfactor = -.5;
+                }
+                tspan.setAttribute("dy", (vfactor*(numRows-1)) + "em");
+            } else {
+                tspan.setAttribute("dy", "1em");
+            }
+            tspan.textContent = (labelRows[i] === '') ? ' ' : labelRows[i];
+            if (!tspan.parentNode) {
+                text.appendChild(tspan);
+            }
+        }
+
+        if (!text.parentNode) {
+            g.appendChild(text);
+        }
+
+        return g;
+    },
+    
+    /** 
+     * Method: getComponentString
+     * 
+     * Parameters:
+     * components - {Array(<OpenLayers.Geometry.Point>)} Array of points
+     * separator - {String} character between coordinate pairs. Defaults to ","
+     * 
+     * Returns:
+     * {Object} hash with properties "path" (the string created from the
+     *     components and "complete" (false if the renderer was unable to
+     *     draw all components)
+     */
+    getComponentsString: function(components, separator) {
+        var len = components.length;
+        var strings = new Array(len);
+        for (var i=0; i<len; i++) {
+            strings[i] = this.getShortString(components[i]);
+        }
+
+        return strings.join(separator || ",");
+    },
+    
+    /** 
+     * Method: getShortString
+     * 
+     * Parameters:
+     * point - {<OpenLayers.Geometry.Point>}
+     * 
+     * Returns:
+     * {String} or false if point is outside the valid range
+     */
+    getShortString: function(point) {
+        return point.x + "," + (-point.y);
+    },
+    
+    /**
+     * Method: importSymbol
+     * add a new symbol definition from the rendererer's symbol hash
+     * 
+     * Parameters:
+     * graphicName - {String} name of the symbol to import
+     * 
+     * Returns:
+     * {DOMElement} - the imported symbol
+     */      
+    importSymbol: function (graphicName)  {
+        if (!this.defs) {
+            // create svg defs tag
+            this.defs = this.createDefs();
+        }
+        var id = this.container.id + "-" + graphicName;
+        
+        // check if symbol already exists in the defs
+        var existing = document.getElementById(id);
+        if (existing != null) {
+            return existing;
+        }
+        
+        var symbol = OpenLayers.Renderer.symbol[graphicName];
+        if (!symbol) {
+            throw new Error(graphicName + ' is not a valid symbol name');
+        }
+
+        var symbolNode = this.nodeFactory(id, "symbol");
+        var node = this.nodeFactory(null, "polygon");
+        symbolNode.appendChild(node);
+        var symbolExtent = new OpenLayers.Bounds(
+                                    Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
+
+        var points = [];
+        var x,y;
+        for (var i=0, len=symbol.length; i<len; i=i+2) {
+            x = symbol[i];
+            y = symbol[i+1];
+            symbolExtent.left = Math.min(symbolExtent.left, x);
+            symbolExtent.bottom = Math.min(symbolExtent.bottom, y);
+            symbolExtent.right = Math.max(symbolExtent.right, x);
+            symbolExtent.top = Math.max(symbolExtent.top, y);
+            points.push(x, ",", y);
+        }
+        
+        node.setAttributeNS(null, "points", points.join(" "));
+        
+        var width = symbolExtent.getWidth();
+        var height = symbolExtent.getHeight();
+        // create a viewBox three times as large as the symbol itself,
+        // to allow for strokeWidth being displayed correctly at the corners.
+        var viewBox = [symbolExtent.left - width,
+                        symbolExtent.bottom - height, width * 3, height * 3];
+        symbolNode.setAttributeNS(null, "viewBox", viewBox.join(" "));
+        this.symbolMetrics[id] = {
+            size: Math.max(width, height),
+            x: symbolExtent.getCenterLonLat().lon,
+            y: symbolExtent.getCenterLonLat().lat
+        };
+        
+        this.defs.appendChild(symbolNode);
+        return symbolNode;
+    },
+    
+    /**
+     * Method: getFeatureIdFromEvent
+     * 
+     * Parameters:
+     * evt - {Object} An <OpenLayers.Event> object
+     *
+     * Returns:
+     * {<OpenLayers.Geometry>} A geometry from an event that 
+     *     happened on a layer.
+     */
+    getFeatureIdFromEvent: function(evt) {
+        var featureId = OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent.apply(this, arguments);
+        if(!featureId) {
+            var target = evt.target;
+            featureId = target.parentNode && target != this.rendererRoot &&
+                target.parentNode._featureId;
+        }
+        return featureId;
+    },
+
+    CLASS_NAME: "OpenLayers.Renderer.SVG2"
+});
+
+/**
+ * Constant: OpenLayers.Renderer.SVG2.LABEL_ALIGN
+ * {Object}
+ */
+OpenLayers.Renderer.SVG2.LABEL_ALIGN = {
+    "l": "start",
+    "r": "end",
+    "b": "bottom",
+    "t": "hanging"
+};
+
+/**
+ * Constant: OpenLayers.Renderer.SVG2.LABEL_VSHIFT
+ * {Object}
+ */
+OpenLayers.Renderer.SVG2.LABEL_VSHIFT = {
+    // according to
+    // http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-text-align-02-b.html
+    // a baseline-shift of -70% shifts the text exactly from the
+    // bottom to the top of the baseline, so -35% moves the text to
+    // the center of the baseline.
+    "t": "-70%",
+    "b": "0"    
+};
+
+/**
+ * Constant: OpenLayers.Renderer.SVG2.LABEL_VFACTOR
+ * {Object}
+ */
+OpenLayers.Renderer.SVG2.LABEL_VFACTOR = {
+    "t": 0,
+    "b": -1
+};
+
+/** 
+ * Function: OpenLayers.Renderer.SVG2.preventDefault 
+ * Used to prevent default events (especially opening images in a new tab on 
+ * ctrl-click) from being executed for externalGraphic and graphicName symbols 
+ */ 
+OpenLayers.Renderer.SVG2.preventDefault = function(e) { 
+    e.preventDefault && e.preventDefault(); 
+};
diff --git a/lib/OpenLayers/Renderer/VML.js b/lib/OpenLayers/Renderer/VML.js
index a3c02e0..88c6f29 100644
--- a/lib/OpenLayers/Renderer/VML.js
+++ b/lib/OpenLayers/Renderer/VML.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -67,14 +67,6 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
     },
 
     /**
-     * APIMethod: destroy
-     * Deconstruct the renderer.
-     */
-    destroy: function() {
-        OpenLayers.Renderer.Elements.prototype.destroy.apply(this, arguments);
-    },
-
-    /**
      * APIMethod: supported
      * Determine whether a browser supports this renderer.
      *
@@ -219,6 +211,7 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
 
         if (node._geometryClass === "OpenLayers.Geometry.Point") {
             if (style.externalGraphic) {
+                options.isFilled = true;
                 if (style.graphicTitle) {
                     node.title=style.graphicTitle;
                 } 
@@ -751,21 +744,43 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         var resolution = this.getResolution();
     
         var path = [];
-        var linearRing, i, j, len, ilen, comp, x, y;
-        for (j = 0, len=geometry.components.length; j<len; j++) {
-            linearRing = geometry.components[j];
-
+        var j, jj, points, area, first, second, i, ii, comp, pathComp, x, y;
+        for (j=0, jj=geometry.components.length; j<jj; j++) {
             path.push("m");
-            for (i=0, ilen=linearRing.components.length; i<ilen; i++) {
-                comp = linearRing.components[i];
+            points = geometry.components[j].components;
+            // we only close paths of interior rings with area
+            area = (j === 0);
+            first = null;
+            second = null;
+            for (i=0, ii=points.length; i<ii; i++) {
+                comp = points[i];
                 x = (comp.x / resolution - this.offset.x) | 0;
                 y = (comp.y / resolution - this.offset.y) | 0;
-                path.push(" " + x + "," + y);
+                pathComp = " " + x + "," + y;
+                path.push(pathComp);
                 if (i==0) {
                     path.push(" l");
                 }
+                if (!area) {
+                    // IE improperly renders sub-paths that have no area.
+                    // Instead of checking the area of every ring, we confirm
+                    // the ring has at least three distinct points.  This does
+                    // not catch all non-zero area cases, but it greatly improves
+                    // interior ring digitizing and is a minor performance hit
+                    // when rendering rings with many points.
+                    if (!first) {
+                        first = pathComp;
+                    } else if (first != pathComp) {
+                        if (!second) {
+                            second = pathComp;
+                        } else if (second != pathComp) {
+                            // stop looking
+                            area = true;
+                        }
+                    }
+                }
             }
-            path.push(" x ");
+            path.push(area ? " x " : " ");
         }
         path.push("e");
         node.path = path.join("");
@@ -814,6 +829,9 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
 
         textbox.innerText = style.label;
 
+        if (style.cursor != "inherit" && style.cursor != null) {
+            textbox.style.cursor = style.cursor;
+        }
         if (style.fontColor) {
             textbox.style.color = style.fontColor;
         }
@@ -829,6 +847,9 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
         if (style.fontWeight) {
             textbox.style.fontWeight = style.fontWeight;
         }
+        if (style.fontStyle) {
+            textbox.style.fontStyle = style.fontStyle;
+        }
         if(style.labelSelect === true) {
             label._featureId = featureId;
             textbox._featureId = featureId;
diff --git a/lib/OpenLayers/Request.js b/lib/OpenLayers/Request.js
index a87664c..4c6578b 100644
--- a/lib/OpenLayers/Request.js
+++ b/lib/OpenLayers/Request.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -36,6 +36,11 @@ OpenLayers.Request = {
     },
     
     /**
+     * Constant: URL_SPLIT_REGEX
+     */
+    URL_SPLIT_REGEX: /([^:]*:)\/\/([^:]*:?[^@]*@)?([^:\/\?]*):?([^\/\?]*)/,
+    
+    /**
      * APIProperty: events
      * {<OpenLayers.Events>} An events object that handles all 
      *     events on the {<OpenLayers.Request>} object.
@@ -120,19 +125,30 @@ OpenLayers.Request = {
 
         // create request, open, and set headers
         var request = new OpenLayers.Request.XMLHttpRequest();
-        var url = config.url;
-        if(config.params) {
-            var paramString = OpenLayers.Util.getParameterString(config.params);
-            if(paramString.length > 0) {
-                var separator = (url.indexOf('?') > -1) ? '&' : '?';
-                url += separator + paramString;
+        var url = OpenLayers.Util.urlAppend(config.url, 
+            OpenLayers.Util.getParameterString(config.params || {}));
+        var sameOrigin = !(url.indexOf("http") == 0);
+        var urlParts = !sameOrigin && url.match(this.URL_SPLIT_REGEX);
+        if (urlParts) {
+            var location = window.location;
+            sameOrigin =
+                urlParts[1] == location.protocol &&
+                urlParts[3] == location.hostname;
+            var uPort = urlParts[4], lPort = location.port;
+            if (uPort != 80 && uPort != "" || lPort != "80" && lPort != "") {
+                sameOrigin = sameOrigin && uPort == lPort;
             }
         }
-        if(config.proxy && (url.indexOf("http") == 0)) {
-            if(typeof config.proxy == "function") {
-                url = config.proxy(url);
+        if (!sameOrigin) {
+            if (config.proxy) {
+                if (typeof config.proxy == "function") {
+                    url = config.proxy(url);
+                } else {
+                    url = config.proxy + encodeURIComponent(url);
+                }
             } else {
-                url = config.proxy + encodeURIComponent(url);
+                OpenLayers.Console.warn(
+                    OpenLayers.i18n("proxyNeeded"), {url: url});
             }
         }
         request.open(
@@ -169,7 +185,7 @@ OpenLayers.Request = {
             request.send(config.data);
         } else {
             window.setTimeout(function(){
-                if (request._aborted !== true) {
+                if (request.readyState !== 0) { // W3C: 0-UNSENT
                     request.send(config.data);
                 }
             }, 0);
@@ -213,6 +229,10 @@ OpenLayers.Request = {
                 config.failure;
         }
 
+        if (OpenLayers.Util.createUrlObject(config.url).protocol == "file:" &&
+                                                        request.responseText) {
+            request.status = 200;
+        }
         complete(request);
 
         if (!request.status || (request.status >= 200 && request.status < 300)) {
diff --git a/lib/OpenLayers/Request/XMLHttpRequest.js b/lib/OpenLayers/Request/XMLHttpRequest.js
index 9bf714f..f5b932b 100644
--- a/lib/OpenLayers/Request/XMLHttpRequest.js
+++ b/lib/OpenLayers/Request/XMLHttpRequest.js
@@ -24,14 +24,20 @@
     // Define on browser type
     var bGecko    = !!window.controllers,
         bIE        = window.document.all && !window.opera,
-        bIE7    = bIE && window.navigator.userAgent.match(/MSIE ([\.0-9]+)/) && RegExp.$1 == 7;
+        bIE7    = bIE && window.navigator.userAgent.match(/MSIE 7.0/);
 
-    // Constructor
-    function cXMLHttpRequest() {
+    // Enables "XMLHttpRequest()" call next to "new XMLHttpReques()"
+    function fXMLHttpRequest() {
         this._object    = oXMLHttpRequest && !bIE7 ? new oXMLHttpRequest : new window.ActiveXObject("Microsoft.XMLHTTP");
         this._listeners    = [];
     };
 
+    // Constructor
+    function cXMLHttpRequest() {
+        return new fXMLHttpRequest;
+    };
+    cXMLHttpRequest.prototype    = fXMLHttpRequest.prototype;
+
     // BUGFIX: Firefox with Firebug installed would break pages if not executed
     if (bGecko && oXMLHttpRequest.wrapped)
         cXMLHttpRequest.wrapped    = oXMLHttpRequest.wrapped;
@@ -50,6 +56,9 @@
     cXMLHttpRequest.prototype.status        = 0;
     cXMLHttpRequest.prototype.statusText    = '';
 
+    // Priority proposal
+    cXMLHttpRequest.prototype.priority        = "NORMAL";
+
     // Instance-level Events Handlers
     cXMLHttpRequest.prototype.onreadystatechange    = null;
 
@@ -85,7 +94,7 @@
                     oRequest.abort();
                 }
             };
-                window.attachEvent("onunload", fOnUnload);
+            window.attachEvent("onunload", fOnUnload);
         }
 
         // Add method sniffer
@@ -100,10 +109,8 @@
         else
             this._object.open(sMethod, sUrl, bAsync);
 
-        if (!bGecko && !bIE) {
-            this.readyState    = cXMLHttpRequest.OPENED;
-            fReadyStateChange(this);
-        }
+        this.readyState    = cXMLHttpRequest.OPENED;
+        fReadyStateChange(this);
 
         this._object.onreadystatechange    = function() {
             if (bGecko && !bAsync)
@@ -125,6 +132,10 @@
             }
 
             if (oRequest.readyState == cXMLHttpRequest.DONE) {
+                // Free up queue
+                delete oRequest._data;
+/*                if (bAsync)
+                    fQueue_remove(oRequest);*/
                 //
                 fCleanTransport(oRequest);
 // Uncomment this block if you need a fix for IE cache
@@ -140,7 +151,7 @@
                     // Re-send request
                     if (sUser) {
                          if (sPassword)
-                    oRequest._object.open(sMethod, sUrl, bAsync, sUser, sPassword);
+                            oRequest._object.open(sMethod, sUrl, bAsync, sUser, sPassword);
                         else
                             oRequest._object.open(sMethod, sUrl, bAsync, sUser);
                     }
@@ -205,38 +216,50 @@
             nState    = oRequest.readyState;
         }
     };
+    function fXMLHttpRequest_send(oRequest) {
+        oRequest._object.send(oRequest._data);
+
+        // BUGFIX: Gecko - missing readystatechange calls in synchronous requests
+        if (bGecko && !oRequest._async) {
+            oRequest.readyState    = cXMLHttpRequest.OPENED;
+
+            // Synchronize state
+            fSynchronizeValues(oRequest);
+
+            // Simulate missing states
+            while (oRequest.readyState < cXMLHttpRequest.DONE) {
+                oRequest.readyState++;
+                fReadyStateChange(oRequest);
+                // Check if we are aborted
+                if (oRequest._aborted)
+                    return;
+            }
+        }
+    };
     cXMLHttpRequest.prototype.send    = function(vData) {
         // Add method sniffer
         if (cXMLHttpRequest.onsend)
             cXMLHttpRequest.onsend.apply(this, arguments);
 
+        if (!arguments.length)
+            vData    = null;
+
         // BUGFIX: Safari - fails sending documents created/modified dynamically, so an explicit serialization required
         // BUGFIX: IE - rewrites any custom mime-type to "text/xml" in case an XMLNode is sent
         // BUGFIX: Gecko - fails sending Element (this is up to the implementation either to standard)
         if (vData && vData.nodeType) {
             vData    = window.XMLSerializer ? new window.XMLSerializer().serializeToString(vData) : vData.xml;
-            if (!this._headers["Content-Type"])
-                this._object.setRequestHeader("Content-Type", "application/xml");
+            if (!oRequest._headers["Content-Type"])
+                oRequest._object.setRequestHeader("Content-Type", "application/xml");
         }
 
-        this._object.send(vData);
-
-        // BUGFIX: Gecko - missing readystatechange calls in synchronous requests
-        if (bGecko && !this._async) {
-            this.readyState    = cXMLHttpRequest.OPENED;
-
-            // Synchronize state
-            fSynchronizeValues(this);
-
-            // Simulate missing states
-            while (this.readyState < cXMLHttpRequest.DONE) {
-                this.readyState++;
-                fReadyStateChange(this);
-                // Check if we are aborted
-                if (this._aborted)
-                    return;
-            }
-        }
+        this._data    = vData;
+/*
+        // Add to queue
+        if (this._async)
+            fQueue_add(this);
+        else*/
+            fXMLHttpRequest_send(this);
     };
     cXMLHttpRequest.prototype.abort    = function() {
         // Add method sniffer
@@ -251,6 +274,12 @@
 
         // BUGFIX: IE - memory leak
         fCleanTransport(this);
+
+        this.readyState    = cXMLHttpRequest.UNSENT;
+
+        delete this._data;
+/*        if (this._async)
+            fQueue_remove(this);*/
     };
     cXMLHttpRequest.prototype.getAllResponseHeaders    = function() {
         return this._object.getAllResponseHeaders();
@@ -361,7 +390,45 @@
         // BUGFIX: IE - memory leak (on-page leak)
         oRequest._object.onreadystatechange    = new window.Function;
     };
+/*
+    // Queue manager
+    var oQueuePending    = {"CRITICAL":[],"HIGH":[],"NORMAL":[],"LOW":[],"LOWEST":[]},
+        aQueueRunning    = [];
+    function fQueue_add(oRequest) {
+        oQueuePending[oRequest.priority in oQueuePending ? oRequest.priority : "NORMAL"].push(oRequest);
+        //
+        setTimeout(fQueue_process);
+    };
+
+    function fQueue_remove(oRequest) {
+        for (var nIndex = 0, bFound    = false; nIndex < aQueueRunning.length; nIndex++)
+            if (bFound)
+                aQueueRunning[nIndex - 1]    = aQueueRunning[nIndex];
+            else
+            if (aQueueRunning[nIndex] == oRequest)
+                bFound    = true;
+        if (bFound)
+            aQueueRunning.length--;
+        //
+        setTimeout(fQueue_process);
+    };
 
+    function fQueue_process() {
+        if (aQueueRunning.length < 6) {
+            for (var sPriority in oQueuePending) {
+                if (oQueuePending[sPriority].length) {
+                    var oRequest    = oQueuePending[sPriority][0];
+                    oQueuePending[sPriority]    = oQueuePending[sPriority].slice(1);
+                    //
+                    aQueueRunning.push(oRequest);
+                    // Send request
+                    fXMLHttpRequest_send(oRequest);
+                    break;
+                }
+            }
+        }
+    };
+*/
     // Internet Explorer 5.0 (missing apply)
     if (!window.Function.prototype.apply) {
         window.Function.prototype.apply    = function(oRequest, oArguments) {
@@ -381,4 +448,4 @@
      *     http://code.google.com/p/xmlhttprequest/.
      */
     OpenLayers.Request.XMLHttpRequest = cXMLHttpRequest;
-})();
\ No newline at end of file
+})();
diff --git a/lib/OpenLayers/Rule.js b/lib/OpenLayers/Rule.js
index a98f349..a6d78a9 100644
--- a/lib/OpenLayers/Rule.js
+++ b/lib/OpenLayers/Rule.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  * @requires OpenLayers/Style.js
  * @requires OpenLayers/Symbolizer/Point.js
diff --git a/lib/OpenLayers/SingleFile.js b/lib/OpenLayers/SingleFile.js
index d58b62d..afb0f65 100644
--- a/lib/OpenLayers/SingleFile.js
+++ b/lib/OpenLayers/SingleFile.js
@@ -1,10 +1,43 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 var OpenLayers = {
-    singleFile: true
-};
+    /**
+     * Constant: VERSION_NUMBER
+     */
+    VERSION_NUMBER: "Release 2.11",
 
+    /**
+     * Constant: singleFile
+     * TODO: remove this in 3.0 when we stop supporting build profiles that
+     * include OpenLayers.js
+     */
+    singleFile: true,
 
+    /**
+     * Method: _getScriptLocation
+     * Return the path to this script. This is also implemented in
+     * OpenLayers.js
+     *
+     * Returns:
+     * {String} Path to this script
+     */
+    _getScriptLocation: (function() {
+        var r = new RegExp("(^|(.*?\\/))(OpenLayers\.js)(\\?|$)"),
+            s = document.getElementsByTagName('script'),
+            src, m, l = "";
+        for(var i=0, len=s.length; i<len; i++) {
+            src = s[i].getAttribute('src');
+            if(src) {
+                var m = src.match(r);
+                if(m) {
+                    l = m[1];
+                    break;
+                }
+            }
+        }
+        return (function() { return l; });
+    })()
+};
diff --git a/lib/OpenLayers/Strategy.js b/lib/OpenLayers/Strategy.js
index 0f5b2fe..e9acf5c 100644
--- a/lib/OpenLayers/Strategy.js
+++ b/lib/OpenLayers/Strategy.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Class: OpenLayers.Strategy
  * Abstract vector layer strategy class.  Not to be instantiated directly.  Use
  *     one of the strategy subclasses instead.
diff --git a/lib/OpenLayers/Strategy/BBOX.js b/lib/OpenLayers/Strategy/BBOX.js
index 5e42d9b..59b1b22 100644
--- a/lib/OpenLayers/Strategy/BBOX.js
+++ b/lib/OpenLayers/Strategy/BBOX.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -68,9 +68,6 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
      * options - {Object} Optional object whose properties will be set on the
      *     instance.
      */
-    initialize: function(options) {
-        OpenLayers.Strategy.prototype.initialize.apply(this, [options]);
-    },
     
     /**
      * Method: activate
@@ -90,6 +87,14 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
                 "refresh": this.update,
                 scope: this
             });
+            if(this.layer.visibility === true && this.layer.inRange === true) {
+                this.update();
+            } else {
+                this.layer.events.on({
+                    "visibilitychanged": this.update,
+                    scope: this
+                });
+            }
         }
         return activated;
     },
@@ -106,10 +111,8 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
         if(deactivated) {
             this.layer.events.un({
                 "moveend": this.update,
-                scope: this
-            });
-            this.layer.events.un({
                 "refresh": this.update,
+                "visibilitychanged": this.update,
                 scope: this
             });
         }
@@ -127,10 +130,11 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
      */
     update: function(options) {
         var mapBounds = this.getMapBounds();
-        if ((options && options.force) || this.invalidBounds(mapBounds)) {
+        if (mapBounds !== null && ((options && options.force) ||
+                                   this.invalidBounds(mapBounds))) {
             this.calculateBounds(mapBounds);
             this.resolution = this.layer.map.getResolution(); 
-            this.triggerRead();
+            this.triggerRead(options);
         }
     },
     
@@ -142,8 +146,12 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
      * {<OpenLayers.Bounds>} Map bounds in the projection of the layer.
      */
     getMapBounds: function() {
+        if (this.layer.map === null) {
+            return null;
+        }
         var bounds = this.layer.map.getExtent();
-        if(!this.layer.projection.equals(this.layer.map.getProjectionObject())) {
+        if(bounds && !this.layer.projection.equals(
+                this.layer.map.getProjectionObject())) {
             bounds = bounds.clone().transform(
                 this.layer.map.getProjectionObject(), this.layer.projection
             );
@@ -202,21 +210,25 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
     /**
      * Method: triggerRead
      *
+     * Parameters:
+     * options - Additional options for the protocol's read method (optional)
+     *
      * Returns:
      * {<OpenLayers.Protocol.Response>} The protocol response object
      *      returned by the layer protocol.
      */
-    triggerRead: function() {
+    triggerRead: function(options) {
         if (this.response) {
             this.layer.protocol.abort(this.response);
             this.layer.events.triggerEvent("loadend");
         }
         this.layer.events.triggerEvent("loadstart");
-        this.response = this.layer.protocol.read({
-            filter: this.createFilter(),
-            callback: this.merge,
-            scope: this
-        });
+        this.response = this.layer.protocol.read(
+            OpenLayers.Util.applyDefaults({
+                filter: this.createFilter(),
+                callback: this.merge,
+                scope: this
+        }, options));
     },
  
     /**
diff --git a/lib/OpenLayers/Strategy/Cluster.js b/lib/OpenLayers/Strategy/Cluster.js
index a97eed1..dbc589f 100644
--- a/lib/OpenLayers/Strategy/Cluster.js
+++ b/lib/OpenLayers/Strategy/Cluster.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -66,9 +66,6 @@ OpenLayers.Strategy.Cluster = OpenLayers.Class(OpenLayers.Strategy, {
      * options - {Object} Optional object whose properties will be set on the
      *     instance.
      */
-    initialize: function(options) {
-        OpenLayers.Strategy.prototype.initialize.apply(this, [options]);
-    },
     
     /**
      * APIMethod: activate
diff --git a/lib/OpenLayers/Strategy/Filter.js b/lib/OpenLayers/Strategy/Filter.js
index 3ade24a..0e876d1 100644
--- a/lib/OpenLayers/Strategy/Filter.js
+++ b/lib/OpenLayers/Strategy/Filter.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -45,15 +45,8 @@ OpenLayers.Strategy.Filter = OpenLayers.Class(OpenLayers.Strategy, {
      *
      * Parameters:
      * options - {Object} Optional object whose properties will be set on the
-     *     instance.  Strategy must be constructed with at least a <filter> 
-     *     property.
+     *     instance.
      */
-    initialize: function(options) {
-        OpenLayers.Strategy.prototype.initialize.apply(this, [options]);
-        if (!this.filter || !(this.filter instanceof OpenLayers.Filter)) {
-            throw new Error("Filter strategy must be constructed with a filter");
-        }
-    },
 
     /**
      * APIMethod: activate
@@ -102,7 +95,7 @@ OpenLayers.Strategy.Filter = OpenLayers.Class(OpenLayers.Strategy, {
      * Method: handleAdd
      */
     handleAdd: function(event) {
-        if (!this.caching) {
+        if (!this.caching && this.filter) {
             var features = event.features;
             event.features = [];
             var feature;
@@ -145,17 +138,19 @@ OpenLayers.Strategy.Filter = OpenLayers.Class(OpenLayers.Strategy, {
         // cache now contains features to remove from layer
         if (this.cache.length > 0) {
             this.caching = true;
-            this.layer.removeFeatures(this.cache.slice(), {silent: true});
+            this.layer.removeFeatures(this.cache.slice());
             this.caching = false;
         }
         // now look through previous cache for features to add to layer
         if (previousCache.length > 0) {
             var event = {features: previousCache};
             this.handleAdd(event);
-            // event has features to add to layer
-            this.caching = true;
-            this.layer.addFeatures(event.features, {silent: true});
-            this.caching = false;
+            if (event.features.length > 0) {
+                // event has features to add to layer
+                this.caching = true;
+                this.layer.addFeatures(event.features);
+                this.caching = false;
+            }
         }
     },
 
diff --git a/lib/OpenLayers/Strategy/Fixed.js b/lib/OpenLayers/Strategy/Fixed.js
index 0f77e25..56fc8e4 100644
--- a/lib/OpenLayers/Strategy/Fixed.js
+++ b/lib/OpenLayers/Strategy/Fixed.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -32,17 +32,6 @@ OpenLayers.Strategy.Fixed = OpenLayers.Class(OpenLayers.Strategy, {
      * options - {Object} Optional object whose properties will be set on the
      *     instance.
      */
-    initialize: function(options) {
-        OpenLayers.Strategy.prototype.initialize.apply(this, [options]);
-    },
-
-    /**
-     * APIMethod: destroy
-     * Clean up the strategy.
-     */
-    destroy: function() {
-        OpenLayers.Strategy.prototype.destroy.apply(this, arguments);
-    },
 
     /**
      * Method: activate
@@ -98,13 +87,14 @@ OpenLayers.Strategy.Fixed = OpenLayers.Class(OpenLayers.Strategy, {
      * options - {Object} options to pass to protocol read.
      */
     load: function(options) {
-        this.layer.events.triggerEvent("loadstart");
-        this.layer.protocol.read(OpenLayers.Util.applyDefaults({
-            callback: this.merge,
-            filter: this.layer.filter,
-            scope: this
+        var layer = this.layer;
+        layer.events.triggerEvent("loadstart");
+        layer.protocol.read(OpenLayers.Util.applyDefaults({
+            callback: OpenLayers.Function.bind(this.merge, this,
+                layer.map.getProjectionObject()),
+            filter: layer.filter
         }, options));
-        this.layer.events.un({
+        layer.events.un({
             "visibilitychanged": this.load,
             scope: this
         });
@@ -113,25 +103,28 @@ OpenLayers.Strategy.Fixed = OpenLayers.Class(OpenLayers.Strategy, {
     /**
      * Method: merge
      * Add all features to the layer.
+     *
+     * Parameters:
+     * mapProjection - {OpenLayers.Projection} the map projection
+     * resp - {Object} options to pass to protocol read.
      */
-    merge: function(resp) {
-        this.layer.destroyFeatures();
+    merge: function(mapProjection, resp) {
+        var layer = this.layer;
+        layer.destroyFeatures();
         var features = resp.features;
         if (features && features.length > 0) {
-            var remote = this.layer.projection;
-            var local = this.layer.map.getProjectionObject();
-            if(!local.equals(remote)) {
+            if(!mapProjection.equals(layer.projection)) {
                 var geom;
                 for(var i=0, len=features.length; i<len; ++i) {
                     geom = features[i].geometry;
                     if(geom) {
-                        geom.transform(remote, local);
+                        geom.transform(layer.projection, mapProjection);
                     }
                 }
             }
-            this.layer.addFeatures(features);
+            layer.addFeatures(features);
         }
-        this.layer.events.triggerEvent("loadend");
+        layer.events.triggerEvent("loadend");
     },
 
     CLASS_NAME: "OpenLayers.Strategy.Fixed"
diff --git a/lib/OpenLayers/Strategy/Paging.js b/lib/OpenLayers/Strategy/Paging.js
index fdf89e5..3ca965c 100644
--- a/lib/OpenLayers/Strategy/Paging.js
+++ b/lib/OpenLayers/Strategy/Paging.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -48,9 +48,6 @@ OpenLayers.Strategy.Paging = OpenLayers.Class(OpenLayers.Strategy, {
      * options - {Object} Optional object whose properties will be set on the
      *     instance.
      */
-    initialize: function(options) {
-        OpenLayers.Strategy.prototype.initialize.apply(this, [options]);
-    },
     
     /**
      * APIMethod: activate
diff --git a/lib/OpenLayers/Strategy/Refresh.js b/lib/OpenLayers/Strategy/Refresh.js
index 398c110..8b4feaf 100644
--- a/lib/OpenLayers/Strategy/Refresh.js
+++ b/lib/OpenLayers/Strategy/Refresh.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -45,9 +45,6 @@ OpenLayers.Strategy.Refresh = OpenLayers.Class(OpenLayers.Strategy, {
      * options - {Object} Optional object whose properties will be set on the
      *     instance.
      */
-    initialize: function(options) {
-        OpenLayers.Strategy.prototype.initialize.apply(this, [options]);
-    },
    
     /**
      * APIMethod: activate
diff --git a/lib/OpenLayers/Strategy/Save.js b/lib/OpenLayers/Strategy/Save.js
index e151cf5..5efae29 100644
--- a/lib/OpenLayers/Strategy/Save.js
+++ b/lib/OpenLayers/Strategy/Save.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Style.js b/lib/OpenLayers/Style.js
index d9d6d5d..302a9f2 100644
--- a/lib/OpenLayers/Style.js
+++ b/lib/OpenLayers/Style.js
@@ -1,10 +1,11 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  * @requires OpenLayers/Feature/Vector.js
  */
@@ -190,6 +191,10 @@ OpenLayers.Style = OpenLayers.Class({
             style.display = "none";
         }
         
+        if (style.label && typeof style.label !== "string") {
+            style.label = String(style.label);
+        }
+        
         return style;
     },
     
diff --git a/lib/OpenLayers/Style2.js b/lib/OpenLayers/Style2.js
index 2c4bdbc..aecdd39 100644
--- a/lib/OpenLayers/Style2.js
+++ b/lib/OpenLayers/Style2.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Rule.js
  * @requires OpenLayers/Symbolizer/Point.js
  * @requires OpenLayers/Symbolizer/Line.js
diff --git a/lib/OpenLayers/StyleMap.js b/lib/OpenLayers/StyleMap.js
index 5ce463e..c5e3644 100644
--- a/lib/OpenLayers/StyleMap.js
+++ b/lib/OpenLayers/StyleMap.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Style.js
  * @requires OpenLayers/Feature/Vector.js
  */
diff --git a/lib/OpenLayers/Symbolizer.js b/lib/OpenLayers/Symbolizer.js
index aeb1f0b..3ad2dce 100644
--- a/lib/OpenLayers/Symbolizer.js
+++ b/lib/OpenLayers/Symbolizer.js
@@ -1,9 +1,13 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+/**
  * Class: OpenLayers.Symbolizer
  * Base class representing a symbolizer used for feature rendering.
  */
diff --git a/lib/OpenLayers/Symbolizer/Line.js b/lib/OpenLayers/Symbolizer/Line.js
index 5d2e0b7..7c35a39 100644
--- a/lib/OpenLayers/Symbolizer/Line.js
+++ b/lib/OpenLayers/Symbolizer/Line.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -16,27 +16,31 @@ OpenLayers.Symbolizer.Line = OpenLayers.Class(OpenLayers.Symbolizer, {
     /**
      * APIProperty: strokeColor
      * {String} Color for line stroke.  This is a RGB hex value (e.g. "#ff0000"
-     *     for red).
+     *     for red).  
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeColor: null,
     
     /**
      * APIProperty: strokeOpacity
      * {Number} Stroke opacity (0-1).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeOpacity: null,
     
     /**
      * APIProperty: strokeWidth
      * {Number} Pixel stroke width.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeWidth: null,
     
     /**
      * APIProperty: strokeLinecap
      * {String} Stroke cap type ("butt", "round", or "square").
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeLinecap: null,
     
     /**
      * Property: strokeDashstyle
@@ -44,8 +48,9 @@ OpenLayers.Symbolizer.Line = OpenLayers.Class(OpenLayers.Symbolizer, {
      *     OpenLayers values for strokeDashstyle ("dot", "dash", "dashdot",
      *     "longdash", "longdashdot", or "solid") will not work in SLD, but
      *     most SLD patterns will render correctly in OpenLayers.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeDashstyle: null,
 
     /**
      * Constructor: OpenLayers.Symbolizer.Line
diff --git a/lib/OpenLayers/Symbolizer/Point.js b/lib/OpenLayers/Symbolizer/Point.js
index d9568cd..b5a36cf 100644
--- a/lib/OpenLayers/Symbolizer/Point.js
+++ b/lib/OpenLayers/Symbolizer/Point.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -17,26 +17,30 @@ OpenLayers.Symbolizer.Point = OpenLayers.Class(OpenLayers.Symbolizer, {
      * APIProperty: strokeColor
      * {String} Color for line stroke.  This is a RGB hex value (e.g. "#ff0000"
      *     for red).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeColor: null,
     
     /**
      * APIProperty: strokeOpacity
      * {Number} Stroke opacity (0-1).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeOpacity: null,
     
     /**
      * APIProperty: strokeWidth
      * {Number} Pixel stroke width.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeWidth: null,
     
     /**
      * APIProperty: strokeLinecap
      * {String} Stroke cap type ("butt", "round", or "square").
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeLinecap: null,
     
     /**
      * Property: strokeDashstyle
@@ -44,80 +48,92 @@ OpenLayers.Symbolizer.Point = OpenLayers.Class(OpenLayers.Symbolizer, {
      *     OpenLayers values for strokeDashstyle ("dot", "dash", "dashdot",
      *     "longdash", "longdashdot", or "solid") will not work in SLD, but
      *     most SLD patterns will render correctly in OpenLayers.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeDashstyle: null,
 
     /**
      * APIProperty: fillColor
      * {String} RGB hex fill color (e.g. "#ff0000" for red).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fillColor: null,
     
     /**
      * APIProperty: fillOpacity
      * {Number} Fill opacity (0-1).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fillOpacity: null, 
 
     /**
      * APIProperty: pointRadius
      * {Number} Pixel point radius.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    pointRadius: null,
 
     /**
      * APIProperty: externalGraphic
      * {String} Url to an external graphic that will be used for rendering 
      *     points.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    externalGraphic: null,
     
     /**
      * APIProperty: graphicWidth
      * {Number} Pixel width for sizing an external graphic.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    graphicWidth: null,
     
     /**
      * APIProperty: graphicHeight
      * {Number} Pixel height for sizing an external graphic.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    graphicHeight: null,
     
     /**
      * APIProperty: graphicOpacity
      * {Number} Opacity (0-1) for an external graphic.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    graphicOpacity: null,
     
     /**
      * APIProperty: graphicXOffset
      * {Number} Pixel offset along the positive x axis for displacing an 
      *     external graphic.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    graphicXOffset: null,
     
     /**
      * APIProperty: graphicYOffset
      * {Number} Pixel offset along the positive y axis for displacing an 
      *     external graphic.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    graphicYOffset: null,
 
     /**
      * APIProperty: rotation
      * {Number} The rotation of a graphic in the clockwise direction about its 
      *     center point (or any point off center as specified by 
      *     <graphicXOffset> and <graphicYOffset>).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    rotation: null,
     
     /**
      * APIProperty: graphicName
      * {String} Named graphic to use when rendering points.  Supported values 
      *     include "circle", "square", "star", "x", "cross", and "triangle".
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    graphicName: null,
     
     /**
      * Constructor: OpenLayers.Symbolizer.Point
diff --git a/lib/OpenLayers/Symbolizer/Polygon.js b/lib/OpenLayers/Symbolizer/Polygon.js
index 10d9a20..b2abeb7 100644
--- a/lib/OpenLayers/Symbolizer/Polygon.js
+++ b/lib/OpenLayers/Symbolizer/Polygon.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -17,26 +17,30 @@ OpenLayers.Symbolizer.Polygon = OpenLayers.Class(OpenLayers.Symbolizer, {
      * APIProperty: strokeColor
      * {String} Color for line stroke.  This is a RGB hex value (e.g. "#ff0000"
      *     for red).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeColor: null,
     
     /**
      * APIProperty: strokeOpacity
      * {Number} Stroke opacity (0-1).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeOpacity: null,
     
     /**
      * APIProperty: strokeWidth
      * {Number} Pixel stroke width.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeWidth: null,
     
     /**
      * APIProperty: strokeLinecap
      * {String} Stroke cap type ("butt", "round", or "square").
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeLinecap: null,
     
     /**
      * Property: strokeDashstyle
@@ -44,20 +48,23 @@ OpenLayers.Symbolizer.Polygon = OpenLayers.Class(OpenLayers.Symbolizer, {
      *     OpenLayers values for strokeDashstyle ("dot", "dash", "dashdot",
      *     "longdash", "longdashdot", or "solid") will not work in SLD, but
      *     most SLD patterns will render correctly in OpenLayers.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    strokeDashstyle: null,
 
     /**
      * APIProperty: fillColor
      * {String} RGB hex fill color (e.g. "#ff0000" for red).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fillColor: null,
     
     /**
      * APIProperty: fillOpacity
      * {Number} Fill opacity (0-1).
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fillOpacity: null, 
 
     /**
      * Constructor: OpenLayers.Symbolizer.Polygon
diff --git a/lib/OpenLayers/Symbolizer/Raster.js b/lib/OpenLayers/Symbolizer/Raster.js
index f9975b3..038a8db 100644
--- a/lib/OpenLayers/Symbolizer/Raster.js
+++ b/lib/OpenLayers/Symbolizer/Raster.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Symbolizer/Text.js b/lib/OpenLayers/Symbolizer/Text.js
index 1b44178..86898eb 100644
--- a/lib/OpenLayers/Symbolizer/Text.js
+++ b/lib/OpenLayers/Symbolizer/Text.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -16,32 +16,37 @@ OpenLayers.Symbolizer.Text = OpenLayers.Class(OpenLayers.Symbolizer, {
     /** 
      * APIProperty: label
      * {String} The text for the label.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    label: null,
     
     /** 
      * APIProperty: fontFamily
      * {String} The font family for the label.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fontFamily: null,
 
     /** 
      * APIProperty: fontSize
      * {String} The font size for the label.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fontSize: null,
 
     /** 
      * APIProperty: fontWeight
      * {String} The font weight for the label.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fontWeight: null,
     
     /**
      * Property: fontStyle
      * {String} The font style for the label.
+     * 
+     * No default set here.  Use OpenLayers.Renderer.defaultRenderer for defaults.
      */
-    fontStyle: null,
 
     /**
      * Constructor: OpenLayers.Symbolizer.Text
diff --git a/lib/OpenLayers/Tile.js b/lib/OpenLayers/Tile.js
index 982a42a..5d114e9 100644
--- a/lib/OpenLayers/Tile.js
+++ b/lib/OpenLayers/Tile.js
@@ -1,12 +1,14 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 
-/*
+/**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /*
@@ -94,18 +96,23 @@ OpenLayers.Tile = OpenLayers.Class({
      * bounds - {<OpenLayers.Bounds>}
      * url - {<String>}
      * size - {<OpenLayers.Size>}
+     * options - {Object}
      */   
-    initialize: function(layer, position, bounds, url, size) {
+    initialize: function(layer, position, bounds, url, size, options) {
         this.layer = layer;
         this.position = position.clone();
         this.bounds = bounds.clone();
         this.url = url;
-        this.size = size.clone();
+        if (size) {
+            this.size = size.clone();
+        }
 
         //give the tile a unique id based on its BBOX.
         this.id = OpenLayers.Util.createUniqueID("Tile_");
         
         this.events = new OpenLayers.Events(this, null, this.EVENT_TYPES);
+
+        OpenLayers.Util.extend(this, options);
     },
 
     /**
diff --git a/lib/OpenLayers/Tile/Image.js b/lib/OpenLayers/Tile/Image.js
index 0524069..0351c08 100644
--- a/lib/OpenLayers/Tile/Image.js
+++ b/lib/OpenLayers/Tile/Image.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -52,14 +52,6 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
     isBackBuffer: false,
     
     /**
-     * Property: lastRatio
-     * {Float} Used in transition code only.  This is the previous ratio
-     *     of the back buffer tile resolution to the map resolution.  Compared
-     *     with the current ratio to determine if zooming occurred.
-     */
-    lastRatio: 1,
-
-    /**
      * Property: isFirstDraw
      * {Boolean} Is this the first time the tile is being drawn?
      *     This is used to force resetBackBuffer to synchronize
@@ -76,7 +68,24 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
      *     effects when the tile is moved or changes resolution.
      */
     backBufferTile: null,
-
+    
+    /**
+     * APIProperty: maxGetUrlLength
+     * {Number} If set, requests that would result in GET urls with more
+     * characters than the number provided will be made using form-encoded
+     * HTTP POST. It is good practice to avoid urls that are longer than 2048
+     * characters.
+     *
+     * Caution:
+     * Older versions of Gecko based browsers (e.g. Firefox < 3.5) and
+     * Opera < 10.0 do not fully support this option.
+     *
+     * Note:
+     * Do not use this option for layers that have a transitionEffect
+     * configured - IFrame tiles from POST requests can not be resized.
+     */
+    maxGetUrlLength: null,
+    
     /** TBD 3.0 - reorder the parameters to the init function to remove 
      *             URL. the getUrl() function on the layer gets called on 
      *             each draw(), so no need to specify it here.
@@ -90,17 +99,22 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
      * bounds - {<OpenLayers.Bounds>}
      * url - {<String>} Deprecated. Remove me in 3.0.
      * size - {<OpenLayers.Size>}
+     * options - {Object}
      */   
-    initialize: function(layer, position, bounds, url, size) {
+    initialize: function(layer, position, bounds, url, size, options) {
         OpenLayers.Tile.prototype.initialize.apply(this, arguments);
 
+        if (this.maxGetUrlLength != null) {
+            OpenLayers.Util.extend(this, OpenLayers.Tile.Image.IFrame);
+        }
+
         this.url = url; //deprecated remove me
         
         this.frame = document.createElement('div'); 
         this.frame.style.overflow = 'hidden'; 
         this.frame.style.position = 'absolute'; 
 
-        this.layerAlphaHack = this.layer.alpha && OpenLayers.Util.alphaHack();
+        this.layerAlphaHack = this.layer.alpha && OpenLayers.Util.alphaHack();        
     },
 
     /** 
@@ -109,22 +123,7 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
      */
     destroy: function() {
         if (this.imgDiv != null)  {
-            if (this.layerAlphaHack) {
-                // unregister the "load" handler
-                OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0]);                
-            }
-
-            // unregister the "load" and "error" handlers. Only the "error" handler if
-            // this.layerAlphaHack is true.
-            OpenLayers.Event.stopObservingElement(this.imgDiv);
-            
-            if (this.imgDiv.parentNode == this.frame) {
-                this.frame.removeChild(this.imgDiv);
-                this.imgDiv.map = null;
-            }
-            this.imgDiv.urls = null;
-            // abort any currently loading image
-            this.imgDiv.src = OpenLayers.Util.getImagesLocation() + "blank.gif";
+            this.removeImgDiv();
         }
         this.imgDiv = null;
         if ((this.frame != null) && (this.frame.parentNode == this.layer.div)) { 
@@ -142,7 +141,7 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
         
         OpenLayers.Tile.prototype.destroy.apply(this, arguments);
     },
-
+    
     /**
      * Method: clone
      *
@@ -281,13 +280,8 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
      *     position it correctly, and set its url.
      */
     renderTile: function() {
-        if (this.imgDiv == null) {
-            this.initImgDiv();
-        }
-
-        this.imgDiv.viewRequestID = this.layer.map.viewRequestID;
-        
         if (this.layer.async) {
+            this.initImgDiv();
             // Asyncronous image requests call the asynchronous getURL method
             // on the layer to fetch an image that covers 'this.bounds', in the scope of
             // 'this', setting the 'url' property of the layer itself, and running
@@ -297,12 +291,9 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
             // syncronous image requests get the url and position the frame immediately,
             // and don't wait for an image request to come back.
           
-            // needed for changing to a different server for onload error
-            if (this.layer.url instanceof Array) {
-                this.imgDiv.urls = this.layer.url.slice();
-            }
-          
             this.url = this.layer.getURL(this.bounds);
+
+            this.initImgDiv();
           
             // position the frame immediately
             this.positionImage(); 
@@ -356,94 +347,129 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
      * Creates the imgDiv property on the tile.
      */
     initImgDiv: function() {
-        
-        var offset = this.layer.imageOffset; 
-        var size = this.layer.getImageSize(this.bounds); 
-     
-        if (this.layerAlphaHack) {
-            this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null,
-                                                           offset,
-                                                           size,
-                                                           null,
-                                                           "relative",
-                                                           null,
-                                                           null,
-                                                           null,
-                                                           true);
-        } else {
-            this.imgDiv = OpenLayers.Util.createImage(null,
-                                                      offset,
-                                                      size,
-                                                      null,
-                                                      "relative",
-                                                      null,
-                                                      null,
-                                                      true);
-        }
-        
-        this.imgDiv.className = 'olTileImage';
+        if (this.imgDiv == null) {
+            var offset = this.layer.imageOffset; 
+            var size = this.layer.getImageSize(this.bounds); 
 
-        /* checkImgURL used to be used to called as a work around, but it
-           ended up hiding problems instead of solving them and broke things
-           like relative URLs. See discussion on the dev list:
-           http://openlayers.org/pipermail/dev/2007-January/000205.html
+            if (this.layerAlphaHack) {
+                this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null,
+                                                               offset,
+                                                               size,
+                                                               null,
+                                                               "relative",
+                                                               null,
+                                                               null,
+                                                               null,
+                                                               true);
+            } else {
+                this.imgDiv = OpenLayers.Util.createImage(null,
+                                                          offset,
+                                                          size,
+                                                          null,
+                                                          "relative",
+                                                          null,
+                                                          null,
+                                                          true);
+            }
 
-        OpenLayers.Event.observe( this.imgDiv, "load",
-            OpenLayers.Function.bind(this.checkImgURL, this) );
-        */
-        this.frame.style.zIndex = this.isBackBuffer ? 0 : 1;
-        this.frame.appendChild(this.imgDiv); 
-        this.layer.div.appendChild(this.frame); 
+            // needed for changing to a different server for onload error
+            if (OpenLayers.Util.isArray(this.layer.url)) {
+                this.imgDiv.urls = this.layer.url.slice();
+            }
+      
+            this.imgDiv.className = 'olTileImage';
+
+            /* checkImgURL used to be used to called as a work around, but it
+               ended up hiding problems instead of solving them and broke things
+               like relative URLs. See discussion on the dev list:
+               http://openlayers.org/pipermail/dev/2007-January/000205.html
+
+            OpenLayers.Event.observe( this.imgDiv, "load",
+                OpenLayers.Function.bind(this.checkImgURL, this) );
+            */
+            this.frame.style.zIndex = this.isBackBuffer ? 0 : 1;
+            this.frame.appendChild(this.imgDiv); 
+            this.layer.div.appendChild(this.frame); 
+
+            if(this.layer.opacity != null) {
+
+                OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null, null,
+                                                 null, null, null, 
+                                                 this.layer.opacity);
+            }
 
-        if(this.layer.opacity != null) {
-            
-            OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null, null,
-                                             null, null, null, 
-                                             this.layer.opacity);
-        }
+            // we need this reference to check back the viewRequestID
+            this.imgDiv.map = this.layer.map;
+
+            //bind a listener to the onload of the image div so that we 
+            // can register when a tile has finished loading.
+            var onload = function() {
+
+                //normally isLoading should always be true here but there are some 
+                // right funky conditions where loading and then reloading a tile
+                // with the same url *really*fast*. this check prevents sending 
+                // a 'loadend' if the msg has already been sent
+                //
+                if (this.isLoading) { 
+                    this.isLoading = false; 
+                    this.events.triggerEvent("loadend"); 
+                }
+            };
+
+            if (this.layerAlphaHack) { 
+                OpenLayers.Event.observe(this.imgDiv.childNodes[0], 'load', 
+                                         OpenLayers.Function.bind(onload, this));    
+            } else { 
+                OpenLayers.Event.observe(this.imgDiv, 'load', 
+                                     OpenLayers.Function.bind(onload, this)); 
+            } 
 
-        // we need this reference to check back the viewRequestID
-        this.imgDiv.map = this.layer.map;
 
-        //bind a listener to the onload of the image div so that we 
-        // can register when a tile has finished loading.
-        var onload = function() {
-            
-            //normally isLoading should always be true here but there are some 
-            // right funky conditions where loading and then reloading a tile
-            // with the same url *really*fast*. this check prevents sending 
-            // a 'loadend' if the msg has already been sent
-            //
-            if (this.isLoading) { 
-                this.isLoading = false; 
-                this.events.triggerEvent("loadend"); 
-            }
-        };
-        
-        if (this.layerAlphaHack) { 
-            OpenLayers.Event.observe(this.imgDiv.childNodes[0], 'load', 
-                                     OpenLayers.Function.bind(onload, this));    
-        } else { 
-            OpenLayers.Event.observe(this.imgDiv, 'load', 
-                                 OpenLayers.Function.bind(onload, this)); 
-        } 
+            // Bind a listener to the onerror of the image div so that we
+            // can registere when a tile has finished loading with errors.
+            var onerror = function() {
+
+                // If we have gone through all image reload attempts, it is time
+                // to realize that we are done with this image. Since
+                // OpenLayers.Util.onImageLoadError already has taken care about
+                // the error, we can continue as if the image was loaded
+                // successfully.
+                if (this.imgDiv._attempts > OpenLayers.IMAGE_RELOAD_ATTEMPTS) {
+                    onload.call(this);
+                }
+            };
+            OpenLayers.Event.observe(this.imgDiv, "error",
+                                     OpenLayers.Function.bind(onerror, this));
+        }
         
+        this.imgDiv.viewRequestID = this.layer.map.viewRequestID;
+    },
 
-        // Bind a listener to the onerror of the image div so that we
-        // can registere when a tile has finished loading with errors.
-        var onerror = function() {
-
-            // If we have gone through all image reload attempts, it is time
-            // to realize that we are done with this image. Since
-            // OpenLayers.Util.onImageLoadError already has taken care about
-            // the error, we can continue as if the image was loaded
-            // successfully.
-            if (this.imgDiv._attempts > OpenLayers.IMAGE_RELOAD_ATTEMPTS) {
-                onload.call(this);
-            }
-        };
-        OpenLayers.Event.observe(this.imgDiv, "error",
-                                 OpenLayers.Function.bind(onerror, this));
+    /**
+     * Method: removeImgDiv
+     * Removes the imgDiv from the DOM and stops listening to events on it.
+     */
+    removeImgDiv: function() {
+        // unregister the "load" and "error" handlers. Only the "error" handler if
+        // this.layerAlphaHack is true.
+        OpenLayers.Event.stopObservingElement(this.imgDiv);
+        
+        if (this.imgDiv.parentNode == this.frame) {
+            this.frame.removeChild(this.imgDiv);
+            this.imgDiv.map = null;
+        }
+        this.imgDiv.urls = null;
+
+        var child = this.imgDiv.firstChild;
+        //check for children (alphaHack img or IFrame)
+        if (child) {
+            OpenLayers.Event.stopObservingElement(child);
+            this.imgDiv.removeChild(child);
+            delete child;
+        } else {
+            // abort any currently loading image
+            this.imgDiv.src = OpenLayers.Util.getImagesLocation() + "blank.gif";
+        }
     },
 
     /**
@@ -498,7 +524,7 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
         
         // if the ratio is not the same as it was last time (i.e. we are
         // zooming), then we need to adjust the backBuffer tile
-        if (ratio != this.lastRatio) {
+        if (ratio != 1) {
             if (this.layer.transitionEffect == 'resize') {
                 // In this case, we can just immediately resize the 
                 // backBufferTile.
@@ -541,7 +567,6 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
                 this.backBufferTile.hide();
             }
         }
-        this.lastRatio = ratio;
 
     },
     
@@ -555,7 +580,7 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
         // before continuing execution.
         if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS, 
                 this.layer.transitionEffect) != -1) {
-            if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) { 
+            if (OpenLayers.IS_GECKO === true) { 
                 this.frame.scrollLeft = this.frame.scrollLeft; 
             } 
         }
@@ -574,5 +599,5 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
 );
 
 OpenLayers.Tile.Image.useBlankTile = ( 
-    OpenLayers.Util.getBrowserName() == "safari" || 
-    OpenLayers.Util.getBrowserName() == "opera"); 
+    OpenLayers.BROWSER_NAME == "safari" || 
+    OpenLayers.BROWSER_NAME == "opera"); 
diff --git a/lib/OpenLayers/Tile/Image/IFrame.js b/lib/OpenLayers/Tile/Image/IFrame.js
index 4692127..7735637 100644
--- a/lib/OpenLayers/Tile/Image/IFrame.js
+++ b/lib/OpenLayers/Tile/Image/IFrame.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
@@ -9,87 +9,49 @@
  */
 
 /**
- * Class: OpenLayers.Tile.Image.IFrame
- * Instances of OpenLayers.Tile.Image.IFrame are used to manage the image tiles
- * used by Layer.WMS.Post loaded via HTTP-POST-protocol. Create a new image
- * tile with the <OpenLayers.Tile.Image.IFrame> constructor.
+ * Constant: OpenLayers.Tile.Image.IFrame
+ * Mixin for tiles that use form-encoded POST requests to get images from
+ * remote services. Images will be loaded using HTTP-POST into an IFrame.
+ *
+ * This mixin will be applied to <OpenLayers.Tile.Image> instances
+ * configured with <OpenLayers.Tile.Image.allowPost> or
+ * <OpenLayers.Tile.Image.enforcePost> set to true.
  *
  * Inherits from:
  *  - <OpenLayers.Tile.Image>
  */
-OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
+OpenLayers.Tile.Image.IFrame = {
     
     /**
-     * Property: layerAlphaHack
-     * {Boolean} Always false for an instance.
-     */
-
-    /**
-     * Constructor: OpenLayers.Tile.Image.IFrame
-     * Constructor for a new <OpenLayers.Tile.Image.IFrame> instance.
-     * 
-     * Parameters:
-     * layer - {<OpenLayers.Layer>} layer that the tile will go in.
-     * position - {<OpenLayers.Pixel>}
-     * bounds - {<OpenLayers.Bounds>}
-     * size - {<OpenLayers.Size>}
-     */   
-    initialize: function(layer, position, bounds, url, size) {
-        OpenLayers.Tile.Image.prototype.initialize.apply(this, arguments);
-        this.layerAlphaHack = false;
-    },
-
-    /** 
-     * Method: destroy
-     * nullify references to prevent circular references and memory leaks
-     */
-    destroy: function() {
-        if(this.imgDiv != null) {
-            // unregister the "load" handler
-            OpenLayers.Event.stopObservingElement(this.imgDiv.firstChild);
-        }
-        OpenLayers.Tile.Image.prototype.destroy.apply(this, arguments);
-    },
+     * Property: useIFrame
+     * {Boolean} true if we are currently using an IFrame to render POST
+     * responses, false if we are using an img element to render GET responses.
+     */ 
+    useIFrame: null,
 
     /**
      * Method: clear
      * Removes the iframe from DOM (avoids back-button problems).
      */
     clear: function() {
-        if(this.imgDiv) {
-            var iFrame = this.imgDiv.firstChild;
-            OpenLayers.Event.stopObservingElement(iFrame);
-            this.imgDiv.removeChild(iFrame);
+        if (this.useIFrame) {
+            if (this.imgDiv) {
+                var iFrame = this.imgDiv.firstChild;
+                OpenLayers.Event.stopObservingElement(iFrame);
+                this.imgDiv.removeChild(iFrame);
+                delete iFrame;
+            }
+        } else {
+            OpenLayers.Tile.Image.prototype.clear.apply(this, arguments);
         }
     },
 
     /**
-     * Method: clone
-     *
-     * Parameters:
-     * obj - {<OpenLayers.Tile.Image.IFrame>} The tile to be cloned
-     *
-     * Returns:
-     * {<OpenLayers.Tile.Image.IFrame>} An exact clone of this 
-     * <OpenLayers.Tile.Image.IFrame>
-     */
-    clone: function (obj) {
-        if (obj == null) {
-            obj = new OpenLayers.Tile.Image.IFrame(
-                this.layer, this.position, this.bounds, this.url, this.size);
-        } 
-        
-        //pick up properties from superclass
-        obj = OpenLayers.Tile.Image.prototype.clone.apply(this, [obj]);
-        
-        return obj;
-    },
-
-    /**
      * Method: renderTile
      */
      renderTile: function() {
-        if(OpenLayers.Tile.Image.prototype.renderTile.apply(this, arguments)) {
+        if (OpenLayers.Tile.Image.prototype.renderTile.apply(this, arguments) &&
+                                                            this.useIFrame) {
             // create a html form and add it temporary to the layer div
             var form = this.createRequestForm();
             this.imgDiv.appendChild(form);
@@ -97,7 +59,9 @@ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
             // submit the form (means fetching the image)
             form.submit();
             this.imgDiv.removeChild(form);
+            delete form;
         }
+        return true;
     },
 
     /**
@@ -105,49 +69,56 @@ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
      * Creates the imgDiv property on the tile.
      */
     initImgDiv: function() {
-        this.imgDiv = this.createImgDiv();
+        this.useIFrame = this.maxGetUrlLength !== null && !this.layer.async &&
+            this.url.length > this.maxGetUrlLength;
+        if (this.imgDiv != null) {
+            var nodeName = this.imgDiv.nodeName.toLowerCase();
+            if ((this.useIFrame && nodeName == "img") ||
+                                        (!this.useIFrame && nodeName == "div")) {
+                // switch between get and post
+                this.removeImgDiv();
+                this.imgDiv = null;
+            }
+        }
+        if (this.useIFrame) {
+            if (this.imgDiv == null) {
+                var eventPane = document.createElement("div");
 
-        OpenLayers.Util.modifyDOMElement(this.imgDiv, this.id, null,
-            this.layer.getImageSize(), "relative");
-        this.imgDiv.className = 'olTileImage';
+                if(OpenLayers.BROWSER_NAME == "msie") {
+                    // IE cannot handle events on elements without backgroundcolor.
+                    // So we use this little hack to make elements transparent
+                    eventPane.style.backgroundColor = '#FFFFFF';
+                    eventPane.style.filter          = 'chroma(color=#FFFFFF)';
+                }
 
-        this.frame.appendChild(this.imgDiv); 
-        this.layer.div.appendChild(this.frame); 
+                OpenLayers.Util.modifyDOMElement(eventPane, null,
+                    new OpenLayers.Pixel(0,0), this.layer.getImageSize(), "absolute");
 
-        if(this.layer.opacity != null) {
-            
-            OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null, null,
-                                             null, null, null, 
-                                             this.layer.opacity);
-        }
+                this.imgDiv = document.createElement("div");
+                this.imgDiv.appendChild(eventPane);
 
-        // we need this reference to check back the viewRequestID
-        this.imgDiv.map = this.layer.map;
-    },
+                OpenLayers.Util.modifyDOMElement(this.imgDiv, this.id, null,
+                    this.layer.getImageSize(), "relative");
+                this.imgDiv.className = 'olTileImage';
 
-    /**
-     * Method: createImgDiv
-     * Creates a div with iframe.and eventPane
-     *
-     * Returns:
-     * {DOMElement}
-     */
-    createImgDiv: function() {
-        var eventPane = document.createElement("div");
+                this.frame.appendChild(this.imgDiv); 
+                this.layer.div.appendChild(this.frame); 
 
-        if(OpenLayers.Util.getBrowserName() == "msie") {
-            // IE cannot handle events on elements without backgroundcolor. So we
-            // use this little hack to make elements transparent
-            eventPane.style.backgroundColor = '#FFFFFF';
-            eventPane.style.filter          = 'chroma(color=#FFFFFF)';
-        }
+                if(this.layer.opacity != null) {
 
-        OpenLayers.Util.modifyDOMElement(eventPane, null,
-            new OpenLayers.Pixel(0,0), this.layer.getImageSize(), "absolute");
+                    OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null,
+                                                     null, null, null, null, 
+                                                     this.layer.opacity);
+                }
+
+                // we need this reference to check back the viewRequestID
+                this.imgDiv.map = this.layer.map;
+            }
+            this.imgDiv.viewRequestID = this.layer.map.viewRequestID;
 
-        var imgDiv = document.createElement("div");
-        imgDiv.appendChild(eventPane);
-        return imgDiv;
+        } else {
+            OpenLayers.Tile.Image.prototype.initImgDiv.apply(this, arguments);
+        }
     },
 
     /**
@@ -160,7 +131,7 @@ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
     createIFrame: function() {
         var id = this.id+'_iFrame';
         var iframe;
-        if(OpenLayers.Util.getBrowserName() == "msie") {
+        if(OpenLayers.BROWSER_NAME == "msie") {
             // InternetExplorer does not set the name attribute of an iFrame 
             // properly via DOM manipulation, so we need to do it on our own with
             // this hack.
@@ -195,7 +166,6 @@ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
         //bind a listener to the onload of the iframe so that we
         // can register when a tile has finished loading.
         var onload = function() {
-            this.show();
             //normally isLoading should always be true here but there are some
             // right funky conditions where loading and then reloading a tile
             // with the same url *really*fast*. this check prevents sending
@@ -238,13 +208,7 @@ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
         // adding all parameters in layer params as hidden fields to the html
         // form element
         var imageSize = this.layer.getImageSize();
-        var params = OpenLayers.Util.extend(
-            {
-                "BBOX": this.encodeBBOX ? this.bounds.toBBOX() :
-                        this.bounds.toArray(),
-                "WIDTH": imageSize.w,
-                "HEIGHT": imageSize.h
-            }, this.layer.params);
+        var params = OpenLayers.Util.getParameters(this.url);
             
         for(var par in params) {
             var field = document.createElement('input');
@@ -255,8 +219,6 @@ OpenLayers.Tile.Image.IFrame = OpenLayers.Class(OpenLayers.Tile.Image, {
         }   
 
         return form;
-    },
-    
-    CLASS_NAME: "OpenLayers.Tile.Image.IFrame"
-  }
-);
+    }
+};
+
diff --git a/lib/OpenLayers/Tile/WFS.js b/lib/OpenLayers/Tile/WFS.js
index 285ab1e..d892a08 100644
--- a/lib/OpenLayers/Tile/WFS.js
+++ b/lib/OpenLayers/Tile/WFS.js
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
diff --git a/lib/OpenLayers/Tween.js b/lib/OpenLayers/Tween.js
index 8d3a14b..5b16b03 100644
--- a/lib/OpenLayers/Tween.js
+++ b/lib/OpenLayers/Tween.js
@@ -1,9 +1,10 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Console.js
  */
 
diff --git a/lib/OpenLayers/Util.js b/lib/OpenLayers/Util.js
index d197eab..6d7681b 100644
--- a/lib/OpenLayers/Util.js
+++ b/lib/OpenLayers/Util.js
@@ -1,20 +1,32 @@
-/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
  * full list of contributors). Published under the Clear BSD license.  
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
 
 /**
+ * @requires OpenLayers/BaseTypes.js
+ * @requires OpenLayers/BaseTypes/Bounds.js
+ * @requires OpenLayers/BaseTypes/Element.js
+ * @requires OpenLayers/BaseTypes/LonLat.js
+ * @requires OpenLayers/BaseTypes/Pixel.js
+ * @requires OpenLayers/BaseTypes/Size.js
  * @requires OpenLayers/Console.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**
  * Namespace: Util
  */
-OpenLayers.Util = {};
+OpenLayers.Util = OpenLayers.Util || {};
 
 /** 
  * Function: getElement
  * This is the old $() from prototype
+ *
+ * Parameters:
+ * e - {String or DOMElement or Window}
+ * Return:
+ * {Array(DOMElement)}
  */
 OpenLayers.Util.getElement = function() {
     var elements = [];
@@ -46,6 +58,22 @@ OpenLayers.Util.isElement = function(o) {
     return !!(o && o.nodeType === 1);
 };
 
+/**
+ * Function: isArray
+ * Tests that the provided object is an array.
+ * This test handles the cross-IFRAME case not caught
+ * by "a instanceof Array" and should be used instead.
+ * 
+ * Parameters:
+ * a - {Object} the object test.
+ * 
+ * Returns
+ * {Boolean} true if the object is an array.
+ */
+OpenLayers.Util.isArray = function(a) {
+	return (Object.prototype.toString.call(a) === '[object Array]');
+};
+
 /** 
  * Maintain existing definition of $.
  */
@@ -53,53 +81,6 @@ if(typeof window.$  === "undefined") {
     window.$ = OpenLayers.Util.getElement;
 }
 
-/**
- * APIFunction: extend
- * Copy all properties of a source object to a destination object.  Modifies
- *     the passed in destination object.  Any properties on the source object
- *     that are set to undefined will not be (re)set on the destination object.
- *
- * Parameters:
- * destination - {Object} The object that will be modified
- * source - {Object} The object with properties to be set on the destination
- *
- * Returns:
- * {Object} The destination object.
- */
-OpenLayers.Util.extend = function(destination, source) {
-    destination = destination || {};
-    if(source) {
-        for(var property in source) {
-            var value = source[property];
-            if(value !== undefined) {
-                destination[property] = value;
-            }
-        }
-
-        /**
-         * IE doesn't include the toString property when iterating over an object's
-         * properties with the for(property in object) syntax.  Explicitly check if
-         * the source has its own toString property.
-         */
-
-        /*
-         * FF/Windows < 2.0.0.13 reports "Illegal operation on WrappedNative
-         * prototype object" when calling hawOwnProperty if the source object
-         * is an instance of window.Event.
-         */
-
-        var sourceIsEvt = typeof window.Event == "function"
-                          && source instanceof window.Event;
-
-        if(!sourceIsEvt
-           && source.hasOwnProperty && source.hasOwnProperty('toString')) {
-            destination.toString = source.toString;
-        }
-    }
-    return destination;
-};
-
-
 /** 
  * Function: removeItem
  * Remove an object from an array. Iterates through the array
@@ -145,7 +126,7 @@ OpenLayers.Util.clearArray = function(array) {
  * 
  * Parameters:
  * array - {Array}
- * obj - {Object}
+ * obj - {*}
  * 
  * Returns:
  * {Integer} The index at, which the first object was found in the array.
@@ -174,6 +155,7 @@ OpenLayers.Util.indexOf = function(array, obj) {
  * null to an individual parameter will avoid setting the attribute.
  *
  * Parameters:
+ * element - {DOMElement} DOM element to modify.
  * id - {String} The element id attribute to set.
  * px - {<OpenLayers.Pixel>} The left and top style position.
  * sz - {<OpenLayers.Size>}  The width and height style attributes.
@@ -380,7 +362,7 @@ OpenLayers.Util.onImageLoadError = function() {
     this._attempts = (this._attempts) ? (this._attempts + 1) : 1;
     if (this._attempts <= OpenLayers.IMAGE_RELOAD_ATTEMPTS) {
         var urls = this.urls;
-        if (urls && urls instanceof Array && urls.length > 1){
+        if (urls && OpenLayers.Util.isArray(urls) && urls.length > 1){
             var src = this.src.toString();
             var current_url, k;
             for (k = 0; current_url = urls[k]; k++){
@@ -444,6 +426,7 @@ OpenLayers.Util.alphaHack = function() {
 /** 
  * Function: modifyAlphaImageDiv
  * 
+ * Parameters:
  * div - {DOMElement} Div containing Alpha-adjusted Image
  * id - {String}
  * px - {<OpenLayers.Pixel>}
@@ -451,7 +434,7 @@ OpenLayers.Util.alphaHack = function() {
  * imgURL - {String}
  * position - {String}
  * border - {String}
- * sizing {String} 'crop', 'scale', or 'image'. Default is "scale"
+ * sizing - {String} 'crop', 'scale', or 'image'. Default is "scale"
  * opacity - {Float} Fractional value (0.0 - 1.0)
  */ 
 OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL, 
@@ -492,6 +475,7 @@ OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL,
 /** 
  * Function: createAlphaImageDiv
  * 
+ * Parameters:
  * id - {String}
  * px - {<OpenLayers.Pixel>}
  * sz - {<OpenLayers.Size>}
@@ -710,84 +694,6 @@ OpenLayers.Util.Try = function() {
     return returnValue;
 };
 
-
-/** 
- * Function: getNodes
- * 
- * These could/should be made namespace aware?
- * 
- * Parameters:
- * p - {}
- * tagName - {String}
- * 
- * Returns:
- * {Array}
- */
-OpenLayers.Util.getNodes=function(p, tagName) {
-    var nodes = OpenLayers.Util.Try(
-        function () {
-            return OpenLayers.Util._getNodes(p.documentElement.childNodes,
-                                            tagName);
-        },
-        function () {
-            return OpenLayers.Util._getNodes(p.childNodes, tagName);
-        }
-    );
-    return nodes;
-};
-
-/**
- * Function: _getNodes
- * 
- * Parameters:
- * nodes - {Array}
- * tagName - {String}
- * 
- * Returns:
- * {Array}
- */
-OpenLayers.Util._getNodes=function(nodes, tagName) {
-    var retArray = [];
-    for (var i=0, len=nodes.length; i<len; i++) {
-        if (nodes[i].nodeName==tagName) {
-            retArray.push(nodes[i]);
-        }
-    }
-
-    return retArray;
-};
-
-
-
-/**
- * Function: getTagText
- * 
- * Parameters:
- * parent - {}
- * item - {String}
- * index - {Integer}
- * 
- * Returns:
- * {String}
- */
-OpenLayers.Util.getTagText = function (parent, item, index) {
-    var result = OpenLayers.Util.getNodes(parent, item);
-    if (result && (result.length > 0))
-    {
-        if (!index) {
-            index=0;
-        }
-        if (result[index].childNodes.length > 1) {
-            return result.childNodes[1].nodeValue; 
-        }
-        else if (result[index].childNodes.length == 1) {
-            return result[index].firstChild.nodeValue; 
-        }
-    } else { 
-        return ""; 
-    }
-};
-
 /**
  * Function: getXmlNodeValue
  * 
@@ -872,13 +778,11 @@ OpenLayers.Util.toFloat = function (number, precision) {
     if (precision == null) {
         precision = OpenLayers.Util.DEFAULT_PRECISION;
     }
-    var number;
-    if (precision == 0) {
+    if (typeof number !== "number") {
         number = parseFloat(number);
-    } else {
-        number = parseFloat(parseFloat(number).toPrecision(precision));
     }
-    return number;
+    return precision === 0 ? number :
+                             parseFloat(number.toPrecision(precision));
 };
 
 /**
@@ -980,7 +884,7 @@ OpenLayers.Util.distVincenty = function(p1, p2) {
  * lonlat  - {<OpenLayers.LonLat>} (or any object with both .lat, .lon
  *     properties) The start point.
  * brng     - {Float} The bearing (degrees).
- * distance - {Float} The ground distance (meters).
+ * dist     - {Float} The ground distance (meters).
  *
  * Returns:
  * {<OpenLayers.LonLat>} The destination point.
@@ -1039,14 +943,15 @@ OpenLayers.Util.destinationVincenty = function(lonlat, brng, dist) {
  * 
  * Parameters:
  * url - {String} Optional url used to extract the query string.
- *                If null, query string is taken from page location.
+ *                If url is null or is not supplied, query string is taken 
+ *                from the page location.
  * 
  * Returns:
  * {Object} An object of key/value pairs from the query string.
  */
 OpenLayers.Util.getParameters = function(url) {
     // if no url specified, take it from the location bar
-    url = url || window.location.href;
+    url = (url === null || url === undefined) ? window.location.href : url;
 
     //parse out parameters portion of url string
     var paramsString = "";
@@ -1062,11 +967,25 @@ OpenLayers.Util.getParameters = function(url) {
     for(var i=0, len=pairs.length; i<len; ++i) {
         var keyValue = pairs[i].split('=');
         if (keyValue[0]) {
-            var key = decodeURIComponent(keyValue[0]);
-            var value = keyValue[1] || ''; //empty string if no value
 
-            //decode individual values (being liberal by replacing "+" with " ")
-            value = decodeURIComponent(value.replace(/\+/g, " ")).split(",");
+            var key = keyValue[0];
+            try {
+                key = decodeURIComponent(key);
+            } catch (err) {
+                key = unescape(key);
+            }
+            
+            // being liberal by replacing "+" with " "
+            var value = (keyValue[1] || '').replace(/\+/g, " ");
+
+            try {
+                value = decodeURIComponent(value);
+            } catch (err) {
+                value = unescape(value);
+            }
+            
+            // follow OGC convention of comma delimited values
+            value = value.split(",");
 
             //if there's only one value, do not return as array                    
             if (value.length == 1) {
@@ -1321,52 +1240,143 @@ OpenLayers.Util.safeStopPropagation = function(evt) {
 };
 
 /**
- * Function: pagePositon
- * Calculates the position of an element on the page. 
+ * Function: pagePosition
+ * Calculates the position of an element on the page (see
+ * http://code.google.com/p/doctype/wiki/ArticlePageOffset)
+ *
+ * OpenLayers.Util.pagePosition is based on Yahoo's getXY method, which is
+ * Copyright (c) 2006, Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use of this software in source and binary forms, with or
+ * without modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * * Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * 
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * 
+ * * Neither the name of Yahoo! Inc. nor the names of its contributors may be
+ *   used to endorse or promote products derived from this software without
+ *   specific prior written permission of Yahoo! Inc.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+ * POSSIBILITY OF SUCH DAMAGE.
  *
  * Parameters:
  * forElement - {DOMElement}
  * 
  * Returns:
- * {Array} two item array, L value then T value.
+ * {Array} two item array, Left value then Top value.
  */
-OpenLayers.Util.pagePosition = function(forElement) {
-    var valueT = 0, valueL = 0;
-
-    var element = forElement;
-    var child = forElement;
-    while(element) {
-
-        if(element == document.body) {
-            if(OpenLayers.Element.getStyle(child, 'position') == 'absolute') {
-                break;
+OpenLayers.Util.pagePosition =  function(forElement) {
+    // NOTE: If element is hidden (display none or disconnected or any the
+    // ancestors are hidden) we get (0,0) by default but we still do the
+    // accumulation of scroll position.
+
+    var pos = [0, 0];
+    var viewportElement = OpenLayers.Util.getViewportElement();
+    if (!forElement || forElement == window || forElement == viewportElement) {
+        // viewport is always at 0,0 as that defined the coordinate system for
+        // this function - this avoids special case checks in the code below
+        return pos;
+    }
+
+    // Gecko browsers normally use getBoxObjectFor to calculate the position.
+    // When invoked for an element with an implicit absolute position though it
+    // can be off by one. Therefore the recursive implementation is used in
+    // those (relatively rare) cases.
+    var BUGGY_GECKO_BOX_OBJECT =
+        OpenLayers.IS_GECKO && document.getBoxObjectFor &&
+        OpenLayers.Element.getStyle(forElement, 'position') == 'absolute' &&
+        (forElement.style.top == '' || forElement.style.left == '');
+
+    var parent = null;
+    var box;
+
+    if (forElement.getBoundingClientRect) { // IE
+        box = forElement.getBoundingClientRect();
+        var scrollTop = viewportElement.scrollTop;
+        var scrollLeft = viewportElement.scrollLeft;
+
+        pos[0] = box.left + scrollLeft;
+        pos[1] = box.top + scrollTop;
+
+    } else if (document.getBoxObjectFor && !BUGGY_GECKO_BOX_OBJECT) { // gecko
+        // Gecko ignores the scroll values for ancestors, up to 1.9.  See:
+        // https://bugzilla.mozilla.org/show_bug.cgi?id=328881 and
+        // https://bugzilla.mozilla.org/show_bug.cgi?id=330619
+
+        box = document.getBoxObjectFor(forElement);
+        var vpBox = document.getBoxObjectFor(viewportElement);
+        pos[0] = box.screenX - vpBox.screenX;
+        pos[1] = box.screenY - vpBox.screenY;
+
+    } else { // safari/opera
+        pos[0] = forElement.offsetLeft;
+        pos[1] = forElement.offsetTop;
+        parent = forElement.offsetParent;
+        if (parent != forElement) {
+            while (parent) {
+                pos[0] += parent.offsetLeft;
+                pos[1] += parent.offsetTop;
+                parent = parent.offsetParent;
             }
         }
-        
-        valueT += element.offsetTop  || 0;
-        valueL += element.offsetLeft || 0;
-
-        child = element;
-        try {
-            // wrapping this in a try/catch because IE chokes on the offsetParent
-            element = element.offsetParent;
-        } catch(e) {
-            OpenLayers.Console.error(OpenLayers.i18n(
-                                  "pagePositionFailed",{'elemId':element.id}));
-            break;
+
+        var browser = OpenLayers.BROWSER_NAME;
+
+        // opera & (safari absolute) incorrectly account for body offsetTop
+        if (browser == "opera" || (browser == "safari" &&
+              OpenLayers.Element.getStyle(forElement, 'position') == 'absolute')) {
+            pos[1] -= document.body.offsetTop;
         }
-    }
 
-    element = forElement;
-    while(element) {
-        valueT -= element.scrollTop  || 0;
-        valueL -= element.scrollLeft || 0;
-        element = element.parentNode;
+        // accumulate the scroll positions for everything but the body element
+        parent = forElement.offsetParent;
+        while (parent && parent != document.body) {
+            pos[0] -= parent.scrollLeft;
+            // see https://bugs.opera.com/show_bug.cgi?id=249965
+            if (browser != "opera" || parent.tagName != 'TR') {
+                pos[1] -= parent.scrollTop;
+            }
+            parent = parent.offsetParent;
+        }
     }
     
-    return [valueL, valueT];
+    return pos;
 };
 
+/**
+ * Function: getViewportElement
+ * Returns die viewport element of the document. The viewport element is
+ * usually document.documentElement, except in IE,where it is either
+ * document.body or document.documentElement, depending on the document's
+ * compatibility mode (see
+ * http://code.google.com/p/doctype/wiki/ArticleClientViewportElement)
+ */
+OpenLayers.Util.getViewportElement = function() {
+    var viewportElement = arguments.callee.viewportElement;
+    if (viewportElement == undefined) {
+        viewportElement = (OpenLayers.BROWSER_NAME == "msie" &&
+            document.compatMode != 'CSS1Compat') ? document.body :
+            document.documentElement;
+        arguments.callee.viewportElement = viewportElement;
+    }
+    return viewportElement;
+};
 
 /** 
  * Function: isEquivalentUrl
@@ -1526,6 +1536,44 @@ OpenLayers.Util.removeTail = function(url) {
     return head;
 };
 
+/**
+ * Constant: IS_GECKO
+ * {Boolean} True if the userAgent reports the browser to use the Gecko engine
+ */
+OpenLayers.IS_GECKO = (function() {
+    var ua = navigator.userAgent.toLowerCase();
+    return ua.indexOf("webkit") == -1 && ua.indexOf("gecko") != -1;
+})();
+
+/**
+ * Constant: BROWSER_NAME
+ * {String}
+ * A substring of the navigator.userAgent property.  Depending on the userAgent
+ *     property, this will be the empty string or one of the following:
+ *     * "opera" -- Opera
+ *     * "msie"  -- Internet Explorer
+ *     * "safari" -- Safari
+ *     * "firefox" -- Firefox
+ *     * "mozilla" -- Mozilla
+ */
+OpenLayers.BROWSER_NAME = (function() {
+    var name = "";
+    var ua = navigator.userAgent.toLowerCase();
+    if (ua.indexOf("opera") != -1) {
+        name = "opera";
+    } else if (ua.indexOf("msie") != -1) {
+        name = "msie";
+    } else if (ua.indexOf("safari") != -1) {
+        name = "safari";
+    } else if (ua.indexOf("mozilla") != -1) {
+        if (ua.indexOf("firefox") != -1) {
+            name = "firefox";
+        } else {
+            name = "mozilla";
+        }
+    }
+    return name;
+})();
 
 /**
  * Function: getBrowserName
@@ -1538,36 +1586,16 @@ OpenLayers.Util.removeTail = function(url) {
  *           * 'opera' -- Opera
  *           * 'msie'  -- Internet Explorer
  *           * 'safari' -- Safari
- *           * 'firefox' -- FireFox
+ *           * 'firefox' -- Firefox
  *           * 'mozilla' -- Mozilla
  * 
  *          If we are unable to property identify the browser, we 
  *           return an empty string.
  */
 OpenLayers.Util.getBrowserName = function() {
-    var browserName = "";
-    
-    var ua = navigator.userAgent.toLowerCase();
-    if ( ua.indexOf( "opera" ) != -1 ) {
-        browserName = "opera";
-    } else if ( ua.indexOf( "msie" ) != -1 ) {
-        browserName = "msie";
-    } else if ( ua.indexOf( "safari" ) != -1 ) {
-        browserName = "safari";
-    } else if ( ua.indexOf( "mozilla" ) != -1 ) {
-        if ( ua.indexOf( "firefox" ) != -1 ) {
-            browserName = "firefox";
-        } else {
-            browserName = "mozilla";
-        }
-    }
-    
-    return browserName;
+    return OpenLayers.BROWSER_NAME;
 };
 
-
-
-    
 /**
  * Method: getRenderedDimensions
  * Renders the contentHTML offscreen to determine actual dimensions for
@@ -1582,6 +1610,8 @@ OpenLayers.Util.getBrowserName = function() {
  *     useful in the case where we have a limit in one dimension and must 
  *     therefore meaure the flow in the other dimension.
  * options - {Object}
+ *
+ * Allowed Options:
  *     displayClass - {String} Optional parameter.  A CSS class name(s) string
  *         to provide the CSS context of the rendered content.
  *     containerElement - {DOMElement} Optional parameter. Insert the HTML to 
@@ -1758,7 +1788,10 @@ OpenLayers.Util.getFormattedLonLat = function(coordinate, axis, dmsOption) {
     if (!dmsOption) {
         dmsOption = 'dms';    //default to show degree, minutes, seconds
     }
-    var abscoordinate = Math.abs(coordinate)
+	
+	coordinate = (coordinate+540)%360 - 180; // normalize for sphere being round
+	
+    var abscoordinate = Math.abs(coordinate);
     var coordinatedegrees = Math.floor(abscoordinate);
 
     var coordinateminutes = (abscoordinate - coordinatedegrees)/(1/60);
@@ -1768,6 +1801,15 @@ OpenLayers.Util.getFormattedLonLat = function(coordinate, axis, dmsOption) {
     coordinateseconds =  Math.round(coordinateseconds*10);
     coordinateseconds /= 10;
 
+    if( coordinateseconds >= 60) { 
+        coordinateseconds -= 60; 
+        coordinateminutes += 1; 
+        if( coordinateminutes >= 60) { 
+            coordinateminutes -= 60; 
+            coordinatedegrees += 1; 
+        } 
+    }
+    
     if( coordinatedegrees < 10 ) {
         coordinatedegrees = "0" + coordinatedegrees;
     }
diff --git a/lib/Rico/Color.js b/lib/Rico/Color.js
index e62a89d..6741e7c 100644
--- a/lib/Rico/Color.js
+++ b/lib/Rico/Color.js
@@ -1,9 +1,16 @@
+/** 
+ * @requires OpenLayers/BaseTypes/Class.js
+ * @requires OpenLayers/BaseTypes/Element.js
+ */
+
+
 /*
  * This file has been edited substantially from the Rico-released version by
  * the OpenLayers development team.
  *
  * This file is licensed under the Apache License, Version 2.0.
  */
+OpenLayers.Rico = OpenLayers.Rico || {};
 OpenLayers.Rico.Color = OpenLayers.Class({
 
    initialize: function(red, green, blue) {
@@ -118,9 +125,8 @@ shortHexCode.charAt(i));
 OpenLayers.Rico.Color.createColorFromBackground = function(elem) {
 
    var actualColor = 
-      RicoUtil.getElementsComputedStyle(OpenLayers.Util.getElement(elem), 
-                                        "backgroundColor", 
-                                        "background-color");
+      OpenLayers.Element.getStyle(OpenLayers.Util.getElement(elem), 
+                                        "backgroundColor");
 
    if ( actualColor == "transparent" && elem.parentNode ) {
       return OpenLayers.Rico.Color.createColorFromBackground(elem.parentNode);
diff --git a/lib/Rico/Corner.js b/lib/Rico/Corner.js
index 80f73c0..729017b 100644
--- a/lib/Rico/Corner.js
+++ b/lib/Rico/Corner.js
@@ -1,3 +1,8 @@
+/**
+ * @requires Rico/Color.js
+ */
+
+
 /*
  * This file has been edited substantially from the Rico-released
  * version by the OpenLayers development team.
@@ -16,8 +21,8 @@
  * implied. See the License for the specific language governing
  * permissions * and limitations under the License.
  *
- */  
-OpenLayers.Rico = new Object();
+ */
+OpenLayers.Rico = OpenLayers.Rico || {};
 OpenLayers.Rico.Corner = {
 
     round: function(e, options) {
diff --git a/license.txt b/license.txt
index 598af50..c02cd51 100644
--- a/license.txt
+++ b/license.txt
@@ -2,37 +2,30 @@ This license applies to all code and content in the 'branches', 'trunk', and
 'project' directories of the Openlayers code repository at svn.openlayers.org,
 and applies to all release of OpenLayers later than 2.5.
 
-Copyright (c) 2005-2010 OpenLayers Contributors. See authors.txt for
-  full list.
+Copyright 2005-2011 OpenLayers Contributors. All rights reserved. See
+authors.txt for full list.
 
-All rights reserved.
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted (subject to the limitations in the
-disclaimer below) provided that the following conditions are met:
+ 1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
 
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
 
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the
-   distribution.
+THIS SOFTWARE IS PROVIDED BY OPENLAYERS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
- * Neither the name of OpenLayers nor the names of its contributors 
-   may be used to endorse or promote products derived from this 
-   software without specific prior written permission.
-
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-GRANTED BY THIS LICENSE.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+The views and conclusions contained in the software and documentation are those
+of the authors and should not be interpreted as representing official policies,
+either expressed or implied, of OpenLayers Contributors.
\ No newline at end of file
diff --git a/news.txt b/news.txt
deleted file mode 100644
index 8e3694e..0000000
--- a/news.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-OpenLayers 2.10
-  r10722
-  Released 09/09/10
-  http://trac.openlayers.org/wiki/Release/2.10/Notes
-
-OpenLayers 2.9:
- r10251
- Released 04/22/10
- http://trac.openlayers.org/wiki/Release/2.9/Notes
-
-OpenLayers 2.8:
- r9492
- Released 06/22/09
- http://trac.openlayers.org/wiki/Release/2.8/Notes
-
-OpenLayers 2.7:
- r8063
- Released 09/29/08
- http://trac.openlayers.org/wiki/Release/2.7/Notes
-
-OpenLayers 2.6:
- r6945
- Released 04/15/08
- http://trac.openlayers.org/wiki/Release/2.6/Notes
-
-OpenLayers 2.5:
- r4899
- Released 10/09/07 
- http://trac.openlayers.org/wiki/Release/2.5/Notes
-
-OpenLayers 2.4:
- r3198
- Released 05/29/07 
- http://trac.openlayers.org/wiki/Release/2.4/Notes
-
-OpenLayers 2.3:
- r2255
- Released 02/21/07 
- http://trac.openlayers.org/wiki/Release/2.3/Notes
-
-OpenLayers 2.2:
- r1866
- Released 11/15/06 
- http://trac.openlayers.org/wiki/Release/2.2/Notes
-
-OpenLayers 2.1:
- r1521
- Released 10/02/06
- http://trac.openlayers.org/wiki/Release/2.1/Notes
-
-OpenLayers 2.0:
- r1368
- Released 08/25/06
- http://trac.openlayers.org/wiki/Release/2.0/Notes
-
-OpenLayers 1.0
- r787
- Released 06/27/06
- Initial release.
diff --git a/readme.txt b/readme.txt
index de338e8..caeb84f 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,6 +1,7 @@
 OpenLayers
 -=-=-=-=-=-
-Copyright (c) 2005-2010 OpenLayers Contributors. See authors.txt for
+
+Copyright (c) 2005-2011 OpenLayers Contributors. See authors.txt for
 more details.
 
 OpenLayers is a JavaScript library for building map applications
@@ -30,7 +31,7 @@ To include the OpenLayers library in your web page from the root of the site, us
 
 As an example, using bash (with the release files in ~/openlayers ):
 $ cd /var/www/html
-$ cp ~/openlayers/build/OpenLayers.js ./
+$ cp ~/openlayers/OpenLayers.js ./
 $ cp -R ~/openlayers/theme ./
 $ cp -R ~/openlayers/img ./
 
diff --git a/release-license.txt b/release-license.txt
index 7c2f8bb..be4bd95 100644
--- a/release-license.txt
+++ b/release-license.txt
@@ -1,3 +1,3 @@
 This license information is now available at:
-
+ 
 http://svn.openlayers.org/trunk/openlayers/license.txt
diff --git a/tests/Ajax.html b/tests/Ajax.html
index 7608bc1..53142a2 100644
--- a/tests/Ajax.html
+++ b/tests/Ajax.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_Ajax_loadUrl(t) {
diff --git a/tests/BaseTypes.html b/tests/BaseTypes.html
index c17d686..c264d4a 100644
--- a/tests/BaseTypes.html
+++ b/tests/BaseTypes.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_String_startsWith(t) {
@@ -298,6 +298,13 @@
         //run again to make sure the arguments are handled correctly
         newFoo(g_Arg3, g_Arg4);
     }
+    
+    function test_Function_Void(t) {
+        
+        t.plan(1);
+        t.eq(OpenLayers.Function.Void(), undefined, "returns undefined");
+        
+    }
 
     function test_Function_bindAsEventListener(t) {
         t.plan(4);
@@ -357,160 +364,6 @@
         
     }
 
-    function test_Date_toISOString(t) {
-        t.plan(3);
-    
-        var date, str;
-
-        // check valid date
-        date = new Date(Date.UTC(2010, 10, 27, 18, 19, 15, 123));
-        str = OpenLayers.Date.toISOString(date);
-        t.eq(str, "2010-11-27T18:19:15.123Z", "valid date");
-        
-        // check zero padding
-        date = new Date(Date.UTC(2010, 7, 7, 18, 9, 5, 12));
-        str = OpenLayers.Date.toISOString(date);
-        t.eq(str, "2010-08-07T18:09:05.012Z", "zero padding");
-        
-        // check invalid date
-        date = new Date("foo");
-        str = OpenLayers.Date.toISOString(date);
-        t.eq(str, "Invalid Date", "invalid date");
-
-    }
-    
-    function test_Date_parse(t) {
-        
-        t.plan(93);
-        
-        var cases = {
-            "2000": {
-                year: 2000,
-                month: 0,
-                date: 1
-            },
-            "2005-10": {
-                year: 2005,
-                month: 9,
-                date: 1
-            },
-            "1971-07-23": {
-                year: 1971,
-                month: 6,
-                date: 23
-            },
-            "1801-11-20T04:30:15Z": {
-                year: 1801,
-                month: 10,
-                date: 20,
-                hour: 4,
-                minutes: 30,
-                seconds: 15
-            },
-            "1989-06-15T18:30:15.91Z": {
-                year: 1989,
-                month: 5,
-                date: 15,
-                hour: 18,
-                minutes: 30,
-                seconds: 15,
-                milliseconds: 910
-            },
-            "1989-06-15T18:30:15.091Z": {
-                year: 1989,
-                month: 5,
-                date: 15,
-                hour: 18,
-                minutes: 30,
-                seconds: 15,
-                milliseconds: 91
-            },
-            "1989-06-15T13:30:15.091-05": {
-                year: 1989,
-                month: 5,
-                date: 15,
-                hour: 18,
-                minutes: 30,
-                seconds: 15,
-                milliseconds: 91
-            },
-            "2010-08-06T15:21:25-06": { // MDT
-                year: 2010,
-                month: 7,
-                date: 6,
-                hour: 21,
-                minutes: 21,
-                seconds: 25
-            },
-            "2010-08-07T06:21:25+9": { // JSP
-                year: 2010,
-                month: 7,
-                date: 6,
-                hour: 21,
-                minutes: 21,
-                seconds: 25
-            },
-            "2010-08-07T02:51:25+05:30": { // IST
-                year: 2010,
-                month: 7,
-                date: 6,
-                hour: 21,
-                minutes: 21,
-                seconds: 25
-            },
-            "T21:51:25Z": {
-                hour: 21,
-                minutes: 51,
-                seconds: 25
-            },
-            "T02:51:25+05:30": { // IST
-                hour: 21,
-                minutes: 21,
-                seconds: 25
-            },
-            "T2:51:25.1234-7": { // lenient
-                hour: 9,
-                minutes: 51,
-                seconds: 25,
-                milliseconds: 123
-            }
-        };
-
-        var o, got, exp;
-        for (var str in cases) {
-            o = cases[str];
-            got = OpenLayers.Date.parse(str);
-            exp = new Date(Date.UTC(o.year || 0, o.month || 0, o.date || 1, o.hour || 0, o.minutes || 0, o.seconds || 0, o.milliseconds || 0));
-            if ("year" in o) {
-                t.eq(got.getUTCFullYear(), exp.getUTCFullYear(), str + ": correct UTCFullYear");
-                t.eq(got.getUTCMonth(), exp.getUTCMonth(), str + ": correct UTCMonth");
-                t.eq(got.getUTCDate(), exp.getUTCDate(), str + ": correct UTCDate");
-            } else {
-                t.ok(true, str + ": ECMA doesn't specify how years are handled in time only strings");
-                t.ok(true, str + ": ECMA doesn't specify how months are handled in time only strings");
-                t.ok(true, str + ": ECMA doesn't specify how days are handled in time only strings");
-            }
-            if ("hour" in o) {
-                t.eq(got.getUTCHours(), exp.getUTCHours(), str + ": correct UTCHours");
-                t.eq(got.getUTCMinutes(), exp.getUTCMinutes(), str + ": correct UTCMinutes");
-                t.eq(got.getUTCSeconds(), exp.getUTCSeconds(), str + ": correct UTCSeconds");
-                t.eq(got.getUTCMilliseconds(), exp.getUTCMilliseconds(), str + ": correct UTCMilliseconds");
-            } else {
-                t.ok(true, str + ": ECMA doesn't specify how hours are handled in date only strings");
-                t.ok(true, str + ": ECMA doesn't specify how minutes are handled in date only strings");
-                t.ok(true, str + ": ECMA doesn't specify how seconds are handled in date only strings");
-                t.ok(true, str + ": ECMA doesn't specify how milliseconds are handled in date only strings");
-            }
-        }
-        
-        // check invalid date parsing
-        var invalid = OpenLayers.Date.parse("foo");
-        t.ok(invalid instanceof Date, "invalid is a date");
-        t.ok(isNaN(invalid.getTime()), "invalid has no time");
-            
-
-    }
-
   </script>
 </head>
 <body>
diff --git a/tests/BaseTypes/Bounds.html b/tests/BaseTypes/Bounds.html
index fe11c83..f5620af 100644
--- a/tests/BaseTypes/Bounds.html
+++ b/tests/BaseTypes/Bounds.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var bounds; 
     function test_Bounds_constructor (t) {
@@ -76,7 +76,7 @@
     function test_Bounds_toString(t) {
         t.plan( 1 );
         bounds = new OpenLayers.Bounds(1,2,3,4);
-        t.eq( bounds.toString(), "left-bottom=(1,2) right-top=(3,4)", "toString() returns correct value." ); 
+        t.eq( bounds.toString(), "1,2,3,4", "toString() returns correct value." ); 
     }
     function test_Bounds_toArray(t) {
         t.plan( 1 );
@@ -126,7 +126,7 @@
     }
 
     function test_Bounds_fromString(t) {
-       t.plan( 10 );
+       t.plan( 12 );
        bounds = OpenLayers.Bounds.fromString("1,2,3,4");
        t.ok( bounds instanceof OpenLayers.Bounds, "new OpenLayers.Bounds returns Bounds object" );
        t.eq( bounds.left, 1, "bounds.left is set correctly" );
@@ -134,13 +134,18 @@
        t.eq( bounds.right, 3, "bounds.right is set correctly" );
        t.eq( bounds.top, 4, "bounds.top is set correctly" );
 
+       // reverse axis order
+       var reverseBbox = bounds.toBBOX(null, true);
+       t.eq(reverseBbox, "2,1,4,3", "toBBOX with reverseAxisOrder set to true works as expected");
+       var boundsFromReverse = OpenLayers.Bounds.fromString(reverseBbox, true);
+       t.ok(bounds.equals(boundsFromReverse), "Bounds created from string with reverseAxisOrder are correct");
+
        bounds = OpenLayers.Bounds.fromString("1.1,2.2,3.3,4.4");
        t.ok( bounds instanceof OpenLayers.Bounds, "new OpenLayers.Bounds returns Bounds object" );
        t.eq( bounds.left, 1.1, "bounds.left is set correctly" );
        t.eq( bounds.bottom, 2.2, "bounds.bottom is set correctly" );
        t.eq( bounds.right, 3.3, "bounds.right is set correctly" );
        t.eq( bounds.top, 4.4, "bounds.top is set correctly" );
-
     }
 
     function test_Bounds_getSize(t) {
@@ -358,7 +363,7 @@
     }
 
     function test_Bounds_fromArray(t) {
-       t.plan( 5 );
+       t.plan( 7 );
        
        var bbox = [1,2,3,4];
        bounds = OpenLayers.Bounds.fromArray(bbox);
@@ -367,6 +372,12 @@
        t.eq( bounds.bottom, 2, "bounds.bottom is set correctly" );
        t.eq( bounds.right, 3, "bounds.right is set correctly" );
        t.eq( bounds.top, 4, "bounds.top is set correctly" );
+       
+       // reverse axis order
+       var reverseBbox = bounds.toArray(true);
+       t.eq(reverseBbox, [2,1,4,3], "toArray with reverseAxisOrder set to true works as expected");
+       var boundsFromReverse = OpenLayers.Bounds.fromArray(reverseBbox, true);
+       t.ok(bounds.equals(boundsFromReverse), "Bounds created from array with reverseAxisOrder are correct");
     }
 
     function test_Bounds_fromSize(t) {
@@ -595,6 +606,7 @@
         t.ok( bounds.equals(b), "bounds is set correctly");
         
     //null values
+        OpenLayers.Lang.setCode('en');
         var desiredMsg = "You must pass both x and y values to the add function.";
         OpenLayers.Console.error = function(msg) {
             t.eq(msg, desiredMsg, "error correctly reported");
diff --git a/tests/BaseTypes/Class.html b/tests/BaseTypes/Class.html
index bcf827e..2079ce6 100644
--- a/tests/BaseTypes/Class.html
+++ b/tests/BaseTypes/Class.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     // remove this next line at 3.0
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
@@ -162,6 +162,24 @@
              "inheritance doesn't mess with parents");
 
     }
+
+    function test_inheritance_chain(t) {
+        t.plan(1);
+        var A = new OpenLayers.Class({
+            initialize: function() {
+                this.a = 'foo';
+            }
+        });
+        var B = new OpenLayers.Class(A, {});
+        var C = new OpenLayers.Class(B, {
+            initialize: function() {
+                B.prototype.initialize.apply(this, arguments);
+                this.a = this.a + 'bar';
+            }
+        });
+        var c = new C;
+        t.eq(c.a, 'foobar', 'constructor at the root is called');
+    }
     
     // Remove this at 3.0
     function test_Class_backwards(t) {
@@ -308,6 +326,153 @@
         t.ok(!(bad instanceof OpenLayers.Control), "bad is a control, but it is also a layer and we cannot have two superclasses");
         t.ok(bad instanceof OpenLayers.Layer, "bad is a layer, it inherits from the layer first");
     }
+
+    //
+    // IGN's GeoPortal API overwrite prototypes of OpenLayers constructors.
+    // The tests below aim to cover their usage pattens.
+    //
+
+    // the overwrite function under test
+    function overwrite(C, o) {
+        if(typeof o.initialize === "function" &&
+            C === C.prototype.initialize) {
+            // OL 2.11
+
+            var proto = C.prototype;
+            var staticProps = OpenLayers.Util.extend({}, C);
+
+            C = o.initialize;
+
+            C.prototype = proto;
+            OpenLayers.Util.extend(C, staticProps);
+        }
+        OpenLayers.Util.extend(C.prototype, o);
+        return C;
+    }
+
+    function test_overwrite_1(t) {
+        // overwrite constructor
+        t.plan(1);
+        var A = OpenLayers.Class({
+            initialize: function() {
+                this.a = "foo";
+            }
+        });
+        A = overwrite(A, {
+            initialize: function() {
+                this.a = "bar";
+            }
+        });
+        var a = new A;
+        t.eq(a.a, "bar", "ctor overwritten");
+    }
+
+    function test_overwrite_2(t) {
+        // overwrite regular method
+        t.plan(1);
+        var A = OpenLayers.Class({
+            initialize: function() {
+            },
+            method: function() {
+                this.a = "foo";
+            }
+        });
+        A = overwrite(A, {
+            method: function() {
+                this.a = "bar";
+            }
+        });
+        var a = new A;
+        a.method();
+        t.eq(a.a, "bar", "method overwritten");
+    }
+
+    function test_overwrite_3(t) {
+        // overwrite constructor of subclass
+        t.plan(1);
+        var A = OpenLayers.Class({
+            initialize: function() {
+                this.a = "foo";
+            }
+        });
+        var B = OpenLayers.Class(A, {
+            initialize: function() {
+                A.prototype.initialize.call(this);
+            }
+        });
+        B = overwrite(B, {
+            initialize: function() {
+                A.prototype.initialize.call(this);
+                this.a = "bar";
+            }
+        });
+        var b = new B;
+        t.eq(b.a, "bar", "ctor overwritten");
+    }
+
+    function test_overwrite_4(t) {
+        // overwrite constructor of parent class
+        t.plan(1);
+        var A = OpenLayers.Class({
+            initialize: function() {
+                this.a = "foo";
+            }
+        });
+        var B = OpenLayers.Class(A, {
+            initialize: function() {
+                A.prototype.initialize.call(this);
+            }
+        });
+        A = overwrite(A, {
+            initialize: function() {
+                this.a = "bar";
+            }
+        });
+        var b = new B;
+        t.eq(b.a, "bar", "ctor overwritten");
+    }
+
+    function test_overwrite_5(t) {
+        // overwrite constructor of parent class, which itself
+        // doesn't defined "initialize"
+        t.plan(2);
+        var A = OpenLayers.Class({
+            initialize: function() {
+                this.a = "foo";
+            }
+        });
+        var B = OpenLayers.Class(A, {});
+        var _A = A;
+        A = overwrite(A, {
+            initialize: function() {
+                this.a = "bar";
+            }
+        });
+        var b = new B;
+        t.ok(A.prototype === _A.prototype, "A and _A share the prototype");
+        t.eq(b.a, "bar", "ctor overwritten");
+    }
+
+    function test_overwrite_6(t) {
+        // with static methods
+        t.plan(1);
+        var A = OpenLayers.Class({
+            initialize: function() {
+            }
+        });
+        A.staticMethod = function() {};
+        A = overwrite(A, {
+            initialize: function() {
+            }
+        });
+        var exc = false;
+        try {
+            A.staticMethod();
+        } catch(e) {
+            exc = true;
+        }
+        t.ok(!exc, "static method still there");
+    }
   </script>
 </head>
 <body>
diff --git a/tests/BaseTypes/Date.html b/tests/BaseTypes/Date.html
new file mode 100644
index 0000000..2597207
--- /dev/null
+++ b/tests/BaseTypes/Date.html
@@ -0,0 +1,170 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+
+    function test_Date_toISOString(t) {
+        t.plan(3);
+    
+        var date, str;
+
+        // check valid date
+        date = new Date(Date.UTC(2010, 10, 27, 18, 19, 15, 123));
+        str = OpenLayers.Date.toISOString(date);
+        t.eq(str, "2010-11-27T18:19:15.123Z", "valid date");
+        
+        // check zero padding
+        date = new Date(Date.UTC(2010, 7, 7, 18, 9, 5, 12));
+        str = OpenLayers.Date.toISOString(date);
+        t.eq(str, "2010-08-07T18:09:05.012Z", "zero padding");
+        
+        // check invalid date
+        date = new Date("foo");
+        try {
+            str = OpenLayers.Date.toISOString(date);
+        } catch (err) {
+            // some implementations throw RangeError
+            // see https://bugzilla.mozilla.org/show_bug.cgi?id=649575
+            if (err instanceof RangeError) {
+                str = "Invalid Date";
+            }
+        }
+        t.eq(str, "Invalid Date", "invalid date");
+
+    }
+    
+    function test_Date_parse(t) {
+        
+        t.plan(93);
+        
+        var cases = {
+            "2000": {
+                year: 2000,
+                month: 0,
+                date: 1
+            },
+            "2005-10": {
+                year: 2005,
+                month: 9,
+                date: 1
+            },
+            "1971-07-23": {
+                year: 1971,
+                month: 6,
+                date: 23
+            },
+            "1801-11-20T04:30:15Z": {
+                year: 1801,
+                month: 10,
+                date: 20,
+                hour: 4,
+                minutes: 30,
+                seconds: 15
+            },
+            "1989-06-15T18:30:15.91Z": {
+                year: 1989,
+                month: 5,
+                date: 15,
+                hour: 18,
+                minutes: 30,
+                seconds: 15,
+                milliseconds: 910
+            },
+            "1989-06-15T18:30:15.091Z": {
+                year: 1989,
+                month: 5,
+                date: 15,
+                hour: 18,
+                minutes: 30,
+                seconds: 15,
+                milliseconds: 91
+            },
+            "1989-06-15T13:30:15.091-05": {
+                year: 1989,
+                month: 5,
+                date: 15,
+                hour: 18,
+                minutes: 30,
+                seconds: 15,
+                milliseconds: 91
+            },
+            "2010-08-06T15:21:25-06": { // MDT
+                year: 2010,
+                month: 7,
+                date: 6,
+                hour: 21,
+                minutes: 21,
+                seconds: 25
+            },
+            "2010-08-07T06:21:25+9": { // JSP
+                year: 2010,
+                month: 7,
+                date: 6,
+                hour: 21,
+                minutes: 21,
+                seconds: 25
+            },
+            "2010-08-07T02:51:25+05:30": { // IST
+                year: 2010,
+                month: 7,
+                date: 6,
+                hour: 21,
+                minutes: 21,
+                seconds: 25
+            },
+            "T21:51:25Z": {
+                hour: 21,
+                minutes: 51,
+                seconds: 25
+            },
+            "T02:51:25+05:30": { // IST
+                hour: 21,
+                minutes: 21,
+                seconds: 25
+            },
+            "T2:51:25.1234-7": { // lenient
+                hour: 9,
+                minutes: 51,
+                seconds: 25,
+                milliseconds: 123
+            }
+        };
+
+        var o, got, exp;
+        for (var str in cases) {
+            o = cases[str];
+            got = OpenLayers.Date.parse(str);
+            exp = new Date(Date.UTC(o.year || 0, o.month || 0, o.date || 1, o.hour || 0, o.minutes || 0, o.seconds || 0, o.milliseconds || 0));
+            if ("year" in o) {
+                t.eq(got.getUTCFullYear(), exp.getUTCFullYear(), str + ": correct UTCFullYear");
+                t.eq(got.getUTCMonth(), exp.getUTCMonth(), str + ": correct UTCMonth");
+                t.eq(got.getUTCDate(), exp.getUTCDate(), str + ": correct UTCDate");
+            } else {
+                t.ok(true, str + ": ECMA doesn't specify how years are handled in time only strings");
+                t.ok(true, str + ": ECMA doesn't specify how months are handled in time only strings");
+                t.ok(true, str + ": ECMA doesn't specify how days are handled in time only strings");
+            }
+            if ("hour" in o) {
+                t.eq(got.getUTCHours(), exp.getUTCHours(), str + ": correct UTCHours");
+                t.eq(got.getUTCMinutes(), exp.getUTCMinutes(), str + ": correct UTCMinutes");
+                t.eq(got.getUTCSeconds(), exp.getUTCSeconds(), str + ": correct UTCSeconds");
+                t.eq(got.getUTCMilliseconds(), exp.getUTCMilliseconds(), str + ": correct UTCMilliseconds");
+            } else {
+                t.ok(true, str + ": ECMA doesn't specify how hours are handled in date only strings");
+                t.ok(true, str + ": ECMA doesn't specify how minutes are handled in date only strings");
+                t.ok(true, str + ": ECMA doesn't specify how seconds are handled in date only strings");
+                t.ok(true, str + ": ECMA doesn't specify how milliseconds are handled in date only strings");
+            }
+        }
+        
+        // check invalid date parsing
+        var invalid = OpenLayers.Date.parse("foo");
+        t.ok(invalid instanceof Date, "invalid is a date");
+        t.ok(isNaN(invalid.getTime()), "invalid has no time");
+    }
+
+  </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/BaseTypes/Element.html b/tests/BaseTypes/Element.html
index a3fd99c..ca95d78 100644
--- a/tests/BaseTypes/Element.html
+++ b/tests/BaseTypes/Element.html
@@ -1,7 +1,7 @@
 <html>
   <head>
   
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
 
     <script type="text/javascript">
 
@@ -212,7 +212,7 @@
         style = "chickenHead";
         t.ok(OpenLayers.Element.getStyle(elem, style) == null, "get style on 'auto' style returns null");
 
-        if (OpenLayers.Util.getBrowserName() == "opera") {
+        if (OpenLayers.BROWSER_NAME == "opera") {
             elem.style.top = "15px";
             style = "top";
 
diff --git a/tests/BaseTypes/LonLat.html b/tests/BaseTypes/LonLat.html
index 400d30b..009eafe 100644
--- a/tests/BaseTypes/LonLat.html
+++ b/tests/BaseTypes/LonLat.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var lonlat; 
@@ -64,6 +64,7 @@
         t.ok( addpx.equals(ll), "addpx is set correctly");
         
     //null values
+        OpenLayers.Lang.setCode('en');
         var desiredMsg = "You must pass both lon and lat values to the add function.";
         OpenLayers.Console.error = function(msg) {
             t.eq(msg, desiredMsg, "error correctly reported");
@@ -106,11 +107,57 @@
     function test_LonLat_fromString(t) {
         t.plan( 2 );
         lonlat = OpenLayers.LonLat.fromString("6,5");
-        t.ok( lonlat instanceof OpenLayers.LonLat, "new OpenLayers.LonLat returns LonLat object" );
+        t.ok( lonlat instanceof OpenLayers.LonLat, "OpenLayers.LonLat.fromString() returns LonLat object" );
 
         var ll = new OpenLayers.LonLat(6, 5);
         t.ok( lonlat.equals(ll), "lonlat is set correctly");
     }
+    
+    function test_LonLat_fromArray(t) {
+        t.plan( 3 );
+        
+        // (1 test) must return a OpenLayers.LonLat-instance 
+        lonlat = OpenLayers.LonLat.fromArray([6,5]);
+        t.ok( lonlat instanceof OpenLayers.LonLat, "OpenLayers.LonLat.fromArray returns LonLat object" );
+
+        var ll = new OpenLayers.LonLat(6, 5);
+        // (1 test) must return correct LonLat-object
+        t.ok( lonlat.equals(ll), "lonlat is set correctly");
+        
+        
+        // (1 test) check how function deals with illegal arguments, it should 
+        // never throw an exception and always return an instance of 
+        // OpenLayers.LonLat.
+        var unexpectedResult = false,
+            undef,
+            checkArgs = [
+                {},
+                '',
+                6,
+                false,
+                true,
+                [undef, 5],
+                [6, undef]
+            ],
+            returnedVal;
+            
+        try {
+            for(var i = 0, len = checkArgs.length; i < len; i++ ){
+                returnedVal = OpenLayers.LonLat.fromArray( checkArgs[i] );
+                if (!(returnedVal instanceof OpenLayers.LonLat) ) {
+                    unexpectedResult = true;
+                    break;
+                }
+            }
+            // no arguments at all
+            returnedVal = OpenLayers.LonLat.fromArray();
+            unexpectedResult = !(returnedVal instanceof OpenLayers.LonLat);
+        } catch(e) {
+            unexpectedResult = true;
+        } finally {
+            t.ok(!unexpectedResult, "OpenLayers.LonLat.fromArray always returns an instance of OpenLayers.LonLat and doesn't throw an exception when called with unexpected argument.");
+        }
+    }
 
     function test_LonLat_transform(t) {
         t.plan( 6 );
diff --git a/tests/BaseTypes/Pixel.html b/tests/BaseTypes/Pixel.html
index c9da789..1a8bf47 100644
--- a/tests/BaseTypes/Pixel.html
+++ b/tests/BaseTypes/Pixel.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var pixel; 
     
@@ -40,11 +40,22 @@
         t.eq( pixel.x, 5, "changing oldPixel.x doesn't change pixel.x");
     }
 
+    function test_Pixel_distanceTo(t) {
+        t.plan( 2 );
+        var px = new OpenLayers.Pixel(0,-2);
+        pixel = new OpenLayers.Pixel(0,0);
+        t.eq( pixel.distanceTo(px), 2, "(0,0) distanceTo (0,-2) = 2");
+
+        px = new OpenLayers.Pixel(-4,6);
+        pixel = new OpenLayers.Pixel(4,6);
+        t.eq( pixel.distanceTo(px), 8, "(4,6) distanceTo (-4,6) = 8");
+    }
+
     function test_Pixel_equals(t) {
         t.plan( 5 );
         pixel = new OpenLayers.Pixel(5,6);
 
-        px = new OpenLayers.Pixel(5,6);
+        var px = new OpenLayers.Pixel(5,6);
         t.eq( pixel.equals(px), true, "(5,6) equals (5,6)");
 
         px = new OpenLayers.Pixel(1,6);
@@ -74,6 +85,7 @@
         t.ok( pixel.equals(px), "returned pixel is correct");
 
     //null values
+        OpenLayers.Lang.setCode('en');        
         var desiredMsg = "You must pass both x and y values to the add function.";
         OpenLayers.Console.error = function(msg) {
             t.eq(msg, desiredMsg, "error correctly reported");
diff --git a/tests/BaseTypes/Size.html b/tests/BaseTypes/Size.html
index ab0c277..b52906c 100644
--- a/tests/BaseTypes/Size.html
+++ b/tests/BaseTypes/Size.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var Size; 
     
diff --git a/tests/Console.html b/tests/Console.html
index aac38a2..48b27c2 100644
--- a/tests/Console.html
+++ b/tests/Console.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     function test_Console(t) {
         
diff --git a/tests/Control.html b/tests/Control.html
index a94426f..06f057c 100644
--- a/tests/Control.html
+++ b/tests/Control.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     function test_Control_constructor(t) {
         t.plan(4);
@@ -60,7 +60,7 @@
     }
 
     function test_Control_destroy(t) {
-        t.plan(3);
+        t.plan(4);
     
         var map = new OpenLayers.Map('map');
         var control = new OpenLayers.Control();
@@ -70,6 +70,7 @@
         t.ok(map.controls[map.controls.length - 1] != control, "map.controls doesn't contains control");
 
         t.ok(control.map == null, "Control.map is null");
+        t.ok(control.div == null, "Control.div is null");
         t.ok(control.handler == null, "Control.handler is null");
     }
     
diff --git a/tests/Control/ArgParser.html b/tests/Control/ArgParser.html
new file mode 100644
index 0000000..34e9f5b
--- /dev/null
+++ b/tests/Control/ArgParser.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+      function test_getParameters(t) {
+          t.plan(4);
+
+          var c = new OpenLayers.Control.ArgParser(), p;
+
+          p = c.getParameters('http://example.com?fook=foov&bark=barv');
+          t.eq(p, {fook: 'foov', bark: 'barv'}, 'a) params are correct');
+
+          p = c.getParameters('http://example.com#fook=foov&bark=barv');
+          t.eq(p, {fook: 'foov', bark: 'barv'}, 'b) params are correct');
+
+          p = c.getParameters('http://example.com?a=b&b=c#fook=foov&bark=barv');
+          t.eq(p, {a: 'b', b: 'c', fook: 'foov', bark: 'barv'},
+               'c) params are correct');
+
+          p = c.getParameters('http://example.com?a=b&b=c&fook=a&bark=b#fook=foov&bark=barv');
+          t.eq(p, {a: 'b', b: 'c', fook: 'foov', bark: 'barv'},
+               'd) params are correct');
+        }
+    </script>
+</head>
+</html>
diff --git a/tests/Control/Attribution.html b/tests/Control/Attribution.html
index f4f0aa6..c1c1ef2 100644
--- a/tests/Control/Attribution.html
+++ b/tests/Control/Attribution.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     function test_Control_Attribution_constructor (t) {
diff --git a/tests/Control/Button.html b/tests/Control/Button.html
index 925e621..8d5c036 100644
--- a/tests/Control/Button.html
+++ b/tests/Control/Button.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
       function test_Control_Button_constructor (t) {
           t.plan( 2 );
diff --git a/tests/Control/DragFeature.html b/tests/Control/DragFeature.html
index edc7689..cfc3a63 100644
--- a/tests/Control/DragFeature.html
+++ b/tests/Control/DragFeature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     function test_Control_DragFeature_constructor(t) {
         t.plan(3);
@@ -71,11 +71,14 @@
     }
     
     function test_Control_DragFeature_over(t) {
-        t.plan(3);
+        t.plan(5);
+        var log = [];
         var map = new OpenLayers.Map("map");
         var layer = new OpenLayers.Layer.Vector();
         map.addLayer(layer);
-        var control = new OpenLayers.Control.DragFeature(layer);
+        var control = new OpenLayers.Control.DragFeature(layer, {
+            onEnter: function(f) { log.push({feature: f}); }
+        });
         map.addControl(control);
         
         control.activate();
@@ -94,6 +97,45 @@
              "control gets the proper feature from the feature handler");
         t.ok(control.handlers.drag.active,
              "drag handler activated when over a feature");
+        t.eq(log.length, 1,
+             "onEnter called exactly once");
+        t.eq(log[0].feature.id, feature.id,
+             "onEnter called with expected feature");
+    }
+
+    function test_Control_DragFeature_over_touch(t) {
+        t.plan(7);
+        var log = [];
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer.Vector();
+        map.addLayer(layer);
+        var control = new OpenLayers.Control.DragFeature(layer, {
+            onEnter: function(f) { log.push({feature: f}); }
+        });
+        map.addControl(control);
+
+        control.activate();
+        t.ok(!control.handlers.drag.active,
+             "drag handler is not active before touch on a feature");
+
+        // simulate a touch on a feature
+        var feature = new OpenLayers.Feature.Vector();
+        feature.layer = layer;
+        layer.getFeatureFromEvent = function(evt) {
+            return feature;
+        }
+        map.events.triggerEvent("touchstart", {type: "touchstart", touches: ['foo']});
+
+        t.eq(control.feature.id, feature.id,
+             "control gets the proper feature from the feature handler");
+        t.ok(control.handlers.drag.active,
+             "drag handler activated when touch on a feature");
+        t.ok(control.handlers.drag.started, "drag handler has started");
+        t.ok(!control.handlers.drag.stopDown, "drag handler is not stopping down");
+        t.eq(log.length, 1,
+             "onEnter called exactly once");
+        t.eq(log[0].feature.id, feature.id,
+             "onEnter called with expected feature");
     }
 
     function test_Control_DragFeature_down(t) {
@@ -241,11 +283,14 @@
     }
 
     function test_Control_DragFeature_out(t) {
-        t.plan(2);
+        t.plan(4);
+        var log = [];
         var map = new OpenLayers.Map("map");
         var layer = new OpenLayers.Layer.Vector();
         map.addLayer(layer);
-        var control = new OpenLayers.Control.DragFeature(layer);
+        var control = new OpenLayers.Control.DragFeature(layer, {
+            onLeave: function(f) { log.push({feature: f}); }
+        });
         map.addControl(control);
 
         control.activate();
@@ -268,7 +313,66 @@
         map.events.triggerEvent("mousemove", {type: "mousemove"});
         t.ok(control.feature == null,
              "feature is set to null on mouse out");
-        
+        t.eq(log.length, 1,
+             "onLeave called exactly once");
+        t.eq(log[0].feature.id, feature.id,
+             "onLeave called with expected feature");
+    }
+
+    function test_Control_DragFeature_out_touch(t) {
+        t.plan(5);
+        var log = [];
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer.Vector();
+        map.addLayer(layer);
+        var control = new OpenLayers.Control.DragFeature(layer, {
+            onLeave: function(f) { log.push({feature: f}); }
+        });
+        map.addControl(control);
+
+        control.activate();
+
+        // simulate a touch on a feature
+        var feature = new OpenLayers.Feature.Vector();
+        feature.layer = layer;
+        layer.getFeatureFromEvent = function() {
+            return feature;
+        };
+        map.events.triggerEvent("touchstart", {type: "touchstart", touches: ['foo']});
+        t.eq(control.feature.id, feature.id,
+             "feature is set on mouse over");
+
+        // simulate a touch outside the feature
+        layer.getFeatureFromEvent = function() {
+            return null;
+        };
+        map.events.triggerEvent("touchstart", {type: "touchstart", touches: ['foo']});
+        t.ok(control.feature == null,
+             "feature is set to null on mouse out");
+        t.ok(control.handlers.drag.stopDown,
+             "drag handler is stopping down again");
+        t.eq(log.length, 1,
+             "onLeave called exactly once");
+        t.eq(log[0].feature.id, feature.id,
+             "onLeave called with expected feature");
+    }
+
+    function test_Control_DragFeature_click(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer.Vector();
+        map.addLayer(layer);
+        var feature = new OpenLayers.Feature.Vector();
+        feature.layer = layer;
+        var control = new OpenLayers.Control.DragFeature(layer);
+        map.addControl(control);
+
+        control.activate();
+
+        control.overFeature(feature);
+        control.handlers.feature.evt = {which: 1};
+        control.clickFeature(feature);
+        t.eq(control.handlers.drag.started, false, "click after over does not start drag handler");
     }
 
     </script>
diff --git a/tests/Control/DragPan.html b/tests/Control/DragPan.html
index def6bd6..ba5224f 100644
--- a/tests/Control/DragPan.html
+++ b/tests/Control/DragPan.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map, control, layer; 
 
diff --git a/tests/Control/DrawFeature.html b/tests/Control/DrawFeature.html
index 63cff1e..5656647 100644
--- a/tests/Control/DrawFeature.html
+++ b/tests/Control/DrawFeature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_initialize(t) {
@@ -60,7 +60,7 @@
     }
     
     function test_sketch_events(t) {
-        t.plan(6);
+        t.plan(11);
         var map = new OpenLayers.Map("map", {
             resolutions: [1]
         });
@@ -69,37 +69,61 @@
             isBaseLayer: true
         });
         var control = new OpenLayers.Control.DrawFeature(
-            layer, OpenLayers.Handler.Point
+            layer, OpenLayers.Handler.Path, {
+                handlerOptions: {persist: true}
+            }
         );
         map.addLayer(layer);
         map.addControl(control);
         map.zoomToMaxExtent();
-        control.activate();
         
-        var log = {};
+        var log;
         layer.events.on({
             sketchstarted: function(event) {
-                log.event = event;
+                log['sketchstarted'] = event;
             },
             sketchmodified: function(event) {
-                log.event = event;
+                log['sketchmodified'] = event;
             },
             sketchcomplete: function(event) {
-                log.event = event;
+                log['sketchcomplete'] = event;
             }
         });
         
         // mock up draw/modify of a point
+        log = {};
+        control.activate();
+        t.eq(log, {}, "[activate] no event triggered");
+
+        log = {};
+        map.events.triggerEvent("mousemove", {xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(log.sketchstarted.type, "sketchstarted", "[mousemove] sketchstarted triggered");
+        t.geom_eq(log.sketchstarted.vertex, new OpenLayers.Geometry.Point(-200, 125), "[mousemove] correct vertex");
+        t.eq(log.sketchmodified.type, "sketchmodified", "[mousemove] sketchmodified triggered");
+        t.geom_eq(log.sketchmodified.vertex, new OpenLayers.Geometry.Point(-200, 125), "[mousemove] correct vertex");
+
         map.events.triggerEvent("mousedown", {xy: new OpenLayers.Pixel(0, 0)});
-        t.eq(log.event.type, "sketchstarted", "[mousedown] sketchstarted triggered");
-        t.geom_eq(log.event.vertex, new OpenLayers.Geometry.Point(-200, 125), "[mousedown] correct vertex");
+
+        log = {};
+        map.events.triggerEvent("mouseup", {xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(log.sketchmodified.type, "sketchmodified", "[mouseup] sketchmodified triggered");
+        t.geom_eq(log.sketchmodified.vertex, new OpenLayers.Geometry.Point(-200, 125), "[mouseup] correct vertex");
+
+        log = {};
         map.events.triggerEvent("mousemove", {xy: new OpenLayers.Pixel(10, 10)});
-        t.eq(log.event.type, "sketchmodified", "[mousemove] sketchmodified triggered");
-        t.geom_eq(log.event.vertex, new OpenLayers.Geometry.Point(-190, 115), "[mousemove] correct vertex");
-        map.events.triggerEvent("mouseup", {xy: new OpenLayers.Pixel(10, 10)});
-        t.eq(log.event.type, "sketchcomplete", "[mouseup] sketchcomplete triggered");
-        t.geom_eq(log.event.feature.geometry, new OpenLayers.Geometry.Point(-190, 115), "[mouseup] correct geometry");
-        
+        t.eq(log.sketchmodified.type, "sketchmodified", "[mousemove] sketchmodified triggered");
+        t.geom_eq(log.sketchmodified.vertex, new OpenLayers.Geometry.Point(-190, 115), "[mousemove] correct vertex");
+
+        log = {};
+        map.events.triggerEvent("dblclick", {xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(log.sketchcomplete.type, "sketchcomplete", "[dblclick] sketchcomplete triggered");
+        t.geom_eq(log.sketchcomplete.feature.geometry,
+                  new OpenLayers.Geometry.LineString([
+                      new OpenLayers.Geometry.Point(-200, 125),
+                      new OpenLayers.Geometry.Point(-190, 115)
+                  ]),
+                  "[dblclick] correct geometry");
+
         map.destroy();
     }
 
diff --git a/tests/Control/EditingToolbar.html b/tests/Control/EditingToolbar.html
new file mode 100644
index 0000000..031868d
--- /dev/null
+++ b/tests/Control/EditingToolbar.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+    function test_ctor_draw(t) {
+        t.plan(4);
+        var map = new OpenLayers.Map('map');
+        var vLayer = new OpenLayers.Layer.Vector();
+        map.addLayer(vLayer);
+        
+        var editingToolbar = new OpenLayers.Control.EditingToolbar(vLayer);
+        map.addControl(editingToolbar);
+        
+        t.ok(editingToolbar instanceof OpenLayers.Control.EditingToolbar,
+                "new OpenLayers.Control.EditingToolbar returns object" );
+        t.ok(editingToolbar.controls[0] instanceof OpenLayers.Control.Navigation,
+                "EditingToolbar contains Control.Navigation object" );
+        t.eq(editingToolbar.controls[0].active, true,
+                "First control is active" );
+        t.eq(editingToolbar.controls.length, 4,
+                "EditingToolbar contains 4 Controls" );
+        
+        map.destroy();
+    }
+  </script>
+</head>
+<body>
+    <div id="map" style="width: 1024px; height: 512px;"/>
+</body>
+</html>
diff --git a/tests/Control/Geolocate.html b/tests/Control/Geolocate.html
new file mode 100644
index 0000000..aa12c04
--- /dev/null
+++ b/tests/Control/Geolocate.html
@@ -0,0 +1,141 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+    var map, control, centerLL
+        watch = null,
+        geolocation= {
+            getCurrentPosition: function(f) {
+                f({
+                    coords: { latitude: 10, longitude: 10 }
+                });
+            },
+            watchPosition: function(f) {
+                watch = true;
+            },
+            clearWatch: function() {
+                watch = null;
+            }
+        };
+
+    function test_initialize(t) {
+        t.plan(3);
+        control = new OpenLayers.Control.Geolocate({geolocationOptions: {foo: 'bar'}});
+        t.ok(control instanceof OpenLayers.Control.Geolocate,
+             "new OpenLayers.Control returns object" );
+        t.eq(control.displayClass, "olControlGeolocate", "displayClass is correct" );
+        t.eq(control.geolocationOptions.foo, 'bar',
+             'provided geolocation options are set in the geolocationOptions prop');
+    }
+    function test_bind(t) {
+        t.plan(3);
+        var control = new OpenLayers.Control.Geolocate({
+            geolocation: geolocation
+        });
+        control.events.register('locationupdated', null, function() {
+            t.ok(true, 'locationupdated event is fired when bound');
+        });
+        map.addControl(control);
+        control.activate();
+        var center = map.getCenter();
+        t.eq(center.lon, 10, 'bound control sets the map lon');
+        t.eq(center.lat, 10, 'bound control sets the map lat');
+        control.deactivate();
+        map.removeControl(control);
+        map.setCenter(centerLL);
+    }
+    function test_unbind(t) {
+        t.plan(3);
+        var control = new OpenLayers.Control.Geolocate({
+            geolocation: geolocation,
+            bind: false
+        });
+        control.events.register('locationupdated', null, function() {
+            t.ok(true, 'locationupdated event is fired when unbound');
+        });
+        map.addControl(control);
+        control.activate();
+        var center = map.getCenter();
+        t.eq(center.lon, 0, 'unbound control doesnt sets the map lon');
+        t.eq(center.lat, 0, 'unbound control doesnt sets the map lat');
+        control.deactivate();
+        map.removeControl(control);
+        map.setCenter(centerLL);
+    }
+    function test_getCurrentLocation(t) {
+        t.plan(5);
+        var control = new OpenLayers.Control.Geolocate({
+            geolocation: geolocation
+        });
+        map.addControl(control);
+        t.eq(control.getCurrentLocation(), false, 'getCurrentLocation return false if control hasnt been activated');
+        control.activate();
+        map.setCenter(centerLL);
+        t.eq(control.getCurrentLocation(), true, 'getCurrentLocation return true if control has been activated');
+        var center = map.getCenter();
+        t.eq(center.lon, 10, 'bound control sets the map lon when calling getCurrentLocation');
+        t.eq(center.lat, 10, 'bound control sets the map lat when calling getCurrentLocation');
+        control.deactivate();
+        map.removeControl(control);
+        map.setCenter(centerLL);
+        var control2 = new OpenLayers.Control.Geolocate({
+            geolocation: geolocation
+        });
+        map.addControl(control2);
+        t.eq(control2.getCurrentLocation(), false, 'getCurrentLocation return false if control is in watch mode');
+        control2.deactivate();
+        map.removeControl(control2);
+        map.setCenter(centerLL);
+    }
+    function test_watch(t) {
+        t.plan(2);
+        var control = new OpenLayers.Control.Geolocate({
+            geolocation: geolocation,
+            watch: true
+        });
+        map.addControl(control);
+        control.activate();
+        t.eq(watch, true, 'watch option makes calls to watchPosition');
+        control.deactivate();
+        t.eq(watch, null, 'deactivate control calls the clearwatch');
+        map.removeControl(control);
+        map.setCenter(centerLL);
+    }
+    function test_uncapable(t) {
+        t.plan(1);
+        var control = new OpenLayers.Control.Geolocate({
+            geolocation: null,
+            bind: false
+        });
+        control.events.register('locationuncapable', null, function() {
+            t.ok(true,'uncapable browser fired locationuncapable event');
+        });
+        map.addControl(control);
+        control.activate();
+    }
+    function test_destroy(t) {
+        t.plan(1);
+        var control = new OpenLayers.Control.Geolocate({
+            geolocation: geolocation,
+            watch: true
+        });
+        control.activate();
+        control.destroy();
+        t.ok(control.active === false, "control deactivated before being destroyed");
+    }
+
+    function loader() {
+        map = new OpenLayers.Map('map');
+        var layer = new OpenLayers.Layer.WMS("Test Layer",
+            "http://labs.metacarta.com/wms-c/Basic.py?",
+            {layers: "basic"});
+        map.addLayer(layer);
+        centerLL = new OpenLayers.LonLat(0,0);
+        map.setCenter(centerLL, 5);
+    }
+  </script>
+</head>
+<body onload="loader()">
+    <div id="map" style="width: 256px; height: 256px;"/>
+</body>
+</html>
diff --git a/tests/Control/GetFeature.html b/tests/Control/GetFeature.html
index d0a3060..bbdd0e4 100644
--- a/tests/Control/GetFeature.html
+++ b/tests/Control/GetFeature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     function test_Control_GetFeature_constructor(t) {
         t.plan(3);
diff --git a/tests/Control/Graticule.html b/tests/Control/Graticule.html
index 0001d2d..96f0104 100644
--- a/tests/Control/Graticule.html
+++ b/tests/Control/Graticule.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script src="http://proj4js.org/lib/proj4js-compressed.js"></script>
     <script type="text/javascript">
 
diff --git a/tests/Control/KeyboardDefaults.html b/tests/Control/KeyboardDefaults.html
index 0f83f47..225699e 100644
--- a/tests/Control/KeyboardDefaults.html
+++ b/tests/Control/KeyboardDefaults.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     function test_Control_KeyboardDefaults_constructor (t) {
@@ -12,6 +12,18 @@
         t.eq( control.displayClass,  "olControlKeyboardDefaults", "displayClass is correct" );
     }
 
+    function test_Control_KeyboardDefaults_destroy (t) {
+        t.plan(2);
+    
+        map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control.KeyboardDefaults();
+        map.addControl(control);
+        t.ok(control.handler != null, "control.handler is created");
+        control.destroy();
+        t.ok(control.handler == null, "control.handler is null after destroy");
+        map.destroy();
+    }
+
     function test_Control_KeyboardDefaults_addControl (t) {
         t.plan( 4 );
 
diff --git a/tests/Control/LayerSwitcher.html b/tests/Control/LayerSwitcher.html
index e058d6b..7b1e568 100644
--- a/tests/Control/LayerSwitcher.html
+++ b/tests/Control/LayerSwitcher.html
@@ -1,8 +1,9 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
+    OpenLayers.Lang.setCode('en');
 
     function test_Control_LayerSwitcher_constructor (t) {
         t.plan( 2 );
@@ -71,7 +72,7 @@
 
     function test_Control_LayerSwitcher_redraw (t) {
 
-        t.plan( (OpenLayers.Util.getBrowserName() == "opera" ? 9 : 19 ) );
+        t.plan( (OpenLayers.BROWSER_NAME == "opera" ? 9 : 19 ) );
 
         map = new OpenLayers.Map('map');
         var layer = new OpenLayers.Layer.WMS("WMS", 
@@ -98,7 +99,7 @@
         t.eq(markersInput.value, markers.name, "wms correctly valued");
 
         t.eq(false, control.checkRedraw(), "check redraw is false");
-        if (OpenLayers.Util.getBrowserName() != "opera") { 
+        if (OpenLayers.BROWSER_NAME != "opera") { 
             control = new OpenLayers.Control.LayerSwitcher();
             var myredraw = control.redraw;
             control.redraw = function() { 
diff --git a/tests/Control/Measure.html b/tests/Control/Measure.html
index 29fefe5..045f807 100644
--- a/tests/Control/Measure.html
+++ b/tests/Control/Measure.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialze(t) {
@@ -19,7 +19,6 @@
         
     }
     
-    // test for <http://trac.openlayers.org/ticket/2691>
     function test_cancel(t) {
         
         t.plan(4);
@@ -37,7 +36,7 @@
         map.addControl(control);
         
         control.activate();
-        
+
         try {
             control.cancel();
             t.ok(true, "calling cancel before drawing works");
@@ -52,68 +51,333 @@
                 xy: new OpenLayers.Pixel(x, y)
             })
         };
+
+        trigger("mousemove", 0, 0);
+        // keep a reference to the line being drawn
+        var line = control.handler.line;
         trigger("mousedown", 0, 0);
         trigger("mouseup", 0, 0);
         trigger("mousemove", 10, 10);
         trigger("mousedown", 10, 10);
         trigger("mouseup", 10, 10);
+        trigger("dblclick", 10, 10);
+
+        // the geometry is finalized, we first confirm that it is persisted
+        t.ok(line.layer === control.handler.layer, "feature persists");
         
-        // confirm that the sketch persists
-        t.eq(control.handler.layer.features.length, 1, "feature persists");
         // cancel and see that sketch is gone
         control.cancel();
-        t.eq(control.handler.layer.features.length, 0, "feature is gone after cancel");
-        
+        t.eq(line.layer, null, "feature is gone after cancel");
+
         map.destroy();
-        
     }
 
-    function test_partial(t) {
-        t.plan(1);
+    // test for <http://trac.openlayers.org/ticket/2691>
+    function test_partial(t) {        
+
+        t.plan(28);        
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            units: "m",
+            resolutions: [1],
+            layers: [
+                new OpenLayers.Layer(null, {
+                    isBaseLayer: true
+                })
+            ],
+            center: new OpenLayers.LonLat(0, 0)
+        });
+
+        var log = [];
+        var control = new OpenLayers.Control.Measure(
+            OpenLayers.Handler.Path, {persist: true, 
+                eventListeners: {
+                    measurepartial: function(evt) {
+                        log.push(evt);
+                    },
+                    measure: function(evt){
+                        log.push(evt);
+                    }
+                },
+                handlerOptions: {
+                    pixelTolerance: 0,
+                    dblclickTolerance: 0
+                }
+            }
+        );
+        map.addControl(control);
+        control.activate();
+        
+        
+        // convenience function to trigger mouse events
+        function trigger(type, x, y) {
+            map.events.triggerEvent(type, {
+                xy: new OpenLayers.Pixel(x, y)
+            })
+        };
+        
+        // delay in seconds
+        var delay = control.partialDelay / 1000;
+        
+        // establish first point
+        trigger("mousemove", 0, 0);
+        trigger("mousedown", 0, 0);
+        trigger("mouseup", 0, 0);
 
-        // set up
+        
+        // a) move 10 pixels and click
+        trigger("mousemove", 0, 10);
+        trigger("mousedown", 0, 10);
+        trigger("mouseup", 0, 10);
+        
+        // confirm measurepartial is not fired before delay
+        t.eq(log.length, 0, "a) no event fired yet")
 
-        var map, layer, control, geometry, log;
+        t.delay_call( 
+            // wait for delay then confirm event was logged
+            delay, function() {
+                t.eq(log.length, 1, "a) event logged")
+                t.eq(log[0] && log[0].type, "measurepartial", "a) event logged");
+                t.eq(log[0] && log[0].measure, 10, "a) correct measure");
+                
+                // b) move 10 pixels and click
+                trigger("mousemove", 0, 20);
+                trigger("mousedown", 0, 20);
+                trigger("mouseup", 0, 20);
+                
+                // confirm measurepartial is not fired before delay
+                t.eq(log.length, 1, "b) no event fired yet")
+                
+            },
+            delay, function() {
+                t.eq(log.length, 2, "b) event logged");
+                t.eq(log[1] && log[1].type, "measurepartial", "b) correct type");
+                t.eq(log[1] && log[1].measure, 20, "b) correct measure");
 
-        map = new OpenLayers.Map("map", {units: "m"});
+                // c) move 10 pixels and click
+                trigger("mousemove", 0, 30);
+                trigger("mousedown", 0, 30);
+                trigger("mouseup", 0, 30);
+            },
+            // wait for half delay and confirm event not logged
+            delay / 2, function() {
+                // confirm measurepartial is not fired before delay
+                t.eq(log.length, 2, "c) no event fired yet")
+            },
+            // wait for rest of delay and confirm event logged
+            delay / 2, function() {
+                t.eq(log.length, 3, "c) event logged");
+                t.eq(log[2] && log[2].type, "measurepartial", "c) correct type");
+                t.eq(log[2] && log[2].measure, 30, "c) correct measure");
+                
+                // d) move 10 pixels and click
+                trigger("mousemove", 0, 40);
+                trigger("mousedown", 0, 40);
+                trigger("mouseup", 0, 40);
 
-        layer = new OpenLayers.Layer(null, {isBaseLayer: true});
-        map.addLayer(layer);
+                // confirm measurepartial is not fired before delay
+                t.eq(log.length, 3, "d) no event fired yet")
+                
+                // e) double click to finish
+                trigger("dblclick", 0, 40);
 
-        map.zoomToMaxExtent();
+                t.eq(log.length, 4, "e) event logged");
+                t.eq(log[3] && log[3].type, "measure", "e) correct type");
+                t.eq(log[3] && log[3].measure, 40, "e) correct measure");                
+            },
+            // wait for rest of delay and confirm no measurepartial logged
+            delay, function() {
+                // confirm measurepartial is not fired after dblclick
+                t.eq(log.length, 4, "e) no additional event fired");
+                
+                // change to freehand mode and confirm synchronous event dispatch
+                control.handler.freehand = true;
+                // clear log
+                log = [];
+                
+                // f) establish first freehand point
+                trigger("mousemove", 0, 0);
+                trigger("mousedown", 0, 0);
+                t.eq(log.length, 0, "f) no event fired yet")
+                
+                // g) move 10 pixels
+                trigger("mousemove", 10, 0);
+
+                t.eq(log.length, 1, "g) event logged");
+                t.eq(log[0] && log[0].type, "measurepartial", "g) correct type");
+                t.eq(log[0] && log[0].measure, 10, "g) correct measure");
+                
+                // h) move 10 pixels
+                trigger("mousemove", 20, 0);
+
+                t.eq(log.length, 2, "h) event logged");
+                t.eq(log[1] && log[1].type, "measurepartial", "h) correct type");
+                t.eq(log[1] && log[1].measure, 20, "h) correct measure");
 
-        control = new OpenLayers.Control.Measure(OpenLayers.Handler.Path, {
-            partialDelay: null
+                // i) mouse up to finish
+                trigger("mouseup", 20, 0);
+
+                t.eq(log.length, 3, "i) event logged");
+                t.eq(log[2] && log[2].type, "measure", "i) correct type");
+                t.eq(log[2] && log[2].measure, 20, "i) correct measure");
+
+                // j) clean up
+                log = [];
+                map.destroy();
+            },
+            // wait for delay and confirm event not logged
+            delay, function() {
+                t.eq(log.length, 0, "j) no event fired after destroy");
+            }
+        );
+        
+    }
+
+    function test_immediate(t) {
+        t.plan(32);
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            units: "m",
+            resolutions: [1],
+            layers: [
+                new OpenLayers.Layer(null, {
+                    isBaseLayer: true
+                })
+            ],
+            center: new OpenLayers.LonLat(0, 0)
         });
 
+        var log = [];
+        var control = new OpenLayers.Control.Measure(
+            OpenLayers.Handler.Path, {
+                persist: true,
+                immediate: true,
+                eventListeners: {
+                    measurepartial: function(evt) {
+                        log.push(evt);
+                    },
+                    measure: function(evt){
+                        log.push(evt);
+                    }
+                },
+                handlerOptions: {
+                    pixelTolerance: 0,
+                    dblclickTolerance: 0
+                }
+            }
+        );
         map.addControl(control);
         control.activate();
 
-        control.events.on({
-            "measurepartial": function(e) {
-                log.measure = e.measure;
-            }
-        });
+        // convenience function to trigger mouse events
+        function trigger(type, x, y) {
+            map.events.triggerEvent(type, {
+                xy: new OpenLayers.Pixel(x, y)
+            })
+        };
 
-        // test
+        // delay in seconds
+        var delay = control.partialDelay / 1000;
 
-        geometry = new OpenLayers.Geometry.LineString([
-            new OpenLayers.Geometry.Point(1, 1),
-            new OpenLayers.Geometry.Point(2, 1)
-        ]);
+        // a) establish first point
+        trigger("mousemove", 0, 0);
+        trigger("mousedown", 0, 0);
+        trigger("mouseup", 0, 0);
 
-        log = {};
-        control.measurePartial(null, geometry);
-        geometry.components[1].x = 3;
-        t.delay_call(0.2, function() {
+        // move 10 pixels
+        trigger("mousemove", 0, 10);
 
-            t.eq(log.measure, 1, "partial measure is correct");
+        t.eq(log.length, 0, "a) no event fired yet");
 
-            // tear down
-            map.destroy
-        });
-    };
+        t.delay_call(
+            delay, function() {
+                // confirm measurepartial is fired
+                t.eq(log.length, 1, "a) event logged");
+                t.ok(log[0] && log[0].type == "measurepartial", "a) correct type");
+                // mousemove within the partialDelay fires no event, so the
+                // measure below is the one of the initial point
+                t.ok(log[0] && log[0].measure == 0, "a) correct measure");
+
+                // b) move 10 pixels
+                trigger("mousemove", 0, 20);
+                // c) move 10 pixels again
+                trigger("mousemove", 0, 30);
+
+                // confirm measurepartial is fired 2 times
+                t.eq(log.length, 3, "b) event logged");
+                t.eq(log[1] && log[1].type, "measurepartial", "b) correct type");
+                t.eq(log[1] && log[1].measure, 20, "b) correct measure");
+                t.eq(log[2] && log[2].type, "measurepartial", "c) correct type");
+                t.eq(log[2] && log[2].measure, 30, "c) correct measure");
+
+                // d) switch immediate measurement off
+                control.setImmediate(false);
+                t.eq(control.immediate, false, "d) immediate is false");
+
+                // e) move 10 pixels and click
+                trigger("mousemove", 0, 40);
+                trigger("mousedown", 0, 40);
+                trigger("mouseup", 0, 40);
+                // confirm measurepartial is not fired before delay
+                t.eq(log.length, 3, "e) no event fired yet")
+            },
+            // wait for delay then confirm event was logged
+            delay, function() {
+                t.eq(log.length, 4, "e) event logged")
+                t.ok(log[3] && log[3].type == "measurepartial", "e) correct type");
+                t.ok(log[3] && log[3].measure == 40, "e) correct measure");
+
+                // f) switch immediate measurement on
+                control.setImmediate(true);
+                t.eq(control.immediate, true, "f) immediate is true");
+
+                // g) move 10 pixels
+                trigger("mousemove", 0, 50);
+            },
+            delay, function() {
+                t.eq(log.length, 5, "g) event logged");
+                t.ok(log[4] && log[4].type == "measurepartial", "g) correct type");
+                t.ok(log[4] && log[4].measure == 50, "g) correct measure");
 
+                // h) move 10 pixels
+                trigger("mousemove", 0, 60);
+
+                t.eq(log.length, 6, "h) event logged");
+                t.ok(log[5] && log[5].type == "measurepartial", "h) correct type");
+                t.ok(log[5] && log[5].measure == 60, "h) correct measure");
+
+                // i) double click to finish
+                trigger("mousedown", 0, 60);
+                t.eq(log.length, 7, "i) event logged");
+                t.eq(log[6] && log[6].type, "measurepartial", "i) correct type");
+                t.eq(log[6] && log[6].measure, 60, "i) correct measure");
+                trigger("mouseup", 0, 60);
+                t.eq(log.length, 7, "i) no event fired yet");
+            },
+            delay, function() {
+                t.eq(log.length, 8, "j) event logged");
+                t.eq(log[7] && log[7].type, "measurepartial", "j) correct type");
+                t.eq(log[7] && log[7].measure, 60, "j) correct measure");
+
+                trigger("dblclick", 0, 60);
+                t.eq(log.length, 9, "k) event logged");
+                t.eq(log[8] && log[8].type, "measure", "k) correct type");
+                t.eq(log[8] && log[8].measure, 60, "k) correct measure");
+                // clear log
+                log = [];
+
+                // l) clean up
+                map.destroy();
+                // wait for delay and confirm event not logged
+            },
+            delay, function() {
+                t.eq(log.length, 0, "l) no event fired after destroy");
+            }
+        );
+    }
+    
   </script>
 </head>
 <body>
diff --git a/tests/Control/ModifyFeature.html b/tests/Control/ModifyFeature.html
index 75de509..21682c6 100644
--- a/tests/Control/ModifyFeature.html
+++ b/tests/Control/ModifyFeature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_initialize(t) {
@@ -74,7 +74,7 @@
     }
     
     function test_handleKeypress(t) {
-        t.plan(11);
+        t.plan(16);
 
         /**
          * There are two things that we want to test here
@@ -101,6 +101,8 @@
         // mock up vertex deletion
         control.dragControl.feature = point;
         control.feature = poly;
+        // we cannot use selectFeature since the control is not part of a map
+        control._originalGeometry = poly.geometry.clone();
         control.vertices = [point];
         point.geometry.parent = {
             removeComponent: function(geometry) {
@@ -108,9 +110,18 @@
                      "vertex deletion: removeComponent called on parent with proper geometry");
             }
         };
-        layer.events.on({"featuremodified": function(event) {
-            t.eq(event.feature.id, poly.id, "vertex deletion: featuremodifed triggered");
-        }});
+        layer.events.on({
+            "featuremodified": function(event) {
+                t.ok(event.feature.modified !== null, "modified property of feature should have been set");
+                t.eq(event.feature.id, poly.id, "vertex deletion: featuremodifed triggered");
+            },
+            "vertexremoved": function(evt) {
+                layer.events.unregister("vertexremoved", this, arguments.callee);
+                t.eq(evt.feature.id, poly.id, "vertexremoved triggered with correct feature");
+                t.eq(evt.vertex.id, point.geometry.id, "vertexremoved triggered with correct vertex");
+                t.eq(evt.pixel, "foo", "vertexremoved triggered with correct pixel");
+            }
+        });
         layer.drawFeature = function(feature) {
             t.eq(feature.id, poly.id,
                  "vertex deletion: drawFeature called with the proper feature");
@@ -123,7 +134,7 @@
                  "vertex deletion: onModification called with the proper feature");
         };
         // run the above four tests twice
-        control.handleKeypress({keyCode:delKey});
+        control.handleKeypress({keyCode:delKey, xy: "foo"});
         control.handleKeypress({keyCode:dKey});
         t.eq(control.feature.state, OpenLayers.State.UPDATE, "feature state set to update");
 
@@ -473,9 +484,13 @@
     }
 
     function test_onModificationStart(t) {
-        t.plan(1);
+        t.plan(5);
         var map = new OpenLayers.Map("map");
-        var layer = new OpenLayers.Layer.Vector();
+        var layer = new OpenLayers.Layer.Vector(null, {
+            styleMap: new OpenLayers.StyleMap({
+                "vertex": new OpenLayers.Style({foo: "bar"})
+            }, {extendDefault: false})
+        });
         map.addLayer(layer);
         var control = new OpenLayers.Control.ModifyFeature(layer);
         map.addControl(control);
@@ -483,14 +498,38 @@
         
         // make sure onModificationStart is called on feature selection
         var testFeature = new OpenLayers.Feature.Vector(
-            new OpenLayers.Geometry.Point(Math.random(), Math.random())
+            OpenLayers.Geometry.fromWKT("LINESTRING(3 4,10 50,20 25)")
         );
+        layer.addFeatures([testFeature]);
         control.onModificationStart = function(feature) {
             t.eq(feature.id, testFeature.id,
                  "onModificationStart called with the right feature");
         };
         control.selectFeature(testFeature);
         
+        // make sure styles are set correctly from default style
+        t.eq(control.virtualStyle, OpenLayers.Util.applyDefaults({
+            strokeOpacity: 0.3,
+            fillOpacity: 0.3
+        }, OpenLayers.Feature.Vector.style["default"]), "virtual style set correctly");
+        var vertex = layer.features[layer.features.length-1];
+        t.eq(vertex.renderIntent, null, "vertex style set correctly - uses default style");
+        control.unselectFeature(testFeature);
+        
+        // make sure styles are set correctly with vertexRenderIntent
+        control = new OpenLayers.Control.ModifyFeature(layer, {vertexRenderIntent: "vertex"});
+        map.addControl(control);
+        control.activate();
+        control.selectFeature(testFeature);
+        t.eq(control.virtualStyle, {
+            strokeOpacity: 0.3,
+            fillOpacity: 0.3,
+            foo: "bar"
+        }, "virtual style set correctly");
+        var vertex = layer.features[layer.features.length-1];
+        t.eq(vertex.renderIntent, "vertex", "vertex style set correctly - uses 'vertex' renderIntent");
+        control.unselectFeature(testFeature);
+        
         map.destroy();
     }
     
@@ -612,7 +651,7 @@
     
     function test_standalone(t) {
         
-        t.plan(17);
+        t.plan(18);
         var map = new OpenLayers.Map("map");
         var layer = new OpenLayers.Layer.Vector();
         
@@ -637,6 +676,7 @@
         var log = [];
         layer.events.on({
             beforefeaturemodified: function(evt) {
+                layer.events.unregister("beforefeaturemodified", this, arguments.callee);
                 log.push(evt);
             },
             featuremodified: function(evt) {
@@ -654,7 +694,9 @@
         
         // manually select feature for editing
         control.selectFeature(f1);
+        t.eq(log.length, 1, "[select f1] beforefeaturemodified triggered");
         t.ok(control.feature === f1, "[select f1] control.feature set to f1");
+        log = []
         
         // manually unselect feature for editing
         control.unselectFeature(f1);
@@ -697,8 +739,30 @@
         map.destroy();
         
     }
-
-
+    
+    function test_setFeatureState(t) {
+        t.plan(4);
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer.Vector("vector", {isBaseLayer: true});
+        map.addLayer(layer);
+        var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,2));
+        layer.addFeatures([feature]);
+        var control = new OpenLayers.Control.ModifyFeature(layer, {standalone: true});
+        map.addControl(control);
+        
+        control.selectFeature(feature);
+        var originalGeometry = feature.geometry;
+        
+        t.ok(control._originalGeometry, "original geometry stored for later use in setFeatureState");
+        
+        feature.geometry = new OpenLayers.Geometry.Point(2,3);
+        control.modified = true;
+        control.setFeatureState();
+        
+        t.eq(feature.state, OpenLayers.State.UPDATE, "feature state set to UPDATE");
+        t.geom_eq(feature.modified.geometry, originalGeometry, "original geometry stored on the modified property");
+        t.eq(control._originalGeometry, undefined, "original geometry deleted once it is set on the modified property");
+    }
 
     </script>
 </head>
diff --git a/tests/Control/MousePosition.html b/tests/Control/MousePosition.html
index 2858167..0695e16 100644
--- a/tests/Control/MousePosition.html
+++ b/tests/Control/MousePosition.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map, control; 
     function test_initialize (t) {
diff --git a/tests/Control/MouseToolbar.html b/tests/Control/MouseToolbar.html
index e4799ed..97baa4a 100644
--- a/tests/Control/MouseToolbar.html
+++ b/tests/Control/MouseToolbar.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     function test_Control_MouseToolbar_constructor (t) {
diff --git a/tests/Control/NavToolbar.html b/tests/Control/NavToolbar.html
index 9bf41c9..9b3bbec 100644
--- a/tests/Control/NavToolbar.html
+++ b/tests/Control/NavToolbar.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     function test_Control_NavToolbar_constructor (t) {
@@ -25,7 +25,18 @@
         // t.eq( control.div.style.top, "6px", "Control div top located correctly by default");
 
     }
+    
+    function test_Control_NavToolbar_defaultControl (t) {
+        t.plan( 1 );
+        var map = new OpenLayers.Map('map');
 
+        var nav = new OpenLayers.Control.NavToolbar();
+        map.addControl(nav);
+        
+        t.eq(nav.controls[0].active, true, "First control is active" );
+        
+        map.destroy();
+    }
   </script>
 </head>
 <body>
diff --git a/tests/Control/Navigation.html b/tests/Control/Navigation.html
index 7569eb5..70428f5 100644
--- a/tests/Control/Navigation.html
+++ b/tests/Control/Navigation.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_Control_Navigation_constructor (t) {
@@ -18,8 +18,26 @@
         OpenLayers.Control.prototype.initialize = temp;
     }
 
+    function test_draw(t) {
+        t.plan(5);
+        var map = new OpenLayers.Map({div: 'map', controls: []});
+        var control = new OpenLayers.Control.Navigation();
+        map.addControl(control);
+        t.ok(control.handlers.click instanceof OpenLayers.Handler.Click,
+             "click handler set in instance");
+        t.ok(control.dragPan instanceof OpenLayers.Control.DragPan,
+             "drag pan control set in instance");
+        t.ok(control.zoomBox instanceof OpenLayers.Control.ZoomBox,
+             "zoom box control set in instance");
+        t.ok(control.handlers.wheel instanceof OpenLayers.Handler.MouseWheel,
+             "mousewheel handler set in instance");
+        t.ok(control.pinchZoom instanceof OpenLayers.Control.PinchZoom,
+             "pinch zoom control set in instance");
+        map.destroy();
+    }
+
     function test_Control_Navigation_destroy (t) {
-        t.plan(10);
+        t.plan(12);
         
         var temp = OpenLayers.Control.prototype.destroy;
         OpenLayers.Control.prototype.destroy = function() {
@@ -46,6 +64,11 @@
                     t.ok(true, "zoomBox destroyed");
                 }
             },
+            'pinchZoom': {
+                'destroy': function() {
+                    t.ok(true, "pinchZoom destroyed");
+                }
+            },
             handlers: {
                 'wheel': {
                     'destroy': function() {
@@ -66,6 +89,7 @@
 
         t.eq(control.dragPan, null, "'dragPan' set to null");
         t.eq(control.zoomBox, null, "'zoomBox' set to null");
+        t.eq(control.pinchZoom, null, "'pinchZoom' set to null");
         t.eq(control.handlers, null, "handlers set to null");
 
         OpenLayers.Control.prototype.destroy = temp;
@@ -118,6 +142,27 @@
         t.eq(nav.zoomWheelEnabled, true, "mouse wheel activated");
         t.eq(wheel.active, true, "mouse wheel handler activated");
     }
+
+    function test_touches_zoom(t) {
+        t.plan(3);
+        var nav = new OpenLayers.Control.Navigation({zoomWheelEnabled: false});
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [nav],
+            layers: [
+                new OpenLayers.Layer(null, {isBaseLayer: true})
+            ],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 3
+        });
+        t.eq(map.getZoom(), 3, "map zoom starts at 3");
+        nav.handlers.click.callback("click", [{lastTouches: ["foo", "bar"]}]);
+        t.eq(map.getZoom(), 2, "map zooms out with a two touch tap");
+        nav.handlers.click.callback("click", [{}]);
+        t.eq(map.getZoom(), 2, "map doesn't do anything with click");
+        
+        map.destroy();
+    }
     
     function test_documentDrag(t) {
         
@@ -149,5 +194,6 @@
   </script>
 </head>
 <body>
+    <div id="map" style="width: 256px; height: 256px"></div>
 </body>
 </html>
diff --git a/tests/Control/NavigationHistory.html b/tests/Control/NavigationHistory.html
index cccf4b8..b766b0e 100644
--- a/tests/Control/NavigationHistory.html
+++ b/tests/Control/NavigationHistory.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Control/OverviewMap.html b/tests/Control/OverviewMap.html
index 3feaa87..fce7a24 100644
--- a/tests/Control/OverviewMap.html
+++ b/tests/Control/OverviewMap.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map, control;
     function test_initialize(t) {
diff --git a/tests/Control/PanPanel.html b/tests/Control/PanPanel.html
index 73baa00..978a051 100644
--- a/tests/Control/PanPanel.html
+++ b/tests/Control/PanPanel.html
@@ -1,9 +1,9 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_constructor (t) {
-        t.plan(1);
+        t.plan(2);
         
         // set up
         var control;
@@ -15,9 +15,47 @@
              control.controls[2].slideFactor == 200 &&
              control.controls[3].slideFactor == 200,
              "ctor sets slideFactor in all Pan controls");
+        
+        control.destroy();
+
+        control = new OpenLayers.Control.PanPanel({slideRatio: .5});
+        t.ok(control.controls[0].slideRatio == .5 &&
+             control.controls[1].slideRatio == .5 &&
+             control.controls[2].slideRatio == .5 &&
+             control.controls[3].slideRatio == .5,
+             "ctor sets slideRatio in all Pan controls");
+        
+        control.destroy();
+    }
+    
+    function test_slide(t) {
+        t.plan(2);
+        var map = new OpenLayers.Map("map", {
+            panMethod: null,
+            controls: [
+                new OpenLayers.Control.PanPanel(),
+                new OpenLayers.Control.PanPanel({slideRatio: .5})
+            ],
+            layers: [new OpenLayers.Layer(null, {isBaseLayer: true})],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 1
+        });
+        
+        map.controls[0].controls[0].trigger();
+        map.controls[0].controls[2].trigger();
+        map.pan(-50, 50);
+        t.eq(map.getCenter().toShortString(), "0, 0", "correct pan distance with slideFactor");
+        
+        map.controls[1].controls[0].trigger();
+        map.controls[1].controls[2].trigger();
+        map.pan(-128, 64);
+        t.eq(map.getCenter().toShortString(), "0, 0", "correct pan distance with slideRatio");        
+
+        map.destroy();
     }
   </script>
 </head>
 <body>
+    <div id="map" style="width: 256px; height: 128px;"></div>
 </body>
 </html>
diff --git a/tests/Control/PanZoom.html b/tests/Control/PanZoom.html
index 1f2deec..41eab09 100644
--- a/tests/Control/PanZoom.html
+++ b/tests/Control/PanZoom.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     function test_Control_PanZoom_constructor (t) {
@@ -43,7 +43,7 @@
 
     function test_Control_PanZoom_control_events (t) {
 
-        if ( !window.document.createEvent || OpenLayers.Util.getBrowserName() == "opera" || !t.open_window) {
+        if ( !window.document.createEvent || OpenLayers.BROWSER_NAME == "opera" || !t.open_window) {
             //ie can't simulate mouseclicks
             t.plan(0);
             t.debug_print("FIXME: This browser does not support the PanZoom test at this time.");
@@ -72,65 +72,65 @@
                     
                     simulateClick(wnd, wnd.control.buttons[0]);
                     t.delay_call(2, function() {
-                        t.ok( wnd.mapper.getCenter().lat > wnd.centerLL.lat, "Pan up works correctly" );
-                        t.ok(!flag.mousedown, "mousedown does not get to the map");
-                        t.ok(flag.mouseup, "mouseup does get to the map");
-                        t.ok(!flag.click, "click does not get to the map");
-                        t.ok(!flag.dblclick, "dblclick does not get to the map");
+                        t.ok( wnd.mapper.getCenter().lat > wnd.centerLL.lat, "1) Pan up works correctly" );
+                        t.ok(!flag.mousedown, "1) mousedown does not get to the map");
+                        t.ok(!flag.mouseup, "1) mouseup does not get to the map");
+                        t.ok(!flag.click, "1) click does not get to the map");
+                        t.ok(!flag.dblclick, "1) dblclick does not get to the map");
                         resetFlags();
 
                         simulateClick(wnd, wnd.control.buttons[1]);
                     }, 2, function() {    
-                    t.ok( wnd.mapper.getCenter().lon < wnd.centerLL.lon, "Pan left works correctly" );
-                    t.ok(!flag.mousedown, "mousedown does not get to the map");
-                    t.ok(flag.mouseup, "mouseup does get to the map");
-                    t.ok(!flag.click, "click does not get to the map");
-                    t.ok(!flag.dblclick, "dblclick does not get to the map");
+                    t.ok( wnd.mapper.getCenter().lon < wnd.centerLL.lon, "2) Pan left works correctly" );
+                    t.ok(!flag.mousedown, "2) mousedown does not get to the map");
+                    t.ok(!flag.mouseup, "2) mouseup does not get to the map");
+                    t.ok(!flag.click, "2) click does not get to the map");
+                    t.ok(!flag.dblclick, "2) dblclick does not get to the map");
                     resetFlags();
 
                     simulateClick(wnd, wnd.control.buttons[2]);
                     }, 2, function() {
-                    t.ok( wnd.mapper.getCenter().lon == wnd.centerLL.lon, "Pan right works correctly" );
-                    t.ok(!flag.mousedown, "mousedown does not get to the map");
-                    t.ok(flag.mouseup, "mouseup does get to the map");
-                    t.ok(!flag.click, "click does not get to the map");
-                    t.ok(!flag.dblclick, "dblclick does not get to the map");
+                    t.ok( wnd.mapper.getCenter().lon == wnd.centerLL.lon, "3) Pan right works correctly" );
+                    t.ok(!flag.mousedown, "3) mousedown does not get to the map");
+                    t.ok(!flag.mouseup, "3) mouseup does not get to the map");
+                    t.ok(!flag.click, "3) click does not get to the map");
+                    t.ok(!flag.dblclick, "3) dblclick does not get to the map");
                     resetFlags();
 
                     simulateClick(wnd, wnd.control.buttons[3]);
                     }, 2, function() {
-                    t.ok( wnd.mapper.getCenter().lat == wnd.centerLL.lat, "Pan down works correctly" );
-                    t.ok(!flag.mousedown, "mousedown does not get to the map");
-                    t.ok(flag.mouseup, "mouseup does get to the map");
-                    t.ok(!flag.click, "click does not get to the map");
-                    t.ok(!flag.dblclick, "dblclick does not get to the map");
+                    t.ok( wnd.mapper.getCenter().lat == wnd.centerLL.lat, "4) Pan down works correctly" );
+                    t.ok(!flag.mousedown, "4) mousedown does not get to the map");
+                    t.ok(!flag.mouseup, "4) mouseup does not get to the map");
+                    t.ok(!flag.click, "4) click does not get to the map");
+                    t.ok(!flag.dblclick, "4) dblclick does not get to the map");
                     resetFlags();
 
                     simulateClick(wnd, wnd.control.buttons[4]);
                     }, 2, function() {
-                    t.eq( wnd.mapper.getZoom(), 6, "zoomin works correctly" );
-                    t.ok(!flag.mousedown, "mousedown does not get to the map");
-                    t.ok(flag.mouseup, "mouseup does get to the map");
-                    t.ok(!flag.click, "click does not get to the map");
-                    t.ok(!flag.dblclick, "dblclick does not get to the map");
+                    t.eq( wnd.mapper.getZoom(), 6, "5) zoomin works correctly" );
+                    t.ok(!flag.mousedown, "5) mousedown does not get to the map");
+                    t.ok(!flag.mouseup, "5) mouseup does not get to the map");
+                    t.ok(!flag.click, "5) click does not get to the map");
+                    t.ok(!flag.dblclick, "5) dblclick does not get to the map");
                     resetFlags();
 
                     simulateClick(wnd, wnd.control.buttons[6]);
                     }, 2, function() {
-                    t.eq( wnd.mapper.getZoom(), 5, "zoomout works correctly" );
-                    t.ok(!flag.mousedown, "mousedown does not get to the map");
-                    t.ok(flag.mouseup, "mouseup does get to the map");
-                    t.ok(!flag.click, "click does not get to the map");
-                    t.ok(!flag.dblclick, "dblclick does not get to the map");
+                    t.eq( wnd.mapper.getZoom(), 5, "6) zoomout works correctly" );
+                    t.ok(!flag.mousedown, "6) mousedown does not get to the map");
+                    t.ok(!flag.mouseup, "6) mouseup does not get to the map");
+                    t.ok(!flag.click, "6) click does not get to the map");
+                    t.ok(!flag.dblclick, "6) dblclick does not get to the map");
                     resetFlags();
 
                     simulateClick(wnd, wnd.control.buttons[5]);
                     }, 2, function() {
-                    t.eq( wnd.mapper.getZoom(), 2, "zoomworld works correctly" );
-                    t.ok(!flag.mousedown, "mousedown does not get to the map");
-                    t.ok(flag.mouseup, "mouseup does get to the map");
-                    t.ok(!flag.click, "click does not get to the map");
-                    t.ok(!flag.dblclick, "dblclick does not get to the map");
+                    t.eq( wnd.mapper.getZoom(), 2, "7) zoomworld works correctly" );
+                    t.ok(!flag.mousedown, "7) mousedown does not get to the map");
+                    t.ok(!flag.mouseup, "7) mouseup does not get to the map");
+                    t.ok(!flag.click, "7) click does not get to the map");
+                    t.ok(!flag.dblclick, "7) dblclick does not get to the map");
                     resetFlags();
                     });
                 });
diff --git a/tests/Control/PanZoomBar.html b/tests/Control/PanZoomBar.html
index 9590dd0..891527e 100644
--- a/tests/Control/PanZoomBar.html
+++ b/tests/Control/PanZoomBar.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map;
     function test_Control_PanZoomBar_constructor (t) {
@@ -44,8 +44,9 @@
         control = new OpenLayers.Control.PanZoomBar();
         map.addControl(control);
         control.removeButtons();
-        control._removeZoomBar();
-        t.eq(control.div.childNodes.length, 0, "control's div cleared.");
+        var div = control.div;
+        map.destroy();
+        t.eq(div.childNodes.length, 0, "control's div cleared.");
         t.eq(control.zoombarDiv, null, "zoombar div nullified.")
     }
 
@@ -67,20 +68,148 @@
 
     }
 
-    function test_Control_PanZoomBar_forceFixedZoomLevel_divClick (t) {
+    function test_Control_PanZoomBar_forceFixedZoomLevel_divClick(t){
         t.plan(1);
-        map = new OpenLayers.Map('map', {controls:[], fractionalZoom: true});
-        var layer = new OpenLayers.Layer.WMS("Test Layer",
-            "http://octo.metacarta.com/cgi-bin/mapserv?",
-            {map: "/mapdata/vmap_wms.map", layers: "basic"});
+        map = new OpenLayers.Map('map', {
+            controls: [],
+            fractionalZoom: true
+        });
+        var layer = new OpenLayers.Layer.WMS("Test Layer", "http://octo.metacarta.com/cgi-bin/mapserv?", {
+            map: "/mapdata/vmap_wms.map",
+            layers: "basic"
+        });
         map.addLayer(layer);
-        control = new OpenLayers.Control.PanZoomBar({forceFixedZoomLevel: true});
+        control = new OpenLayers.Control.PanZoomBar({
+            forceFixedZoomLevel: true
+        });
         map.addControl(control);
-
-        control.divClick({'xy': {'x': 0, 'y': 49}, which: 1});
-        t.eq(map.zoom, 11, "forceFixedZoomLevel makes sure only fixed zoom levels are used even if the map has fractionalZoom");
+        
+        control.divClick({
+            'xy': {
+                'x': 0,
+                'y': 49
+            },
+            which: 1
+        });
+        t.eq(map.zoom, 11, "forceFixedZoomLevel makes sure that after a div click only fixed zoom levels are used even if the map has fractionalZoom");
+    }     
+         
+    function test_Control_PanZoomBar_forceFixedZoomLevel_zoomBarUp (t) {     
+        var numRandomDrags = 25;
+        // plan one static recorded test and two for every random drag
+        t.plan(1 + (numRandomDrags * 2));
+        
+        
+        var map = new OpenLayers.Map('map', {
+            controls: [],
+            fractionalZoom: true
+        });
+        var layer = new OpenLayers.Layer.WMS("Test Layer", "http://octo.metacarta.com/cgi-bin/mapserv?", {
+            map: "/mapdata/vmap_wms.map",
+            layers: "basic"
+        });
+        map.addLayer(layer);
+        
+        // zoom to a fractional ZoomLevel initially:
+        map.setCenter(new OpenLayers.LonLat(0, 0), 9.545);
+        
+        control = new OpenLayers.Control.PanZoomBar({
+            forceFixedZoomLevel: true
+        });
+        map.addControl(control);
+        
+        // The y values come from manually recording real values in an example
+        var evt = {
+            'xy': {
+                'x': 0,
+                'y': -10.633
+            },
+            which: 1
+        };
+        control.zoomStart = {
+            'x': 0,
+            'y': 5.366
+        };
+        control.mouseDragStart = {
+            'x': 0,
+            'y': -10.633
+        };
+        control.deltaY = control.zoomStart.y - evt.xy.y
+        control.zoomBarUp(evt);
+        t.eq(map.zoom, 11, "forceFixedZoomLevel makes sure that after dragging of the handle only fixed zoom levels are used even if the map has fractionalZoom");
+        
+        // randomly drag the handle around
+        // we should never get a zoom < 0 or a non-integer zoom, regardless of
+        // captured random values for start and end of the drag.
+        for (var i = 0; i < numRandomDrags; i++) {
+            var randStartY = Math.random() * 10 * ((i % 2 === 0) ? -1 : 1);
+            var randStopY = Math.random() * 160 * ((i % 2 === 1) ? -1 : 1);
+            var evt = {
+                'xy': {
+                    'x': 0,
+                    'y': randStopY
+                },
+                which: 1
+            };
+            control.zoomStart = {
+                'x': 0,
+                'y': randStartY
+            };
+            control.mouseDragStart = {
+                'x': 0,
+                'y': randStopY
+            };
+            control.deltaY = control.zoomStart.y - evt.xy.y
+            control.zoomBarUp(evt);
+            
+            t.eq(Math.floor(map.zoom), Math.ceil(map.zoom), 'Only integer zooms after random handle drag with forceFixedZoomLevel=true and fractionalZoom=true (current zoom was ' + map.zoom + ')');
+            t.ok(map.zoom >= 0, 'map.zoom is never < 0 after random handle drag with forceFixedZoomLevel=true and fractionalZoom=true');
+        }
     }
 
+    function test_Control_PanZoomBar_shows (t) {
+        t.plan(22);
+
+        var control, map;
+
+        control = new OpenLayers.Control.PanZoomBar({panIcons: true, zoomWorldIcon: false});
+        map = new OpenLayers.Map('map', {controls: [control]});
+        t.eq(control.buttons.length, 6, "(a) pan, no world - expected number of buttons");
+        t.ok(control.buttons[0].id.match("_panup$"), "(a) pan, no world - pan up");
+        t.ok(control.buttons[1].id.match("_panleft$"), "(a) pan, no world - pan left");
+        t.ok(control.buttons[2].id.match("_panright$"), "(a) pan, no world - pan right");
+        t.ok(control.buttons[3].id.match("_pandown$"), "(a) pan, no world - pan down");
+        t.ok(control.buttons[4].id.match("_zoomin$"), "(a) pan, no world - zoom in");
+        t.ok(control.buttons[5].id.match("_zoomout$"), "(a) pan, no world - zoom out");
+        map.destroy();
+
+        control = new OpenLayers.Control.PanZoomBar({panIcons: true, zoomWorldIcon: true});
+        map = new OpenLayers.Map('map', {controls:[control]});
+        t.eq(control.buttons.length, 7, "(b) pan, world - expected number of buttons");
+        t.ok(control.buttons[0].id.match("_panup$"), "(b) pan, world - pan up");
+        t.ok(control.buttons[1].id.match("_panleft$"), "(b) pan, world - pan left");
+        t.ok(control.buttons[2].id.match("_zoomworld$"), "(b) pan, world - zoom world");
+        t.ok(control.buttons[3].id.match("_panright$"), "(b) pan, world - pan right");
+        t.ok(control.buttons[4].id.match("_pandown$"), "(b) pan, world - pan down");
+        t.ok(control.buttons[5].id.match("_zoomin$"), "(b) pan, world - zoom in");
+        t.ok(control.buttons[6].id.match("_zoomout$"), "(b) pan, world - zoom out");
+        map.destroy();
+
+        control = new OpenLayers.Control.PanZoomBar({panIcons: false, zoomWorldIcon: false});
+        map = new OpenLayers.Map('map', {controls:[control]});
+        t.eq(control.buttons.length, 2, "(c) no pan, no world - expected number of buttons");
+        t.ok(control.buttons[0].id.match("_zoomin$"), "(c) no pan, no world - zoom in");
+        t.ok(control.buttons[1].id.match("_zoomout$"), "(c) no pan, no world - zoom out");
+        map.destroy();
+
+        control = new OpenLayers.Control.PanZoomBar({panIcons: false, zoomWorldIcon: true});
+        map = new OpenLayers.Map('map', {controls:[control]});
+        t.eq(control.buttons.length, 3, "(d) no pan, world - expected number of buttons");
+        t.ok(control.buttons[0].id.match("_zoomin$"), "(d) no pan, world - zoom in");
+        t.ok(control.buttons[1].id.match("_zoomout$"), "(d) no pan, world - zoom out");
+        t.ok(control.buttons[2].id.match("_zoomworld$"), "(d) no pan, world - zoom world");
+        map.destroy();
+    }
   </script>
 </head>
 <body>
diff --git a/tests/Control/Panel.html b/tests/Control/Panel.html
index 59018ae..ae07c97 100644
--- a/tests/Control/Panel.html
+++ b/tests/Control/Panel.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Control_Panel_constructor (t) {
         t.plan( 2 );
@@ -10,7 +10,7 @@
         t.eq( control.displayClass,  "olControlPanel", "displayClass is correct" );
     }
     function test_Control_Panel_constructor2 (t) {
-        t.plan(16);
+        t.plan(19);
         var map = new OpenLayers.Map('map');
         var toolControl = new OpenLayers.Control.ZoomBox();
         var AnotherToolControl = OpenLayers.Class(OpenLayers.Control, {
@@ -22,53 +22,68 @@
               CLASS_NAME: 'mbControl.TestToggle',
               type: OpenLayers.Control.TYPE_TOGGLE
         });
-        
+
         var toggleControl = new ToggleControl();
         var buttonControl = new OpenLayers.Control.Button({
             trigger: function () {
-                t.ok(true, "trigger function of button is called.");     
+                t.ok(true, "trigger function of button is called.");
             }
         });
 
         var panel = new OpenLayers.Control.Panel(
             {defaultControl: anotherToolControl});
-        t.ok(panel instanceof OpenLayers.Control.Panel, 
+        t.ok(panel instanceof OpenLayers.Control.Panel,
               "new OpenLayers.Control.Panel returns object");
         panel.redraw = function(){
-            panel.redrawsCount++;            
+            panel.redrawsCount++;
+            OpenLayers.Control.Panel.prototype.redraw.apply(this, arguments);
         };
 
+        // To get length of events.listeners error-free
+        var getListenerLength= function(events,key){
+            if(!events) {
+                return -2; // events is destroyed
+            } else if(!events.listeners) {
+                return -1; // events is destroyed
+            } else if(!events.listeners[key]) {
+                return 0; // no listener in event
+            } else {
+                return events.listeners[key].length;
+            }
+        };
+        var toolEventListenerLength = getListenerLength(toolControl.events,"activate");
         panel.addControls([toolControl, anotherToolControl, toggleControl]);
         t.eq(panel.controls.length, 3,
               "added three controls to the panel");
         panel.addControls([buttonControl]);
 
-        panel.redrawsCount = 0;              
+        panel.redrawsCount = 0;
         map.addControl(panel);
-        t.ok((panel.redrawsCount > 0), "Redraw called on add panel to map " + 
-            panel.redrawsCount + " times.");        
-        t.ok((panel.active),"Panel is active after add panel to map.");        
-        
-        panel.redrawsCount = 0;              
+        t.eq(getListenerLength(toolControl.events,"activate"), toolEventListenerLength+1,
+            "toolControl additional listener for \"activate\" after adding Panel to the map.");
+        t.ok((panel.redrawsCount > 0), "Redraw called on add panel to map " +
+            panel.redrawsCount + " times.");
+        t.ok((panel.active),"Panel is active after add panel to map.");
+
+        panel.redrawsCount = 0;
         panel.addControls(new AnotherToolControl());
         t.ok((panel.redrawsCount > 0),
             "Redraw called on add control to panel after add panel to map " +
-            panel.redrawsCount + " times."); 
+            panel.redrawsCount + " times.");
 
         panel.deactivate();
-        panel.redrawsCount = 0;                      
-        panel.activate();        
+        panel.redrawsCount = 0;
+        panel.activate();
         t.ok((panel.redrawsCount > 0),"Redraw called on activate panel " +
-            panel.redrawsCount + " times."); 
+            panel.redrawsCount + " times.");
 
         panel.activateControl(toolControl);
         t.ok(toolControl.active && !anotherToolControl.active && !toggleControl.active && !buttonControl.active,
               "activated one tool control, the other one is inactive and the toggle & button controls also.");
 
-        panel.redrawsCount = 0;              
         panel.activateControl(toggleControl);
-        t.ok((panel.redrawsCount > 0),"Redraw called on activated toggle " +
-            panel.redrawsCount + " times.");
+        t.eq(toggleControl.panel_div.className,"mbControlTestToggleItemActive",
+            "className of icon div for toggle control is active.");
         t.ok(toolControl.active && !anotherToolControl.active && toggleControl.active,
               "activated the toggle control, which has no influence on the tool & togggle controls.");
         panel.activateControl(buttonControl);
@@ -79,16 +94,21 @@
         buttonControl.activate();
         t.ok(buttonControl.active && toolControl.active && !anotherToolControl.active && toggleControl.active,
               "activated the button control, which has no influence on the tool & togggle controls.");
-              
-        panel.redrawsCount = 0; 
+
         panel.activateControl(anotherToolControl);
-        t.ok((panel.redrawsCount > 0),
-            "Redraw called on activated tool control " + panel.redrawsCount + 
-            " times.");
+        t.eq(anotherToolControl.panel_div.className,"mbControlTestToolItemActive",
+            "className of icon div for anotherToolControl is active.");
+        t.eq(toolControl.panel_div.className,"olControlZoomBoxItemInactive",
+            "className of icon div for toolControl is inactive.");
         t.ok(!toolControl.active && anotherToolControl.active && toggleControl.active,
               "activated the other tool control, the first one is inactive and the toggle control still active.");
         t.ok(buttonControl.active,
               "activated the other tool control, the button control still active.");
+
+        panel.destroy();
+        t.eq(getListenerLength(toolControl.events,"activate"), toolEventListenerLength,
+            "toolControl additional listeners removed after destroy Panel.");
+        map.destroy();
     }
     function test_Control_Panel_titles (t) { 
         t.plan(2); 
@@ -228,6 +248,46 @@
         
     }
 
+    function test_Control_Panel_deactivate (t) {
+        t.plan(2);
+        var map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control();
+        var panel = new OpenLayers.Control.Panel();        
+        map.addControl(panel);
+        panel.addControls([control]);        
+        t.ok(panel.div.innerHTML != "", "Panel displayed after activate");        
+        
+        panel.deactivate();
+        t.ok(panel.div.innerHTML == "", 
+            "Panel is not displayed after deactivate without any active control");
+
+        map.destroy();
+    }
+
+    function test_allowDepress (t) { 
+        t.plan(2); 
+        var map = new OpenLayers.Map('map');
+
+        var panel = new OpenLayers.Control.Panel();
+        panel.addControls([new OpenLayers.Control(),new OpenLayers.Control()]);
+        map.addControl(panel);
+        
+        var control1 = panel.controls[1]
+        
+        panel.activateControl(control1);
+        
+        panel.allowDepress = false;
+        panel.activateControl(control1);
+        t.eq(control1.active, true,
+            "control1 remains active after calling again activateControl when allowDepress = false");
+        panel.allowDepress = true;
+        panel.activateControl(control1);
+        t.eq(control1.active, false,
+            "control1 is inactive after calling again activateControl when allowDepress = true");
+
+        // panel.deactivate();
+        map.destroy();
+    }
   </script>
 </head>
 <body>
diff --git a/tests/Control/Permalink.html b/tests/Control/Permalink.html
index c42d203..4b07d3e 100644
--- a/tests/Control/Permalink.html
+++ b/tests/Control/Permalink.html
@@ -1,14 +1,70 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     function test_Control_Permalink_constructor (t) {
-        t.plan( 2 );
+        t.plan(42);
     
         control = new OpenLayers.Control.Permalink();
-        t.ok( control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object" );
-        t.eq( control.displayClass,  "olControlPermalink", "displayClass is correct" );
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, document.location.href, "base is correct");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink('permalink', 'test.html');
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, 'test.html', "base is correct");
+        t.ok(OpenLayers.Util.isElement(control.element), "element is a dom object");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink('permalink');
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, document.location.href, "base is correct");
+        t.ok(OpenLayers.Util.isElement(control.element), "element is a dom object");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink(OpenLayers.Util.getElement('permalink'));
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, document.location.href, "base is correct");
+        t.ok(OpenLayers.Util.isElement(control.element), "element is a dom object");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink({anchor: true});
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, document.location.href, "base is correct");
+        t.ok(control.element == null, "element is null");
+        t.ok(control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink({anchor: false});
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, document.location.href, "base is correct");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink({});
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, document.location.href, "base is correct");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink({element: 'permalink', base: 'test.html'});
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, 'test.html', "base is correct");
+        t.ok(OpenLayers.Util.isElement(control.element), "element is a dom object");
+        t.ok(!control.anchor, "anchor is correct");
+
+        control = new OpenLayers.Control.Permalink({element: 'permalink', base: 'test.html', anchor: true});
+        t.ok(control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object");
+        t.eq(control.displayClass, "olControlPermalink", "displayClass is correct");
+        t.eq(control.base, 'test.html', "base is correct");
+        t.ok(OpenLayers.Util.isElement(control.element), "element is a dom object");
+        t.ok(control.anchor, "anchor is correct");
     }
     function test_Control_Permalink_uncentered (t) {
         t.plan( 1 );
@@ -226,7 +282,45 @@
         OpenLayers.Util.getParameters = old_getParameters;
         OpenLayers.Projection.transform = old_transform;
     }
+    function test_Control_Permalink_Anchor (t) {
+        t.plan(3);
+    
+        control = new OpenLayers.Control.Permalink({anchor: true});
+        t.ok( control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object" );
+        map = new OpenLayers.Map('map');
+        layer = new OpenLayers.Layer.WMS('Test Layer', "http://octo.metacarta.com/cgi-bin/mapserv", {map: '/mapdata/vmap_wms.map', layers: 'basic', format: 'image/jpeg'});
+        map.addLayer(layer);
+        layer = new OpenLayers.Layer.WMS('Test Layer', "http://octo.metacarta.com/cgi-bin/mapserv", {map: '/mapdata/vmap_wms.map', layers: 'basic', format: 'image/jpeg'}, {'isBaseLayer': false});
+        map.addLayer(layer);
+        layer.setVisibility(true);
+        if (!map.getCenter())  map.zoomToMaxExtent();
+        map.addControl(control);
+        map.pan(5, 0, {animate:false});
+        t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getParameterString(control.createParams()), "zoom=2&lat=0&lon=1.75781&layers=BT"), 'pan sets permalink');
+        
+        map.layers[1].setVisibility(false);
+        t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getParameterString(control.createParams()), "zoom=2&lat=0&lon=1.75781&layers=BF"), 'setVisibility sets permalink');
+    }
+    
+    function test_Control_Permalink_AnchorBaseElement (t) {
+        t.plan(3);
     
+        control = new OpenLayers.Control.Permalink('permalink', document.location.href, {anchor: true});
+        t.ok( control instanceof OpenLayers.Control.Permalink, "new OpenLayers.Control returns object" );
+        map = new OpenLayers.Map('map');
+        layer = new OpenLayers.Layer.WMS('Test Layer', "http://octo.metacarta.com/cgi-bin/mapserv", {map: '/mapdata/vmap_wms.map', layers: 'basic', format: 'image/jpeg'});
+        map.addLayer(layer);
+        layer = new OpenLayers.Layer.WMS('Test Layer', "http://octo.metacarta.com/cgi-bin/mapserv", {map: '/mapdata/vmap_wms.map', layers: 'basic', format: 'image/jpeg'}, {'isBaseLayer': false});
+        map.addLayer(layer);
+        layer.setVisibility(true);
+        if (!map.getCenter())  map.zoomToMaxExtent();
+        map.addControl(control);
+        map.pan(5, 0, {animate:false});
+        t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getElement('permalink').href, location+"#zoom=2&lat=0&lon=1.75781&layers=BT"), 'pan sets permalink');
+        
+        map.layers[1].setVisibility(false);
+        t.ok(OpenLayers.Util.isEquivalentUrl(OpenLayers.Util.getElement('permalink').href, location+"#zoom=2&lat=0&lon=1.75781&layers=BF"), 'setVisibility sets permalink');
+    }
   </script>
 </head>
 <body>
diff --git a/tests/Control/PinchZoom.html b/tests/Control/PinchZoom.html
new file mode 100644
index 0000000..24e506a
--- /dev/null
+++ b/tests/Control/PinchZoom.html
@@ -0,0 +1,87 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+
+    function test_constructor(t) {
+        t.plan(2);
+        var control = new OpenLayers.Control.PinchZoom();
+        t.ok(control instanceof OpenLayers.Control.PinchZoom, "got an instance");
+        t.ok(control.handler instanceof OpenLayers.Handler.Pinch, "control has pinch handler");
+        control.destroy();
+    }
+
+    function test_destroy(t) {
+        t.plan(1);
+        var control = new OpenLayers.Control.PinchZoom();
+        control.destroy();
+        t.ok(!control.handler, "handler destroyed");
+    }
+    
+    function test_activate(t) {
+        t.plan(3);
+        var control = new OpenLayers.Control.PinchZoom();
+        t.ok(!control.active, "control not activated after construction");
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [control]
+        });
+        t.ok(control.active, "control activated after being added to the map");
+        
+        control.deactivate();
+        t.ok(!control.active, "control deactivated");
+        
+        map.destroy();
+    }
+
+    function test_pinchMove(t) {
+
+        var control = new OpenLayers.Control.PinchZoom();
+
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [control]
+        });
+        
+        var log = [];
+        control.applyTransform = function(transform) {
+            log.push(transform);
+        }
+        
+        control.containerOrigin = {
+            x: 0, y: 0
+        };
+
+        control.pinchOrigin = {
+            x: 100, y: 50
+        };
+
+        var cases = [
+            {x: 100, y: 60, scale: 1, transform: "translate(0px, 10px) scale(1)"},
+            {x: 150, y: 60, scale: 1, transform: "translate(50px, 10px) scale(1)"},
+            {x: 150, y: 60, scale: 2, transform: "translate(-50px, -40px) scale(2)"},
+            {x: 50, y: 20, scale: 2.5, transform: "translate(-200px, -105px) scale(2.5)"},
+            {x: 150, y: 60, scale: 2, transform: "translate(-50px, -40px) scale(2)"},
+            {x: 50, y: 20, scale: 0.25, transform: "translate(25px, 8px) scale(0.25)"}
+        ];
+        
+        var len = cases.length;
+        t.plan(len*2);
+        
+        var c;
+        for (var i=0; i<len; ++i) {
+            c = cases[i];
+            control.pinchMove({xy: {x: c.x, y: c.y}}, {scale: c.scale});
+            t.eq(log.length, i+1, i + " called once");
+            t.eq(log[i], c.transform, i + " correct transform");
+        }
+        
+    }
+
+  </script>
+</head>
+<body>
+    <div id="map" style="width: 256px; height: 256px;"></div>
+</body>
+</html>
diff --git a/tests/Control/SLDSelect.html b/tests/Control/SLDSelect.html
index 2221db7..7493553 100644
--- a/tests/Control/SLDSelect.html
+++ b/tests/Control/SLDSelect.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -31,7 +31,7 @@
     }
 
     function test_select(t) {
-        t.plan(8);
+        t.plan(9);
         var parser = new OpenLayers.Format.WFSDescribeFeatureType();
         var map = new OpenLayers.Map('map');
         var layer = new OpenLayers.Layer.WMS('Foo', 'http://foo', {LAYERS: 'AAA64'});
@@ -80,8 +80,9 @@
         control.select(geometry);
         control.events.unregister("selected", this, testEvent);
         t.eq(map.layers.length, 2, "Selection layer has been created and added to the map");
-        t.eq(map.layers[1] instanceof OpenLayers.Layer.WMS.Post, true, "A WMS Post layer has been created as the selection layer");
-        var expected_sld = '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><sld:NamedLayer><sld:Name>AAA64</sld:Name><sld:UserStyle><sld:Name>default</sld:Name><sld:FeatureTypeStyle><sld:Rule><ogc:Filter xmlns:ogc= [...]
+        t.eq(map.layers[1] instanceof OpenLayers.Layer.WMS, true, "A WMS layer has been created as the selection layer");
+        t.eq(map.layers[1].tileOptions.maxGetUrlLength, 2048, "Selection layer will automatically switch to HTTP Post if content gets longer than 2048");
+        var expected_sld = '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><sld:NamedLayer><sld:Name>AAA64</sld:Name><sld:UserStyle><sld:Name>default</sld:Name><sld:FeatureTypeStyle><sld:Rule><ogc:Filter xmlns:ogc= [...]
 
         t.xml_eq(map.layers[1].params.SLD_BODY, expected_sld, "SLD generated correctly");
 
@@ -168,7 +169,7 @@
         var geometry = OpenLayers.Geometry.Polygon.createRegularPolygon(
             new OpenLayers.Geometry.Point(0, 0), 5, 4);
         control.select(geometry);
-        var expected_sld = '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><sld:NamedLayer><sld:Name>KGNAT.VKUNSTWERK</sld:Name><sld:UserStyle><sld:Name>default</sld:Name><sld:FeatureTypeStyle><sld:Rule><ogc:Filter [...]
+        var expected_sld = '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><sld:NamedLayer><sld:Name>KGNAT.VKUNSTWERK</sld:Name><sld:UserStyle><sld:Name>default</sld:Name><sld:FeatureTypeStyle><sld:Rule><ogc:Filter [...]
 
         t.xml_eq(map.layers[1].params.SLD_BODY, expected_sld, "SLD generated correctly");
         map.destroy();
diff --git a/tests/Control/Scale.html b/tests/Control/Scale.html
index 7010661..804ceb5 100644
--- a/tests/Control/Scale.html
+++ b/tests/Control/Scale.html
@@ -1,7 +1,8 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
+    OpenLayers.Lang.setCode('en');
     var map; 
     function test_Control_Scale_constructor (t) {
         t.plan( 2 );
diff --git a/tests/Control/ScaleLine.html b/tests/Control/ScaleLine.html
index 3a3e8ac..e863fd9 100644
--- a/tests/Control/ScaleLine.html
+++ b/tests/Control/ScaleLine.html
@@ -3,7 +3,7 @@
     <script type="text/javascript">var oldAlert = window.alert, gMess; window.alert = function(message) {gMess = message; return true;};</script>
     <!-- this gmaps key generated for http://openlayers.org/dev/ -->
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA9XNhd8q0UdwNC7YSO4YZghSPUCi5aRYVveCcVYxzezM4iaj_gxQ9t-UajFL70jfcpquH5l1IJ-Zyyw'></script>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
   var validkey = (window.location.protocol == "file:") ||
                  (window.location.host == "localhost") ||
diff --git a/tests/Control/SelectFeature.html b/tests/Control/SelectFeature.html
index 42cca0b..e5dcb39 100644
--- a/tests/Control/SelectFeature.html
+++ b/tests/Control/SelectFeature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     function test_Control_SelectFeature_constructor(t) {
         t.plan(5);
@@ -373,6 +373,114 @@
         map.events.triggerEvent("click", evt);
     }
 
+    // test for http://trac.openlayers.org/ticket/2812
+    function test_highlightOnly_toggle(t) {
+        t.plan(8);
+
+        /*
+         * setup
+         */
+
+        var map, layer, ctrl1, ctrl2, _feature, feature, evt, _style;
+
+        map = new OpenLayers.Map("map");
+        layer = new OpenLayers.Layer.Vector("name", {isBaseLayer: true});
+        map.addLayer(layer);
+
+        ctrl1 = new OpenLayers.Control.SelectFeature(layer, {
+            highlightOnly: false,
+            hover: false,
+            clickout: false,
+            toggle: true
+        });
+        map.addControl(ctrl1);
+
+        ctrl2 = new OpenLayers.Control.SelectFeature(layer, {
+            highlightOnly: true,
+            hover: true
+        });
+        map.addControl(ctrl2);
+
+        ctrl2.activate();
+        ctrl1.activate();
+
+        feature = new OpenLayers.Feature.Vector();
+        feature.layer = layer;
+
+        // override the layer's getFeatureFromEvent func so that it always
+        // returns the feature referenced to by _feature
+        layer.getFeatureFromEvent = function(evt) { return _feature; };
+
+        evt = {xy: new OpenLayers.Pixel(Math.random(), Math.random())};
+
+        map.zoomToMaxExtent();
+
+        /*
+         * tests
+         */
+
+        // with renderIntent
+
+        ctrl1.renderIntent = "select";
+        ctrl2.renderIntent = "temporary";
+
+        // mouse over feature, feature is drawn with "temporary"
+        _feature = feature;
+        evt.type = "mousemove";
+        map.events.triggerEvent("mousemove", evt);
+        t.eq(feature.renderIntent, "temporary",
+             "feature drawn with expected render intent after \"mouseover\"");
+
+        // click in feature, feature is drawn with "select"
+        _feature = feature;
+        evt.type = "click";
+        map.events.triggerEvent("click", evt);
+        t.eq(feature.renderIntent, "select",
+             "feature drawn with expected render intent after \"clickin\"");
+
+        // mouse out of feature, feature is still drawn with "select"
+        _feature = null;
+        evt.type = "mousemove";
+        map.events.triggerEvent("mousemove", evt);
+        t.eq(feature.renderIntent, "select",
+             "feature drawn with expected render intent after \"mouseout\"");
+
+        // mouse over feature again, feature is drawn with "temporary"
+        _feature = feature;
+        evt.type = "mousemove";
+        map.events.triggerEvent("mousemove", evt);
+        t.eq(feature.renderIntent, "temporary",
+             "feature drawn with expected render intent after \"mouseover\"");
+
+        // click in feature again, feature is drawn with "default"
+        _feature = feature;
+        evt.type = "click";
+        map.events.triggerEvent("click", evt);
+        t.eq(feature.renderIntent, "default",
+             "feature drawn with expected render intent after \"clickin\"");
+
+        // mouse out of feature again, feature is still drawn with "default"
+        _feature = null;
+        evt.type = "mousemove";
+        map.events.triggerEvent("mousemove", evt);
+        t.eq(feature.renderIntent, "default",
+             "feature drawn with expected render intent after \"mouseout\"");
+
+        // mouse over feature again, feature is drawn with "temporary"
+        _feature = feature;
+        evt.type = "mousemove";
+        map.events.triggerEvent("mousemove", evt);
+        t.eq(feature.renderIntent, "temporary",
+             "feature drawn with expected render intent after \"mouseover\"");
+
+        // mouse out of feature again, feature is still drawn with "default"
+        _feature = null;
+        evt.type = "mousemove";
+        map.events.triggerEvent("mousemove", evt);
+        t.eq(feature.renderIntent, "default",
+             "feature drawn with expected render intent after \"mouseout\"");
+    }
+
     function test_setLayer(t) {
         t.plan(5);
         var map = new OpenLayers.Map("map");
diff --git a/tests/Control/Snapping.html b/tests/Control/Snapping.html
index ded37b8..a0c55c2 100644
--- a/tests/Control/Snapping.html
+++ b/tests/Control/Snapping.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -173,6 +173,70 @@
         control.destroy();
     }
     
+    function test_resolution_limits(t) {
+        t.plan(7);
+
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(0, 0, 100, 100)
+        });
+
+        var layer = new OpenLayers.Layer.Vector(null, {
+            isBaseLayer: true
+        });
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector(OpenLayers.Geometry.fromWKT(
+                "POINT(50 50)"
+            ))
+        ]);
+
+        map.addLayer(layer);
+        map.zoomToMaxExtent();        
+        
+        var control = new OpenLayers.Control.Snapping({layer: layer});
+        
+        var result;
+        var loc = new OpenLayers.Geometry.Point(49, 49);
+
+        // 1) test a target with no constraints
+        control.setTargets([{layer: layer}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result !== null, "1) target is eligible");
+        
+        // 2) test a target with minResolution < map.resolution
+        control.setTargets([{layer: layer, minResolution: 0.5}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result !== null, "2) target is eligible");
+
+        // 3) test a target with minResolution === map.resolution
+        control.setTargets([{layer: layer, minResolution: 1}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result !== null, "3) target is eligible");
+
+        // 4) test a target with minResolution > map.resolution
+        control.setTargets([{layer: layer, minResolution: 1.5}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result === null, "4) target is not eligible");
+
+        // 5) test a target with maxResolution < map.resolution
+        control.setTargets([{layer: layer, maxResolution: 0.5}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result === null, "5) target is not eligible");
+        
+        // 6) test a target with maxResolution === map.resolution
+        control.setTargets([{layer: layer, maxResolution: 1}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result === null, "6) target is not eligible");
+        
+        // 7) test a target with maxResolution > map.resolution
+        control.setTargets([{layer: layer, maxResolution: 1.5}]);
+        result = control.testTarget(control.targets[0], loc);
+        t.ok(result !== null, "7) target is eligible");
+        
+        map.destroy();
+    
+    }
+    
     function test_snapping(t) {
         
         t.plan(46);
diff --git a/tests/Control/Split.html b/tests/Control/Split.html
index 0e4df0b..a307bdd 100644
--- a/tests/Control/Split.html
+++ b/tests/Control/Split.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -35,13 +35,20 @@
     function test_setSource(t) {
         t.plan(5);
         
-        var layer1 = new OpenLayers.Layer.Vector();
-        var layer2 = new OpenLayers.Layer.Vector();
+        var layer1 = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        var layer2 = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
         
         var control = new OpenLayers.Control.Split({layer: layer1});
 
         var map = new OpenLayers.Map("map");
         map.addLayers([layer1, layer2]);
+        map.zoomToMaxExtent();
         map.addControl(control);
         control.activate();
         
@@ -64,12 +71,16 @@
     function test_activate(t) {
         t.plan(8);
         
-        var layer = new OpenLayers.Layer.Vector();
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
         var control = new OpenLayers.Control.Split({layer: layer});
         var map = new OpenLayers.Map("map");
         map.addLayer(layer);
+        map.zoomToMaxExtent();
         map.addControl(control);
-        
+
         // test activation with no source layer
         control.activate();
         t.eq(control.active, true, "control is active");
@@ -93,12 +104,16 @@
         
         t.plan(7);
         
-        var layer = new OpenLayers.Layer.Vector();
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
         var control = new OpenLayers.Control.Split({layer: layer});
         var map = new OpenLayers.Map("map");
         map.addLayer(layer);
+        map.zoomToMaxExtent();
         map.addControl(control);
-        
+
         // activate and check sketch handler
         control.activate();
         t.ok(control.handler, "sketch handler present");
diff --git a/tests/Control/TouchNavigation.html b/tests/Control/TouchNavigation.html
new file mode 100644
index 0000000..21241dd
--- /dev/null
+++ b/tests/Control/TouchNavigation.html
@@ -0,0 +1,154 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+
+    function test_Control_TouchNavigation_constructor (t) {
+        t.plan( 2 );
+        var options = {bar: "foo"};
+        var temp = OpenLayers.Control.prototype.initialize;
+        OpenLayers.Control.prototype.initialize = function(opt) {
+            t.eq(opt, options,
+                 "constructor calls parent with the correct options");
+        };
+
+        var control = new OpenLayers.Control.TouchNavigation(options);
+        t.ok(control instanceof OpenLayers.Control.TouchNavigation,
+            "new OpenLayers.Control returns object");
+
+        OpenLayers.Control.prototype.initialize = temp;
+    }
+
+    function test_Control_TouchNavigation_destroy(t) {
+        t.plan(6);
+
+        var control = {
+            events: {
+                destroy: function() {
+                    t.ok(true, "events destroyed");
+                }
+            },
+            deactivate: function() {
+                t.ok(true, "navigation control deactivated before being destroyed");
+            },
+            dragPan: {
+                destroy: function() {
+                    t.ok(true, "dragPan destroyed");
+                }
+            },
+            handlers: {
+                click: {
+                    destroy: function() {
+                        t.ok(true, "clickHandler destroyed");
+                    }
+                }
+            }
+        };
+
+        //this will also trigger one test by calling OpenLayers.Control's destroy
+        // and three more for the destruction of dragPan, zoomBox, and wheelHandler
+        OpenLayers.Control.TouchNavigation.prototype.destroy.apply(control, []);
+
+        t.eq(control.dragPan, null, "'dragPan' set to null");
+        t.eq(control.handlers, null, "handlers set to null");
+    }
+
+    function test_documentDrag(t) {
+
+        t.plan(2);
+
+        /**
+         * These tests confirm that the documentDrag property is false by
+         * default and is passed on to the DragPan control.  Tests of panning
+         * while dragging outside the viewport should go in the DragPan tests.
+         * Tests of the document events and appropriate callbacks from the
+         * handler should go in the Drag handler tests.
+         */
+
+         var nav = new OpenLayers.Control.TouchNavigation();
+         t.eq(nav.documentDrag, false, "documentDrag false by default");
+
+         var map = new OpenLayers.Map({
+             div: document.body,
+             controls: [new OpenLayers.Control.TouchNavigation({documentDrag: true})]
+         });
+         nav = map.controls[0];
+
+         t.eq(nav.dragPan.documentDrag, true, "documentDrag set on the DragPan control");
+         map.destroy();
+
+    }
+
+    function test_dragPanOptions(t) {
+
+        t.plan(2);
+
+         var nav = new OpenLayers.Control.TouchNavigation();
+         t.eq(nav.dragPanOptions, null, "dragPanOptions null by default");
+
+         var map = new OpenLayers.Map({
+             div: document.body,
+             controls: [
+                 new OpenLayers.Control.TouchNavigation({
+                     dragPanOptions: {foo: 'bar'}
+                 })
+             ]
+         });
+         nav = map.controls[0];
+
+         t.eq(nav.dragPan.foo, 'bar',
+            "foo property is set on the DragPan control");
+         map.destroy();
+
+    }
+
+    function test_clickHandlerOptions(t) {
+
+        t.plan(3);
+
+         var nav = new OpenLayers.Control.TouchNavigation();
+         t.eq(nav.clickHandlerOptions, null, "clickHandlerOptions null by default");
+
+         var map = new OpenLayers.Map({
+             div: document.body,
+             controls: [
+                 new OpenLayers.Control.TouchNavigation({
+                     clickHandlerOptions: {foo: "bar"}
+                 })
+             ]
+         });
+         nav = map.controls[0];
+
+         t.eq(nav.handlers.click.foo, "bar", "foo property is set on the click handler");
+         t.eq(nav.handlers.click.pixelTolerance, 2, "pixelTolerance is 2 by default");
+         map.destroy();
+
+    }
+
+    function test_zoomOut(t) {
+        t.plan(1);
+
+        var map = new OpenLayers.Map(document.body);
+        var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+                    "http://labs.metacarta.com/wms/vmap0",
+                    {layers: 'basic'} );
+        map.addLayer(layer);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 5);
+        var control = new OpenLayers.Control.TouchNavigation();
+        map.addControl(control);
+        var handler = control.handlers.click;
+        handler.touchstart({xy: new OpenLayers.Pixel(1 ,1), touches: ["foo", "bar"]});
+        handler.touchend({});
+        t.delay_call(1, function() {
+            t.eq(map.getZoom(), 4, "Did we zoom out?");
+            // tear down
+            map.destroy();
+        });
+
+    }
+
+  </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Control/TransformFeature.html b/tests/Control/TransformFeature.html
index 44a53e1..00fb0a9 100644
--- a/tests/Control/TransformFeature.html
+++ b/tests/Control/TransformFeature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_initialize(t) {
@@ -54,7 +54,7 @@
     }
     
     function test_setFeature(t) {
-        t.plan(4);
+        t.plan(6);
         var map = new OpenLayers.Map("map", {allOverlays: true});
         var layer = new OpenLayers.Layer.Vector();
         var feature = new OpenLayers.Feature.Vector(
@@ -64,8 +64,16 @@
         map.setCenter(new OpenLayers.LonLat(0, 0), 18);
         var control = new OpenLayers.Control.TransformFeature(layer);
         map.addControl(control);
+        var log = [];
+        control.events.on({
+            "beforesetfeature": function(e) { log.push(e); },
+            "setfeature": function(e) { log.push(e); }
+        });
         control.setFeature(feature);
         
+        t.eq(log[0].type, "beforesetfeature", "beforesetfeature event fired with correct event type");
+        t.eq(log[1].type, "setfeature", "setfeature event fired with correct event type");
+        
         t.ok(control.active, "control activated on setFeature");
         t.ok(feature.geometry.getBounds().equals(control.box.geometry.getBounds()), "box positioned correctly");
         t.geom_eq(control.handles[0].geometry, control.box.geometry.components[0], "handle positioned with box");
diff --git a/tests/Control/WMSGetFeatureInfo.html b/tests/Control/WMSGetFeatureInfo.html
index c566f90..8d63f78 100644
--- a/tests/Control/WMSGetFeatureInfo.html
+++ b/tests/Control/WMSGetFeatureInfo.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_initialize(t) {
@@ -115,6 +115,61 @@
         control.getInfoForHover({xy: {x: 50, y: 50}});
     }
 
+    function test_getfeatureinfo_event(t) {
+
+        t.plan(5);
+
+        var text =
+            '<?xml version="1.0" encoding="UTF-8" ?>' +
+            '<FeatureInfoResponse>' +
+            '  <FIELDS OBJECTID="1188" HECTARES="1819.734" ZONENR="5854" NULZONES=" " AREA="18197340.1426" PERIMETER="19177.4073627" SHAPE="NULL" SE_ANNO_CAD_DATA="NULL" SHAPE.AREA="0" SHAPE.LEN="0"/>' +
+            '</FeatureInfoResponse>';
+
+        var map = new OpenLayers.Map('map');
+
+        var xy;
+        var url = "http://foo";
+
+        // mock up a control with output "object" and drillDown true
+        var control = new OpenLayers.Control.WMSGetFeatureInfo({
+            output: "object",
+            drillDown: true,
+            request: function(position) {},
+            eventListeners: {
+                getfeatureinfo: function(evt) {
+                    t.ok(evt.features[0].url === url, "features is an object with a property url when output is object");
+                    var features = evt.features[0].features;
+                    t.ok(features.length === 1, "features properties has a length of 1");
+                    t.ok(features[0] instanceof OpenLayers.Feature.Vector, "Feature array contains 1 feature");
+                }
+            }
+        });
+
+        // mock up a control with output "features" and drillDown true
+        var control2 = new OpenLayers.Control.WMSGetFeatureInfo({
+            autoActivate: true,
+            drillDown: true,
+            request: function(position) {},
+            eventListeners: {
+                getfeatureinfo: function(evt) {
+                    var features = evt.features;
+                    t.ok(features.length === 1, "features properties has a length of 1");
+                    t.ok(features[0] instanceof OpenLayers.Feature.Vector, "Feature array contains 1 feature");
+                }
+            }
+        });
+
+        map.addControls([control, control2]);
+        control.activate();
+
+        xy = {x: 50, y: 50};
+        control._requestCount = control2._requestCount = 0;
+        control._numRequests = control2._numRequests = 1;
+        control.handleResponse({xy: xy}, {responseText: text}, url);
+        control2.handleResponse({xy: xy}, {responseText: text}, url);
+        map.destroy();
+    }
+
     function test_beforegetfeatureinfo_event(t) {
         t.plan(2);
         var map = new OpenLayers.Map('map');
@@ -233,7 +288,7 @@
     // Verify that things work all right when we combine different types for the STYLES and LAYERS
     // params in the WMS Layers involved
     function test_mixedParams(t) {
-        t.plan(3);
+        t.plan(5);
         var map = new OpenLayers.Map("map", {
             getExtent: function() {return(new OpenLayers.Bounds(-180,-90,180,90));}
             }
@@ -271,10 +326,22 @@
             log.options = options;
         };
         click.activate();
-        click.getInfoForClick({xy: {x: 50, y: 50}});
+        click.getInfoForClick({xy: {x: 50.2, y: 50.1}});
         OpenLayers.Request.GET = _request;
 
         t.eq(
+            log.options && log.options.params.X,
+            50,
+            "X should be an integer"
+        );
+
+        t.eq(
+            log.options && log.options.params.Y,
+            50,
+            "Y should be an integer" 
+        );
+
+        t.eq(
             log.options && log.options.url,
             "http://localhost/wms",
             "url from first layer used"
@@ -408,7 +475,7 @@
     }
 
     function test_drillDown(t) {
-        t.plan(4);
+        t.plan(6);
         var map = new OpenLayers.Map("map", {
             getExtent: function() {return(new OpenLayers.Bounds(-180,-90,180,90));}
             }
@@ -422,14 +489,17 @@
             layers: "c"
         });
 
+        // this service does not support application/vnd.ogc.gml for GetFeatureInfo, only text/xml
         var c = new OpenLayers.Layer.WMS("dummy","http://myhost/wms", {
-            layers: "x"
+            layers: "x",
+            info_format: "text/xml"
         });
 
         map.addLayers([a, b, c]);
 
         var click = new OpenLayers.Control.WMSGetFeatureInfo({
-            drillDown: true
+            drillDown: true,
+            infoFormat: "application/vnd.ogc.gml"
         });
 
         map.addControl(click);
@@ -439,9 +509,11 @@
         OpenLayers.Request.GET = function(options) {
             count++;
             if (count == 1) {
+                t.eq(options.params["INFO_FORMAT"], "application/vnd.ogc.gml", "Default info format of the control is used");
                 t.eq(options.params["QUERY_LAYERS"].join(","), "a,c", "Layers should be grouped by service url");
                 t.eq(options.url, "http://localhost/wms", "Correct url used for first request");
             } else if (count == 2) {
+                t.eq(options.params["INFO_FORMAT"], "text/xml", "Overridden info format is used instead of the control's infoFormat");
                 t.eq(options.url, "http://myhost/wms", "Correct url used for second request");
             }
         };
@@ -451,6 +523,37 @@
         t.eq(count, 2, "We expect 2 requests to go off");
         map.destroy();
     }
+    
+    function test_GetFeatureInfo_buildWMSOptions(t) {
+        t.plan(3);
+        
+        var map = new OpenLayers.Map("map", {
+            getExtent: function() {return(new OpenLayers.Bounds(-180,-90,180,90));},
+            projection: "EPSG:900913"
+        });
+        var a = new OpenLayers.Layer.WMS("dummy", "http://localhost/wms", {
+            layers: "a"
+        }, {projection: "EPSG:3857"});
+        var b = new OpenLayers.Layer.WMS("dummy", "http://localhost/wms", {
+            layers: "b"
+        });
+        var c = new OpenLayers.Layer.WMS("dummy", "http://localhost/wms", {
+            layers: "c"
+        }, {projection: "EPSG:4326"});
+        map.addLayers([a, b, c]);
+        var gfi = new OpenLayers.Control.WMSGetFeatureInfo();
+        map.addControl(gfi);
+        gfi.activate();
+
+        var options = gfi.buildWMSOptions("http://localhost/wms", [a], {xy: {x: 50, y: 50}}, "text/html");
+        t.eq(options.params.SRS, "EPSG:3857", "layer projection used if provided and equal map projection");
+
+        options = gfi.buildWMSOptions("http://localhost/wms", [b], {xy: {x: 50, y: 50}}, "text/html");
+        t.eq(options.params.SRS, "EPSG:900913", "map projection used if layer has no projection configured");
+
+        options = gfi.buildWMSOptions("http://localhost/wms", [b], {xy: {x: 50, y: 50}}, "text/html");
+        t.eq(options.params.SRS, "EPSG:900913", "map projection used if layer configured with an incompatible projection");
+    }
 
     function test_GetFeatureInfo_WMS13(t) {
         t.plan(4);
@@ -475,7 +578,7 @@
             log.options = options;
         };
         click.activate();
-        click.getInfoForClick({xy: {x: 50, y: 60}});
+        click.getInfoForClick({xy: {x: 50.1, y: 60.2}});
         OpenLayers.Request.GET = _request;
         t.eq(
             log.options && log.options.params.CRS,
diff --git a/tests/Control/WMTSGetFeatureInfo.html b/tests/Control/WMTSGetFeatureInfo.html
index 14597d5..c7be78c 100644
--- a/tests/Control/WMTSGetFeatureInfo.html
+++ b/tests/Control/WMTSGetFeatureInfo.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Events.html b/tests/Events.html
index 24bed69..62b7ed3 100644
--- a/tests/Events.html
+++ b/tests/Events.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var map; 
@@ -305,7 +305,21 @@
         events.unregister("something", instance, listener1);
         events.unregister("something", instance, listener2);
         events.unregister("something", instance, listener3);
-        
+    }
+
+    function test_Events_handleBrowserEvent(t) {
+        t.plan(2);
+        var events = new OpenLayers.Events({}, null, ['sometouchevent']);
+        events.on({'sometouchevent': function() {}});
+
+        // this test verifies that when handling a touch event we correctly
+        // set clientX and clientY in the event object 
+        var evt = {type: 'sometouchevent',
+                   touches: [{clientX: 1, clientY: 1}, {clientX: 2, clientY: 2}]
+                  };
+        events.handleBrowserEvent(evt);
+        t.eq(evt.clientX, 1.5, "evt.clientX value is correct");
+        t.eq(evt.clientY, 1.5, "evt.clientY value is correct");
     }
 
     function test_Events_destroy (t) {
diff --git a/tests/Extras.html b/tests/Extras.html
index 38ed2b7..264eb0f 100644
--- a/tests/Extras.html
+++ b/tests/Extras.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     var map;
diff --git a/tests/Feature.html b/tests/Feature.html
index ca65888..688642f 100644
--- a/tests/Feature.html
+++ b/tests/Feature.html
@@ -1,13 +1,13 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var map; 
     var feature, layer; 
     
     function test_Feature_constructor (t) {
-        t.plan( 7 );
+        t.plan( 6 );
 
         var layer = {};
         var lonlat = new OpenLayers.LonLat(2,1);
@@ -26,11 +26,10 @@
         t.ok( feature.lonlat.equals(lonlat), "feature.lonlat set correctly" );
         t.eq( feature.data.iconURL, iconURL, "feature.data.iconURL set correctly" );
         t.ok( feature.data.iconSize.equals(iconSize), "feature.data.iconSize set correctly" );
-        t.ok( feature.popupClass == OpenLayers.Popup.AnchoredBubble, "default popupClass is AnchoredBubble");
     }
     
     function test_Feature_createPopup (t) {
-        t.plan(1);
+        t.plan(3);
         var layer = {};
         var lonlat = new OpenLayers.LonLat(2,1);
         var iconURL = 'http://boston.openguides.org/features/ORANGE.png';
@@ -43,8 +42,14 @@
         feature = new OpenLayers.Feature(layer, lonlat, data);
         popup = feature.createPopup(); 
         //Safari 3 separates style overflow into overflow-x and overflow-y
-        var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+        var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq(popup.contentDiv.style[prop], "auto", 'overflow on popup is correct');
+        t.ok( popup instanceof OpenLayers.Popup.AnchoredBubble, "popup is an AnchoredBubble by defaults");
+        feature.destroyPopup();
+        
+        feature.popupClass = OpenLayers.Popup.FramedCloud;
+        popup = feature.createPopup(); 
+        t.ok( popup instanceof OpenLayers.Popup.FramedCloud, "setting feature.popupClass works");
     }    
     function test_Feature_createMarker (t) {
         t.plan(1);
@@ -122,7 +127,7 @@
         t.ok( !feature2.onScreen(), "feature knows it's offscreen" );
     }
 
-    function test_Feature_createPopup(t) {
+    function test_Feature_createPopup_2(t) {
         t.plan(11);
 
     //no lonlat        
diff --git a/tests/Feature/Vector.html b/tests/Feature/Vector.html
index 2cf0d18..59b0abb 100644
--- a/tests/Feature/Vector.html
+++ b/tests/Feature/Vector.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var map; 
     var feature; 
diff --git a/tests/Filter.html b/tests/Filter.html
index b981d20..25b0e94 100644
--- a/tests/Filter.html
+++ b/tests/Filter.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_initialize(t) { 
diff --git a/tests/Filter/Comparison.html b/tests/Filter/Comparison.html
index b9505db..a0c2da3 100644
--- a/tests/Filter/Comparison.html
+++ b/tests/Filter/Comparison.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_initialize(t) { 
diff --git a/tests/Filter/FeatureId.html b/tests/Filter/FeatureId.html
index 0adeba7..8c20192 100644
--- a/tests/Filter/FeatureId.html
+++ b/tests/Filter/FeatureId.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_initialize(t) { 
diff --git a/tests/Filter/Logical.html b/tests/Filter/Logical.html
index cfbc93b..187cf5b 100644
--- a/tests/Filter/Logical.html
+++ b/tests/Filter/Logical.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_initialize(t) { 
diff --git a/tests/Filter/Spatial.html b/tests/Filter/Spatial.html
index 69ed1f2..558f924 100644
--- a/tests/Filter/Spatial.html
+++ b/tests/Filter/Spatial.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
diff --git a/tests/Format.html b/tests/Format.html
index 9c761df..66d2696 100644
--- a/tests/Format.html
+++ b/tests/Format.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_Format_constructor(t) {
diff --git a/tests/Format/ArcXML.html b/tests/Format/ArcXML.html
index 6298e7c..ea7d273 100644
--- a/tests/Format/ArcXML.html
+++ b/tests/Format/ArcXML.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     var axl_image_response = '<?xml version="1.0" encoding="UTF-8"?><ARCXML version="1.1"><RESPONSE><IMAGE><ENVELOPE minx="-2471.42857142857" miny="0" maxx="105671.428571429" maxy="75700" /><OUTPUT url="http://localhost/output/364826560.png" /></IMAGE></RESPONSE></ARCXML>';
diff --git a/tests/Format/ArcXML/Features.html b/tests/Format/ArcXML/Features.html
index d971017..bd2f680 100644
--- a/tests/Format/ArcXML/Features.html
+++ b/tests/Format/ArcXML/Features.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     
     var axl_feature_response = '<?xml version="1.0" encoding="Cp1252"?><ARCXML version="1.1"><RESPONSE><FEATURES><FEATURE><FIELDS><FIELD name="UNIQUE_ID" value="514504b5-0458-461d-b540-8e18a454f619" /><FIELD name="LABEL" value="LIBRARY" /><FIELD name="Y_COORD" value="39.57" /><FIELD name="X_COORD" value="-104.24" /><FIELD name="#SHAPE#" value="[Geometry]" /><FIELD name="OBJECTID" value="1" /><FIELD name="shape.area" value="0" /><FIELD name="shape.len" value="0" /></FIELDS></FEATURE><FEAT [...]
diff --git a/tests/Format/Atom.html b/tests/Format/Atom.html
index 52ee265..71bccc5 100644
--- a/tests/Format/Atom.html
+++ b/tests/Format/Atom.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
diff --git a/tests/Format/CQL.html b/tests/Format/CQL.html
new file mode 100644
index 0000000..a1c65ee
--- /dev/null
+++ b/tests/Format/CQL.html
@@ -0,0 +1,287 @@
+<html>
+    <head>
+        <script src="../OLLoader.js"></script>
+
+        <script type="text/javascript">
+
+function test_CQL_Constructor(t) {
+    t.plan(5);
+    var options = {'foo': 'bar'};
+    var format  = new OpenLayers.Format.CQL(options);
+    t.ok(format instanceof OpenLayers.Format.CQL,
+         "new OpenLayers.Format.CQL object");
+    t.eq(format.foo, "bar", "constructor sets options correctly")
+    t.eq(typeof format.read, 'function', 'format has a read function');
+    t.eq(typeof format.write, 'function', 'format has a write function');
+    t.eq(format.options, options, "format.options correctly set");
+}
+
+function test_Comparison_string(t) {
+    t.plan(5);
+    var test_cql, format, filter;
+    test_cql = "X >= 'B'";
+    format = new OpenLayers.Format.CQL();
+    filter = format.read(test_cql);
+    t.ok(filter instanceof OpenLayers.Filter.Comparison,
+         "Parsing a simple >= filter produces a Filter.Comparison");
+    t.eq(filter.type, OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+         ">= parsed as Filter.Comparison.GREATER_THAN_OR_EQUAL_TO");
+    t.eq(filter.property, 'X',
+         "Property extracted from CQL text");
+    t.eq(filter.value, 'B',
+         "Value extracted from CQL text");
+         
+         
+    t.eq(format.write(filter), test_cql, "write returned test cql");
+}
+
+function test_Comparison_number(t) {
+    t.plan(5);
+    var test_cql, format, filter;
+    test_cql = "X >= 10";
+    format = new OpenLayers.Format.CQL();
+    filter = format.read(test_cql);
+    t.ok(filter instanceof OpenLayers.Filter.Comparison,
+         "Parsing a simple >= filter produces a Filter.Comparison");
+    t.eq(filter.type, OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+         ">= parsed as Filter.Comparison.GREATER_THAN_OR_EQUAL_TO");
+    t.eq(filter.property, 'X',
+         "Property extracted from CQL text");
+    t.eq(filter.value, 10,
+         "Value extracted from CQL text");
+         
+         
+    t.eq(format.write(filter), test_cql, "write returned test cql");
+}
+
+function test_Logical(t) {
+    t.plan(7);
+    var test_cql, format, filter;
+    test_cql = "X >= 'B' AND X < 'M'";
+    format = new OpenLayers.Format.CQL();
+    filter = format.read(test_cql);
+    t.ok(filter instanceof OpenLayers.Filter.Logical,
+         "Parsing ANDed filters produces a Filter.Logical");
+    t.eq(filter.type, OpenLayers.Filter.Logical.AND,
+         "AND parsed as Filter.Logical.AND");
+    t.eq(filter.filters.length, 2,
+         "AND Filter contains two subfilters");
+    t.ok(filter.filters[0] instanceof OpenLayers.Filter.Comparison,
+         "First sub-filter is a Filter.Comparison");
+    t.eq(filter.filters[0].type, OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+         "First sub-filter is the first filter in the CQL text");
+    t.ok(filter.filters[1] instanceof OpenLayers.Filter.Comparison,
+         "Second sub-filter is a Filter.Comparison");
+    t.eq(filter.filters[1].type, OpenLayers.Filter.Comparison.LESS_THAN,
+         "Second sub-filter is the second filter in the CQL text");
+
+}
+
+function test_Logical_write(t) {
+    t.plan(1);
+    var cql = "(X >= 'B') AND (X < 'M')";
+    var format = new OpenLayers.Format.CQL();
+    var filter = format.read(cql);
+    t.eq(format.write(filter), cql, "write returned test cql");
+}
+
+function test_Logical_spatial(t) {
+    t.plan(9);
+    var test_cql, format, filter;
+    test_cql = "INTERSECTS(the_geom, POLYGON((-111 41,-115 41,-115 45,-110 45,-111 41))) AND CONTAINS(the_geom, POINT(-111 41))";
+    format = new OpenLayers.Format.CQL();
+    filter = format.read(test_cql);
+    t.ok(filter instanceof OpenLayers.Filter.Logical,
+         "Parsing ANDed filters produces a Filter.Logical");
+    t.eq(filter.type, OpenLayers.Filter.Logical.AND,
+         "AND parsed as Filter.Logical.AND");
+    t.eq(filter.filters.length, 2,
+         "AND Filter contains two subfilters");
+    t.ok(filter.filters[0] instanceof OpenLayers.Filter.Spatial,
+         "First sub-filter is a Filter.Spatial");
+    t.eq(filter.filters[0].type, OpenLayers.Filter.Spatial.INTERSECTS,
+         "First sub-filter is the first filter in the CQL text");
+    t.geom_eq(filter.filters[0].value, OpenLayers.Geometry.fromWKT("POLYGON((-111 41,-115 41,-115 45,-110 45,-111 41))"),
+         "First sub-filter is has correct geometry");
+    t.ok(filter.filters[1] instanceof OpenLayers.Filter.Spatial,
+         "Second sub-filter is a Filter.Comparison");
+    t.eq(filter.filters[1].type, OpenLayers.Filter.Spatial.CONTAINS,
+         "Second sub-filter is the second filter in the CQL text");
+    t.geom_eq(filter.filters[1].value, OpenLayers.Geometry.fromWKT("POINT(-111 41)"),
+         "Second sub-filter is has correct geometry");
+}
+
+function test_Logical_spatial_write(t) {
+    // TODO: remove this if extra parentheses are avoided by checking logical operator precedence
+    t.plan(1);
+    var cql = "(INTERSECTS(the_geom, POLYGON((-111 41,-115 41,-115 45,-110 45,-111 41)))) AND (CONTAINS(the_geom, POINT(-111 41)))";
+    var format = new OpenLayers.Format.CQL();
+    var filter = format.read(cql);
+    t.eq(format.write(filter), cql, "write returned test cql");
+}
+
+function test_Parentheticals(t) {
+    t.plan(2);
+    var format, cqlA, filterA, cqlB, filterB;
+    format = new OpenLayers.Format.CQL();
+    cqlA = "A = '1' AND B = '2' OR C = '3'";
+    cqlB = "A = '1' AND (B = '2' OR C = '3')";
+    filterA = format.read(cqlA);
+    filterB = format.read(cqlB);
+
+    t.ok(filterA instanceof OpenLayers.Filter.Logical &&
+         filterA.filters[0] instanceof OpenLayers.Filter.Logical &&
+         filterA.filters[1] instanceof OpenLayers.Filter.Comparison,
+         "Unparenthesized expression groups left to right");
+    t.ok(filterB instanceof OpenLayers.Filter.Logical &&
+         filterB.filters[0] instanceof OpenLayers.Filter.Comparison &&
+         filterB.filters[1] instanceof OpenLayers.Filter.Logical,
+         "Parenthesized expression groups as specified by parentheses");
+}
+
+function test_Parentheticals_write(t) {
+    // TODO: remove this if extra parentheses are avoided by checking logical operator precedence
+    t.plan(1);
+    var format = new OpenLayers.Format.CQL();
+    var cql = "(A = '1') AND ((B = '2') OR (C = '3'))";
+    var filter = format.read(cql);
+    t.eq(format.write(filter), cql, "write returned test cql");
+}
+
+function test_BBOX(t) {
+    t.plan(5);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "BBOX(the_geom,1,2,3,4)",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Spatial,
+         "Parsing BBOX expression produces Filter.Spatial");
+    t.eq(filter.type, OpenLayers.Filter.Spatial.BBOX,
+         "Spatial filter is a bbox filter");
+    t.eq(filter.property, "the_geom",
+         "Property name is as specified in CQL");
+    t.eq(filter.value.toBBOX(), "1,2,3,4",
+         "Value is as specified in CQL");
+
+    t.eq(format.write(filter), cql, "write returned test cql");
+
+}
+
+function test_INTERSECTS(t) {
+    t.plan(5);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "INTERSECTS(the_geom, POINT(1 2))",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Spatial,
+         "Parsing BBOX expression produces Filter.Spatial");
+    t.eq(filter.type, OpenLayers.Filter.Spatial.INTERSECTS,
+         "Spatial filter is an intersects filter");
+    t.eq(filter.property, "the_geom",
+         "Property name is as specified in CQL");
+    t.ok(filter.value instanceof OpenLayers.Geometry,
+         "Value is a geometry");
+    
+    t.eq(format.write(filter), cql, "write returned test cql");
+
+}
+
+function test_WITHIN(t) {
+    t.plan(5);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "WITHIN(the_geom, POLYGON((1 2,3 4,5 6,3 8,1 6,1 2)))",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Spatial,
+         "Parsing BBOX expression produces Filter.Spatial");
+    t.eq(filter.type, OpenLayers.Filter.Spatial.WITHIN,
+         "Spatial filter is a within filter");
+    t.eq(filter.property, "the_geom",
+         "Property name is as specified in CQL");
+    t.ok(filter.value instanceof OpenLayers.Geometry,
+         "Value is a geometry");
+
+    t.eq(format.write(filter), cql, "write returned test cql");
+
+}
+
+function test_DWITHIN(t) {
+    t.plan(6);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "DWITHIN(the_geom, POINT(1 2), 6)",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Spatial,
+         "Parsing DWITHIN expression produces Filter.Spatial");
+    t.eq(filter.type, OpenLayers.Filter.Spatial.DWITHIN,
+         "Spatial filter is a DWITHIN filter");
+    t.eq(filter.property, "the_geom",
+         "Property name is as specified in CQL");
+    t.ok(filter.value instanceof OpenLayers.Geometry,
+         "Value is a geometry");
+    t.eq(filter.distance, 6,
+         "Distance is as specified in CQL");
+
+    t.eq(format.write(filter), cql, "write returned test cql");
+
+}
+
+function test_CONTAINS(t) {
+    t.plan(5);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "CONTAINS(the_geom, POINT(1 2))",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Spatial,
+         "Parsing BBOX expression produces Filter.Spatial");
+    t.eq(filter.type, OpenLayers.Filter.Spatial.CONTAINS,
+         "Spatial filter is a within filter");
+    t.eq(filter.property, "the_geom",
+         "Property name is as specified in CQL");
+    t.ok(filter.value instanceof OpenLayers.Geometry,
+         "Value is a geometry");
+
+    t.eq(format.write(filter), cql, "write returned test cql");
+
+}
+
+function test_NOT(t) {
+    t.plan(4);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "NOT X < 12",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Logical,
+         "Parsing NOT expression produces Logical.Not");
+    t.eq(filter.type, OpenLayers.Filter.Logical.NOT,
+         "Logical filter is a NOT filter");
+    t.eq(filter.filters[0].property, "X",
+         "Property name is as specified in CQL");
+    t.eq(filter.filters[0].value, 12, "Value is as specified in CQL");
+}
+
+function test_NOT_write(t) {
+    // TODO: remove this if extra parentheses are avoided by checking logical operator precedence
+    t.plan(1);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "NOT (X < 12)",
+        filter = format.read(cql);
+    t.eq(format.write(filter), cql, "write returned test cql");
+}
+
+function test_BETWEEN(t) {
+    t.plan(6);
+    var format = new OpenLayers.Format.CQL(),
+        cql = "A BETWEEN 0 AND 5",
+        filter = format.read(cql);
+    t.ok(filter instanceof OpenLayers.Filter.Comparison,
+         "Parsing BETWEEN expression produces Filter.Comparison");
+    t.eq(filter.type, OpenLayers.Filter.Comparison.BETWEEN,
+         "Comparison filter is a between filter");
+    t.eq(filter.property, "A",
+         "Property name is as specified in CQL");
+    t.eq(filter.lowerBoundary, 0, 'Lower boundary is as specified in CQL');
+    t.eq(filter.upperBoundary, 5, 'Upper bondary is as specified in CQL');
+
+    t.eq(format.write(filter), cql, "write returned test cql");
+
+}
+
+        </script>
+    </head>
+    <body></body>
+</html>
diff --git a/tests/Format/CSWGetDomain.html b/tests/Format/CSWGetDomain.html
index 852989f..1e37826 100644
--- a/tests/Format/CSWGetDomain.html
+++ b/tests/Format/CSWGetDomain.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Format/CSWGetDomain/v2_0_2.html b/tests/Format/CSWGetDomain/v2_0_2.html
index 81c51c5..ea0be83 100644
--- a/tests/Format/CSWGetDomain/v2_0_2.html
+++ b/tests/Format/CSWGetDomain/v2_0_2.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script src="v2_0_2.js"></script>
     <script type="text/javascript">
 
diff --git a/tests/Format/CSWGetRecords.html b/tests/Format/CSWGetRecords.html
index f2f183b..2b8bc6b 100644
--- a/tests/Format/CSWGetRecords.html
+++ b/tests/Format/CSWGetRecords.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Format/CSWGetRecords/v2_0_2.html b/tests/Format/CSWGetRecords/v2_0_2.html
index e32383e..5fda134 100644
--- a/tests/Format/CSWGetRecords/v2_0_2.html
+++ b/tests/Format/CSWGetRecords/v2_0_2.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script src="v2_0_2.js"></script>
     <script type="text/javascript">
 
@@ -41,10 +41,10 @@
     
     function test_read(t) {
         
-        t.plan(14);
+        t.plan(16);
         
         var obj = format.read(csw_response);
-        
+                
         var searchStatus = obj.SearchStatus;
         var searchResults = obj.SearchResults;
         var records = obj.records;
@@ -72,6 +72,10 @@
         t.eq(bbox.crs, "::Lambert Azimuthal Projection", "check value for BoundingBox.crs");
         t.eq(bbox.value, [156, -3, 37, 83], "check value for record.BoundingBox");
         
+        // test gninfo
+        testRecord = records[1];
+        t.ok(testRecord.gninfo, "object contains gninfo properties");
+        t.eq(testRecord.gninfo.schema, "iso19139", "check value for schema property in record.gninfo");
     }
     
     </script> 
diff --git a/tests/Format/CSWGetRecords/v2_0_2.js b/tests/Format/CSWGetRecords/v2_0_2.js
index c5fe31b..a761671 100644
--- a/tests/Format/CSWGetRecords/v2_0_2.js
+++ b/tests/Format/CSWGetRecords/v2_0_2.js
@@ -37,6 +37,10 @@ var csw_response =
         '<ows:LowerCorner>51.1 -34.6</ows:LowerCorner>' +
         '<ows:UpperCorner>-17.3 38.2</ows:UpperCorner>' +
       '</ows:BoundingBox>' +
+      '<geonet:info xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gml="http://www.opengis.net/gml">' +
+        '<id>859</id>' +
+        '<schema>iso19139</schema>' +
+      '</geonet:info>' +
     '</csw:BriefRecord>' +
   '</csw:SearchResults>' +
 '</csw:GetRecordsResponse>'
diff --git a/tests/Format/Filter.html b/tests/Format/Filter.html
index 08866bd..69a0564 100644
--- a/tests/Format/Filter.html
+++ b/tests/Format/Filter.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_initialize(t) { 
diff --git a/tests/Format/Filter/v1.html b/tests/Format/Filter/v1.html
index f2bdbb7..b109b31 100644
--- a/tests/Format/Filter/v1.html
+++ b/tests/Format/Filter/v1.html
@@ -1,13 +1,13 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_PropertyIsBetween(t) {
 
         t.plan(6);
 
-        var test_wml, parser, xml;
+        var test_xml, parser, xml;
 
         parser = new OpenLayers.Format.Filter.v1();
         xml = new OpenLayers.Format.XML();
@@ -166,9 +166,96 @@
 
     }
 
+    function test_logical_fid(t) {
+        // the Filter Encoding spec doesn't allow for FID filters inside logical filters
+        // however, to be liberal, we will write them without complaining
+        t.plan(3);
+
+        var filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.OR,
+            filters: [
+                new OpenLayers.Filter.Comparison({
+                    type: OpenLayers.Filter.Comparison.LIKE,
+                    property: "person",
+                    value: "me"
+                }),
+                new OpenLayers.Filter.FeatureId({fids: ["foo.1", "foo.2"]})
+            ]
+        });
+        var format = new OpenLayers.Format.Filter.v1_0_0();
+        
+        var got = format.write(filter);
+        var exp = readXML("LogicalFeatureId");
+        t.xml_eq(got, exp, "wrote FID filter in logical OR without complaint");
+
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: [
+                new OpenLayers.Filter.Comparison({
+                    type: OpenLayers.Filter.Comparison.LIKE,
+                    property: "person",
+                    value: "me"
+                }),
+                new OpenLayers.Filter.FeatureId({fids: ["foo.1", "foo.2"]})
+            ]
+        });
+        got = format.write(filter);
+        exp = readXML("LogicalFeatureIdAnd");
+        t.xml_eq(got, exp, "wrote FID filter in logical AND without complaint");
+
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.NOT,
+            filters: [
+                new OpenLayers.Filter.FeatureId({fids: ["foo.2"]})
+            ]
+        });
+        got = format.write(filter);
+        exp = readXML("LogicalFeatureIdNot");
+        t.xml_eq(got, exp, "wrote FID filter in logical NOT without complaint");
+    }
+
+
+    function readXML(id) {
+        var xml = document.getElementById(id).firstChild.nodeValue;
+        return new OpenLayers.Format.XML().read(xml).documentElement;
+    }
+
 
     </script> 
 </head> 
 <body>
+
+<div id="LogicalFeatureId"><!--
+<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+    <ogc:Or>
+        <ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
+            <ogc:PropertyName>person</ogc:PropertyName>
+            <ogc:Literal>me</ogc:Literal>
+        </ogc:PropertyIsLike>
+        <ogc:FeatureId fid="foo.1"/>
+        <ogc:FeatureId fid="foo.2"/>
+    </ogc:Or>
+</ogc:Filter>
+--></div>
+<div id="LogicalFeatureIdAnd"><!--
+<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+    <ogc:And>
+        <ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
+            <ogc:PropertyName>person</ogc:PropertyName>
+            <ogc:Literal>me</ogc:Literal>
+        </ogc:PropertyIsLike>
+        <ogc:FeatureId fid="foo.1"/>
+        <ogc:FeatureId fid="foo.2"/>
+    </ogc:And>
+</ogc:Filter>
+--></div>
+<div id="LogicalFeatureIdNot"><!--
+<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+    <ogc:Not>
+        <ogc:FeatureId fid="foo.2"/>
+    </ogc:Not>
+</ogc:Filter>
+--></div>
+
 </body> 
 </html> 
diff --git a/tests/Format/Filter/v1_0_0.html b/tests/Format/Filter/v1_0_0.html
index 8aab3d7..876723f 100644
--- a/tests/Format/Filter/v1_0_0.html
+++ b/tests/Format/Filter/v1_0_0.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     
     var test_xml =
@@ -78,6 +78,31 @@
         t.xml_eq(node, out, "bbox correctly written");
     }
 
+    function test_BBOX_noGeometryName(t) {
+        t.plan(1);
+        // WFS 1.0.0 does not allow BBOX filters without property, but
+        // GeoServer accepts them.
+        var filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.BBOX,
+            value: new OpenLayers.Bounds(-180, -90, 180, 90),
+            projection: "EPSG:4326"
+        });
+        
+        var out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:BBOX>' +
+                    '<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">' +
+                        '<gml:coordinates decimal="." cs="," ts=" ">-180,-90 180,90</gml:coordinates>' +
+                    '</gml:Box>' +
+                '</ogc:BBOX>' +
+            '</ogc:Filter>';
+        
+        var parser = new OpenLayers.Format.Filter.v1_0_0();
+        var node = parser.write(filter);
+        
+        t.xml_eq(node, out, "bbox correctly written");
+    }
+
     function test_DWithin(t) {
         
         t.plan(6);
@@ -152,6 +177,116 @@
 
     }
 
+    function test_FilterFunctions(t) {
+        t.plan(2);
+
+        var parser = new OpenLayers.Format.Filter.v1_0_0();
+
+        //test spatial intersects with filter function
+        var filter = new OpenLayers.Filter.Spatial({
+            property: 'the_geom',
+            type: OpenLayers.Filter.Spatial.INTERSECTS,
+            value: new OpenLayers.Filter.Function({
+                name  : 'querySingle',
+                params: ['sf:restricted', 'the_geom', 'cat=3']
+            })
+        });
+
+        var out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:Intersects>' +
+                    '<ogc:PropertyName>the_geom</ogc:PropertyName>' +
+                    '<ogc:Function name="querySingle">' +
+                        '<ogc:Literal>sf:restricted</ogc:Literal>' +
+                        '<ogc:Literal>the_geom</ogc:Literal>' +
+                        '<ogc:Literal>cat=3</ogc:Literal>' +
+                    '</ogc:Function>' +
+                '</ogc:Intersects>' +
+            '</ogc:Filter>';
+
+
+        var node = parser.write(filter);
+
+        //test writer
+        t.xml_eq(node, out, "spatial intersect filter with functions correctly written");
+
+        //test logical filter with custom function
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: [
+                new OpenLayers.Filter.Comparison({
+                    type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
+                    property: "FOO",
+                    value: new OpenLayers.Filter.Function({
+                        name : 'customFunction',
+                        params : ['param1', 'param2']
+                    })
+                })
+            ]
+        });
+
+        out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:And>' +
+                    '<ogc:PropertyIsNotEqualTo>' +
+                        '<ogc:PropertyName>FOO</ogc:PropertyName>' +
+                        '<ogc:Function name="customFunction">' +
+                            '<ogc:Literal>param1</ogc:Literal>' +
+                            '<ogc:Literal>param2</ogc:Literal>' +
+                        '</ogc:Function>' +
+                    '</ogc:PropertyIsNotEqualTo>' +
+                '</ogc:And>' +
+            '</ogc:Filter>';
+
+        node = parser.write(filter);
+
+        //test writer
+        t.xml_eq(node, out, "comparison filter with filter functions correctly written");
+
+    }
+
+    function test_NestedFilterFunctions(t) {
+        t.plan(1);
+
+        //test spatial dwithin with nested filter function
+        var filter = new OpenLayers.Filter.Spatial({
+           property: 'the_geom',
+           type: OpenLayers.Filter.Spatial.DWITHIN,
+           value: new OpenLayers.Filter.Function({
+               name : 'collectGeometries',
+               params: [
+                    new OpenLayers.Filter.Function({
+                        name  : 'queryCollection',
+                        params: ['sf:roads', 'the_geom', 'INCLUDE']
+                    })
+               ]
+           }),
+           distanceUnits: "meters",
+           distance: 200
+        });
+
+        var out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:DWithin>' +
+                    '<ogc:PropertyName>the_geom</ogc:PropertyName>' +
+                    '<ogc:Function name="collectGeometries">' +
+                        '<ogc:Function name="queryCollection">' +
+                            '<ogc:Literal>sf:roads</ogc:Literal>' +
+                            '<ogc:Literal>the_geom</ogc:Literal>' +
+                            '<ogc:Literal>INCLUDE</ogc:Literal>' +
+                        '</ogc:Function>' +
+                    '</ogc:Function>' +
+                    '<ogc:Distance units="meters">200</ogc:Distance>' +
+                '</ogc:DWithin>' +
+            '</ogc:Filter>';
+
+        var parser = new OpenLayers.Format.Filter.v1_0_0();
+        var node = parser.write(filter);
+
+        //test writer
+        t.xml_eq(node, out, "spatial dwithin filter with nested functions correctly written");
+    }
+
 
     </script> 
 </head> 
diff --git a/tests/Format/Filter/v1_1_0.html b/tests/Format/Filter/v1_1_0.html
index 796a903..68d1ec1 100644
--- a/tests/Format/Filter/v1_1_0.html
+++ b/tests/Format/Filter/v1_1_0.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     
     var test_xml =
@@ -167,6 +167,31 @@
         t.xml_eq(node, out, "bbox correctly written");
     }
     
+    function test_BBOX_noGeometryName(t) {
+        t.plan(1);
+        var filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.BBOX,
+            value: new OpenLayers.Bounds(-180, -90, 180, 90),
+            projection: "EPSG:4326"
+        });
+        
+        var out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:BBOX>' +
+                    '<gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">' +
+                        '<gml:lowerCorner>-180 -90</gml:lowerCorner>' +
+                        '<gml:upperCorner>180 90</gml:upperCorner>' +
+                    '</gml:Envelope>' +
+                '</ogc:BBOX>' +
+            '</ogc:Filter>';
+        
+        var parser = new OpenLayers.Format.Filter.v1_1_0();
+        var node = parser.write(filter);
+        
+        t.xml_eq(node, out, "bbox correctly written");
+    }
+
+
     function test_Intersects(t) {
         
         t.plan(4);
@@ -203,8 +228,175 @@
 
     }
 
+    function test_FilterFunctions(t) {
+        t.plan(2);
+
+        var parser = new OpenLayers.Format.Filter.v1_1_0();
+
+        //test spatial intersects with filter function
+        var filter = new OpenLayers.Filter.Spatial({
+            property: 'the_geom',
+            type: OpenLayers.Filter.Spatial.INTERSECTS,
+            value: new OpenLayers.Filter.Function({
+                name  : 'querySingle',
+                params: ['sf:restricted', 'the_geom', 'cat=3']
+            })
+        });
+
+        var out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:Intersects>' +
+                    '<ogc:PropertyName>the_geom</ogc:PropertyName>' +
+                    '<ogc:Function name="querySingle">' +
+                        '<ogc:Literal>sf:restricted</ogc:Literal>' +
+                        '<ogc:Literal>the_geom</ogc:Literal>' +
+                        '<ogc:Literal>cat=3</ogc:Literal>' +
+                    '</ogc:Function>' +
+                '</ogc:Intersects>' +
+            '</ogc:Filter>';
+
+
+        var node = parser.write(filter);
+
+        //test writer
+        t.xml_eq(node, out, "spatial intersect filter with functions correctly written");
+
+        //test logical filter with custom function
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: [
+                new OpenLayers.Filter.Comparison({
+                    type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
+                    matchCase: false,
+                    property: "FOO",
+                    value: new OpenLayers.Filter.Function({
+                        name : 'customFunction',
+                        params : ['param1', 'param2']
+                    })
+                })
+            ]
+        });
+
+        out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:And>' +
+                    '<ogc:PropertyIsNotEqualTo matchCase="false">' +
+                        '<ogc:PropertyName>FOO</ogc:PropertyName>' +
+                        '<ogc:Function name="customFunction">' +
+                            '<ogc:Literal>param1</ogc:Literal>' +
+                            '<ogc:Literal>param2</ogc:Literal>' +
+                        '</ogc:Function>' +
+                    '</ogc:PropertyIsNotEqualTo>' +
+                '</ogc:And>' +
+            '</ogc:Filter>';
+
+        node = parser.write(filter);
+
+        //test writer
+        t.xml_eq(node, out, "comparison filter with filter functions correctly written");
+
+    }
+
+    function test_NestedFilterFunctions(t) {
+        t.plan(1);
+
+        //test spatial dwithin with nested filter function
+        var filter = new OpenLayers.Filter.Spatial({
+           property: 'the_geom',
+           type: OpenLayers.Filter.Spatial.DWITHIN,
+           value: new OpenLayers.Filter.Function({
+               name : 'collectGeometries',
+               params: [
+                    new OpenLayers.Filter.Function({
+                        name  : 'queryCollection',
+                        params: ['sf:roads', 'the_geom', 'INCLUDE']
+                    })
+               ]
+           }),
+           distanceUnits: "meters",
+           distance: 200
+        });
+
+        var out =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:DWithin>' +
+                    '<ogc:PropertyName>the_geom</ogc:PropertyName>' +
+                    '<ogc:Function name="collectGeometries">' +
+                        '<ogc:Function name="queryCollection">' +
+                            '<ogc:Literal>sf:roads</ogc:Literal>' +
+                            '<ogc:Literal>the_geom</ogc:Literal>' +
+                            '<ogc:Literal>INCLUDE</ogc:Literal>' +
+                        '</ogc:Function>' +
+                    '</ogc:Function>' +
+                    '<ogc:Distance units="meters">200</ogc:Distance>' +
+                '</ogc:DWithin>' +
+            '</ogc:Filter>';
+
+        var parser = new OpenLayers.Format.Filter.v1_1_0();
+        var node = parser.write(filter);
+
+        //test writer
+        t.xml_eq(node, out, "spatial dwithin filter with nested functions correctly written");
+    }
+
+    function test_write_like_matchcase(t) {
+        t.plan(1);
+
+        var filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.LIKE,
+            property: "person",
+            value: "*me*",
+            matchCase: false
+        });
+
+        var format = new OpenLayers.Format.Filter.v1_1_0();
+        
+        var got = format.write(filter);
+        var exp = readXML("LikeMatchCase");
+        t.xml_eq(got, exp, "wrote matchCase attribute on PropertyIsLike");
+    }
+
+    function readXML(id) {
+        var xml = document.getElementById(id).firstChild.nodeValue;
+        return new OpenLayers.Format.XML().read(xml).documentElement;
+    }
+
+    function test_SortBy(t) {
+        t.plan(1);
+    
+        var out =
+            '<ogc:SortBy xmlns:ogc="http://www.opengis.net/ogc">'+
+                '<ogc:SortProperty>'+
+                    '<ogc:PropertyName>Title</ogc:PropertyName>'+
+                    '<ogc:SortOrder>ASC</ogc:SortOrder>'+
+                '</ogc:SortProperty>'+
+                '<ogc:SortProperty>'+
+                    '<ogc:PropertyName>Relevance</ogc:PropertyName>'+
+                    '<ogc:SortOrder>DESC</ogc:SortOrder>'+
+                '</ogc:SortProperty>'+
+            '</ogc:SortBy>';
+        
+        var parser = new OpenLayers.Format.Filter.v1_1_0();
+        var node = parser.writers['ogc'].SortBy.call(parser, [{
+            "property": 'Title',
+            "order": "ASC"
+        },{
+            "property": 'Relevance',
+            "order": "DESC"
+        }]);
+        
+        t.xml_eq(node, out, "Check SortBy");
+    }
     </script> 
 </head> 
 <body>
+<div id="LikeMatchCase"><!--
+<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+    <ogc:PropertyIsLike wildCard="*" singleChar="." escapeChar="!" matchCase="false">
+        <ogc:PropertyName>person</ogc:PropertyName>
+        <ogc:Literal>*me*</ogc:Literal>
+    </ogc:PropertyIsLike>
+</ogc:Filter>
+--></div>
 </body> 
 </html> 
diff --git a/tests/Format/GML.html b/tests/Format/GML.html
index d899dfb..43b8fbd 100644
--- a/tests/Format/GML.html
+++ b/tests/Format/GML.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_Format_GML_constructor(t) { 
@@ -411,7 +411,7 @@
  ];
    
     var shell_start = '<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs"><gml:featureMember xmlns:gml="http://www.opengis.net/gml"><feature:features xmlns:feature="http://mapserver.gis.umn.edu/mapserver" fid="221"><feature:geometry>'; 
-    if (OpenLayers.Util.getBrowserName() == "opera") {
+    if (OpenLayers.BROWSER_NAME == "opera") {
         shell_start = '<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs"><gml:featureMember xmlns:gml="http://www.opengis.net/gml"><feature:features fid="221" xmlns:feature="http://mapserver.gis.umn.edu/mapserver"><feature:geometry>'; 
     }    
     var shell_end = '</feature:geometry></feature:features></gml:featureMember></wfs:FeatureCollection>';
diff --git a/tests/Format/GML/v2.html b/tests/Format/GML/v2.html
index 48f6abe..8857d05 100644
--- a/tests/Format/GML/v2.html
+++ b/tests/Format/GML/v2.html
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <html xmlns="http://www.w3.org/1999/xhtml"> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script src="cases.js"></script>
     <script type="text/javascript">
 
@@ -177,6 +177,21 @@
         t.eq(attributes["LAND_KM"], "143986.61", "read LAND_KM");
     }
 
+    function test_read_autoconfig(t) {
+        t.plan(5);
+        var doc = readXML("v2/topp-states.xml");
+        var format = new OpenLayers.Format.GML.v2();
+        var features = format.read(doc.documentElement);
+        
+        t.eq(features.length, 3, "read 3 features");
+        var feature = features[0];
+        t.eq(feature.fid, "states.1", "read fid");
+        t.eq(feature.geometry.CLASS_NAME, "OpenLayers.Geometry.MultiPolygon",
+             "read multipolygon geometry");
+        t.eq(format.featureType, "states", "featureType correctly auto-configured");
+        t.eq(format.featureNS, "http://www.openplans.org/topp", "featureNS correctly auto-configured");
+    }
+    
     function test_boundedBy(t) {
         t.plan(5);
         
@@ -248,6 +263,7 @@
         t.eq(bounds.right, 337568, "bounds right correct");
         t.eq(bounds.top, 6885985, "bounds top correct");
     }
+
    </script>
 </head>
 <body>
diff --git a/tests/Format/GML/v3.html b/tests/Format/GML/v3.html
index 4d452fc..9e6c5b8 100644
--- a/tests/Format/GML/v3.html
+++ b/tests/Format/GML/v3.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script src="cases.js"></script>
     <script type="text/javascript">
 
@@ -50,6 +50,19 @@
         
     }
 
+    function test_read_setGeometryName(t) {
+        t.plan(1);
+        var doc = readXML("v3/topp-states-gml.xml");
+        var format = new OpenLayers.Format.GML.v3({
+            featureType: "states",
+            featureNS: "http://www.openplans.org/topp",
+            geometryName: null
+        });
+        var features = format.read(doc.documentElement);
+
+        t.eq(format.geometryName, "the_geom", "geometryName set when parsing features");
+    }
+
     function test_readNode_bounds(t) {
         var files = ["v3/envelope.xml"];
 
@@ -212,6 +225,26 @@
         t.eq(attributes["LAND_KM"], "143986.61", "read LAND_KM");
     }
     
+    function test_read_autoconfig(t) {
+        t.plan(7);
+        var doc = readXML("v3/topp-states-wfs.xml");
+        var format = new OpenLayers.Format.GML.v3();
+        var features = format.read(doc.documentElement);
+        
+        t.eq(features.length, 3, "read 3 features");
+        var feature = features[0];
+        t.eq(feature.fid, "states.1", "read fid");
+        t.eq(feature.geometry.CLASS_NAME, "OpenLayers.Geometry.MultiPolygon",
+             "read multipolygon geometry");
+        t.eq(format.featureType, "states", "featureType correctly auto-configured");
+        t.eq(format.featureNS, "http://www.openplans.org/topp", "featureNS correctly auto-configured");
+
+        t.eq(format.autoConfig, true, "autoConfig set to true");
+        format.autoConfig = false;
+        format.read(doc.documentElement);
+        t.eq(format.autoConfig, false, "now that featureNS is set, the format does not auto-configure again");
+    }
+    
     function test_emptyAttribute(t) {
         t.plan(4);
         var str =
diff --git a/tests/Format/GPX.html b/tests/Format/GPX.html
index 7bf56ec..0bf897d 100644
--- a/tests/Format/GPX.html
+++ b/tests/Format/GPX.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     var gpx_data = '<?xml version="1.0" encoding="ISO-8859-1"?><gpx version="1.1" creator="Memory-Map 5.1.3.715 http://www.memory-map.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"><wpt lat="51.3697845627" lon="-0.1853562259"><name>Mark</name><sym><![CDATA[Flag]]></sym><type><![CDATA[Marks]]></type></wpt><rte><name><![CDATA[Route8]]></name [...]
diff --git a/tests/Format/GeoJSON.html b/tests/Format/GeoJSON.html
index db3dd7c..98e950f 100644
--- a/tests/Format/GeoJSON.html
+++ b/tests/Format/GeoJSON.html
@@ -1,10 +1,10 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     var poly_content = '{"type": "FeatureCollection", "features": [{"geometry": {"type": "Polygon", "coordinates": [[[-131.484375, -5.9765625], [-112.5, -58.0078125], [-32.34375, -50.2734375], [-114.609375, 52.3828125], [-167.34375, -35.5078125], [-146.953125, -57.3046875], [-139.921875, -34.1015625], [-131.484375, -5.9765625]]]}, "type": "Feature", "id": 562, "properties": {"strokeColor": "red", "title": "Feature 2", "author": "Your Name Here"}}]}'; 
-    var null_geom_feature = '{"type":"Feature","id":573,"properties":{"strokeColor":"blue","title":"Feature 5","author":"Your Name Here"},"geometry":null}';
+    var null_geom_feature = '{"type":"Feature","properties":{"strokeColor":"blue","title":"Feature 5","author":"Your Name Here"},"geometry":null,"id":573}';
     var point_feature = '{"geometry": {"type": "Point", "coordinates": [94.21875, 72.94921875]}, "type": "Feature", "id": 573, "properties": {"strokeColor": "blue", "title": "Feature 5", "author": "Your Name Here"}}';
     var line_feature = '{"type": "FeatureCollection", "features": [{"geometry": {"type": "LineString", "coordinates": [[-27.0703125, 59.4140625], [-77.6953125, 20.7421875], [30.5859375, -36.2109375], [67.1484375, 34.8046875]]}, "type": "Feature", "id": 559, "properties": {"strokeColor": "red", "title": "Feature 1", "author": "Your Name Here"}}]}';
     var multiple_features = '{"type": "FeatureCollection", "features": [{"geometry": {"type": "Point", "coordinates": [-91.0546875, 43.9453125]}, "type": "Feature", "id": 577, "properties": {"strokeColor": "red", "title": "Feature 2", "image": "foo.gif", "author": "Your Name Here"}}, {"geometry": {"type": "LineString", "coordinates": [[91.40625, -1.40625], [116.015625, -42.890625], [153.28125, -28.125], [108.984375, 11.25], [75.234375, 8.4375], [76.640625, 9.140625], [67.5, -36.5625], [6 [...]
@@ -95,6 +95,19 @@
         t.eq(data.components[1].y, 1, "y of second component is right");    
     }
 
+    function test_Format_GeoJSON_multipoint_projected(t) {
+        t.plan(1);
+        var f = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPoint([
+            new OpenLayers.Geometry.Point(15555162, 4247484)]));
+        var format = new OpenLayers.Format.GeoJSON({
+            internalProjection: new OpenLayers.Projection("EPSG:900913"),
+            externalProjection: new OpenLayers.Projection("EPSG:4326")
+        });
+        var data = format.write(f);
+        var found = (data.search('139.734') != -1);
+        t.ok(found, "Found 139.734 (correct reprojection) in data output.");
+    }        
+
     function test_Format_GeoJSON_multiline(t) {
         t.plan(3);
 
@@ -238,7 +251,7 @@
         t.plan(2);
         var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,2));
         feature.fid = 0;
-        var output = '{"type":"Feature","id":0,"properties":{},"geometry":{"type":"Point","coordinates":[1,2]},"crs":{"type":"OGC","properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}}';
+        var output = '{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[1,2]},"id":0,"crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}}}';
         var layer = new OpenLayers.Layer.Vector();
         layer.projection = "EPSG:4326";
         feature.layer = layer;
@@ -246,7 +259,7 @@
         var test_out = parser.write(feature);
         t.eq(test_out, output, "Output is equal for vector with layer in EPSG:4326 ");
         feature.layer.projection = "EPSG:2805";
-        output = '{"type":"Feature","id":0,"properties":{},"geometry":{"type":"Point","coordinates":[1,2]},"crs":{"type":"EPSG","properties":{"code":2805}}}';
+        output = '{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[1,2]},"id":0,"crs":{"type":"name","properties":{"name":"EPSG:2805"}}}';
         test_out = parser.write(feature);
         t.eq(test_out, output, "Output is equal for vector with point");
     }    
@@ -279,13 +292,13 @@
         };
         data = parser.read(line_object);
         out = parser.write(data);
-        serialized = '{"type":"FeatureCollection","features":[{"type":"Feature","id":559,"properties":{"strokeColor":"red","title":"Feature 1","author":"Your Name Here"},"geometry":{"type":"LineString","coordinates":[[-27.0703125,59.4140625],[-77.6953125,20.7421875],[30.5859375,-36.2109375],[67.1484375,34.8046875]]}}]}';
+        serialized = '{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"strokeColor":"red","title":"Feature 1","author":"Your Name Here"},"geometry":{"type":"LineString","coordinates":[[-27.0703125,59.4140625],[-77.6953125,20.7421875],[30.5859375,-36.2109375],[67.1484375,34.8046875]]},"id":559}]}';
         t.eq(out, serialized, "input and output on line collections are the same");
         
         var serialize_tests = [
             [
                 new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,2)),
-                '{"type":"Feature","id":0,"properties":{},"geometry":{"type":"Point","coordinates":[1,2]}}'
+                '{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[1,2]},"id":0}'
             ],
             [
                 new OpenLayers.Geometry.Point(1,2), 
@@ -337,7 +350,7 @@
         serialize_tests.push([multiline, '{"type":"MultiLineString","coordinates":[[[1,2],[3,4]],[[1,2],[3,4]]]}']);
         multipolygon = new OpenLayers.Geometry.MultiPolygon([serialize_tests[4][0],  serialize_tests[4][0]]);
         serialize_tests.push([multipolygon, '{"type":"MultiPolygon","coordinates":[[[[1,2],[3,4],[5,6],[1,2]]],[[[1,2],[3,4],[5,6],[1,2]]]]}']);
-        serialize_tests.push([ [ serialize_tests[0][0] ], '{"type":"FeatureCollection","features":[{"type":"Feature","id":0,"properties":{},"geometry":{"type":"Point","coordinates":[1,2]}}]}' ]);
+        serialize_tests.push([ [ serialize_tests[0][0] ], '{"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[1,2]},"id":0}]}' ]);
         for (var i = 0; i < serialize_tests.length; i++) {
             var input = serialize_tests[i][0];
             var output = serialize_tests[i][1];
@@ -346,6 +359,33 @@
         }
     }
 
+    function test_write_no_fid(t) {
+        t.plan(4);
+
+        var geojson;
+        var feature = new OpenLayers.Feature.Vector();
+
+        feature.fid = null;
+        geojson = parser.write(feature);
+        t.eq(geojson, '{"type":"Feature","properties":{},"geometry":null}',
+             "no id set in the GeoJSON string when fid is null");
+
+        feature.fid = undefined;
+        geojson = parser.write(feature);
+        t.eq(geojson, '{"type":"Feature","properties":{},"geometry":null}',
+             "no id set in the GeoJSON string when fid is undefined");
+
+        feature.fid = 0;
+        geojson = parser.write(feature);
+        t.eq(geojson, '{"type":"Feature","properties":{},"geometry":null,"id":0}',
+             "id set in the GeoJSON string when fid is 0");
+
+        delete feature.fid;
+        geojson = parser.write(feature);
+        t.eq(geojson, '{"type":"Feature","properties":{},"geometry":null}',
+             "id not set in the GeoJSON string when fid is delected");
+    }
+
     function test_Format_GeoJSON_read_object(t) {
         t.plan(1);
 
diff --git a/tests/Format/GeoRSS.html b/tests/Format/GeoRSS.html
index 8a4665a..6e82f05 100644
--- a/tests/Format/GeoRSS.html
+++ b/tests/Format/GeoRSS.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_Format_GeoRSS_constructor(t) { 
@@ -73,6 +73,23 @@
             t.xml_eq(out, expected_result, "Output gave expected value");
         }
     }
+
+    function test_leading_space(t) {
+        t.plan(2);
+        
+        var parser = new OpenLayers.Format.GeoRSS();
+        var items = parser.read('<rss version="2.0" xmlns:georss="http://www.georss.org/georss"><item><description>  <![CDATA[foo]]></description></item></rss>');
+        t.eq(items.length, 1, "item created");
+
+        // when parsing a node composed of both spaces and a cdata section
+        // (e.g. <description>  <![DATA[foo]]></description> IE8 ignores
+        // the leading white spaces, and reports that the node does not
+        // include a text node. For that reason, we need to trim the
+        // string value resulting from the parsing.
+
+        var description = OpenLayers.String.trim(items[0].attributes.description);
+        t.eq(description, "foo", "description value is ok");
+    }
              
     var shell_start = '<feed xmlns="http://www.w3.org/2005/Atom" \n              xmlns:georss="http://www.georss.org/georss">\n              <title>scribble</title>\n              <id>http://featureserver.org/featureserver.cgi/scribble?format=atom</id>\n              <author><name>FeatureServer</name></author>\n';             
     var shell_end = '</feed>'; 
diff --git a/tests/Format/JSON.html b/tests/Format/JSON.html
index 0bdbb6f..84461e1 100644
--- a/tests/Format/JSON.html
+++ b/tests/Format/JSON.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_Format_JSON_constructor(t) { 
diff --git a/tests/Format/KML.html b/tests/Format/KML.html
index 018aaed..42b6fe6 100644
--- a/tests/Format/KML.html
+++ b/tests/Format/KML.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     var test_content = '<kml xmlns="http://earth.google.com/kml/2.0"><Folder><name>OpenLayers export</name><description>Vector geometries from OpenLayers</description><Placemark id="KML.Polygon"><name>OpenLayers.Feature.Vector_344</name><description>A KLM Polygon</description><Polygon><outerBoundaryIs><LinearRing><coordinates>5.001370157823406,49.26855713824488 8.214706453896161,49.630662409673505 8.397385910100951,48.45172350357396 5.001370157823406,49.26855713824488</coordinates></Line [...]
@@ -9,7 +9,6 @@
     var test_style_outline = '<kml xmlns="http://earth.google.com/kml/2.0"> <Placemark>    <Style> <PolyStyle> <outline>0</outline> <color>870000ff</color> <width>10</width> </PolyStyle> </Style>  <LineString> <coordinates> -112,36 -113,37 </coordinates> </LineString> </Placemark></kml>';
     var test_style_font = '<kml xmlns="http://earth.google.com/kml/2.0"> <Placemark><Style><LabelStyle><color>870000ff</color><scale>1.5</scale></LabelStyle></Style><LineString><coordinates> -112,36 -113,37 </coordinates></LineString></Placemark></kml>';
     var test_nl = '<kml xmlns="http://earth.google.com/kml/2.2"> <Document> <NetworkLink> <Link> <href>http://maker.geocommons.com/maps/1717/overlays/0</href> </Link> </NetworkLink> </Document></kml>';
-
     function test_Format_KML_constructor(t) { 
         t.plan(5); 
          
@@ -23,7 +22,20 @@
         t.eq(format.externalProjection.getCode(), "EPSG:4326", 
              "default external projection is EPSG:4326"); 
     }
-
+    function test_Format_KML_multipoint(t) {
+        t.plan(1);
+        var f = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPoint([
+            new OpenLayers.Geometry.Point(15555162, 4247484)]));
+        var format = new OpenLayers.Format.KML({
+            extractStyles:      true, 
+            extractAttributes:  true,
+            internalProjection: new OpenLayers.Projection("EPSG:900913"),
+            externalProjection: new OpenLayers.Projection("EPSG:4326")
+        });
+        var data = format.write(f);
+        var found = (data.search('139.734') != -1);
+        t.ok(found, "Found 139.734 (correct reprojection) in data output.");
+    }        
     function test_Format_KML_read(t) {
         t.plan(5);
         var features = (new OpenLayers.Format.KML()).read(this.test_content);
@@ -35,6 +47,7 @@
              "read geometry collection");
     }
 
+    
     function test_Format_KML_readCdataAttributes_20(t) {
         t.plan(2);
         var cdata = '<kml xmlns="http://earth.google.com/kml/2.0"><Document><Placemark><name><![CDATA[Pezinok]]> </name><description><![CDATA[Full of text.]]></description><styleUrl>#rel1.0</styleUrl><Point> <coordinates>17.266666, 48.283333</coordinates></Point></Placemark></Document></kml>';
@@ -217,6 +230,18 @@
         };
         t.eq(f.read(f.write(feature))[0].attributes.name, feature.style.label, "placemark name from style.label");
     }
+    function test_Format_KML_linestring_projected(t) {
+        t.plan(1);
+        var f = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([
+            new OpenLayers.Geometry.Point(15555162, 4247484), new OpenLayers.Geometry.Point(15555163, 4247485)]));
+        var format = new OpenLayers.Format.KML({
+            internalProjection: new OpenLayers.Projection("EPSG:900913"),
+            externalProjection: new OpenLayers.Projection("EPSG:4326")
+        });
+        var data = format.write(f);
+        var found = (data.search('139.734') != -1);
+        t.ok(found, "Found 139.734 (correct reprojection) in data output.");
+    }        
     
     function test_extractTracks(t) {
         
diff --git a/tests/Format/OGCExceptionReport.html b/tests/Format/OGCExceptionReport.html
new file mode 100644
index 0000000..7846f94
--- /dev/null
+++ b/tests/Format/OGCExceptionReport.html
@@ -0,0 +1,100 @@
+<html>
+<head> 
+    <script src="../OLLoader.js"></script>
+    <script type="text/javascript">
+
+    function test_read_exception(t) {
+
+        t.plan(21);
+
+        // OCG WMS 1.3.0 exceptions
+        var text = '<?xml version="1.0" encoding="UTF-8"?> ' +
+'<ServiceExceptionReport version="1.3.0" xmlns="http://www.opengis.net/ogc"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
+'    xsi:schemaLocation="http://www.opengis.net/ogc' +
+'    http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">' +
+'    <ServiceException> Plain text message about an error. </ServiceException>' +
+'    <ServiceException code="InvalidUpdateSequence"> Another error message, this one with a service exception code supplied. </ServiceException>' +
+'    <ServiceException>' +
+'        <![CDATA[ Error in module <foo.c>, line 42' +
+'A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:' +
+']]>' +
+'    </ServiceException>' +
+'    <ServiceException>' +
+'        <![CDATA[ <Module>foo.c</Module> <Error>An error occurred</Error> <Explanation>Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it.</Explanation> ]]>' +
+'    </ServiceException>' +
+'</ServiceExceptionReport>';
+
+        var parser = new OpenLayers.Format.OGCExceptionReport();
+        var result = parser.read(text);
+
+        var exceptions = result.exceptionReport.exceptions;
+
+        var testWMS = function(exceptions) {
+            t.eq(exceptions.length, 4, "We expect 4 exception messages");
+            t.eq(exceptions[0].text, " Plain text message about an error. ", "First error message correctly parsed");
+            t.eq(exceptions[1].code, "InvalidUpdateSequence", "Code of second error message correctly parsed");
+            t.eq(exceptions[1].text, " Another error message, this one with a service exception code supplied. ", "Text of second error message correctly parsed");
+            t.eq(OpenLayers.String.trim(exceptions[2].text), "Error in module <foo.c>, line 42A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:", "Third message correctly parsed");
+            t.eq(OpenLayers.String.trim(exceptions[3].text), "<Module>foo.c</Module> <Error>An error occurred</Error> <Explanation>Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it.</Explanation>", "Fourth message correctly parsed");
+        };
+
+        testWMS(exceptions);
+
+        // OGC WMS 1.1.1 exceptions
+        text = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd"> ' +
+'<ServiceExceptionReport version="1.1.1">' +
+'    <ServiceException> Plain text message about an error. </ServiceException>' +
+'    <ServiceException code="InvalidUpdateSequence"> Another error message, this one with a service exception code supplied. </ServiceException>' +
+'    <ServiceException>' +
+'        <![CDATA[ Error in module <foo.c>, line 42' +
+'A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:' +
+']]>' +
+'    </ServiceException>' +
+'    <ServiceException>' +
+'        <![CDATA[ <Module>foo.c</Module> <Error>An error occurred</Error> <Explanation>Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it.</Explanation> ]]>' +
+'    </ServiceException>' +
+'</ServiceExceptionReport>';
+        result = parser.read(text);
+        exceptions = result.exceptionReport.exceptions;
+        testWMS(exceptions);
+
+        // OGC WFS 1.0.0 exceptions
+        text = '<?xml version="1.0" ?> ' +
+'<ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
+'    xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd">' +
+'    <ServiceException code="999" locator="INSERT STMT 01"> parse error: missing closing tag for element WKB_GEOM </ServiceException>' +
+'</ServiceExceptionReport>';
+        result = parser.read(text);
+        t.eq(result.exceptionReport.exceptions[0].code, "999", "code parsed correctly");
+        t.eq(result.exceptionReport.exceptions[0].locator, "INSERT STMT 01", "locator parsed correctly");
+        t.eq(result.exceptionReport.exceptions[0].text, " parse error: missing closing tag for element WKB_GEOM ", "error text parsed correctly");
+
+        // OGC WFS 1.1.0 exceptions that use OWSCommon 1.0
+        text = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<ows:ExceptionReport language="en" version="1.0.0"' +
+'    xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows">' +
+'    <ows:Exception locator="foo" exceptionCode="InvalidParameterValue">' +
+'        <ows:ExceptionText>Update error: Error occured updating features</ows:ExceptionText>' +
+'        <ows:ExceptionText>Second exception line</ows:ExceptionText>' +
+'    </ows:Exception>' +
+'</ows:ExceptionReport>';
+
+        var result = parser.read(text);
+        var report = result.exceptionReport;
+        t.eq(report.version, "1.0.0", "Version parsed correctly");
+        t.eq(report.language, "en", "Language parsed correctly");
+        var exception = report.exceptions[0];
+        t.eq(exception.code, "InvalidParameterValue", "exceptionCode properly parsed");
+        t.eq(exception.locator, "foo", "locator properly parsed");
+        t.eq(exception.texts[0], "Update error: Error occured updating features", "ExceptionText correctly parsed");
+        t.eq(exception.texts[1], "Second exception line", "Second ExceptionText correctly parsed");
+    }
+
+    </script> 
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/OSM.html b/tests/Format/OSM.html
index 1c3c9f9..6ceb316 100644
--- a/tests/Format/OSM.html
+++ b/tests/Format/OSM.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script src="../data/osm.js"></script> 
     <script type="text/javascript">
     
@@ -95,6 +95,18 @@
             output = output.replace(/<\?[^>]*\?>/, '');
             t.eq(output, osm_serialized_data[key], key + " serialized correctly");
         }
+    }   
+    function test_Format_OSM_write_reproject(t) {
+        t.plan(1);
+        var f = new OpenLayers.Format.OSM({'internalProjection': new OpenLayers.Projection("EPSG:900913")});
+        var feat = new OpenLayers.Feature.Vector(
+            new OpenLayers.Geometry.Point(100000, 100000)
+            );
+        var data = f.write([feat]);
+        var f = new OpenLayers.Format.OSM();
+        var features = f.read(data);
+
+        t.eq(OpenLayers.Util.toFloat(features[0].geometry.x, 3), .898, "exported to lonlat and re-read as lonlat correctly")
     }    
     </script> 
 </head> 
diff --git a/tests/Format/OWSCommon/v1_0_0.html b/tests/Format/OWSCommon/v1_0_0.html
new file mode 100644
index 0000000..9d255b2
--- /dev/null
+++ b/tests/Format/OWSCommon/v1_0_0.html
@@ -0,0 +1,34 @@
+<html>
+<head> 
+    <script src="../../OLLoader.js"></script>
+    <script type="text/javascript">
+
+    function test_read_exception(t) {
+        t.plan(6);
+        var text = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<ows:ExceptionReport language="en" version="1.0.0"' +
+'    xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows">' +
+'    <ows:Exception locator="foo" exceptionCode="InvalidParameterValue">' +
+'        <ows:ExceptionText>Update error: Error occured updating features</ows:ExceptionText>' +
+'        <ows:ExceptionText>Second exception line</ows:ExceptionText>' +
+'    </ows:Exception>' +
+'</ows:ExceptionReport>';
+
+        var format = new OpenLayers.Format.OWSCommon();
+        var result = format.read(text);
+        var report = result.exceptionReport;
+        t.eq(report.version, "1.0.0", "Version parsed correctly");
+        t.eq(report.language, "en", "Language parsed correctly");
+        var exception = report.exceptions[0];
+        t.eq(exception.code, "InvalidParameterValue", "exceptionCode properly parsed");
+        t.eq(exception.locator, "foo", "locator properly parsed");
+        t.eq(exception.texts[0], "Update error: Error occured updating features", "ExceptionText correctly parsed");
+        t.eq(exception.texts[1], "Second exception line", "Second ExceptionText correctly parsed");
+    }
+
+    </script> 
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/OWSCommon/v1_1_0.html b/tests/Format/OWSCommon/v1_1_0.html
new file mode 100644
index 0000000..e899ea8
--- /dev/null
+++ b/tests/Format/OWSCommon/v1_1_0.html
@@ -0,0 +1,34 @@
+<html>
+<head> 
+    <script src="../../OLLoader.js"></script>
+    <script type="text/javascript">
+
+    function test_read_exception(t) {
+        t.plan(6);
+        var text = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<ows:ExceptionReport xml:lang="en" version="1.0.0"' +
+'    xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1">' +
+'    <ows:Exception locator="foo" exceptionCode="InvalidParameterValue">' +
+'        <ows:ExceptionText>Update error: Error occured updating features</ows:ExceptionText>' +
+'        <ows:ExceptionText>Second exception line</ows:ExceptionText>' +
+'    </ows:Exception>' +
+'</ows:ExceptionReport>';
+
+        var format = new OpenLayers.Format.OWSCommon();
+        var result = format.read(text);
+        var report = result.exceptionReport;
+        t.eq(report.version, "1.0.0", "Version parsed correctly");
+        t.eq(report.language, "en", "Language parsed correctly");
+        var exception = report.exceptions[0];
+        t.eq(exception.code, "InvalidParameterValue", "exceptionCode properly parsed");
+        t.eq(exception.locator, "foo", "locator properly parsed");
+        t.eq(exception.texts[0], "Update error: Error occured updating features", "ExceptionText correctly parsed");
+        t.eq(exception.texts[1], "Second exception line", "Second ExceptionText correctly parsed");
+    }
+
+    </script> 
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/OWSContext/v0_3_1.html b/tests/Format/OWSContext/v0_3_1.html
index cc7d1dc..938fee2 100644
--- a/tests/Format/OWSContext/v0_3_1.html
+++ b/tests/Format/OWSContext/v0_3_1.html
@@ -1,10 +1,10 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_read_wmswfs(t) {
-        t.plan(16);
+        t.plan(17);
         // taken from http://www.ogcnetwork.net/schemas/owc/0.3.1/context_nested.xml
         // adapted: add an extra slash (roads/railways) in the Title of the WMS layer to test nesting
         var text = '<?xml version="1.0" encoding="UTF-8"?>' +
@@ -34,7 +34,7 @@
             '			<Layer name="topp:gnis_pop" hidden="0">' +
             '				<ows:Title>GNIS Population</ows:Title>' +
             '				<Server service="urn:ogc:serviceType:WFS" version="1.0.0">' +
-            '					<OnlineResource xlink:href="http://sigma.openplans.org:8080/geoserver/wfs?"/>' +
+            '					<OnlineResource xlink:href="geoserver/wfs?"/>' +
             '				</Server>' +
             '			</Layer>' +
             '		</Layer>' +
@@ -54,13 +54,14 @@
         t.ok(context.layers[0].queryable, "WMS layer is queryable");
         t.eq(context.layers[0].name, "Tiger 2005fe major roads/railways", "Title correctly set");
         t.ok(context.layers[1].protocol instanceof OpenLayers.Protocol.WFS.v1_0_0, "Vector layer configured with a WFS Protocol");
-        t.eq(context.layers[1].protocol.url, "http://sigma.openplans.org:8080/geoserver/wfs?", "WFS url set correctly");
+        t.eq(context.layers[1].protocol.url, "geoserver/wfs?", "WFS url set correctly");
         t.ok(context.layers[1].strategies[0] instanceof OpenLayers.Strategy.BBOX, "BBOX strategy configured correctly");
         t.eq(context.layers[1].name, "GNIS Population", "Title of second layer correctly set");
         t.eq(context.layers[1].getVisibility(), true, "Second layer is visible");
         map.zoomToExtent(new OpenLayers.Bounds(-117, 32, -116, 33));
         var owc = parser.write(map, {id: 'ows-context-ex-1-v3', title: 'OWS Context version 0.3.1 showing nested layers'});
         t.xml_eq(text, owc, "Can we roundtrip this nested OWSContext with a WMS and WFS layer?");
+        t.eq(context.layers[1].metadata.nestingPath[0], "Tiger 2005fe major roads/railways", "Nesting path is preserved even after calling write");
     }
 
     function test_write_wmswfs(t) {
@@ -78,7 +79,7 @@
         var wfs = new OpenLayers.Layer.Vector("myroads", {
             strategies: [new OpenLayers.Strategy.BBOX()],
             protocol: new OpenLayers.Protocol.WFS({
-                url:  "http://foo/wfs",
+                url:  "foo/wfs?",
                 featureType: "roads",
                 featureNS: "http://foo/myns"
             })
@@ -88,7 +89,7 @@
 
         var owc = new OpenLayers.Format.OWSContext();
         var output = owc.write(map, {id: 'foo'});
-        var expected = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 29.013671875</ows:LowerCorner><ows:UpperCorner>15.986328125 50.986328125</ows:UpperCorner></ows:BoundingBox> [...]
+        var expected = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 29.013671875</ows:LowerCorner><ows:UpperCorner>15.986328125 50.986328125</ows:UpperCorner></ows:BoundingBox> [...]
         t.xml_eq(output, expected, "OWSContext with a WMS and a WFS layer generated correctly");
     }
 
@@ -138,11 +139,11 @@
 
     function test_read_gml(t) {
         t.plan(5);
-        var text = '<?xml version="1.0" encoding="UTF-8"?><OWSContext version="0.3.0" id="ows-context-ex-1-v3" xmlns="http://www.opengis.net/ows-context" xmlns:gml="http://www.opengis.net/gml" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:sld="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net [...]
+        var text = '<?xml version="1.0" encoding="UTF-8"?><OWSContext version="0.3.0" id="ows-context-ex-1-v3" xmlns="http://www.opengis.net/ows-context" xmlns:gml="http://www.opengis.net/gml" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:sld="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net [...]
         var parser = new OpenLayers.Format.OWSContext();
         var context = parser.read(text, {map: 'map'});
         t.ok(context.layers[1].protocol instanceof OpenLayers.Protocol.HTTP, "serviceType GML is translated into an HTTP Protocol");
-        t.eq(context.layers[1].protocol.url, "http://www.cadcorpdev.co.uk/gml/MassGIS/LandUse.gml", "Url of GML file correctly set");
+        t.eq(context.layers[1].protocol.url, "gml/MassGIS/LandUse.gml", "Url of GML file correctly set");
         t.ok(context.layers[1].protocol.format instanceof OpenLayers.Format.GML, "GML Format associated with protocol");
         t.eq(Math.round(context.layers[1].minScale), 50000, "Minscale correctly read");
         t.eq(Math.round(context.layers[1].maxScale), 5000, "Maxscale correctly read");
@@ -150,11 +151,11 @@
 
     function test_read_kml(t) {
         t.plan(3);
-        var text = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 27.9150390625</ows:LowerCorner><ows:UpperCorner>15.986328125 52.0849609375</ows:UpperCorner></ows:BoundingBox><o [...]
+        var text = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 27.9150390625</ows:LowerCorner><ows:UpperCorner>15.986328125 52.0849609375</ows:UpperCorner></ows:BoundingBox><o [...]
         var parser = new OpenLayers.Format.OWSContext();
         var context = parser.read(text, {map: 'map'});
         t.ok(context.layers[1].protocol instanceof OpenLayers.Protocol.HTTP, "serviceType KML is translated into an HTTP Protocol");
-        t.eq(context.layers[1].protocol.url, "http://foo/sundials.kml", "Url of KML file correctly set");
+        t.eq(context.layers[1].protocol.url, "foo/sundials.kml", "Url of KML file correctly set");
         t.ok(context.layers[1].protocol.format instanceof OpenLayers.Format.KML, "KML Format associated with protocol");
     }
 
@@ -174,7 +175,7 @@
             projection: map.displayProjection,
             strategies: [new OpenLayers.Strategy.Fixed()],
             protocol: new OpenLayers.Protocol.HTTP({
-                url: "http://foo/sundials.gml",
+                url: "foo/sundials.gml",
                 format: new OpenLayers.Format.GML()
             })
         });
@@ -183,7 +184,7 @@
 
         var owc = new OpenLayers.Format.OWSContext();
         var output = owc.write(map, {id: 'foo'});
-        var expected = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 29.013671875</ows:LowerCorner><ows:UpperCorner>15.986328125 50.986328125</ows:UpperCorner></ows:BoundingBox> [...]
+        var expected = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 29.013671875</ows:LowerCorner><ows:UpperCorner>15.986328125 50.986328125</ows:UpperCorner></ows:BoundingBox> [...]
         t.xml_eq(output, expected, "OWSContext with a WMS and a GML vector layer generated correctly");
     }
 
@@ -203,7 +204,7 @@
             projection: map.displayProjection,
             strategies: [new OpenLayers.Strategy.Fixed()],
             protocol: new OpenLayers.Protocol.HTTP({
-                url: "http://foo/sundials.kml",
+                url: "foo/sundials.kml",
                 format: new OpenLayers.Format.KML({
                     extractStyles: true
                 })
@@ -214,7 +215,7 @@
 
         var owc = new OpenLayers.Format.OWSContext();
         var output = owc.write(map, {id: 'foo'});
-        var expected = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 29.013671875</ows:LowerCorner><ows:UpperCorner>15.986328125 50.986328125</ows:UpperCorner></ows:BoundingBox> [...]
+        var expected = '<OWSContext xmlns="http://www.opengis.net/ows-context" version="0.3.1" id="foo" xsi:schemaLocation="http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><ows:BoundingBox xmlns:ows="http://www.opengis.net/ows" crs="EPSG:4326"><ows:LowerCorner>-5.986328125 29.013671875</ows:LowerCorner><ows:UpperCorner>15.986328125 50.986328125</ows:UpperCorner></ows:BoundingBox> [...]
         t.xml_eq(output, expected, "OWSContext with a WMS and a KML vector layer generated correctly");
     }
 
diff --git a/tests/Format/QueryStringFilter.html b/tests/Format/QueryStringFilter.html
new file mode 100644
index 0000000..b38d1e4
--- /dev/null
+++ b/tests/Format/QueryStringFilter.html
@@ -0,0 +1,306 @@
+<html>
+<head>
+  <script src="../../lib/OpenLayers.js"></script>
+  <script type="text/javascript">
+
+    function test_constructor(t) {
+        t.plan(4);
+        var options = {'foo': 'bar'};
+        var format  = new OpenLayers.Format.QueryStringFilter(options);
+        t.ok(format instanceof OpenLayers.Format.QueryStringFilter,
+           "new OpenLayers.Format.QueryStringFilter object");
+        t.eq(format.foo, "bar", "constructor sets options correctly")
+        t.eq(typeof format.write, 'function', 'format has a write function');
+        t.eq(format.options, options, "format.options correctly set");
+    }
+
+    function test_write(t) {
+        t.plan(30);
+
+        // setup
+
+        var format, filter, params;
+
+        format = new OpenLayers.Format.QueryStringFilter();
+
+        // 1 test
+        filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.BBOX,
+            value: new OpenLayers.Bounds(0, 1, 2, 3)
+        });
+        params = format.write(filter);
+        t.eq(params.bbox, [0, 1, 2, 3], "correct bbox param if passed a BBOX filter");
+
+        // 3 tests
+        var lon = 100, lat = 200, tolerance = 10;
+        filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.DWITHIN,
+            value: new OpenLayers.Geometry.Point(lon, lat),
+            distance: tolerance
+        });
+        params = format.write(filter);
+        t.eq(params.lon, lon, "correct lon param if passed a DWITHIN filter");
+        t.eq(params.lat, lat, "correct lat param if passed a DWITHIN filter");
+        t.eq(params.tolerance, tolerance, "correct tolerance param if passed a DWITHIN filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.WITHIN,
+            value: new OpenLayers.Geometry.Point(lon, lat)
+        });
+        params = format.write(filter);
+        t.eq(params.lon, lon, "correct lon param if passed a WITHIN filter");
+        t.eq(params.lat, lat, "correct lat param if passed a WITHIN filter");
+
+        // Some bbox filters used in the next tests.
+
+        var bboxFilter1 = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.BBOX,
+            value:  new OpenLayers.Bounds(0, 0, 10, 10)
+        });
+
+        var bboxFilter2 = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.BBOX,
+            value:  new OpenLayers.Bounds(0, 0, 20, 20)
+        });
+
+        // 1 test
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: []
+        });
+        params = format.write(filter);
+        t.eq(params, {}, "returns empty object if given empty AND Logical filter");
+
+        // 1 test
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.OR,
+            filters: [
+                bboxFilter1
+            ]
+        });
+        params = format.write(filter);
+        t.eq(params, {}, "does not support OR Logical filter");
+
+        // 1 test
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: [
+                bboxFilter1
+            ]
+        });
+        params = format.write(filter);
+        t.eq(params.bbox, [0, 0, 10, 10],
+             "correct bbox param if passed a Logical filter containing a BBOX");
+
+        // 1 test
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: [
+                bboxFilter1, bboxFilter2
+            ]
+        });
+        params = format.write(filter);
+        t.eq(params.bbox, [0, 0, 20, 20],
+             "correct bbox param if passed multiple BBOX filter in a Logical filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.EQUAL_TO,
+            property: "foo",
+            value: "bar"
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an EQUAL_TO filter");
+        t.eq(params["foo__eq"], "bar",
+             "correct param key and value if passed an EQUAL_TO filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
+            property: "foo",
+            value: "bar"
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an NOT_EQUAL_TO filter");
+        t.eq(params["foo__ne"], "bar",
+             "correct param key and value if passed an NOT_EQUAL_TO filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.LESS_THAN,
+            property: "foo",
+            value: "bar"
+        });
+        var params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an LESS_THAN filter");
+        t.eq(params["foo__lt"], "bar",
+             "correct param key and value if passed an LESS_THAN filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
+            property: "foo",
+            value: "bar"
+        });
+        var params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an LESS_THAN_OR_EQUAL_TO filter");
+        t.eq(params["foo__lte"], "bar",
+             "correct param key and value if passed an LESS_THAN_OR_EQUAL_TO filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.GREATER_THAN,
+            property: "foo",
+            value: "bar"
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an GREATER_THAN filter");
+        t.eq(params["foo__gt"], "bar",
+             "correct param key and value if passed an GREATER_THAN filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+            property: "foo",
+            value: "bar"
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an GREATER_THAN_OR_EQUAL_TO filter");
+        t.eq(params["foo__gte"], "bar",
+             "correct param key and value if passed an GREATER_THAN_OR_EQUAL_TO filter");
+
+        // 2 tests
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.LIKE,
+            property: "foo",
+            value: "bar"
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed a LIKE filter");
+        t.eq(params["foo__ilike"], "bar",
+             "correct param key and value if passed an LIKE filter");
+
+        // 4 tests
+        filter = new OpenLayers.Filter.Logical({
+            type: OpenLayers.Filter.Logical.AND,
+            filters: [
+                new OpenLayers.Filter.Comparison({
+                    type: OpenLayers.Filter.Comparison.EQUAL_TO,
+                    property: "foo",
+                    value: "bar"
+                }),
+                new OpenLayers.Filter.Comparison({
+                    type: OpenLayers.Filter.Comparison.LESS_THAN,
+                    property: "foo2",
+                    value: "baz"
+                })
+            ]
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed an EQUAL_TO filter within a AND filter");
+        t.eq(params["foo__eq"], "bar",
+             "correct param key and value if passed an EQUAL_TO filter within a AND filter");
+        t.eq(params.queryable[1], "foo2",
+             "correct queryable param if passed a LESS_THAN filter within a AND filter");
+        t.eq(params["foo2__lt"], "baz",
+             "correct param key and value if passed a LESS_THAN filter within a AND filter");
+
+        // 2 tests
+        format = new OpenLayers.Format.QueryStringFilter({wildcarded: true});
+        filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.LIKE,
+            property: "foo",
+            value: "bar"
+        });
+        params = format.write(filter);
+        t.eq(params.queryable[0], "foo",
+             "correct queryable param if passed a LIKE filter (wildcarded true)");
+        t.eq(params["foo__ilike"], "%bar%",
+             "correct param key and value if passed an LIKE filter (wildcarded true)");
+    }
+
+    function test_regex2value(t) {
+        t.plan(16);
+
+        // setup
+
+        var format = new OpenLayers.Format.QueryStringFilter();
+
+        var value;
+        var filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.LIKE,
+            property: "prop"
+        });
+        
+        function serialize(value) {
+            filter.value = value;
+            return format.write(filter).prop__ilike;
+        }
+
+        // test
+
+        value = serialize("foo");
+        t.eq(value, "foo", 'regex2value converts "foo" to "foo"');
+
+        value = serialize("foo%");
+        t.eq(value, "foo\\%", 'regex2value converts "foo%" to "foo\\%"');
+
+        value = serialize("foo.*");
+        t.eq(value, "foo%", 'regex2value converts "foo.*" to "foo%"');
+
+        value = serialize("f.*oo.*");
+        t.eq(value, "f%oo%", 'regex2value converts "f.*oo.*" to "f%oo%"');
+
+        value = serialize("foo.");
+        t.eq(value, "foo_", 'regex2value converts "foo." to "foo_"');
+
+        value = serialize("f.oo.");
+        t.eq(value, "f_oo_", 'regex2value converts "f.oo." to "f_oo_"');
+
+        value = serialize("f.oo.*");
+        t.eq(value, "f_oo%", 'regex2value converts "f.oo.*" to "f_oo%"');
+
+        value = serialize("foo\\\\");
+        t.eq(value, "foo\\\\", 'regex2value converts "foo\\\\" to "foo\\\\"');
+
+        value = serialize("foo\\.");
+        t.eq(value, "foo.", 'regex2value converts "foo\\." to "foo."');
+
+        value = serialize("foo\\\\.");
+        t.eq(value, "foo\\\\_", 'regex2value converts "foo\\\\." to "foo\\\\_"');
+
+        value = serialize("foo\\*");
+        t.eq(value, "foo*", 'regex2value converts "foo\\*" to "foo*"');
+
+        value = serialize("foo\\\\*");
+        t.eq(value, "foo\\\\*", 'regex2value converts "foo\\\\*" to "foo\\\\*"');
+
+        value = serialize("foo\\\\.*");
+        t.eq(value, "foo\\\\%", 'regex2value converts "foo\\\\.*" to "foo\\\\%"');
+
+        value = serialize("fo\\.o.*");
+        t.eq(value, "fo.o%", 'regex2value converts from "fo\\.o.*" to "fo.o%"');
+
+        value = serialize("fo.*o\\.");
+        t.eq(value, "fo%o.", 'regex2value converts from "fo.*o\\." to "to%o."');
+
+        value = serialize("\\*\\..*.\\\\.*\\\\.%");
+        t.eq(value, "*.%_\\\\%\\\\_\\%",
+             'regex2value converts from "\\*\\..*.\\\\.*\\\\.%" ' +
+             'to "*.%_\\\\%\\\\_\\%"');
+    }
+
+  </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/SLD.html b/tests/Format/SLD.html
index d63798b..bc4bd82 100644
--- a/tests/Format/SLD.html
+++ b/tests/Format/SLD.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     var test_content = '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><sld:NamedLayer><sld:Name>TestLayer</sld:Name><sld:UserStyle><sld:Name>foo</sld:Name><sld:FeatureTypeStyle><sld:Rule><sld:Name>bar</sld:Name><ogc:Filter></ogc:Filter><sld:PolygonSymbolizer><sld:Fill><sld:CssParameter name="fill"><ogc:Literal>blue</ogc:Literal></sld:CssParameter></sld:Fill></sld:PolygonSymbolizer></sld:Rule [...]
diff --git a/tests/Format/SLD/v1_0_0.html b/tests/Format/SLD/v1_0_0.html
index 6cb604b..8e2c0a2 100644
--- a/tests/Format/SLD/v1_0_0.html
+++ b/tests/Format/SLD/v1_0_0.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
 
     var xml = new OpenLayers.Format.XML(); 
@@ -402,7 +402,6 @@
                 '<Name>test</Name>' +
                 '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
                     '<ogc:BBOX>' +
-                        '<ogc:PropertyName/>' +
                         '<gml:Box xmlns:gml="http://www.opengis.net/gml">' +
                             '<gml:coordinates decimal="." cs="," ts=" ">0,0 10,10</gml:coordinates>' +
                         '</gml:Box>' +
diff --git a/tests/Format/SOSCapabilities/v1_0_0.html b/tests/Format/SOSCapabilities/v1_0_0.html
index 7b13185..ed7f25e 100644
--- a/tests/Format/SOSCapabilities/v1_0_0.html
+++ b/tests/Format/SOSCapabilities/v1_0_0.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script src="v1_0_0.js"></script>
     <script type="text/javascript">
 
diff --git a/tests/Format/SOSGetFeatureOfInterest.html b/tests/Format/SOSGetFeatureOfInterest.html
index 87b4509..c80078f 100644
--- a/tests/Format/SOSGetFeatureOfInterest.html
+++ b/tests/Format/SOSGetFeatureOfInterest.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_read_SOSGetFeatureOfInterest_single(t) {
diff --git a/tests/Format/SOSGetObservation.html b/tests/Format/SOSGetObservation.html
index 978c09a..3256d5a 100644
--- a/tests/Format/SOSGetObservation.html
+++ b/tests/Format/SOSGetObservation.html
@@ -1,10 +1,10 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_read_SOSGetObservation(t) {
-        t.plan(7);
+        t.plan(13);
 
         var parser = new OpenLayers.Format.SOSGetObservation();
         var text =
@@ -49,15 +49,130 @@
         t.eq(measurement.result.uom, "Cel", "Units of measurement correctly parsed");
         t.eq(measurement.result.value, "4.9", "Value correctly parsed");
         t.eq(measurement.samplingTime.timeInstant.timePosition, "2009-12-02T10:35:00.000+01:00", "Sampling time correctly parsed");
+
+        var response = [];
+        response.push('<?xml version="1.0" encoding="UTF-8"?>',
+'<om:ObservationCollection gml:id="oc_0" xsi:schemaLocation="http://www.opengis.net/om/1.0 http://schemas.opengis.net/om/1.0.0/om.xsd http://www.opengis.net/sampling/1.0 http://schemas.opengis.net/sampling/1.0.0/sampling.xsd" xmlns:om="http://www.opengis.net/om/1.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/1.0.1" xmlns:sa="http://www.opengis.net/sampling/1.0">',
+'  <gml:boundedBy>',
+'    <gml:Envelope srsName="urn:ogc:def:crs:EPSG:4326">',
+'      <gml:lowerCorner>46.611644 7.6103</gml:lowerCorner>',
+'      <gml:upperCorner>51.9412 13.883498</gml:upperCorner>',
+'    </gml:Envelope>',
+'  </gml:boundedBy>',
+'  <om:member>',
+'    <om:Observation gml:id="ot_583227">',
+'      <om:samplingTime>',
+'        <gml:TimePeriod xsi:type="gml:TimePeriodType">',
+'          <gml:beginPosition>2009-09-28T13:45:00.000+02:00</gml:beginPosition>',
+'          <gml:endPosition>2009-09-28T13:45:00.000+02:00</gml:endPosition>',
+'        </gml:TimePeriod>',
+'      </om:samplingTime>',
+'      <om:procedure xlink:href="urn:ogc:object:feature:OSIRIS-HWS:efeb807b-bd24-4128-a920-f6729bcdd111"/>',
+'      <om:observedProperty>',
+'        <swe:CompositePhenomenon gml:id="cpid0" dimension="1">',
+'          <gml:name>resultComponents</gml:name>',
+'          <swe:component xlink:href="urn:ogc:data:time:iso8601"/>',
+'          <swe:component xlink:href="urn:ogc:def:property:OGC::Precipitation1Hour"/>',
+'        </swe:CompositePhenomenon>',
+'      </om:observedProperty>',
+'      <om:featureOfInterest>',
+'        <gml:FeatureCollection>',
+'          <gml:featureMember>',
+'            <sa:SamplingPoint gml:id="urn:ogc:object:feature:OSIRIS-HWS:efeb807b-bd24-4128-a920-f6729bcdd111" xsi:schemaLocation=" http://www.opengis.net/sampling/1.0 http://schemas.opengis.net/sampling/1.0.0/sampling.xsd">',
+'              <gml:name>waether @ roof of the FH Kaernten, Villach, Austria</gml:name>',
+'              <sa:sampledFeature xlink:href="urn:ogc:def:nil:OGC:unknown"/>',
+'              <sa:position>',
+'                <gml:Point>',
+'                  <gml:pos srsName="urn:ogc:def:crs:EPSG:4326">46.611644 13.883498</gml:pos>',
+'                </gml:Point>',
+'              </sa:position>',
+'            </sa:SamplingPoint>',
+'          </gml:featureMember>',
+'        </gml:FeatureCollection>',
+'      </om:featureOfInterest>',
+'      <om:result>',
+'        <swe:DataArray>',
+'          <swe:elementCount>',
+'            <swe:Count>',
+'              <swe:value>1</swe:value>',
+'            </swe:Count>',
+'          </swe:elementCount>',
+'          <swe:elementType name="Components">',
+'            <swe:DataRecord>',
+'              <swe:field name="Time">',
+'                <swe:Time definition="urn:ogc:data:time:iso8601"/>',
+'              </swe:field>',
+'              <swe:field name="feature">',
+'                <swe:Text definition="urn:ogc:data:feature"/>',
+'              </swe:field>',
+'              <swe:field name="urn:ogc:def:property:OGC::Precipitation1Hour">',
+'                <swe:Quantity definition="urn:ogc:def:property:OGC::Precipitation1Hour">',
+'                  <swe:uom code="mm"/>',
+'                </swe:Quantity>',
+'              </swe:field>',
+'            </swe:DataRecord>',
+'          </swe:elementType>',
+'          <swe:encoding>',
+'            <swe:TextBlock decimalSeparator="." tokenSeparator="," blockSeparator=";"/>',
+'          </swe:encoding>',
+'          <swe:values>2009-09-28T13:45:00.000+02:00,urn:ogc:object:feature:OSIRIS-HWS:efeb807b-bd24-4128-a920-f6729bcdd111,0.0;</swe:values>',
+'        </swe:DataArray>',
+'      </om:result>',
+'    </om:Observation>',
+'  </om:member>',
+'</om:ObservationCollection>');
+        text = response.join("");
+        var res = parser.read(text);
+        t.eq(res.observations.length, 1, "1 observation parsed");
+        var observation = res.observations[0];
+        t.eq(observation.procedure, "urn:ogc:object:feature:OSIRIS-HWS:efeb807b-bd24-4128-a920-f6729bcdd111", "procedure parsed correctly");
+        t.eq(observation.fois.length, 1, "One foi parsed for the observation");
+        var foi = observation.fois[0];
+        var feature = foi.features[0];
+        t.eq(feature.attributes.id, "urn:ogc:object:feature:OSIRIS-HWS:efeb807b-bd24-4128-a920-f6729bcdd111", "Foi id correctly parsed");
+        t.eq(feature.attributes.name, "waether @ roof of the FH Kaernten, Villach, Austria", "Foi name correctly parsed");
+        t.ok(feature.geometry instanceof OpenLayers.Geometry.Point, "Geometry correctly parsed");
     }
 
     function test_write_SOSGetObservation(t) {
-        t.plan(1);
+        t.plan(2);
         var expect = '<GetObservation xmlns="http://www.opengis.net/sos/1.0" version="1.0.0" service="SOS" xsi:schemaLocation="http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><offering>TEMPERATURE</offering><eventTime><ogc:TM_Equals xmlns:ogc="http://www.opengis.net/ogc"><ogc:PropertyName>urn:ogc:data:time:iso8601</ogc:PropertyName><gml:TimeInstant xmlns:gml="http://www.opengis.net/gml"><gml: [...]
         var format = new OpenLayers.Format.SOSGetObservation();
         var output = format.write({eventTime: 'latest', resultModel: 'Measurement', responseMode: 'inline',
-            procedure: 'urn:ogc:object:feature:OSIRIS-HWS:4fc335bc-06d7-4d5e-a72a-1ac73b9f3b56', responseFormat: 'text/xml;subtype="om/1.0.0"',
-            offering: 'TEMPERATURE', observedProperty: 'urn:x-ogc:def:property:OGC::Temperature'});
+            procedures: ['urn:ogc:object:feature:OSIRIS-HWS:4fc335bc-06d7-4d5e-a72a-1ac73b9f3b56'], responseFormat: 'text/xml;subtype="om/1.0.0"',
+            offering: 'TEMPERATURE', observedProperties: ['urn:x-ogc:def:property:OGC::Temperature']});
+        t.xml_eq(output, expect, "Request XML is written out correctly");
+
+        var expected = [];
+
+        expected.push('<?xml version="1.0" encoding="UTF-8"?>',
+'<GetObservation xmlns="http://www.opengis.net/sos/1.0"',
+'  xmlns:gml="http://www.opengis.net/gml"',
+'  xmlns:om="http://www.opengis.net/om/1.0"',
+'  xmlns:ogc="http://www.opengis.net/ogc"',
+'  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"',
+'  xsi:schemaLocation="http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd"',
+'  service="SOS" version="1.0.0">',
+'  <offering>RAIN_GAUGE</offering>',
+'  <eventTime>',
+'    <ogc:TM_Equals>',
+'      <ogc:PropertyName>urn:ogc:data:time:iso8601</ogc:PropertyName>',
+'      <gml:TimeInstant>',
+'        <gml:timePosition>latest</gml:timePosition>',
+'      </gml:TimeInstant>',
+'    </ogc:TM_Equals>',
+'  </eventTime>',
+'  <observedProperty>urn:ogc:def:property:OGC::Precipitation1Hour</observedProperty>',
+'  <featureOfInterest>',
+'    <ObjectID>urn:ogc:object:feature:OSIRIS-HWS:3d3b239f-7696-4864-9d07-15447eae2b93</ObjectID>',
+'  </featureOfInterest>',
+'  <responseFormat>text/xml;subtype="om/1.0.0"</responseFormat>',
+'</GetObservation>');
+        expect = expected.join("");
+        var output = format.write({eventTime: 'latest', offering: 'RAIN_GAUGE',
+            observedProperties: ['urn:ogc:def:property:OGC::Precipitation1Hour'],
+            responseFormat: 'text/xml;subtype="om/1.0.0"',
+            foi: {objectId: 'urn:ogc:object:feature:OSIRIS-HWS:3d3b239f-7696-4864-9d07-15447eae2b93'}});
         t.xml_eq(output, expect, "Request XML is written out correctly");
     }
 
diff --git a/tests/Format/Text.html b/tests/Format/Text.html
index 2b46ced..9b18bb5 100644
--- a/tests/Format/Text.html
+++ b/tests/Format/Text.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
     function test_basic(t) {
         t.plan(5);
@@ -8,7 +8,7 @@
         var features = format.read(OpenLayers.Util.getElement("content").value);
         t.eq(features[0].style.externalGraphic, format.defaultStyle.externalGraphic, "style is set to defaults if no style props set in text file");
         var features = format.read(OpenLayers.Util.getElement("contentMarker").value);
-        t.eq(features[0].style.externalGraphic, "../../img/marker.png", "marker set correctly by default.");
+        t.eq(features[0].style.externalGraphic, OpenLayers.Util.getImagesLocation() + "marker.png", "marker set correctly by default.");
         
         var features = format.read(OpenLayers.Util.getElement("content2").value);
         t.eq(features.length, 2, "two features read");
diff --git a/tests/Format/WCSGetCoverage.html b/tests/Format/WCSGetCoverage.html
new file mode 100644
index 0000000..6379b2b
--- /dev/null
+++ b/tests/Format/WCSGetCoverage.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+    <script src="../OLLoader.js"></script>
+    <script type="text/javascript">
+
+    function test_write_WCSGetCoverage(t) {
+        t.plan(1);
+        var expected = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<GetCoverage xmlns="http://www.opengis.net/wcs/1.1" xmlns:ows="http://www.opengis.net/ows/1.1"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
+'    xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd"' +
+'    service="WCS" version="1.1.2">' +
+'    <ows:Identifier>Cov123</ows:Identifier>' +
+'    <DomainSubset>' +
+'        <ows:BoundingBox crs="urn:ogc:def:crs:OGC:2:84">' +
+'            <ows:LowerCorner>-71 47</ows:LowerCorner>' +
+'            <ows:UpperCorner>-66 51</ows:UpperCorner>' +
+'        </ows:BoundingBox>' +
+'        <TemporalSubset>' +
+'            <TimePeriod>' +
+'                <BeginPosition>2006-08-01</BeginPosition>' +
+'                <EndPosition>2006-09-01</EndPosition>' +
+'                <TimeResolution>P1D</TimeResolution>' +
+'            </TimePeriod>' +
+'            <TimePeriod>' +
+'                <BeginPosition>2007-08-01</BeginPosition>' +
+'                <EndPosition>2007-09-01</EndPosition>' +
+'                <TimeResolution>P1D</TimeResolution>' +
+'            </TimePeriod>' +
+'        </TemporalSubset>' +
+'    </DomainSubset>' +
+'    <Output format="image/netcdf">' +
+'        <GridCRS>' +
+'            <GridBaseCRS>urn:ogc:def:crs:EPSG:6.6:32618</GridBaseCRS>' +
+'            <GridType>urn:ogc:def:method:WCS:1.1:2dGridin2dCrs</GridType>' +
+'            <GridOrigin>3000 4000</GridOrigin>' +
+'            <GridOffsets>6.0 8.0 -8.0 6.0</GridOffsets>' +
+'            <GridCS>urn:ogc:def:cs:OGC:0.0:Grid2dSquareCS</GridCS>' +
+'        </GridCRS>' +
+'    </Output>' +
+'</GetCoverage>';
+
+        var format = new OpenLayers.Format.WCSGetCoverage();
+        var result = format.write({
+            identifier: 'Cov123',
+            domainSubset: {
+                boundingBox: {projection: 'urn:ogc:def:crs:OGC:2:84', bounds: new OpenLayers.Bounds(-71, 47, -66, 51)},
+                temporalSubset: {
+                    timePeriods: [
+                        {
+                            begin: '2006-08-01',
+                            end: '2006-09-01',
+                            resolution: 'P1D'
+                        }, {
+                            begin: '2007-08-01',
+                            end: '2007-09-01',
+                            resolution: 'P1D'
+                        }
+                    ]
+                }
+            },
+            output: {
+                format: 'image/netcdf',
+                gridCRS: {
+                    baseCRS: 'urn:ogc:def:crs:EPSG:6.6:32618',
+                    type: 'urn:ogc:def:method:WCS:1.1:2dGridin2dCrs',
+                    origin: '3000 4000',
+                    offsets: '6.0 8.0 -8.0 6.0',
+                    CS: 'urn:ogc:def:cs:OGC:0.0:Grid2dSquareCS'
+                }
+            }
+        });
+        t.xml_eq(result, expected, "WCS GetCoverage written out correctly");
+    }
+
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/WFS.html b/tests/Format/WFS.html
index 113e219..7b3b737 100644
--- a/tests/Format/WFS.html
+++ b/tests/Format/WFS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script>  
     function test_wfs_update_node(t) {
         t.plan(2);
diff --git a/tests/Format/WFSCapabilities.html b/tests/Format/WFSCapabilities.html
index 7de3397..4e6545e 100644
--- a/tests/Format/WFSCapabilities.html
+++ b/tests/Format/WFSCapabilities.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_read(t) {
diff --git a/tests/Format/WFSCapabilities/v1.html b/tests/Format/WFSCapabilities/v1.html
index a22f03a..d713270 100644
--- a/tests/Format/WFSCapabilities/v1.html
+++ b/tests/Format/WFSCapabilities/v1.html
@@ -1,10 +1,27 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
+
+    function test_read_exception(t) {
+        t.plan(1);
+        var parser = new OpenLayers.Format.WFSCapabilities();
+        var text = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<ows:ExceptionReport language="en" version="1.0.0"' +
+'    xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows">' +
+'    <ows:Exception locator="foo" exceptionCode="InvalidParameterValue">' +
+'        <ows:ExceptionText>Update error: Error occured updating features</ows:ExceptionText>' +
+'        <ows:ExceptionText>Second exception line</ows:ExceptionText>' +
+'    </ows:Exception>' +
+'</ows:ExceptionReport>';
+
+        var obj = parser.read(text);
+        t.ok(!!obj.error, "Error reported correctly");
+    }
     
     function test_read(t) {
-        t.plan(30);
+        t.plan(33);
        
         var parser = new OpenLayers.Format.WFSCapabilities();
 
@@ -17,6 +34,7 @@
         t.eq(ft[0]["title"], "Manhattan (NY) landmarks", "title of first feature type correct");
         t.eq(ft[0]["name"], "poly_landmarks", "name of first feature type correct");
         t.eq(ft[0]["featureNS"], "http://www.census.gov", "ns of first feature type correct");
+        t.eq(ft[0]["srs"], "urn:x-ogc:def:crs:EPSG:4326", "srs of first feature type correct");
 
         // GeoServer, v1.0.0
         text = '<?xml version="1.0" encoding="UTF-8"?><WFS_Capabilities version="1.0.0" xmlns="http://www.opengis.net/wfs" xmlns:it.geosolutions="http://www.geo-solutions.it" xmlns:cite="http://www.opengeospatial.net/cite" xmlns:tiger="http://www.census.gov" xmlns:sde="http://geoserver.sf.net" xmlns:topp="http://www.openplans.org/topp" xmlns:sf="http://www.openplans.org/spearfish" xmlns:nurc="http://www.nurc.nato.int" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/20 [...]
@@ -27,6 +45,7 @@
         t.eq(ft[0]["title"], "Manhattan (NY) landmarks", "title of first feature type correct");
         t.eq(ft[0]["name"], "poly_landmarks", "name of first feature type correct");
         t.eq(ft[0]["featureNS"], "http://www.census.gov", "ns of first feature type correct");
+        t.eq(ft[0]["srs"], "EPSG:4326", "srs of first feature type correct");
 
         var service = res.service;
         t.eq(service.name, 'WFS', "service name correct");
@@ -137,6 +156,7 @@
         t.eq(ft.length, 2, "number of feature types correct");
         t.eq(ft[0]["title"], "Parks", "title of first feature type correct");
         t.eq(ft[0]["name"], "park", "name of first feature type correct");
+        t.eq(ft[0]["srs"], "EPSG:42304", "srs of first feature type correct");
         
         var service = res.service;
         t.eq(service.name, 'MapServer WFS', "service name correct");
diff --git a/tests/Format/WFSDescribeFeatureType.html b/tests/Format/WFSDescribeFeatureType.html
index d191d4f..53faa5d 100644
--- a/tests/Format/WFSDescribeFeatureType.html
+++ b/tests/Format/WFSDescribeFeatureType.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_read_WFSDescribeFeatureType(t) {
diff --git a/tests/Format/WFST.html b/tests/Format/WFST.html
index e6793c0..9623b05 100644
--- a/tests/Format/WFST.html
+++ b/tests/Format/WFST.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Format/WFST/v1.html b/tests/Format/WFST/v1.html
index 9ec5d17..04142b6 100644
--- a/tests/Format/WFST/v1.html
+++ b/tests/Format/WFST/v1.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../../lib/OpenLayers.js"></script>
+  <script src="../../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_read(t) {
@@ -45,13 +45,13 @@
         deleteFeature.state = OpenLayers.State.DELETE;
         deleteFeature.fid = "fid.37";
 
-        t.plan(5);
+        t.plan(8);
         var snippets = {
-            "GetFeature": {maxFeatures: 1, outputFormat: 'json'},
-            "Transaction": null,
-            "Insert": insertFeature,
-            "Update": updateFeature,
-            "Delete": deleteFeature
+            "GetFeature": {handle: "handle_g", maxFeatures: 1, outputFormat: 'json'},
+            "Transaction": {handle: "handle_t"},
+            "Insert": {feature: insertFeature, options: {handle: "handle_i"}},
+            "Update": {feature: updateFeature, options: {handle: "handle_u"}},
+            "Delete": {feature: deleteFeature, options: {handle: "handle_d"}}
         }
 
         var arg;
@@ -61,6 +61,51 @@
             var got = format.writers["wfs"][snippet].apply(format, [arg]);
             t.xml_eq(got, expected, snippet + " request created correctly");
         }
+        
+        updateFeature.modified = {geometry: updateFeature.geometry.clone()};
+        updateFeature.geometry = new OpenLayers.Geometry.Point(2,3);
+        var expected = readXML("UpdateModified");
+        var got = format.writers["wfs"]["Update"].apply(format, [{feature: updateFeature}]);
+        t.xml_eq(got, expected, "Update request for feature with modified geometry created correctly");
+        
+        updateFeature.modified.attributes = {foo: "bar"};
+        updateFeature.attributes.foo = "baz";
+        delete updateFeature.modified.geometry;
+        var expected = readXML("UpdateModifiedNoGeometry");
+        var got = format.writers["wfs"]["Update"].apply(format, [{feature: updateFeature}]);
+        t.xml_eq(got, expected, "Update request for feature with no modified geometry but modified attributes created correctly");
+
+        // test for a feature that originally had a null geometry and a null value for the attribute
+        updateFeature.modified = {attributes: {foo: null, nul: "nul"}, geometry: null};
+        updateFeature.attributes.foo = "bar";
+        updateFeature.geometry = new OpenLayers.Geometry.Point(2,3);
+        var expected = readXML("UpdateModified");
+        var got = format.writers["wfs"]["Update"].apply(format, [{feature: updateFeature}]);
+        t.xml_eq(got, expected, "Update request for feature with modified geometry created correctly even if original geometry was null");
+    }
+
+    function test_writeNative(t) {
+        t.plan(1);
+        var format = new OpenLayers.Format.WFST({
+            featureNS: "http://www.openplans.org/topp",
+            featureType: "states",
+            version: "1.1.0",
+            featurePrefix: "topp",
+            geometryName: null
+        });
+        var output = format.write(null, {nativeElements: [
+            {
+                vendorId: "ORACLE",
+                safeToIgnore: true,
+                value: "ALTER SESSION ENABLE PARALLEL DML"
+            }, {
+                vendorId: "ORACLE",
+                safeToIgnore: false,
+                value: "Another native line goes here"
+            }]
+        });
+        var expected = '<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Native vendorId="ORACLE" safeToIgnore="true">ALTER SESSION ENABLE PARALLEL DML</wfs:Native><wfs:Native vendorId="ORACLE" safeToIgnore="false">Another native line goes here</wfs:Native></wfs:Transaction>';
+        t.xml_eq(output, expected, "Native elements written out correctly");
     }
 
     function test_write_no_geometry(t) {
@@ -77,7 +122,7 @@
 
         t.plan(1);
         var snippets = {
-            "UpdateNoGeometry": feature
+            "UpdateNoGeometry": {feature: feature}
         }
 
         var arg;
@@ -89,6 +134,32 @@
         }
     }
 
+    function test_update_null_geometry(t) {
+        var format = new OpenLayers.Format.WFST({
+            featureNS: "http://www.openplans.org/topp",
+            featureType: "states",
+            featurePrefix: "topp",
+            geometryName: "the_geom"
+        });
+
+        var feature = new OpenLayers.Feature.Vector(null, {foo: "bar"});
+        feature.state = OpenLayers.State.UPDATE;
+        feature.fid = "fid.36";
+
+        t.plan(1);
+        var snippets = {
+            "UpdateNullGeometry": {feature: feature}
+        };
+
+        var arg;
+        for (var snippet in snippets) {
+            arg = snippets[snippet]
+            var expected = readXML(snippet);
+            var got = format.writers["wfs"]["Update"].apply(format, [arg]);
+            t.xml_eq(got, expected, snippet + " request with null geometry created correctly");
+        }
+    }
+
     function test_write_multiple(t) {
 
         var format = new OpenLayers.Format.WFST({
@@ -111,6 +182,43 @@
             t.xml_eq(got, expected, snippet + " request created correctly with multiple typenames");
         }
     }
+    
+    function test_write_multi(t) {
+        t.plan(2);
+        var format = new OpenLayers.Format.WFST({
+            featureNS: "http://www.openplans.org/topp",
+            featureType: "states",
+            featurePrefix: "topp",
+            geometryName: "the_geom"
+        });
+
+        var feature = new OpenLayers.Feature.Vector(
+            new OpenLayers.Geometry.Point(1,2),
+            {foo: "bar"}
+        );
+
+        var insertFeature = feature.clone();
+        // null value does not show up in insert
+        insertFeature.attributes.nul = null;
+        insertFeature.state = OpenLayers.State.INSERT;
+        var updateFeature = feature.clone();
+        // undefined value means don't create a Property element
+        updateFeature.attributes.unwritten = undefined;
+        // null value gets Property element with no Value
+        updateFeature.attributes.nul = null;
+        updateFeature.fid = "fid.42";
+        updateFeature.state = OpenLayers.State.UPDATE;
+        var features = [insertFeature, updateFeature];
+
+        var expected = readXML("TransactionMulti");
+        var geomTypes = OpenLayers.Util.extend({}, format.geometryTypes);
+        var got = format.writers["wfs"]["Transaction"].apply(format, [{
+            features: features,
+            options: {multi: true}}
+        ]);
+        t.xml_eq(got, expected, "Transaction request with multi option created correctly");
+        t.eq(format.geometryTypes, geomTypes, "geometry types unchanged after write with multi option");
+    }
 
     function readXML(id) {
         var xml = document.getElementById(id).firstChild.nodeValue;
@@ -167,7 +275,7 @@
 --></div>
 
 <div id="GetFeature"><!--
-<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.0.0" outputFormat="json" maxFeatures="1" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.0.0" handle="handle_g" outputFormat="json" maxFeatures="1" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <wfs:Query typeName="topp:states" xmlns:topp="http://www.openplans.org/topp"/>
 </wfs:GetFeature>
 --></div>
@@ -180,8 +288,50 @@
 <div id="Transaction"><!--
 <wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.0.0"/>
 --></div>
+<div id="TransactionMulti"><!--
+<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.0.0">
+    <wfs:Insert>
+        <feature:states xmlns:feature="http://www.openplans.org/topp">
+            <feature:the_geom>
+                <gml:MultiPoint xmlns:gml="http://www.opengis.net/gml">
+                    <gml:pointMember>
+                        <gml:Point>
+                            <gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
+                        </gml:Point>
+                    </gml:pointMember>
+                </gml:MultiPoint>
+            </feature:the_geom>
+            <feature:foo>bar</feature:foo>
+        </feature:states>
+    </wfs:Insert>
+    <wfs:Update xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+        <wfs:Property>
+            <wfs:Name>the_geom</wfs:Name>
+            <wfs:Value>
+                <gml:MultiPoint xmlns:gml="http://www.opengis.net/gml">
+                    <gml:pointMember>
+                        <gml:Point>
+                            <gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
+                        </gml:Point>
+                    </gml:pointMember>
+                </gml:MultiPoint>
+            </wfs:Value>
+        </wfs:Property>
+        <wfs:Property>
+            <wfs:Name>foo</wfs:Name>
+            <wfs:Value>bar</wfs:Value>
+        </wfs:Property>
+        <wfs:Property>
+            <wfs:Name>nul</wfs:Name>
+        </wfs:Property>
+        <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+            <ogc:FeatureId fid="fid.42"/>
+        </ogc:Filter>
+    </wfs:Update>
+</wfs:Transaction>
+--></div>
 <div id="Insert"><!--
-<wfs:Insert xmlns:wfs="http://www.opengis.net/wfs">
+<wfs:Insert xmlns:wfs="http://www.opengis.net/wfs" handle="handle_i">
     <feature:states xmlns:feature="http://www.openplans.org/topp">
         <feature:the_geom>
             <gml:Point xmlns:gml="http://www.opengis.net/gml">
@@ -193,7 +343,7 @@
 </wfs:Insert>
 --></div>
 <div id="Update"><!--
-<wfs:Update xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+<wfs:Update xmlns:wfs="http://www.opengis.net/wfs" handle="handle_u" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
     <wfs:Property>
         <wfs:Name>the_geom</wfs:Name>
         <wfs:Value>
@@ -214,8 +364,41 @@
     </ogc:Filter>
 </wfs:Update>
 --></div>
+<div id="UpdateModified"><!--
+<wfs:Update xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+    <wfs:Property>
+        <wfs:Name>the_geom</wfs:Name>
+        <wfs:Value>
+            <gml:Point xmlns:gml="http://www.opengis.net/gml">
+                <gml:coordinates decimal="." cs="," ts=" ">2,3</gml:coordinates>
+            </gml:Point>
+        </wfs:Value>
+    </wfs:Property>
+    <wfs:Property>
+        <wfs:Name>foo</wfs:Name>
+        <wfs:Value>bar</wfs:Value>
+    </wfs:Property>
+    <wfs:Property>
+        <wfs:Name>nul</wfs:Name>
+    </wfs:Property>
+    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+        <ogc:FeatureId fid="fid.42"/>
+    </ogc:Filter>
+</wfs:Update>
+--></div>
+<div id="UpdateModifiedNoGeometry"><!--
+<wfs:Update xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+    <wfs:Property>
+        <wfs:Name>foo</wfs:Name>
+        <wfs:Value>baz</wfs:Value>
+    </wfs:Property>
+    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+        <ogc:FeatureId fid="fid.42"/>
+    </ogc:Filter>
+</wfs:Update>
+--></div>
 <div id="Delete"><!--
-<wfs:Delete xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+<wfs:Delete xmlns:wfs="http://www.opengis.net/wfs" handle="handle_d" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
     <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
         <ogc:FeatureId fid="fid.37"/>
     </ogc:Filter>
@@ -232,5 +415,19 @@
     </ogc:Filter>
 </wfs:Update>
 --></div>
+<div id="UpdateNullGeometry"><!--
+<wfs:Update xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+    <wfs:Property>
+        <wfs:Name>the_geom</wfs:Name>
+    </wfs:Property>
+    <wfs:Property>
+        <wfs:Name>foo</wfs:Name>
+        <wfs:Value>bar</wfs:Value>
+    </wfs:Property>
+    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+        <ogc:FeatureId fid="fid.36"/>
+    </ogc:Filter>
+</wfs:Update>
+--></div>
 </body>
 </html>
diff --git a/tests/Format/WFST/v1_0_0.html b/tests/Format/WFST/v1_0_0.html
index 6f807fd..89d810e 100644
--- a/tests/Format/WFST/v1_0_0.html
+++ b/tests/Format/WFST/v1_0_0.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../../lib/OpenLayers.js"></script>
+  <script src="../../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -67,6 +67,17 @@
         }
 
     }
+    
+    function test_write_poorconfig(t) {
+        t.plan(1);
+        var format = new OpenLayers.Format.WFST.v1_0_0({
+            featureType: "states",
+            featurePrefix: "topp"
+        });
+        var exp = "topp:states";
+        var got = format.writeNode("wfs:Query").getAttribute("typeName");
+        t.eq(got, exp, "Query without featureNS but with featurePrefix queries for the correct featureType");
+    }
 
     var xmlFormat = new OpenLayers.Format.XML();
     function readXML(id) {
diff --git a/tests/Format/WFST/v1_1_0.html b/tests/Format/WFST/v1_1_0.html
index 9678d58..6fd024a 100644
--- a/tests/Format/WFST/v1_1_0.html
+++ b/tests/Format/WFST/v1_1_0.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../../lib/OpenLayers.js"></script>
+  <script src="../../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -34,12 +34,28 @@
         t.eq(result.numberOfFeatures, 625, "numberOfFeatures of FeatureCollection correctly read");
     }
 
+    function test_read_boundedBy(t) {
+        t.plan(4);
+        var data = readXML("boundedBy");
+        var format = new OpenLayers.Format.WFST.v1_1_0({
+            featureNS: "http://mapserver.gis.umn.edu/mapserver",
+            featureType: "AAA212"
+        });
+        var result = format.read(data, {output: "object"});
+        var bounds = result.bounds;
+        t.eq(bounds.left.toFixed(3), '3197.880', "Left bounds of the feature collection correctly parsed");
+        t.eq(bounds.bottom.toFixed(3), '306457.313', "Bottom bounds of the feature collection correctly parsed");
+        t.eq(bounds.right.toFixed(3), '280339.156', "Right bounds of the feature collection correctly parsed");
+        t.eq(bounds.top.toFixed(3), '613850.438', "Top bounds of the feature collection corectly parsed");
+    }
+
     function test_write(t) {
 
         var format = new OpenLayers.Format.WFST.v1_1_0({
             featureNS: "http://www.openplans.org/topp",
             featureType: "states",
             featurePrefix: "topp",
+            srsName: "urn:ogc:def:crs:EPSG::4326",
             geometryName: "the_geom"
         });
 
@@ -59,6 +75,13 @@
                 resultType: "hits",
                 propertyNames: ["STATE_NAME", "STATE_FIPS", "STATE_ABBR"]
             }
+        }, {
+            id: "getfeature1",
+            writer: "wfs:GetFeature",
+            arg: {
+                count: 10,
+                startIndex: 20
+            }
         }];
         
         t.plan(cases.length);
@@ -72,6 +95,17 @@
         }
     }
 
+    function test_write_poorconfig(t) {
+        t.plan(1);
+        var format = new OpenLayers.Format.WFST.v1_1_0({
+            featureType: "states",
+            featurePrefix: "topp"
+        });
+        var exp = "topp:states";
+        var got = format.writeNode("wfs:Query").getAttribute("typeName");
+        t.eq(got, exp, "Query without featureNS but with featurePrefix queries for the correct featureType");
+    }
+
     var xmlFormat = new OpenLayers.Format.XML();
     function readXML(id) {
         var xml = document.getElementById(id).firstChild.nodeValue;
@@ -109,11 +143,11 @@
 </wfs:TransactionResponse>
 --></div>
 <div id="query0"><!--
-<wfs:Query xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+<wfs:Query xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" srsName="urn:ogc:def:crs:EPSG::4326" xmlns:topp="http://www.openplans.org/topp">
     <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
         <ogc:BBOX>
             <ogc:PropertyName>the_geom</ogc:PropertyName>
-            <gml:Envelope xmlns:gml="http://www.opengis.net/gml">
+            <gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="urn:ogc:def:crs:EPSG::4326">
                 <gml:lowerCorner>1 2</gml:lowerCorner>
                 <gml:upperCorner>3 4</gml:upperCorner>
             </gml:Envelope>
@@ -127,12 +161,72 @@
                 xmlns:ogc="http://www.opengis.net/ogc"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
-    <wfs:Query xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
+    <wfs:Query xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" srsName="urn:ogc:def:crs:EPSG::4326" xmlns:topp="http://www.openplans.org/topp">
         <wfs:PropertyName>STATE_NAME</wfs:PropertyName>
         <wfs:PropertyName>STATE_FIPS</wfs:PropertyName>
         <wfs:PropertyName>STATE_ABBR</wfs:PropertyName>
     </wfs:Query>
 </wfs:GetFeature>
 --></div>
+<div id="getfeature1"><!--
+<wfs:GetFeature service="WFS" version="1.1.0" startIndex="20" count="10" xmlns:topp="http://www.openplans.org/topp"
+                xmlns:wfs="http://www.opengis.net/wfs"
+                xmlns:ogc="http://www.opengis.net/ogc"
+                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
+    <wfs:Query xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" srsName="urn:ogc:def:crs:EPSG::4326" xmlns:topp="http://www.openplans.org/topp">
+    </wfs:Query>
+</wfs:GetFeature>
+--></div>
+<div id="boundedBy"><!--
+<?xml version='1.0' encoding="ISO-8859-1" ?>
+<wfs:FeatureCollection
+   xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
+   xmlns:gml="http://www.opengis.net/gml"
+   xmlns:wfs="http://www.opengis.net/wfs"
+   xmlns:ogc="http://www.opengis.net/ogc"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://ontwikkel.intranet.rijkswaterstaat.nl/services/geoservices/ov_zonering?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=AAA212&OUTPUTFORMAT=text/xml; subtype=gml/3.1.1  http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
+      <gml:boundedBy>
+      	<gml:Envelope srsName="EPSG:28992">
+      		<gml:lowerCorner>3197.880000 306457.313000</gml:lowerCorner>
+      		<gml:upperCorner>280339.156000 613850.438000</gml:upperCorner>
+      	</gml:Envelope>
+      </gml:boundedBy>
+    <gml:featureMember>
+
+      <rws:AAA212 gml:id="AAA212.791">
+        <gml:boundedBy>
+        	<gml:Envelope srsName="EPSG:28992">
+        		<gml:lowerCorner>196507.469000 502347.938000</gml:lowerCorner>
+        		<gml:upperCorner>202430.844000 510383.719000</gml:upperCorner>
+        	</gml:Envelope>
+        </gml:boundedBy>
+        <rws:geometry>
+
+          <gml:MultiSurface srsName="EPSG:28992">
+            <gml:surfaceMembers>
+              <gml:Polygon>
+                <gml:exterior>
+                  <gml:LinearRing>
+                    <gml:posList srsDimension="2">200448.047000 510383.719000 198475.031000 509253.875000 198477.422000 507339.688000 196507.469000 505841.969000 196507.625000 504980.281000 196621.359000 505029.969000 196825.328000 505114.000000 197310.031000 505183.469000 197636.609000 505148.750000 197837.594000 505061.563000 197941.031000 504953.688000 198003.094000 504817.719000 198023.781000 504721.688000 198016.391000 504597.531000 197907.234000 504363.219000 197716.734000 504013.9 [...]
+                  </gml:LinearRing>
+                </gml:exterior>
+
+              </gml:Polygon>
+            </gml:surfaceMembers>
+          </gml:MultiSurface>
+        </rws:geometry>
+        <rws:OBJECTID>791</rws:OBJECTID>
+        <rws:HECTARES>1800.89</rws:HECTARES>
+        <rws:ZONENR>4620</rws:ZONENR>
+
+        <rws:NULZONES> </rws:NULZONES>
+        <rws:AREA>0</rws:AREA>
+        <rws:PERIMETER>24305.1</rws:PERIMETER>
+      </rws:AAA212>
+    </gml:featureMember>
+</wfs:FeatureCollection>
+--></div>
 </body>
 </html>
diff --git a/tests/Format/WKT.html b/tests/Format/WKT.html
index a7deee7..15d2b2c 100644
--- a/tests/Format/WKT.html
+++ b/tests/Format/WKT.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
      
     var points = []; 
@@ -80,8 +80,15 @@
             polygons[1].geometry 
         ])
     ); 
+
+    var collection = new OpenLayers.Feature.Vector(
+        new OpenLayers.Geometry.Collection([ 
+            points[0].geometry,
+            linestrings[0].geometry
+        ])
+    ); 
      
-    var collection = [points[0], linestrings[0]]; 
+    var geom_array = [points[0], linestrings[0]]; 
      
     function test_Format_WKT_constructor(t) { 
         t.plan(4); 
@@ -96,7 +103,7 @@
     }
 
     function test_Format_WKT_write(t) { 
-        t.plan(7); 
+        t.plan(8); 
 
         var format = new OpenLayers.Format.WKT(); 
 
@@ -161,19 +168,27 @@
                                  points[11].geometry.x + " " + points[11].geometry.y + "," + 
                                  points[9].geometry.x + " " + points[9].geometry.y + ")))", 
              "format correctly writes MultiPolygon WKT"); 
-         
-        // test a geometrycollection 
+
+        // test geometrycollection
         t.eq(format.write(collection), 
              "GEOMETRYCOLLECTION(POINT(" + points[0].geometry.x + " " + points[0].geometry.y + ")," + 
                                 "LINESTRING(" + points[0].geometry.x + " " + points[0].geometry.y + "," + 
                                                 points[1].geometry.x + " " + points[1].geometry.y + "," + 
                                                 points[2].geometry.x + " " + points[2].geometry.y + "))", 
              "format correctly writes GeometryCollection WKT"); 
+         
+        // test writing an array of geometries 
+        t.eq(format.write(geom_array), 
+             "GEOMETRYCOLLECTION(POINT(" + points[0].geometry.x + " " + points[0].geometry.y + ")," + 
+                                "LINESTRING(" + points[0].geometry.x + " " + points[0].geometry.y + "," + 
+                                                points[1].geometry.x + " " + points[1].geometry.y + "," + 
+                                                points[2].geometry.x + " " + points[2].geometry.y + "))", 
+             "format correctly writes WKT for an array of Geometries"); 
  
     }
 
     function test_Format_WKT_read(t) { 
-        t.plan(7); 
+        t.plan(13); 
 
         var format = new OpenLayers.Format.WKT(); 
          
@@ -189,7 +204,14 @@
         // test a multipoint 
         t.ok(multipoint.geometry.equals(format.read(format.write(multipoint)).geometry), 
              "format correctly reads MultiPoint WKT"); 
- 
+
+        // test a multipoint without separating parens 
+        t.ok(multipoint.geometry.equals(format.read( 
+ 	        "MULTIPOINT(" + points[0].geometry.x + " " + points[0].geometry.y + "," +  
+                            points[1].geometry.x + " " + points[1].geometry.y + "," +  
+                            points[2].geometry.x + " " + points[2].geometry.y + ")").geometry), 
+            "format correctly reads MultiPoint WKT without parens");
+
         // test a linestring 
         t.ok(linestrings[0].geometry.equals(format.read(format.write(linestrings[0])).geometry), 
              "format correctly reads LineString WKT"); 
@@ -205,16 +227,28 @@
         // test a multipolygon 
         t.ok(multipolygon.geometry.equals(format.read(format.write(multipolygon)).geometry), 
              "format correctly reads MultiPolygon WKT"); 
-         
-        // test a geometrycollection 
-        t.eq(format.write(collection), 
-             "GEOMETRYCOLLECTION(POINT(" + points[0].geometry.x + " " + points[0].geometry.y + ")," + 
-                                "LINESTRING(" + points[0].geometry.x + " " + points[0].geometry.y + "," + 
-                                                points[1].geometry.x + " " + points[1].geometry.y + "," + 
-                                                points[2].geometry.x + " " + points[2].geometry.y + "))", 
-             "format correctly writes GeometryCollection WKT"); 
+             
+        // test a collection
+        var wkt = format.write(collection);
+        var got = format.read(wkt);
+        t.ok(got instanceof Array, "by default, reading a collection returns an array");
+        t.eq(got.length, 2, "read two items");
+        t.ok(got[0] instanceof OpenLayers.Feature.Vector, "first item is a feature");
+        t.geom_eq(got[0].geometry, points[0].geometry, "first feature's geometry is the correct point");
+        t.ok(got[1] instanceof OpenLayers.Feature.Vector, "second item is a feature");
+        t.geom_eq(got[1].geometry, linestrings[0].geometry, "second feature's geometry is the correct linestring");
  
     }
+    
+    function test_whitespace(t) {
+        t.plan(3);
+        var wkt = "LINESTRING(7.120068\t43.583917,\n7.120154 43.583652,\n7.120385\t43.582716,\r\n7.12039 43.582568, 7.120712 43.581511,7.120873\n43.580718)";
+        var format = new OpenLayers.Format.WKT();
+        var got = format.read(wkt);
+        t.ok(got instanceof OpenLayers.Feature.Vector, "read a feature");
+        t.ok(got.geometry instanceof OpenLayers.Geometry.LineString, "read a linestring");
+        t.ok(got.geometry.components.length, 6, "read a geometry with 6 components");
+    }
 
     function test_Format_WKT_read_projection(t) {
         t.plan(1);
diff --git a/tests/Format/WMC.html b/tests/Format/WMC.html
index 218d9f6..fbaec81 100644
--- a/tests/Format/WMC.html
+++ b/tests/Format/WMC.html
@@ -1,13 +1,15 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     var v1_0_0 = '<ViewContext xmlns="http://www.opengis.net/context" version="1.0.0" id="OpenLayers_Context_233" xsi:schemaLocation="http://www.opengis.net/context http://schemas.opengis.net/context/1.0.0/context.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><Window width="512" height="256"/><BoundingBox minx="-109.9709708" miny="27.01451459" maxx="-80.02902918" maxy="41.98548541" SRS="EPSG:4326"/><Title/><Extension><ol:maxExtent xmlns:ol="http://openlayers.org/con [...]
     var v1_1_0 = '<ViewContext xmlns="http://www.opengis.net/context" version="1.1.0" id="OpenLayers_Context_232" xsi:schemaLocation="http://www.opengis.net/context http://schemas.opengis.net/context/1.1.0/context.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><General><Window width="512" height="256"/><BoundingBox minx="-109.9709708" miny="27.01451459" maxx="-80.02902918" maxy="41.98548541" SRS="EPSG:4326"/><Title/><Extension><ol:maxExtent xmlns:ol="http://openlayers.org/con [...]
+    var polar = '<ViewContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:default="http://www.opengis.net/context" xmlns:ol="http://openlayers.org/context" xmlns="http://www.opengis.net/context" xmlns:wms="http://www.opengis.net/wms" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1.0" id="OpenLayers_Context_466" xsi:schemaLocation="http://www.opengis.net/context http://schemas.opengis.net/context/1.1.0/context.xsd"><General><BoundingBox minx="-3000000" miny="-30000 [...]
+    var fulldoc = '<ViewContext xmlns="http://www.opengis.net/context" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sld="http://www.opengis.net/sld" version="1.1.0" id="eos_data_gateways" xsi:schemaLocation="http://www.opengis.net/context context.xsd"><General><Window width="500" height="300"/><BoundingBox SRS="EPSG:4326" minx="-180.000000" miny="-90.000000" maxx="180.000000" maxy="90.000000"/><Title>EOS Data Gateways</Title><Keyw [...]
 
     function test_Format_WMC_read(t) {
-        t.plan(36);
+        t.plan(64);
 
         var format = new OpenLayers.Format.WMC();        
         var map, layer;
@@ -53,7 +55,7 @@
         map.destroy();
         
         // test v1.1.0
-        var map = format.read(v1_1_0, {map: "map"});
+        map = format.read(v1_1_0, {map: "map"});
         t.eq(map.center.lon.toPrecision(6), (-95).toPrecision(6), "(v1.1.0) map center correctly set");
         t.eq(map.center.lat.toPrecision(6), (34.5).toPrecision(6), "(v1.1.0) map center correctly set");
         t.eq(map.maxExtent.left.toPrecision(6), (-130).toPrecision(6), "(v1.1.0) map maxExtent correctly set");
@@ -91,12 +93,101 @@
              "(v1.1.0) layer opacity correctly set");
         map.destroy();
 
+        // Check if maxResolution is set correctly
+        map = format.read(polar, {map: "map"});
+        t.eq(map.maxResolution, 39062.5,
+             "maxResolution correctly set");
+        map.destroy();
+
         // test mapOptions
-        var map = format.read(v1_1_0, {map: {foo: 'bar', div: 'map'}});
+        map = format.read(v1_1_0, {map: {foo: 'bar', div: 'map'}});
         t.eq(map.foo, "bar",
             "mapOptions correctly passed to the created map object");
         map.destroy();
         
+        map = format.read(fulldoc, {map: "map"});
+
+        var meta = map.metadata;
+
+        // Check if ContextInformation is set properly
+        var cinfo = meta.contactInformation;
+
+        t.eq(cinfo.personPrimary.person,       "Tom Kralidis",       "got correct person");
+        t.eq(cinfo.personPrimary.organization, "Environment Canada", "got correct organization");
+
+        t.eq(cinfo.contactAddress.address,     "867 Lakeshore Road", "got correct address");
+        t.eq(cinfo.contactAddress.city,        "Burlington",         "got correct city");
+        t.eq(cinfo.contactAddress.country,     "Canada",             "got correct country");
+        t.eq(cinfo.contactAddress.postcode,    "L7R 4A6",            "got correct postcode");
+        t.eq(cinfo.contactAddress.stateOrProvince, "Ontario",        "got correct stateOrProvince");
+        t.eq(cinfo.contactAddress.type,        "postal",             "got correct address type");
+
+        t.eq(cinfo.email,    "tom.kralidis at ec.gc.ca", "got correct email");
+        t.eq(cinfo.fax,      "+01-905-336-4499",      "got correct fax number");
+        t.eq(cinfo.phone,    "+01-905-336-4409",      "got correct phone number");
+        t.eq(cinfo.position, "Systems Scientist",     "got correct position");
+
+        // Check if LogoURL is read properly
+        var logo = meta.logo;
+        t.eq(logo, {
+                href: "http://redhook.gsfc.nasa.gov/~imswww/pub/icons/logo.gif",
+                width: "130",
+                height: "74",
+                format: "image/gif"},
+            "got currect logo");
+
+        t.eq(meta.descriptionURL, "http://eos.nasa.gov/imswelcome", "got correct descriptionURL");
+
+        t.eq(meta.keywords,
+             ["EOS", "EOSDIS", "NASA", "CCRS", "CEOS", "OGC"],
+             "got correct keywords");
+
+        layer = map.layers[1];
+
+        t.eq(layer.metadata.servertitle,
+             "The GLOBE Program Visualization Server",
+             "got correct title for server");
+
+        t.eq(layer.srs,
+             {"EPSG:4326": true, "EPSG:900913": true},
+             "SRS read correctly");
+
+        t.eq(layer.metadata.formats,
+             [{value: "image/gif", current: true},
+              {value: "image/png"}],
+             "formats read correctly");
+
+        var style = layer.metadata.styles[0];
+        t.eq(style.legend, {
+                href: "http://globe.digitalearth.gov/globe/en/icons/colorbars/COASTLINES.gif",
+                width: "180",
+                height: "50",
+                format: "image/gif"},
+            "got currect legend");
+
+
+        var dim = layer.dimensions["time"];
+        t.eq(dim.name, "time", "got correct name of dimension");
+        t.eq(dim.units, "ISO8601", "got correct units for dimension");
+        t.eq(dim.nearestValue, true, "got correct value for nearestValue");
+        t.eq(dim.values, ["2011-03-31", "2011-04-01"], "got correct values for dimension");
+
+        layer = map.layers[2];
+        t.eq(layer.metadata.dataURL,
+             "http://globe.digitalearth.gov/data/national.gml",
+             "got correct dataURL");
+        t.eq(layer.metadataURL,
+             "http://globe.digitalearth.gov/metadata/national.txt",
+             "got correct metadataURL");
+
+        layer = map.layers[3];
+        var sld_body = '<sld:StyledLayerDescriptor xmlns:ogc="http://www.opengis.net/ogc" xmlns:sld="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengeospatial.net/sld/1.0.0/StyledLayerDescriptor.xsd"><sld:NamedLayer><sld:Name>AAA212</sld:Name><sld:UserStyle><sld:FeatureTypeStyle><sld:Rule><sld:TextSymbolizer><sld:Label><ogc:PropertyName>ZONENR</ogc:PropertyName></sld:Label [...]
+        var styles = layer.metadata.styles;
+        t.xml_eq(styles[1].body, sld_body, "StyledLayerDescriptor body read correctly");
+
+        sld_body = '<sld:FeatureTypeStyle xmlns:ogc="http://www.opengis.net/ogc" xmlns:sld="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengeospatial.net/sld/1.0.0/StyledLayerDescriptor.xsd"><sld:Rule><sld:TextSymbolizer><sld:Label><PropertyName xmlns="http://www.opengis.net/context">ZONENR</PropertyName></sld:Label><sld:Font><sld:CssParameter name="font-family">Arial</sld [...]
+        t.xml_eq(styles[2].body, sld_body, "FeatureTypeStyle body read correctly");
+
     }
     
     function test_Format_WMC_write(t) {
@@ -130,11 +221,11 @@
          */
 
         // test v1.1.0
-        if(OpenLayers.Util.getBrowserName()== "opera") {
+        if(OpenLayers.BROWSER_NAME== "opera") {
             t.plan(0);
             t.debug_print("WMC writing works but is not tested in Opera");
         } else {
-            t.plan(1);
+            t.plan(11);
 
             map = format.read(v1_1_0, {map: "map"});
             wmc = format.write(map);
@@ -142,7 +233,78 @@
                  "(v1.1.0) write gives what read got");
             map.destroy();
 
+            var parser = format.getParser("1.1.0");
+            map = format.read(fulldoc, {map: "map"});
+            var context = format.toContext(map);
+
+            // KeywordList
+            var expected = '<KeywordList xmlns="http://www.opengis.net/context"><Keyword>EOS</Keyword><Keyword>EOSDIS</Keyword><Keyword>NASA</Keyword><Keyword>CCRS</Keyword><Keyword>CEOS</Keyword><Keyword>OGC</Keyword></KeywordList>';
+            t.xml_eq(parser.write_wmc_KeywordList(context.keywords),
+                     expected,
+                     "keywordlist written correctly");
+
+            // ContactInformation
+            expected = '<ContactInformation xmlns="http://www.opengis.net/context"><ContactPersonPrimary><ContactPerson>Tom Kralidis</ContactPerson><ContactOrganization>Environment Canada</ContactOrganization></ContactPersonPrimary><ContactPosition>Systems Scientist</ContactPosition><ContactAddress><AddressType>postal</AddressType><Address>867 Lakeshore Road</Address><City>Burlington</City><StateOrProvince>Ontario</StateOrProvince><PostCode>L7R 4A6</PostCode><Country>Canada</Country></Co [...]
+            t.xml_eq(parser.write_wmc_ContactInformation(context.contactInformation),
+                     expected,
+                     "contactInformation written correctly");
+
+            // LogoURL
+            expected = '<LogoURL xmlns="http://www.opengis.net/context" width="130" height="74" format="image/gif"><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://redhook.gsfc.nasa.gov/~imswww/pub/icons/logo.gif"/></LogoURL>';
+            t.xml_eq(parser.write_wmc_URLType("LogoURL", context.logo.href, context.logo),
+                     expected,
+                     "LogoURL written correctly");
+
+            // DescriptionURL
+            expected = '<DescriptionURL xmlns="http://www.opengis.net/context"><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://eos.nasa.gov/imswelcome"/></DescriptionURL>';
+            t.xml_eq(parser.write_wmc_URLType("DescriptionURL", context.descriptionURL),
+                     expected,
+                     "DescriptionURL written correctly");
+
+
+            var layerContext = context.layersContext[1];
+
+            // Server
+            expected = '<Server xmlns="http://www.opengis.net/context" service="OGC:WMS" version="1.1.1" title="The GLOBE Program Visualization Server"><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://globe.digitalearth.gov/viz-bin/wmt.cgi"/></Server>';
+            t.xml_eq(parser.write_wmc_Server(layerContext),
+                     expected,
+                     "Server written correctly");
+
+            // FormatList
+            expected = '<FormatList xmlns="http://www.opengis.net/context"><Format current="1">image/gif</Format><Format>image/png</Format></FormatList>';
+            t.xml_eq(parser.write_wmc_FormatList(layerContext),
+                     expected,
+                     "FormatList written correctly");
+
+            // DimensionList
+            expected = '<DimensionList xmlns="http://www.opengis.net/context"><Dimension name="time" units="ISO8601" nearestValue="1" unitSymbol="" userValue="" multipleValues="0" current="0" default="">2011-03-31,2011-04-01</Dimension></DimensionList>';
+            t.xml_eq(parser.write_wmc_DimensionList(layerContext),
+                     expected,
+                     "DimensionList written correctly");
+
+            // LegendURL
+            var legend = layerContext.styles[0].legend;
+            expected = '<LegendURL xmlns="http://www.opengis.net/context" width="180" format="image/gif" height="50"><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://globe.digitalearth.gov/globe/en/icons/colorbars/COASTLINES.gif"/></LegendURL>';
+            t.xml_eq(parser.write_wmc_URLType("LegendURL", legend.href, legend),
+                     expected,
+                     "LegendURL written correctly");
+
+            layerContext = context.layersContext[2];
+
+            // DataURL
+            expected = '<DataURL xmlns="http://www.opengis.net/context"><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://globe.digitalearth.gov/data/national.gml" /></DataURL>';
+            t.xml_eq(parser.write_wmc_URLType("DataURL", layerContext.dataURL),
+                     expected,
+                     "DataURL written correctly");
+
+            // MetadataURL
+            expected = '<MetadataURL xmlns="http://www.opengis.net/context"><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://globe.digitalearth.gov/metadata/national.txt" /></MetadataURL>';
+            t.xml_eq(parser.write_wmc_URLType("MetadataURL", layerContext.metadataURL),
+                     expected,
+                     "MetadataURL written correctly");
+
         }
+
     }
 
     </script> 
diff --git a/tests/Format/WMC/v1.html b/tests/Format/WMC/v1.html
index 840cfc9..05e6078 100644
--- a/tests/Format/WMC/v1.html
+++ b/tests/Format/WMC/v1.html
@@ -1,10 +1,10 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_write_wmc_StyleList(t) {
-        t.plan(3);
+        t.plan(4);
         
         var layer, layerContext, got, expected;
         
@@ -39,10 +39,10 @@
             "<StyleList xmlns='http://www.opengis.net/context'>" +
                 "<Style current='1'>" +
                     "<SLD>" + 
+                        "<Title>Default</Title>" +
                         "<OnlineResource xmlns:xlink='http://www.w3.org/1999/xlink' "+
                                         "xlink:type='simple' " +
                                         "xlink:href='http://linked.sld' />" +
-                        "<Name></Name><Title>Default</Title>" +
                     "</SLD>" + 
                 "</Style>" +
             "</StyleList>";
@@ -88,6 +88,7 @@
             "<StyleList xmlns='http://www.opengis.net/context'>" +
                 "<Style current='1'>" +
                     "<SLD>" + 
+                        "<Title>Default</Title>" +
                         "<sld:StyledLayerDescriptor version='1.0.0' " +
                             "xmlns:sld='http://www.opengis.net/sld' " +
                             "xmlns:ogc='http://www.opengis.net/ogc' " +
@@ -115,13 +116,71 @@
                                 "</sld:UserStyle>" +
                             "</sld:NamedLayer>" +
                         "</sld:StyledLayerDescriptor>" +
-                        "<Name></Name><Title>Default</Title>" +
                     "</SLD>" +
                 "</Style>" + 
             "</StyleList>";
         
         t.xml_eq(got, expected, "inline style correctly written");
         layer.destroy();
+
+        // test inline FeatureTypeStyle
+        layer = new OpenLayers.Layer.WMS(name, url, {
+            sld_body:
+                "<sld:FeatureTypeStyle version='1.0.0' " +
+                            "xmlns:sld='http://www.opengis.net/sld' " +
+                            "xmlns:ogc='http://www.opengis.net/ogc' " +
+                            "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " +
+                            "xsi:schemaLocation='http://www.opengis.net/sld http://schemas.opengeospatial.net/sld/1.0.0/StyledLayerDescriptor.xsd'>" +
+                    "<sld:Rule>" +
+                        "<sld:TextSymbolizer>" +
+                            "<sld:Label>" +
+                                "<ogc:PropertyName>ZONENR</ogc:PropertyName>" +
+                            "</sld:Label>" +
+                            "<sld:Font>" +
+                                "<sld:CssParameter name='font-family'>Arial</sld:CssParameter>" +
+                                "<sld:CssParameter name='font-size'>10</sld:CssParameter>" +
+                            "</sld:Font>" +
+                            "<sld:Fill>" +
+                                "<sld:CssParameter name='fill'>#FF9900</sld:CssParameter>" +
+                            "</sld:Fill>" +
+                        "</sld:TextSymbolizer>" +
+                    "</sld:Rule>" +
+                "</sld:FeatureTypeStyle>"
+        });
+
+        layerContext = format.layerToContext(layer);
+        got = parser.write_wmc_StyleList(layerContext);
+        expected =
+            "<StyleList xmlns='http://www.opengis.net/context'>" +
+                "<Style current='1'>" +
+                    "<SLD>" +
+                        "<Title>Default</Title>" +
+                        "<sld:FeatureTypeStyle version='1.0.0' " +
+                            "xmlns:sld='http://www.opengis.net/sld' " +
+                            "xmlns:ogc='http://www.opengis.net/ogc' " +
+                            "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " +
+                            "xsi:schemaLocation='http://www.opengis.net/sld http://schemas.opengeospatial.net/sld/1.0.0/StyledLayerDescriptor.xsd'>" +
+                            "<sld:Rule>" +
+                                "<sld:TextSymbolizer>" +
+                                    "<sld:Label>" +
+                                        "<ogc:PropertyName>ZONENR</ogc:PropertyName>" +
+                                    "</sld:Label>" +
+                                    "<sld:Font>" +
+                                        "<sld:CssParameter name='font-family'>Arial</sld:CssParameter>" +
+                                        "<sld:CssParameter name='font-size'>10</sld:CssParameter>" +
+                                    "</sld:Font>" +
+                                    "<sld:Fill>" +
+                                        "<sld:CssParameter name='fill'>#FF9900</sld:CssParameter>" +
+                                    "</sld:Fill>" +
+                                    "</sld:TextSymbolizer>" +
+                            "</sld:Rule>" +
+                        "</sld:FeatureTypeStyle>" +
+                    "</SLD>" +
+                "</Style>" +
+            "</StyleList>";
+
+        t.xml_eq(got, expected, "inline FeatureTypeStyle correctly written");
+        layer.destroy();
     }
     
     function test_read_wmc_StyleList(t) {
diff --git a/tests/Format/WMC/v1_1_0.html b/tests/Format/WMC/v1_1_0.html
index 203e849..815d3bf 100644
--- a/tests/Format/WMC/v1_1_0.html
+++ b/tests/Format/WMC/v1_1_0.html
@@ -1,10 +1,10 @@
 <html>
 <head>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
 
     function test_write_wmc_Layer(t) {
-        if (OpenLayers.Util.getBrowserName() == "safari") {
+        if (OpenLayers.BROWSER_NAME == "safari") {
             t.plan(0);
             t.debug_print("Safari has wierd behavior with getElementsByTagNameNS: the result is that we can't run these tests there. Patches welcome.");
             return;
diff --git a/tests/Format/WMSCapabilities.html b/tests/Format/WMSCapabilities.html
index 3dbce9d..a447bdd 100644
--- a/tests/Format/WMSCapabilities.html
+++ b/tests/Format/WMSCapabilities.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_initialize(t) {
diff --git a/tests/Format/WMSCapabilities/v1_1_1.html b/tests/Format/WMSCapabilities/v1_1_1.html
index 0c40927..cc0c784 100644
--- a/tests/Format/WMSCapabilities/v1_1_1.html
+++ b/tests/Format/WMSCapabilities/v1_1_1.html
@@ -1,11 +1,20 @@
 <html> 
 <head> 
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
+
+    function test_read_exception(t) {
+        t.plan(1);
+        var xml = document.getElementById("exceptionsample").firstChild.nodeValue;
+        var doc = new OpenLayers.Format.XML().read(xml);
+        var format = new OpenLayers.Format.WMSCapabilities();
+        var obj = format.read(doc);
+        t.ok(!!obj.error, "Error reported correctly");
+    }
     
     function test_read(t) {
         
-        t.plan(15);
+        t.plan(23);
 
         var xml = document.getElementById("gssample").firstChild.nodeValue;
         var doc = new OpenLayers.Format.XML().read(xml);
@@ -22,6 +31,50 @@
             "http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&",
             "getmap href parsed"
         );
+        t.eq(
+            getmap.get.href,
+            getmap.href,
+            "getmap.get.href parsed"
+        );
+        t.eq(
+            getmap.post,
+            undefined,
+            "getmap.post not available"
+        );
+
+        var describelayer = capability.request.describelayer;
+        t.eq(
+            describelayer.href,
+            "http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&",
+            "describelayer href parsed"
+        );
+        t.eq(
+            describelayer.get.href,
+            describelayer.href,
+            "describelayer.get.href parsed"
+        );
+        t.eq(
+            describelayer.post,
+            undefined,
+            "describelayer.post not available"
+        );
+        
+        var getfeatureinfo = capability.request.getfeatureinfo;
+        t.eq(
+            getfeatureinfo.href,
+            "http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&",
+            "getfeatureinfo href parsed"
+        );
+        t.eq(
+            getfeatureinfo.get.href,
+            getfeatureinfo.href,
+            "getmap.get.href parsed"
+        );
+        t.eq(
+            getfeatureinfo.post.href,
+            "http://publicus.opengeo.org:80/geoserver/wms?SERVICE=WMS&",
+            "getfeatureinfo.post set correctly"
+        );
         
         t.ok(capability.layers, "layers parsed");
         t.eq(capability.layers.length, 22, "correct number of layers parsed");
@@ -58,7 +111,7 @@
 
     function test_layers(t) {
 
-        t.plan(22);
+        t.plan(24);
 
         var xml = document.getElementById("ogcsample").firstChild.nodeValue;
         var doc = new OpenLayers.Format.XML().read(xml);
@@ -90,7 +143,11 @@
              [189000, 834000, 285000, 962000],
              "Correct bbox from BoundingBox");
         t.eq(bbox.res, {x: 1, y: 1}, "Correct resolution");
-
+        bbox = layers["ROADS_RIVERS"].bbox["EPSG:4326"];
+        t.eq(bbox.bbox,
+             [-71.63, 41.75, -70.78, 42.90],
+             "Correct bbox from BoundingBox (override)");
+        t.eq(bbox.res, {x: 0.01, y: 0.01}, "Correct resolution (override)");
         bbox = layers["ROADS_1M"].bbox["EPSG:26986"];
         t.eq(bbox.bbox,
              [189000, 834000, 285000, 962000],
@@ -422,12 +479,16 @@ Changes:
       <Format>image/jpeg</Format>
       <DCPType>
         <HTTP>
-
           <Get>
             <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
              xlink:type="simple"
-             xlink:href="http://hostname:port/path" />
+             xlink:href="http://hostname:port/path/get" />
           </Get>
+          <Post>
+            <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
+             xlink:type="simple"
+             xlink:href="http://hostname:port/path/post" />
+          </Post>
         </HTTP>
       </DCPType>
     </GetMap>
@@ -474,12 +535,12 @@ Changes:
   <Layer>
     <Title>Acme Corp. Map Server</Title>
     <SRS>EPSG:4326</SRS>
+    <BoundingBox SRS="EPSG:4326"
+     minx="-1" miny="-1" maxx="1" maxy="1" resx="0.0" resy="0.0"/>
     <AuthorityURL name="DIF_ID">
       <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
        xlink:href="http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html" />
     </AuthorityURL>
-
-
     <Layer>
       <Name>ROADS_RIVERS</Name> 
       <Title>Roads and Rivers</Title>
@@ -630,6 +691,12 @@ Changes:
 </Capability>
 </WMT_MS_Capabilities>
 --></div>
+<div id="exceptionsample"><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd">
+<ServiceExceptionReport version="1.1.1"><ServiceException> Plain text message about an error. </ServiceException>
+</ServiceExceptionReport>
+--></div>
 <!--
 GeoServer example below taken from
 http://publicus.opengeo.org/geoserver/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities
diff --git a/tests/Format/WMSCapabilities/v1_1_1_WMSC.html b/tests/Format/WMSCapabilities/v1_1_1_WMSC.html
new file mode 100644
index 0000000..10bcfb1
--- /dev/null
+++ b/tests/Format/WMSCapabilities/v1_1_1_WMSC.html
@@ -0,0 +1,212 @@
+<html> 
+<head> 
+    <script src="../../OLLoader.js"></script>
+    <script type="text/javascript">
+    
+    function test_read(t) {
+        
+        t.plan(9);
+
+        var xml = document.getElementById("wmsc").firstChild.nodeValue;
+        var doc = new OpenLayers.Format.XML().read(xml);
+        var format = new OpenLayers.Format.WMSCapabilities({profile: "WMSC"});
+        var obj = format.read(doc);
+        var tilesets = obj.capability.vendorSpecific.tileSets;
+        t.eq(tilesets.length, 2, "We expect 2 tilesets to be parsed");
+        var tileset = tilesets[0];
+        t.eq(tileset.bbox["EPSG:900913"].bbox, [-13697515.466796875, 5165920.118906248, -13619243.94984375, 5244191.635859374], "BBOX correctly parsed");
+        t.eq(tileset.format, "image/png", "Format correctly parsed");
+        t.eq(tileset.height, 256, "Height correctly parsed");
+        t.eq(tileset.width, 256, "Width correctly parsed");
+        t.eq(tileset.layers, "medford:hydro", "Layers correctly parsed");
+        t.eq(tileset.srs["EPSG:900913"], true, "SRS correctly parsed");
+        t.eq(tileset.resolutions, [156543.03390625, 78271.516953125, 39135.7584765625, 19567.87923828125, 9783.939619140625, 4891.9698095703125, 2445.9849047851562, 1222.9924523925781, 611.4962261962891, 305.74811309814453, 152.87405654907226, 76.43702827453613, 38.218514137268066, 19.109257068634033, 9.554628534317017, 4.777314267158508, 2.388657133579254, 1.194328566789627, 0.5971642833948135, 0.29858214169740677, 0.14929107084870338, 0.07464553542435169, 0.037322767712175846, 0.018661 [...]
+        t.eq(tileset.styles, "", "Styles correctly parsed");
+    }
+
+    </script> 
+</head> 
+<body>
+
+<div id="wmsc"><!--
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/capabilities_1_1_1.dtd"[
+<!ELEMENT VendorSpecificCapabilities (TileSet*) >
+<!ELEMENT TileSet (SRS, BoundingBox?, Resolutions, Width, Height, Format, Layers*, Styles*) >
+<!ELEMENT Resolutions (#PCDATA) >
+<!ELEMENT Width (#PCDATA) >
+<!ELEMENT Height (#PCDATA) >
+<!ELEMENT Layers (#PCDATA) >
+<!ELEMENT Styles (#PCDATA) >
+]>
+<WMT_MS_Capabilities version="1.1.1" updateSequence="57">
+  <Service>
+    <Name>OGC:WMS</Name>
+    <Title>GeoServer Web Map Service</Title>
+    <Abstract>A compliant implementation of WMS 1.1.1 plus most of the SLD 1.0 extension (dynamic styling). Can also generate PDF, SVG, KML, GeoRSS</Abstract>
+    <KeywordList>
+      <Keyword>WFS</Keyword>
+      <Keyword>WMS</Keyword>
+      <Keyword>GEOSERVER</Keyword>
+    </KeywordList>
+    <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms"/>
+    <ContactInformation>
+      <ContactPersonPrimary>
+        <ContactPerson>OpenGeo</ContactPerson>
+        <ContactOrganization>OpenGeo</ContactOrganization>
+      </ContactPersonPrimary>
+      <ContactPosition>Outreach</ContactPosition>
+      <ContactAddress>
+        <AddressType>Work</AddressType>
+        <Address/>
+        <City>New York</City>
+        <StateOrProvince/>
+        <PostCode/>
+        <Country>USA</Country>
+      </ContactAddress>
+      <ContactVoiceTelephone/>
+      <ContactFacsimileTelephone/>
+      <ContactElectronicMailAddress>inquiry at opengeo.org</ContactElectronicMailAddress>
+    </ContactInformation>
+    <Fees>NONE</Fees>
+    <AccessConstraints>NONE</AccessConstraints>
+  </Service>
+  <Capability>
+    <Request>
+      <GetCapabilities>
+        <Format>application/vnd.ogc.wms_xml</Format>
+        <DCPType>
+          <HTTP>
+            <Get>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Get>
+            <Post>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Post>
+          </HTTP>
+        </DCPType>
+      </GetCapabilities>
+      <GetMap>
+        <Format>image/png</Format>
+        <Format>application/atom xml</Format>
+        <Format>application/atom+xml</Format>
+        <Format>application/openlayers</Format>
+        <Format>application/pdf</Format>
+        <Format>application/rss xml</Format>
+        <Format>application/rss+xml</Format>
+        <Format>application/vnd.google-earth.kml</Format>
+        <Format>application/vnd.google-earth.kml xml</Format>
+        <Format>application/vnd.google-earth.kml+xml</Format>
+        <Format>application/vnd.google-earth.kmz</Format>
+        <Format>application/vnd.google-earth.kmz xml</Format>
+        <Format>application/vnd.google-earth.kmz+xml</Format>
+        <Format>atom</Format>
+        <Format>image/geotiff</Format>
+        <Format>image/geotiff8</Format>
+        <Format>image/gif</Format>
+        <Format>image/jpeg</Format>
+        <Format>image/png8</Format>
+        <Format>image/svg</Format>
+        <Format>image/svg xml</Format>
+        <Format>image/svg+xml</Format>
+        <Format>image/tiff</Format>
+        <Format>image/tiff8</Format>
+        <Format>kml</Format>
+        <Format>kmz</Format>
+        <Format>openlayers</Format>
+        <Format>rss</Format>
+        <DCPType>
+          <HTTP>
+            <Get>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Get>
+          </HTTP>
+        </DCPType>
+      </GetMap>
+      <GetFeatureInfo>
+        <Format>text/plain</Format>
+        <Format>application/vnd.ogc.gml</Format>
+        <Format>text/html</Format>
+        <DCPType>
+          <HTTP>
+            <Get>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Get>
+            <Post>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Post>
+          </HTTP>
+        </DCPType>
+      </GetFeatureInfo>
+      <DescribeLayer>
+        <Format>application/vnd.ogc.wms_xml</Format>
+        <DCPType>
+          <HTTP>
+            <Get>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Get>
+          </HTTP>
+        </DCPType>
+      </DescribeLayer>
+      <GetLegendGraphic>
+        <Format>image/png</Format>
+        <Format>image/jpeg</Format>
+        <Format>image/gif</Format>
+        <DCPType>
+          <HTTP>
+            <Get>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Get>
+          </HTTP>
+        </DCPType>
+      </GetLegendGraphic>
+      <GetStyles>
+        <Format>application/vnd.ogc.sld+xml</Format>
+        <DCPType>
+          <HTTP>
+            <Get>
+              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8080/geoserver-suite/wms?SERVICE=WMS&"/>
+            </Get>
+          </HTTP>
+        </DCPType>
+      </GetStyles>
+    </Request>
+    <Exception>
+      <Format>application/vnd.ogc.se_xml</Format>
+      <Format>application/vnd.ogc.se_inimage</Format>
+    </Exception>
+    <VendorSpecificCapabilities>
+      <TileSet>
+        <SRS>EPSG:900913</SRS>
+        <BoundingBox SRS="EPSG:900913" minx="-1.3697515466796875E7" miny="5165920.118906248" maxx="-1.361924394984375E7" maxy="5244191.635859374"/>
+        <Resolutions>156543.03390625 78271.516953125 39135.7584765625 19567.87923828125 9783.939619140625 4891.9698095703125 2445.9849047851562 1222.9924523925781 611.4962261962891 305.74811309814453 152.87405654907226 76.43702827453613 38.218514137268066 19.109257068634033 9.554628534317017 4.777314267158508 2.388657133579254 1.194328566789627 0.5971642833948135 0.29858214169740677 0.14929107084870338 0.07464553542435169 0.037322767712175846 0.018661383856087923 0.009330691928043961 0.0 [...]
+        <Width>256</Width>
+        <Height>256</Height>
+        <Format>image/png</Format>
+        <Layers>medford:hydro</Layers>
+        <Styles/>
+      </TileSet>
+      <TileSet>
+        <SRS>EPSG:4326</SRS>
+        <BoundingBox SRS="EPSG:4326" minx="-123.046875" miny="42.1875" maxx="-122.6953125" maxy="42.5390625"/>
+        <Resolutions>0.703125 0.3515625 0.17578125 0.087890625 0.0439453125 0.02197265625 0.010986328125 0.0054931640625 0.00274658203125 0.001373291015625 6.866455078125E-4 3.4332275390625E-4 1.71661376953125E-4 8.58306884765625E-5 4.291534423828125E-5 2.1457672119140625E-5 1.0728836059570312E-5 5.364418029785156E-6 2.682209014892578E-6 1.341104507446289E-6 6.705522537231445E-7 3.3527612686157227E-7 1.6763806343078613E-7 8.381903171539307E-8 4.190951585769653E-8 2.0954757928848267E-8 </ [...]
+        <Width>256</Width>
+        <Height>256</Height>
+        <Format>image/gif</Format>
+        <Layers>medford</Layers>
+        <Styles/>
+      </TileSet>
+    </VendorSpecificCapabilities>
+    <UserDefinedSymbolization SupportSLD="1" UserLayer="1" UserStyle="1" RemoteWFS="1"/>
+    <Layer queryable="0" opaque="0" noSubsets="0">
+      <Title>GeoServer Web Map Service</Title>
+      <Abstract>A compliant implementation of WMS 1.1.1 plus most of the SLD 1.0 extension (dynamic styling). Can also generate PDF, SVG, KML, GeoRSS</Abstract>
+      <SRS>EPSG:4326</SRS>
+      <SRS>EPSG:900913</SRS>
+      <LatLonBoundingBox minx="-180.0" miny="-90.0" maxx="180.0" maxy="83.624"/>
+    </Layer>
+  </Capability>
+</WMT_MS_Capabilities>
+--></div>
+</body> 
+</html> 
diff --git a/tests/Format/WMSCapabilities/v1_3_0.html b/tests/Format/WMSCapabilities/v1_3_0.html
index 95f6f4b..9d7eecd 100644
--- a/tests/Format/WMSCapabilities/v1_3_0.html
+++ b/tests/Format/WMSCapabilities/v1_3_0.html
@@ -1,11 +1,20 @@
 <html>
 <head>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
 
+    function test_read_exception(t) {
+        t.plan(1);
+        var xml = document.getElementById("exceptionsample").firstChild.nodeValue;
+        var doc = new OpenLayers.Format.XML().read(xml);
+        var format = new OpenLayers.Format.WMSCapabilities();
+        var obj = format.read(doc);
+        t.ok(!!obj.error, "Error reported correctly");
+    }
+
     function test_layers(t) {
 
-        t.plan(22);
+        t.plan(24);
 
         var xml = document.getElementById("ogcsample").firstChild.nodeValue;
         var doc = new OpenLayers.Format.XML().read(xml);
@@ -37,6 +46,11 @@
              [189000, 834000, 285000, 962000],
              "Correct bbox from BoundingBox");
         t.eq(bbox.res, {x: 1, y: 1}, "Correct resolution");
+        bbox = layers["ROADS_RIVERS"].bbox["CRS:84"];
+        t.eq(bbox.bbox,
+             [-71.63, 41.75, -70.78, 42.90],
+             "Correct bbox from BoundingBox (override)");
+        t.eq(bbox.res, {x: 0.01, y: 0.01}, "Correct resolution (override)");
 
         bbox = layers["ROADS_1M"].bbox["EPSG:26986"];
         t.eq(bbox.bbox,
@@ -280,6 +294,26 @@
 </head>
 <body>
 
+<div id="exceptionsample"><!--
+<?xml version='1.0' encoding="UTF-8"?> 
+<ServiceExceptionReport version="1.3.0" xmlns="http://www.opengis.net/ogc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.opengis.net/ogc
+    http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">
+    <ServiceException> Plain text message about an error. </ServiceException>
+    <ServiceException code="InvalidUpdateSequence"> Another error message, this one with a service
+        exception code supplied. </ServiceException>
+    <ServiceException>
+        <![CDATA[ Error in module <foo.c>, line 42
+A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:
+]]>
+    </ServiceException>
+    <ServiceException>
+        <![CDATA[ <Module>foo.c</Module> <Error>An error occurred</Error> <Explanation>Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it.</Explanation> ]]>
+    </ServiceException>
+</ServiceExceptionReport>
+--></div>
+
 <!--
 OGC example below taken from
 http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xml
@@ -403,6 +437,8 @@ Changes:
       <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
        xlink:href="http://gcmd.gsfc.nasa.gov/difguide/whatisadif.html" />
     </AuthorityURL>
+    <BoundingBox CRS="CRS:84"
+     minx="-1" miny="-1" maxx="1" maxy="1" resx="0.0" resy="0.0"/>
     <Layer>
 
       <Name>ROADS_RIVERS</Name>
diff --git a/tests/Format/WMSDescribeLayer.html b/tests/Format/WMSDescribeLayer.html
index 30ebaff..f564da3 100644
--- a/tests/Format/WMSDescribeLayer.html
+++ b/tests/Format/WMSDescribeLayer.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_read_WMSDescribeLayer(t) {
diff --git a/tests/Format/WMSGetFeatureInfo.html b/tests/Format/WMSGetFeatureInfo.html
index 41a9066..1301b65 100644
--- a/tests/Format/WMSGetFeatureInfo.html
+++ b/tests/Format/WMSGetFeatureInfo.html
@@ -1,10 +1,10 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_read_FeatureInfoResponse(t) {
-        t.plan(5);
+        t.plan(7);
         
         var parser = new OpenLayers.Format.WMSGetFeatureInfo();
 
@@ -49,10 +49,29 @@
         t.eq(features[1].attributes.STATE_NAME, 'Wyoming',
              "Attribute STATE_NAME contains the right value");
 
+        text = '<FeatureInfoResponse>' +
+            '<FIELDS>' +
+            '<FIELD name="ID" value="B31A0154"/>' +
+            '<FIELD name="FID" value="31AL0011"/>' +
+            '</FIELDS>' +
+            '<FIELDS>' +
+            '<FIELD name="ID" value="B31A0153"/>' +
+            '<FIELD name="FID" value="31AL0011"/>' +
+            '</FIELDS>' +
+            '</FeatureInfoResponse>';
+
+        features = parser.read(text);
+
+        t.eq(features.length, 2,
+             "Parsed 2 features in total");
+
+        t.eq(features[1].attributes.FID, '31AL0011',
+             "Attribute FID contains the right value");
+
     }
 
     function test_read_msGMLOutput(t) {
-        t.plan(12);
+        t.plan(13);
         
         var parser = new OpenLayers.Format.WMSGetFeatureInfo();
 
@@ -69,6 +88,28 @@
         t.eq(features.length, 0,
              "Parsing empty msGMLOutput response succesfull");
 
+        // read empty attribute
+        text =
+            '<?xml version="1.0" encoding="ISO-8859-1"?>' +
+            '<msGMLOutput ' +
+            '    xmlns:gml="http://www.opengis.net/gml"' +
+            '    xmlns:xlink="http://www.w3.org/1999/xlink"' +
+            '    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
+            '   <AAA64_layer>' +
+            '           <AAA64_feature>' +
+            '                   <gml:boundedBy>' +
+            '                           <gml:Box srsName="EPSG:28992">' +
+            '                                   <gml:coordinates>107397.266000,460681.063000 116568.188000,480609.250000</gml:coordinates>' +
+            '                           </gml:Box>' +
+            '                   </gml:boundedBy>' +
+            '                   <FOO>bar</FOO>' +
+            '                   <EMPTY></EMPTY>' +
+            '           </AAA64_feature>' +
+            '   </AAA64_layer>' +
+            '</msGMLOutput>';
+        features = parser.read(text);
+        t.eq((features[0].attributes.EMPTY === null), true, "Empty attribute is parsed as null");
+
         // read 1 feature from 1 layer
         text = 
             '<?xml version="1.0" encoding="ISO-8859-1"?>' +
diff --git a/tests/Format/WMTSCapabilities.html b/tests/Format/WMTSCapabilities.html
index 7039707..e7a51a3 100644
--- a/tests/Format/WMTSCapabilities.html
+++ b/tests/Format/WMTSCapabilities.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     
     function test_initialize(t) {
diff --git a/tests/Format/WMTSCapabilities/v1_0_0.html b/tests/Format/WMTSCapabilities/v1_0_0.html
index 176a054..af01d7c 100644
--- a/tests/Format/WMTSCapabilities/v1_0_0.html
+++ b/tests/Format/WMTSCapabilities/v1_0_0.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
 
         function test_ows(t) {
@@ -36,7 +36,7 @@
         }
     
         function test_layers(t) {
-            t.plan(21);
+            t.plan(25);
             var xml = document.getElementById("ogcsample").firstChild.nodeValue;
             var doc = new OpenLayers.Format.XML().read(xml);
     
@@ -75,7 +75,14 @@
             t.eq(wgs84Bbox.right, 180.0, "wgs84BoudingBox right is correct");
             t.eq(wgs84Bbox.bottom, -90.0, "wgs84BoudingBox bottom is correct");
             t.eq(wgs84Bbox.top, 90.0, "wgs84BoudingBox top is correct");
-            
+
+            t.eq(layer.resourceUrl.tile.format, "image/png", "resourceUrl.tile.format is correct");
+            t.eq(layer.resourceUrl.tile.template, "http://www.example.com/wmts/coastlines/{TileMatrix}/{TileRow}/{TileCol}.png", 
+                 "resourceUrl.tile.template is correct");
+
+            t.eq(layer.resourceUrl.FeatureInfo.format, "application/gml+xml; version=3.1", "resourceUrl.FeatureInfo.format is correct");
+            t.eq(layer.resourceUrl.FeatureInfo.template, "http://www.example.com/wmts/coastlines/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml", 
+                 "resourceUrl.FeatureInfo.template is correct");
         }
 
         function test_tileMatrixSets(t) {
@@ -110,7 +117,7 @@
         }
         
         function test_createLayer(t) {
-            t.plan(6);
+            t.plan(7);
             
             var format = new OpenLayers.Format.WMTSCapabilities();
 
@@ -153,7 +160,7 @@
             
             t.eq(layer.matrixIds.length, 2, "correct matrixIds length");
             t.eq(layer.name, "Coastlines", "correct layer title");
-            
+            t.eq(layer.style, "DarkBlue", "correct style identifier");
         }
         
     </script>
@@ -240,6 +247,10 @@ http://schemas.opengis.net/wmts/1.0/examples/wmtsGetCapabilities_response.xml
                 <ows:UpperCorner>180 90</ows:UpperCorner>
             </ows:WGS84BoundingBox>
             <ows:Identifier>coastlines</ows:Identifier>
+            <ResourceURL format="image/png" resourceType="tile"
+                         template="http://www.example.com/wmts/coastlines/{TileMatrix}/{TileRow}/{TileCol}.png" />
+            <ResourceURL format="application/gml+xml; version=3.1" resourceType="FeatureInfo"
+                         template="http://www.example.com/wmts/coastlines/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml" />
             <Style isDefault="true">
                 <ows:Title>Dark Blue</ows:Title>
                 <ows:Identifier>DarkBlue</ows:Identifier>
diff --git a/tests/Format/WPSCapabilities/v1_0_0.html b/tests/Format/WPSCapabilities/v1_0_0.html
new file mode 100644
index 0000000..191f29f
--- /dev/null
+++ b/tests/Format/WPSCapabilities/v1_0_0.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+    <script src="../../OLLoader.js"></script>
+    <script src="v1_0_0.js"></script>
+    <script type="text/javascript">
+
+    function test_read(t) {
+
+        t.plan(7);
+
+        var format = new OpenLayers.Format.WPSCapabilities();
+        var obj = format.read(doc);
+
+        t.eq(obj.version, "1.0.0", "Version parsed correctly");
+
+        t.eq(obj.languages.length, 2, "2 language entries parsed");
+        t.eq(obj.languages[0].isDefault, true, "First language is the default language");
+        t.eq(obj.languages[0].language, "en-US", "First language is US English");
+
+        var buffer = obj.processOfferings["JTS:buffer"];
+        t.eq(buffer.processVersion, "1.0.0", "processVersion for buffer is 1.0.0");
+        t.eq(buffer.abstract, "Buffers a geometry using a certain distance", "Buffer abstract correctly read");
+        t.eq(buffer.title, "Buffers a geometry using a certain distance", "Buffer title correctly read");
+    }
+
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/WPSCapabilities/v1_0_0.js b/tests/Format/WPSCapabilities/v1_0_0.js
new file mode 100644
index 0000000..19d12f2
--- /dev/null
+++ b/tests/Format/WPSCapabilities/v1_0_0.js
@@ -0,0 +1,112 @@
+var doc = new OpenLayers.Format.XML().read(
+'<?xml version="1.0" encoding="UTF-8"?>' +
+'<wps:Capabilities xml:lang="en" service="WPS" version="1.0.0"' +
+'    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"' +
+'    xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">' +
+'    <ows:ServiceIdentification>' +
+'        <ows:Title>Prototype GeoServer WPS</ows:Title>' +
+'        <ows:Abstract/>' +
+'        <ows:ServiceType>WPS</ows:ServiceType>' +
+'        <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>' +
+'    </ows:ServiceIdentification>' +
+'    <ows:ServiceProvider>' +
+'        <ows:ProviderName>The ancient geographes INC</ows:ProviderName>' +
+'        <ows:ProviderSite xlink:href="http://geoserver.org"/>' +
+'        <ows:ServiceContact/>' +
+'    </ows:ServiceProvider>' +
+'    <ows:OperationsMetadata>' +
+'        <ows:Operation name="GetCapabilities">' +
+'            <ows:DCP>' +
+'                <ows:HTTP>' +
+'                    <ows:Get xlink:href="http://localhost:8080/geoserver/wps"/>' +
+'                    <ows:Post xlink:href="http://localhost:8080/geoserver/wps"/>' +
+'                </ows:HTTP>' +
+'            </ows:DCP>' +
+'        </ows:Operation>' +
+'        <ows:Operation name="DescribeProcess">' +
+'            <ows:DCP>' +
+'                <ows:HTTP>' +
+'                    <ows:Get xlink:href="http://localhost:8080/geoserver/wps"/>' +
+'                    <ows:Post xlink:href="http://localhost:8080/geoserver/wps"/>' +
+'                </ows:HTTP>' +
+'            </ows:DCP>' +
+'        </ows:Operation>' +
+'        <ows:Operation name="Execute">' +
+'            <ows:DCP>' +
+'                <ows:HTTP>' +
+'                    <ows:Get xlink:href="http://localhost:8080/geoserver/wps"/>' +
+'                    <ows:Post xlink:href="http://localhost:8080/geoserver/wps"/>' +
+'                </ows:HTTP>' +
+'            </ows:DCP>' +
+'        </ows:Operation>' +
+'    </ows:OperationsMetadata>' +
+'    <wps:ProcessOfferings>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>gt:Intersect</ows:Identifier>' +
+'            <ows:Title>Intersection</ows:Title>' +
+'            <ows:Abstract>Intersection between two literal geometry</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:length</ows:Identifier>' +
+'            <ows:Title>Returns the geometry perimeters, computed using cartesian geometry' +
+'                expressions in the same unit of measure as the geometry (will not return a valid' +
+'                perimeter for geometries expressed geographic coordinates</ows:Title>' +
+'            <ows:Abstract>Returns the geometry perimeters, computed using cartesian geometry' +
+'                expressions in the same unit of measure as the geometry (will not return a valid' +
+'                perimeter for geometries expressed geographic coordinates</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:isEmpty</ows:Identifier>' +
+'            <ows:Title>Checks if the provided geometry is empty</ows:Title>' +
+'            <ows:Abstract>Checks if the provided geometry is empty</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:contains</ows:Identifier>' +
+'            <ows:Title>Checks if a contains b</ows:Title>' +
+'            <ows:Abstract>Checks if a contains b</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:disjoint</ows:Identifier>' +
+'            <ows:Title>Returns true if the two geometries have no points in common</ows:Title>' +
+'            <ows:Abstract>Returns true if the two geometries have no points in common</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:intersects</ows:Identifier>' +
+'            <ows:Title>Returns true if the two geometries intersect, false otherwise</ows:Title>' +
+'            <ows:Abstract>Returns true if the two geometries intersect, false' +
+'                otherwise</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:isClosed</ows:Identifier>' +
+'            <ows:Title>Returns true if the line is closed</ows:Title>' +
+'            <ows:Abstract>Returns true if the line is closed</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:isValid</ows:Identifier>' +
+'            <ows:Title>Returns true if the geometry is topologically valid, false' +
+'                otherwise</ows:Title>' +
+'            <ows:Abstract>Returns true if the geometry is topologically valid, false' +
+'                otherwise</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:buffer</ows:Identifier>' +
+'            <ows:Title>Buffers a geometry using a certain distance</ows:Title>' +
+'            <ows:Abstract>Buffers a geometry using a certain distance</ows:Abstract>' +
+'        </wps:Process>' +
+'        <wps:Process wps:processVersion="1.0.0">' +
+'            <ows:Identifier>JTS:getY</ows:Identifier>' +
+'            <ows:Title>Returns the Y ordinate of the point</ows:Title>' +
+'            <ows:Abstract>Returns the Y ordinate of the point</ows:Abstract>' +
+'        </wps:Process>' +
+'    </wps:ProcessOfferings>' +
+'    <wps:Languages>' +
+'        <wps:Default>' +
+'            <ows:Language>en-US</ows:Language>' +
+'        </wps:Default>' +
+'        <wps:Supported>' +
+'            <ows:Language>en-US</ows:Language>' +
+'        </wps:Supported>' +
+'    </wps:Languages>' +
+'</wps:Capabilities>'
+);
diff --git a/tests/Format/WPSDescribeProcess.html b/tests/Format/WPSDescribeProcess.html
new file mode 100644
index 0000000..c411f62
--- /dev/null
+++ b/tests/Format/WPSDescribeProcess.html
@@ -0,0 +1,196 @@
+<html>
+<head>
+    <script src="../OLLoader.js"></script>
+    <script type="text/javascript">
+
+    function test_read_WPSDescribeProcess(t) {
+        t.plan(16);
+
+        var parser = new OpenLayers.Format.WPSDescribeProcess();
+        var text =
+'<?xml version="1.0" encoding="UTF-8"?>' +
+'<wps:ProcessDescriptions xml:lang="en" service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
+'    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"' +
+'    xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink">' +
+'    <ProcessDescription wps:processVersion="1.0.0" statusSupported="false"' +
+'        storeSupported="false">' +
+'        <ows:Identifier>JTS:buffer</ows:Identifier>' +
+'        <ows:Title>Buffers a geometry using a certain distance</ows:Title>' +
+'        <ows:Abstract>Buffers a geometry using a certain distance</ows:Abstract>' +
+'        <DataInputs>' +
+'            <Input maxOccurs="1" minOccurs="1">' +
+'                <ows:Identifier>geom</ows:Identifier>' +
+'                <ows:Title>geom</ows:Title>' +
+'                <ows:Abstract>The geometry to be buffered</ows:Abstract>' +
+'                <ComplexData>' +
+'                    <Default>' +
+'                        <Format>' +
+'                            <MimeType>text/xml; subtype=gml/3.1.1</MimeType>' +
+'                        </Format>' +
+'                    </Default>' +
+'                    <Supported>' +
+'                        <Format>' +
+'                            <MimeType>text/xml; subtype=gml/3.1.1</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>text/xml; subtype=gml/2.1.2</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/wkt</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/gml-3.1.1</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/gml-2.1.2</MimeType>' +
+'                        </Format>' +
+'                    </Supported>' +
+'                </ComplexData>' +
+'            </Input>' +
+'            <Input maxOccurs="1" minOccurs="1">' +
+'                <ows:Identifier>distance</ows:Identifier>' +
+'                <ows:Title>distance</ows:Title>' +
+'                <ows:Abstract>The distance (same unit of measure as the geometry)</ows:Abstract>' +
+'                <LiteralData>' +
+'                    <ows:DataType>xs:double</ows:DataType>' +
+'                    <ows:AnyValue/>' +
+'                </LiteralData>' +
+'            </Input>' +
+'            <Input maxOccurs="1" minOccurs="0">' +
+'                <ows:Identifier>quadrantSegments</ows:Identifier>' +
+'                <ows:Title>quadrantSegments</ows:Title>' +
+'                <ows:Abstract>Number of quadrant segments. Use > 0 for round joins, 0 for' +
+'                    flat joins, < 0 for mitred joins</ows:Abstract>' +
+'                <LiteralData>' +
+'                    <ows:DataType>xs:int</ows:DataType>' +
+'                    <ows:AnyValue/>' +
+'                </LiteralData>' +
+'            </Input>' +
+'            <Input maxOccurs="1" minOccurs="0">' +
+'                <ows:Identifier>capStyle</ows:Identifier>' +
+'                <ows:Title>capStyle</ows:Title>' +
+'                <ows:Abstract>The buffer cap style, round, flat, square</ows:Abstract>' +
+'                <LiteralData>' +
+'                    <ows:AllowedValues>' +
+'                        <ows:Value>Round</ows:Value>' +
+'                        <ows:Value>Flat</ows:Value>' +
+'                        <ows:Value>Square</ows:Value>' +
+'                    </ows:AllowedValues>' +
+'                </LiteralData>' +
+'            </Input>' +
+'        </DataInputs>' +
+'        <ProcessOutputs>' +
+'            <Output>' +
+'                <ows:Identifier>result</ows:Identifier>' +
+'                <ows:Title>result</ows:Title>' +
+'                <ComplexOutput>' +
+'                    <Default>' +
+'                        <Format>' +
+'                            <MimeType>text/xml; subtype=gml/3.1.1</MimeType>' +
+'                        </Format>' +
+'                    </Default>' +
+'                    <Supported>' +
+'                        <Format>' +
+'                            <MimeType>text/xml; subtype=gml/3.1.1</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>text/xml; subtype=gml/2.1.2</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/wkt</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/gml-3.1.1</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/gml-2.1.2</MimeType>' +
+'                        </Format>' +
+'                    </Supported>' +
+'                </ComplexOutput>' +
+'            </Output>' +
+'        </ProcessOutputs>' +
+'    </ProcessDescription>' +
+'</wps:ProcessDescriptions>';
+
+        var res = parser.read(text);
+        var buffer = res.processDescriptions["JTS:buffer"];
+        t.eq(buffer.statusSupported, false, "statusSupported read correctly");
+        t.eq(buffer.storeSupported, false, "storeSupported read correctly");
+        t.eq(buffer.processVersion, "1.0.0", "processVersion read correctly");
+        var capStyle = buffer.dataInputs[3];
+        t.eq(capStyle.abstract, "The buffer cap style, round, flat, square", "capStyle abstract read correctly");
+        t.eq(capStyle.minOccurs, 0, "capStyle minOccurs read correctly");
+        t.eq(capStyle.maxOccurs, 1, "maxOccurs read correctly");
+        t.eq(capStyle.literalData.allowedValues["Flat"], true, "capStyle allowedValues read correctly");
+        var distance = buffer.dataInputs[1];
+        t.eq(distance.literalData.anyValue, true, "distance anyValue read correctly");
+        t.eq(distance.literalData.dataType, "xs:double", "distance dataType read correctly");
+        var geom = buffer.dataInputs[0];
+        t.eq(geom.complexData["default"].formats["text/xml; subtype=gml/3.1.1"], true, "geom complexData default read correctly");
+        t.eq(geom.complexData["supported"].formats["application/gml-2.1.2"], true, "geom complexData supported read correctly [1/2]");
+        t.eq(geom.complexData["supported"].formats["application/gml-3.1.1"], true, "geom complexData supported read correctly [2/2]");
+        var result = buffer.processOutputs[0];
+        t.eq(result.complexOutput["default"].formats["text/xml; subtype=gml/3.1.1"], true, "processOutputs default format read correctly");
+        t.eq(result.complexOutput["supported"].formats["text/xml; subtype=gml/3.1.1"], true, "processOutputs supported format read correctly [1/2]");
+        t.eq(result.complexOutput["supported"].formats["application/wkt"], true, "processOutputs supported format read correctly [1/2]");
+
+        text = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<wps:ProcessDescriptions service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0"' +
+'    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en"' +
+'    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"' +
+'    xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink">' +
+'    <ProcessDescription wps:processVersion="1.0.0" statusSupported="false"' +
+'        storeSupported="false">' +
+'        <ows:Identifier>gt:VectorToRaster</ows:Identifier>' +
+'        <ows:Title>Rasterize features</ows:Title>' +
+'        <ows:Abstract>Rasterize all or selected features in a FeatureCollection</ows:Abstract>' +
+'        <DataInputs>' +
+'            <Input maxOccurs="1" minOccurs="0">' +
+'                <ows:Identifier>bounds</ows:Identifier>' +
+'                <ows:Title>Bounds</ows:Title>' +
+'                <ows:Abstract>Bounds of the area to rasterize</ows:Abstract>' +
+'                <BoundingBoxData>' +
+'                    <Default>' +
+'                        <CRS>EPSG:4326</CRS>' +
+'                    </Default>' +
+'                    <Supported>' +
+'                        <CRS>EPSG:4326</CRS>' +
+'                    </Supported>' +
+'                </BoundingBoxData>' +
+'            </Input>' +
+'        </DataInputs>' +
+'        <ProcessOutputs>' +
+'            <Output>' +
+'                <ows:Identifier>result</ows:Identifier>' +
+'                <ows:Title>Result</ows:Title>' +
+'                <ComplexOutput>' +
+'                    <Default>' +
+'                        <Format>' +
+'                            <MimeType>image/tiff</MimeType>' +
+'                        </Format>' +
+'                    </Default>' +
+'                    <Supported>' +
+'                        <Format>' +
+'                            <MimeType>image/tiff</MimeType>' +
+'                        </Format>' +
+'                        <Format>' +
+'                            <MimeType>application/arcgrid</MimeType>' +
+'                        </Format>' +
+'                    </Supported>' +
+'                </ComplexOutput>' +
+'            </Output>' +
+'        </ProcessOutputs>' +
+'    </ProcessDescription>' +
+'</wps:ProcessDescriptions>';
+
+        res = parser.read(text);
+        var vector2Raster = res.processDescriptions["gt:VectorToRaster"];
+        t.eq(vector2Raster.dataInputs[0].boundingBoxData["default"].CRSs["EPSG:4326"], true, "BoundingBoxData CRS parsed correctly");
+    }
+
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/WPSExecute.html b/tests/Format/WPSExecute.html
new file mode 100644
index 0000000..124bd97
--- /dev/null
+++ b/tests/Format/WPSExecute.html
@@ -0,0 +1,465 @@
+<html>
+<head>
+    <script src="../OLLoader.js"></script>
+    <script type="text/javascript">
+
+    function test_write_WPSExecute_WCS(t) {
+        t.plan(1);
+        var expected = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schema [...]
+'  <ows:Identifier>gs:GeorectifyCoverage</ows:Identifier>' +
+'  <wps:DataInputs>' +
+'    <wps:Input>' +
+'      <ows:Identifier>data</ows:Identifier>' +
+'      <wps:Reference mimeType="image/tiff" xlink:href="http://geoserver/wcs" method="POST">' +
+'        <wps:Body>' +
+'          <wcs:GetCoverage service="WCS" version="1.1.2">' +
+'            <ows:Identifier>topp:asbuilt</ows:Identifier>' +
+'            <wcs:DomainSubset>' +
+'              <ows:BoundingBox crs="http://www.opengis.net/gml/srs/epsg.xml#404000">' +
+'                <ows:LowerCorner>0 -7070</ows:LowerCorner>' +
+'                <ows:UpperCorner>10647 1</ows:UpperCorner>' +
+'              </ows:BoundingBox>' +
+'            </wcs:DomainSubset>' +
+'            <wcs:Output format="image/tiff"/>' +
+'          </wcs:GetCoverage>' +
+'        </wps:Body>' +
+'      </wps:Reference>' +
+'    </wps:Input>' +
+'    <wps:Input>' +
+'      <ows:Identifier>gcp</ows:Identifier>' +
+'      <wps:Data>' +
+'        <wps:LiteralData>[[[2721, 3263], [-122.472109, 37.73106003]], [[4163, 3285], [-122.4693417, 37.729929851]], [[5773, 4046], [-122.466702461, 37.7271906]], [[8885, 4187], [-122.462333, 37.725167]]]</wps:LiteralData>' +
+'      </wps:Data>' +
+'    </wps:Input>' +
+'    <wps:Input>' +
+'      <ows:Identifier>targetCRS</ows:Identifier>' +
+'      <wps:Data>' +
+'        <wps:LiteralData>EPSG:4326</wps:LiteralData>' +
+'      </wps:Data>' +
+'    </wps:Input>' +
+'    <wps:Input>' +
+'      <ows:Identifier>transparent</ows:Identifier>' +
+'      <wps:Data>' +
+'        <wps:LiteralData>true</wps:LiteralData>' +
+'      </wps:Data>' +
+'    </wps:Input>' +
+'  </wps:DataInputs>' +
+'  <wps:ResponseForm>' +
+'    <wps:RawDataOutput mimeType="image/tiff">' +
+'      <ows:Identifier>result</ows:Identifier>' +
+'    </wps:RawDataOutput>' +
+'  </wps:ResponseForm>' +
+'</wps:Execute>';
+
+        var format = new OpenLayers.Format.WPSExecute();
+        var result = format.write({
+            identifier: "gs:GeorectifyCoverage", 
+            dataInputs: [{
+                identifier: 'data',
+                reference: {
+                    mimeType: "image/tiff", 
+                    href: "http://geoserver/wcs", 
+                    method: "POST",
+                    body: {
+                        wcs: {
+                            identifier: 'topp:asbuilt',
+                            version: '1.1.2',
+                            domainSubset: {
+                                boundingBox: {
+                                    projection: 'http://www.opengis.net/gml/srs/epsg.xml#404000',
+                                    bounds: new OpenLayers.Bounds(0.0, -7070.0, 10647.0, 1.0)
+                                }
+                            },
+                            output: {format: 'image/tiff'}
+                        }
+                    }
+                }
+            }, {
+                identifier: 'gcp',
+                data: {
+                    literalData: {
+                        value: '[[[2721, 3263], [-122.472109, 37.73106003]], [[4163, 3285], [-122.4693417, 37.729929851]], [[5773, 4046], [-122.466702461, 37.7271906]], [[8885, 4187], [-122.462333, 37.725167]]]'
+                    }
+                }
+            }, {
+                identifier: 'targetCRS',
+                data: {
+                    literalData: {
+                        value: 'EPSG:4326'
+                    }
+                }
+            }, {
+                identifier: 'transparent',
+                data: {
+                    literalData: {
+                        value: 'true'
+                    }
+                }
+            }],
+            responseForm: {
+                rawDataOutput: {
+                    mimeType: "image/tiff",
+                    identifier: "result"
+                }
+            }
+        });
+        t.xml_eq(result, expected, "WPS Execute with embedded WCS GetCoverage written out correctly");
+
+    }
+
+    function test_write_WPSExecute(t) {
+        t.plan(1);
+        var expected = '<?xml version="1.0" encoding="UTF-8"?>' +
+'<wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
+'    xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs"' +
+'    xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1"' +
+'    xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"' +
+'    xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink"' +
+'    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">' +
+'    <ows:Identifier>JTS:area</ows:Identifier>' +
+'    <wps:DataInputs>' +
+'        <wps:Input>' +
+'            <ows:Identifier>geom</ows:Identifier>' +
+'            <wps:Reference mimeType="text/xml; subtype=gml/3.1.1" xlink:href="http://geoserver/wps"' +
+'                method="POST">' +
+'                <wps:Body>' +
+'                    <wps:Execute service="WPS" version="1.0.0">' +
+'                        <ows:Identifier>gs:CollectGeometries</ows:Identifier>' +
+'                        <wps:DataInputs>' +
+'                            <wps:Input>' +
+'                                <ows:Identifier>features</ows:Identifier>' +
+'                                <wps:Reference mimeType="text/xml; subtype=wfs-collection/1.0"' +
+'                                    xlink:href="http://geoserver/wfs" method="POST">' +
+'                                    <wps:Body>' +
+'                                        <wfs:GetFeature service="WFS" version="1.0.0"' +
+'                                            outputFormat="GML2">' +
+'                                            <wfs:Query typeName="sf:archsites"/>' +
+'                                        </wfs:GetFeature>' +
+'                                    </wps:Body>' +
+'                                </wps:Reference>' +
+'                            </wps:Input>' +
+'                        </wps:DataInputs>' +
+'                        <wps:ResponseForm>' +
+'                            <wps:RawDataOutput mimeType="text/xml; subtype=gml/3.1.1">' +
+'                                <ows:Identifier>result</ows:Identifier>' +
+'                            </wps:RawDataOutput>' +
+'                        </wps:ResponseForm>' +
+'                    </wps:Execute>' +
+'                </wps:Body>' +
+'            </wps:Reference>' +
+'        </wps:Input>' +
+'    </wps:DataInputs>' +
+'    <wps:ResponseForm>' +
+'        <wps:RawDataOutput>' +
+'            <ows:Identifier>result</ows:Identifier>' +
+'        </wps:RawDataOutput>' +
+'    </wps:ResponseForm>' +
+'</wps:Execute>';
+
+        var format = new OpenLayers.Format.WPSExecute();
+        var result = format.write({
+            identifier: "JTS:area", 
+            dataInputs: [{
+                identifier: 'geom',
+                reference: {
+                    mimeType: "text/xml; subtype=gml/3.1.1", 
+                    href: "http://geoserver/wps", 
+                    method: "POST",
+                    body: {
+                        identifier: "gs:CollectGeometries",
+                        dataInputs: [{
+                             identifier: 'features',
+                             reference: {
+                                 mimeType: "text/xml; subtype=wfs-collection/1.0",
+                                 href: "http://geoserver/wfs",
+                                 method: "POST",
+                                 body: {
+                                     wfs: {
+                                         version: "1.0.0",
+                                         outputFormat: "GML2",
+                                         featureType: "sf:archsites"
+                                     }
+                                 }
+                             }
+                         }],
+                         responseForm: {
+                             rawDataOutput: {
+                                 mimeType: "text/xml; subtype=gml/3.1.1",
+                                 identifier: "result"
+                             }
+                         }
+                    }
+                }
+            }],
+            responseForm: {
+                rawDataOutput: {
+                    identifier: "result"
+                }
+            }
+        });
+        t.xml_eq(result, expected, "WPS Execute written out correctly");
+    }
+
+    function test_write_raw_data_output(t) {
+        t.plan(1);
+        // example request taken from: http://geoprocessing.info/wpsdoc/1x0ExecutePOST
+        var expected = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' +
+'<wps:Execute service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" ' +
+'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">' +
+'	<ows:Identifier>Buffer</ows:Identifier>' +
+'	<wps:DataInputs>' +
+'		<wps:Input>' +
+'			<ows:Identifier>InputPolygon</ows:Identifier>' +
+'			<ows:Title>Playground area</ows:Title>' +
+'			<wps:Reference xlink:href="http://foo.bar/some_WFS_request.xml"/>' +
+'		</wps:Input>' +
+'		<wps:Input>' +
+'			<ows:Identifier>BufferDistance</ows:Identifier>' +
+'			<ows:Title>Distance which people will walk to get to a playground.</ows:Title>' +
+'			<wps:Data>' +
+'				<wps:LiteralData>400</wps:LiteralData>' +
+'			</wps:Data>' +
+'		</wps:Input>' +
+'	</wps:DataInputs>' +
+'	<wps:ResponseForm>' +
+'		<wps:RawDataOutput>' +
+'			<ows:Identifier>BufferedPolygon</ows:Identifier>' +
+'		</wps:RawDataOutput>' +
+'	</wps:ResponseForm>' +
+'</wps:Execute>';
+
+        var format = new OpenLayers.Format.WPSExecute();
+        var result = format.write({
+            identifier: "Buffer", 
+            dataInputs: [{
+                identifier: 'InputPolygon',
+                title: 'Playground area',
+                reference: {
+                    href: 'http://foo.bar/some_WFS_request.xml'
+                }
+            }, {
+                identifier: 'BufferDistance',
+                title: 'Distance which people will walk to get to a playground.',
+                data: {
+                    literalData: {
+                        value: 400
+                    }
+                }
+            }],
+            responseForm: {
+                rawDataOutput: {
+                    identifier: "BufferedPolygon"
+                }
+            }
+        });
+        t.xml_eq(result, expected, "WPS Execute written out correctly");
+    }
+
+    function test_write_request_responseDoc_defaultFormat(t) {
+        t.plan(1);
+        // taken from http://geoprocessing.info/schemas/wps/1.0/examples/51_wpsExecute_request_ResponseDocument.xml
+        var expected = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' +
+'<wps:Execute service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" ' +
+'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">' +
+'	<ows:Identifier>Buffer</ows:Identifier>' +
+'	<wps:DataInputs>' +
+'		<wps:Input>' +
+'			<ows:Identifier>InputPolygon</ows:Identifier>' +
+'			<ows:Title>Playground area</ows:Title>' +
+'			<wps:Reference xlink:href="http://foo.bar/some_WFS_request.xml"/>' +
+'		</wps:Input>' +
+'		<wps:Input>' +
+'			<ows:Identifier>BufferDistance</ows:Identifier>' +
+'			<ows:Title>Distance which people will walk to get to a playground.</ows:Title>' +
+'			<wps:Data>' +
+'				<wps:LiteralData>400</wps:LiteralData>' +
+'			</wps:Data>' +
+'		</wps:Input>' +
+'	</wps:DataInputs>' +
+'	<wps:ResponseForm>' +
+'		<wps:ResponseDocument storeExecuteResponse="true">' +
+'			<wps:Output asReference="true">' +
+'				<ows:Identifier>BufferedPolygon</ows:Identifier>' +
+'				<ows:Title>Area serviced by playground.</ows:Title>' +
+'				<ows:Abstract>Area within which most users of this playground will live.</ows:Abstract>' +
+'			</wps:Output>' +
+'		</wps:ResponseDocument>' +
+'	</wps:ResponseForm>' +
+'</wps:Execute>';
+
+        var format = new OpenLayers.Format.WPSExecute();
+        var result = format.write({
+            identifier: "Buffer", 
+            dataInputs: [{
+                identifier: 'InputPolygon',
+                title: 'Playground area',
+                reference: {
+                    href: 'http://foo.bar/some_WFS_request.xml'
+                }
+            }, {
+                identifier: 'BufferDistance',
+                title: 'Distance which people will walk to get to a playground.',
+                data: {
+                    literalData: {
+                        value: 400
+                    }
+                }                    
+            }],
+            responseForm: {
+                responseDocument: {
+                    storeExecuteResponse: true,
+                    output: {
+                        asReference: true,
+                        identifier: 'BufferedPolygon',
+                        title: 'Area serviced by playground.',
+                        'abstract': 'Area within which most users of this playground will live.'
+                    }
+                }
+            }
+        });
+        t.xml_eq(result, expected, "WPS Execute written out correctly");
+    }
+
+    function test_write_request_responseDoc_specifiedFormat(t) {
+        t.plan(1);
+        // taken from http://geoprocessing.info/schemas/wps/1.0/examples/52_wpsExecute_request_ResponseDocument.xml
+        var expected = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' +
+'<wps:Execute service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" ' +
+'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">' +
+'	<ows:Identifier>Buffer</ows:Identifier>' +
+'	<wps:DataInputs>' +
+'		<wps:Input>' +
+'			<ows:Identifier>InputPolygon</ows:Identifier>' +
+'			<ows:Title>Playground area</ows:Title>' +
+'			<wps:Reference xlink:href="http://foo.bar/some_WFS_request.xml" method="POST" mimeType="text/xml" encoding="UTF-8" schema="http://foo.bar/gml_polygon_schema.xsd"/>' +
+'		</wps:Input>' +
+'		<wps:Input>' +
+'			<ows:Identifier>BufferDistance</ows:Identifier>' +
+'			<ows:Title>Distance which people will walk to get to a playground.</ows:Title>' +
+'			<wps:Data>' +
+'				<wps:LiteralData uom="feet">400</wps:LiteralData>' +
+'			</wps:Data>' +
+'		</wps:Input>' +
+'	</wps:DataInputs>' +
+'	<wps:ResponseForm>' +
+'		<wps:ResponseDocument storeExecuteResponse="true" lineage="true" status="true">' +
+'			<wps:Output asReference="true">' +
+'				<ows:Identifier>BufferedPolygon</ows:Identifier>' +
+'				<ows:Title>Area serviced by playground.</ows:Title>' +
+'				<ows:Abstract>Area within which most users of this playground will live.</ows:Abstract>' +
+'			</wps:Output>' +
+'		</wps:ResponseDocument>' +
+'	</wps:ResponseForm>' +
+'</wps:Execute>';
+
+        var format = new OpenLayers.Format.WPSExecute();
+        var result = format.write({
+            identifier: "Buffer",
+            dataInputs: [{
+                identifier: 'InputPolygon',
+                title: 'Playground area',
+                reference: {
+                    href: 'http://foo.bar/some_WFS_request.xml',
+                    method: "POST",
+                    mimeType: "text/xml",
+                    encoding: "UTF-8",
+                    schema: "http://foo.bar/gml_polygon_schema.xsd"
+                }
+            }, {
+                identifier: 'BufferDistance',
+                title: 'Distance which people will walk to get to a playground.',
+                data: {
+                    literalData: {
+                        value: 400,
+                        uom: 'feet'
+                    }
+                }
+            }],
+            responseForm: {
+                responseDocument: {
+                    storeExecuteResponse: true,
+                    lineage: true,
+                    status: true,
+                    output: {
+                        asReference: true,
+                        identifier: 'BufferedPolygon',
+                        title: 'Area serviced by playground.',
+                        'abstract': 'Area within which most users of this playground will live.'
+                    }
+                }
+            }
+        });
+        t.xml_eq(result, expected, "WPS Execute written out correctly");
+    }
+
+        function test_write_request_complexData(t) {
+            t.plan(1);
+            // taken from http://geoprocessing.info/schemas/wps/1.0/examples/51_wpsExecute_request_ResponseDocument.xml
+            var expected = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' +
+    '<wps:Execute service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" ' +
+    'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">' +
+    '	<ows:Identifier>Buffer</ows:Identifier>' +
+    '	<wps:DataInputs>' +
+    '		<wps:Input>' +
+    '			<ows:Identifier>InputPolygon</ows:Identifier>' +
+    '			<ows:Title>Playground area</ows:Title>' +
+    '			<wps:Reference xlink:href="http://foo.bar/some_WFS_request.xml"/>' +
+    '		</wps:Input>' +
+    '		<wps:Input>' +
+    '			<ows:Identifier>ResultPage</ows:Identifier>' +
+    '			<ows:Title>Nicely formatted HTML of the result</ows:Title>' +
+    '			<wps:Data>' +
+    '				<wps:ComplexData><![CDATA[<html><head></head><body></body></head>]]></wps:ComplexData>' +
+    '			</wps:Data>' +
+    '		</wps:Input>' +
+    '	</wps:DataInputs>' +
+    '	<wps:ResponseForm>' +
+    '		<wps:ResponseDocument storeExecuteResponse="true">' +
+    '			<wps:Output asReference="true">' +
+    '				<ows:Identifier>BufferedPolygon</ows:Identifier>' +
+    '				<ows:Title>Area serviced by playground.</ows:Title>' +
+    '				<ows:Abstract>Area within which most users of this playground will live.</ows:Abstract>' +
+    '			</wps:Output>' +
+    '		</wps:ResponseDocument>' +
+    '	</wps:ResponseForm>' +
+    '</wps:Execute>';
+
+            var format = new OpenLayers.Format.WPSExecute();
+            var result = format.write({
+                identifier: "Buffer", 
+                dataInputs: [{
+                    identifier: 'InputPolygon',
+                    title: 'Playground area',
+                    reference: {
+                        href: 'http://foo.bar/some_WFS_request.xml'
+                    }
+                }, {
+                    identifier: 'ResultPage',
+                    title: 'Nicely formatted HTML of the result',
+                    data: {
+                        complexData: {
+                            value: "<html><head></head><body></body></head>"
+                        }
+                    }                    
+                }],
+                responseForm: {
+                    responseDocument: {
+                        storeExecuteResponse: true,
+                        output: {
+                            asReference: true,
+                            identifier: 'BufferedPolygon',
+                            title: 'Area serviced by playground.',
+                            'abstract': 'Area within which most users of this playground will live.'
+                        }
+                    }
+                }
+            });
+            t.xml_eq(result, expected, "WPS Execute written out correctly");
+        }
+
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/XLS/v1_1_0.html b/tests/Format/XLS/v1_1_0.html
new file mode 100644
index 0000000..8a744f9
--- /dev/null
+++ b/tests/Format/XLS/v1_1_0.html
@@ -0,0 +1,98 @@
+<html>
+<head>
+    <script src="../../../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+    function test_read(t) {
+        t.plan(16);
+        var response = '<xls:GeocodeResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd" xmlns:xls="http://www.opengis.net/xls" xmlns:gml="http://www.opengis.net/gml"><xls:GeocodeResponseList numberOfGeocodedAddresses="1"><xls:GeocodedAddress><gml:Point srsName="EPSG:28992"><gml:pos dimension="2">122650 483904</gml:pos></gml:Point><xls:Address countryCode="NL"><xls:St [...]
+        var format = new OpenLayers.Format.XLS();
+        var output = format.read(response);
+        t.eq(output.responseLists.length, 1, "Output contains 1 responseList");
+        var responseList = output.responseLists[0];
+        t.eq(responseList.numberOfGeocodedAddresses, 1, "Responselist contains 1 geocoded address");
+        t.eq(responseList.features.length, 1, "1 feature parsed");
+        var feature = responseList.features[0];
+        var address = feature.attributes.address;
+        t.eq(address.building["number"], "1", "Building number correctly parsed");
+        t.eq(address.countryCode, "NL", "Country code correctly parsed");
+        t.eq(address.place.CountrySubdivision, "noord holland", "CountrySubDivision correctly parsed");
+        t.eq(address.place.Municipality, "amsterdam", "Municipality correctly parsed");
+        t.eq(address.place.MunicipalitySubdivision, "amsterdam", "MunicipalitySubdivision correctly parsed");
+        t.eq(address.postalCode, "1079MB", "Postalcode correctly parsed");
+        t.eq(address.street[0], "president kennedylaan", "Street correctly parsed");
+        t.eq(feature.geometry.x, 122650, "Geometry [x] correctly parsed");
+        t.eq(feature.geometry.y, 483904, "Geometry [y] correctly parsed");
+
+        var responseList = [];
+        responseList.push('<?xml version="1.0" encoding="UTF-8" ?>',
+'<XLS xmlns="http://www.opengis.net/xls" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/xls LocationUtilityService.xsd" version="1.1">',
+'	<ResponseHeader/>',
+'	<Response version="1.1" requestID="">',
+'		<GeocodeResponse>',
+'			<GeocodeResponseList numberOfGeocodedAddresses="2">',
+'				<GeocodedAddress>',
+'					<gml:Point>',
+'						<gml:pos>-71.4589837781615 41.8317239069808</gml:pos>',
+'					</gml:Point>',
+'					<Address countryCode="">',
+'						<StreetAddress>',
+'							<Street></Street>',
+'							<Street/>',
+'						</StreetAddress>',
+'						<Place type="Municipality"></Place>',
+'						<Place type="CountrySubdivision"></Place>',
+'						<PostalCode></PostalCode>',
+'					</Address>',
+'					<GeocodeMatchCode accuracy="100.0"/>',
+'				</GeocodedAddress>',
+'				<GeocodedAddress>',
+'					<gml:Point>',
+'						<gml:pos>-71.4087296631643 41.8269575002255</gml:pos>',
+'					</gml:Point>',
+'					<Address countryCode="">',
+'						<StreetAddress>',
+'							<Street></Street>',
+'							<Street/>',
+'						</StreetAddress>',
+'						<Place type="Municipality"></Place>',
+'						<Place type="CountrySubdivision"></Place>',
+'						<PostalCode></PostalCode>',
+'					</Address>',
+'					<GeocodeMatchCode accuracy="100.0"/>',
+'				</GeocodedAddress>',
+'			</GeocodeResponseList>',
+'		</GeocodeResponse>',
+'	</Response>',
+'</XLS>');
+        response = responseList.join("");
+        output = format.read(response);
+        t.eq(output.version, "1.1", "Version correctly parsed");
+        var responseList = output.responseLists[0];
+        t.eq(responseList.numberOfGeocodedAddresses, 2, "2 addresses parsed");
+        t.eq(responseList.features.length, 2, "2 features parsed");
+        t.eq(responseList.features[0].attributes.matchCode.accuracy, 100.0, "Accuracy correctly parsed");
+    }
+
+    function test_write(t) {
+        t.plan(1);
+
+        var format = new OpenLayers.Format.XLS();
+        var address = {
+            countryCode: 'US',
+            street: '1 Freedom Rd',
+            municipality: 'Providence',
+            countrySubdivision: 'RI',
+            postalCode: '02909'
+        };
+        var request = format.write({addresses: [address]});
+
+        var expected = '<xls:XLS xmlns:xls="http://www.opengis.net/xls" version="1.1" xsi:schemaLocation="http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><xls:RequestHeader/><xls:Request methodName="GeocodeRequest" requestID="" version="1.1"><xls:GeocodeRequest><xls:Address countryCode="US"><xls:StreetAddress><xls:Street>1 Freedom Rd</xls:Street></xls:StreetAddress><xls:Place type="Municipal [...]
+
+        t.xml_eq(request, expected, "XLS geocode request correctly written");
+    }
+
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Format/XML.html b/tests/Format/XML.html
index a85b6fb..8da8fbf 100644
--- a/tests/Format/XML.html
+++ b/tests/Format/XML.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     var text =
@@ -849,6 +849,19 @@
 
     }
     
+    function test_getXMLDoc(t) {
+        t.plan(2);
+        var format = new OpenLayers.Format.XML();
+        var doc = format.getXMLDoc();
+        t.ok(doc !== document, "document returned from getXMLDoc is not the page's html doc");
+        var root = format.createElementNS("http://test", "root");
+        // appending CDATA created from a different document
+        var cdata = doc.createCDATASection("<foo></foo>");
+        root.appendChild(cdata);
+        var result = format.write(root);
+        var expect = '<root xmlns="http://test"><![CDATA[<foo></foo>]]></root>';
+        t.eq(result, expect, "document with CDATA section serialized correctly");
+    }
 
     
     </script> 
diff --git a/tests/Format/XML/VersionedOGC.html b/tests/Format/XML/VersionedOGC.html
new file mode 100644
index 0000000..ca96d63
--- /dev/null
+++ b/tests/Format/XML/VersionedOGC.html
@@ -0,0 +1,51 @@
+<html> 
+<head> 
+    <script src="../../OLLoader.js"></script> 
+    <script type="text/javascript">
+
+    var snippet = '<foo version="2.0.0"></foo>';
+    var snippet2 = '<foo></foo>';
+
+    function test_Format_Versioned_constructor(t) { 
+        t.plan(5); 
+         
+        var format = new OpenLayers.Format.XML.VersionedOGC({version: "1.0.0"}); 
+        t.ok(format instanceof OpenLayers.Format.XML.VersionedOGC, 
+             "new OpenLayers.Format.XML.VersionedOGC returns object" ); 
+        t.eq(format.version, "1.0.0", "constructor sets version correctly");
+        t.eq(format.defaultVersion, null, "defaultVersion should be null if not specified");
+        t.eq(typeof format.read, "function", "format has a read function");
+        t.eq(typeof format.write, "function", "format has a read function");
+    }
+
+    function test_getVersion(t) {
+        t.plan(6);
+        var format = new OpenLayers.Format.XML.VersionedOGC();
+        // read
+        var data = new OpenLayers.Format.XML().read(snippet);
+        var root = data.documentElement;
+        var version = format.getVersion(root);
+        t.eq(version, "2.0.0", "Version taken from document");
+        format = new OpenLayers.Format.XML.VersionedOGC({version: "1.0.0"});
+        version = format.getVersion(root);
+        t.eq(version, "1.0.0", "Version taken from parser takes preference");
+        format = new OpenLayers.Format.XML.VersionedOGC({defaultVersion: "3.0.0"});
+        data = new OpenLayers.Format.XML().read(snippet2);
+        root = data.documentElement;
+        version = format.getVersion(root);
+        t.eq(version, "3.0.0", "If nothing else is set, defaultVersion should be returned");
+        // write
+        version = format.getVersion(null, {version: "1.3.0"});
+        t.eq(version, "1.3.0", "Version from options returned");
+        version = format.getVersion(null);
+        t.eq(version, "3.0.0", "defaultVersion returned if no version specified in options and no version on the format");
+        format.version = "2.1.3";
+        version = format.getVersion(null);
+        t.eq(version, "2.1.3", "version returned of the Format if no version specified in options");
+    }
+
+    </script> 
+</head> 
+<body> 
+</body> 
+</html> 
diff --git a/tests/Geometry.html b/tests/Geometry.html
index c52beff..f2d801d 100644
--- a/tests/Geometry.html
+++ b/tests/Geometry.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script src="data/geos_wkt_intersects.js"></script>
   <script type="text/javascript">
     var map; 
diff --git a/tests/Geometry/Collection.html b/tests/Geometry/Collection.html
index 3c19581..7c9fd62 100644
--- a/tests/Geometry/Collection.html
+++ b/tests/Geometry/Collection.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var coll;
         
@@ -392,6 +392,23 @@
         coll.destroy();
     }
 
+    function test_avoid_infinite_recursion(t) {
+        t.plan(1);
+
+        var g = new OpenLayers.Geometry.Polygon([
+            new OpenLayers.Geometry.LinearRing(),
+            new OpenLayers.Geometry.LinearRing()
+        ]);
+        var bounds;
+        try {
+            bounds = g.getBounds();
+            t.eq(bounds, null, "Polygon with empty linear ring has null bounds");
+        } catch (err) {
+            t.fail("Failed to get bounds of polygon with empty linear ring: " + err.message);
+        }
+
+    }
+
     
     function test_Collection_destroy(t) {
         t.plan( 3 );
diff --git a/tests/Geometry/Curve.html b/tests/Geometry/Curve.html
index 194bf09..5afebdf 100644
--- a/tests/Geometry/Curve.html
+++ b/tests/Geometry/Curve.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var curve;
     var components = [new OpenLayers.Geometry.Point(10,10), 
diff --git a/tests/Geometry/LineString.html b/tests/Geometry/LineString.html
index 535a054..4b2ec0e 100644
--- a/tests/Geometry/LineString.html
+++ b/tests/Geometry/LineString.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var line;
     var components = [new OpenLayers.Geometry.Point(10,15), 
@@ -374,7 +374,67 @@
             t.eq(Math.round(got), Math.round(cases[i].exp), "[case " + i + "] length calculated");
         }
         
-    }   
+    }
+    
+    function test_LineString_simplify(t){
+        t.plan(8);
+        var ls1 = new OpenLayers.Geometry.LineString([
+            new OpenLayers.Geometry.Point(0,0),
+            new OpenLayers.Geometry.Point(1,2.1),
+            new OpenLayers.Geometry.Point(1.8,3.8),
+            new OpenLayers.Geometry.Point(2,4),
+            new OpenLayers.Geometry.Point(3,4),
+            new OpenLayers.Geometry.Point(4,4.5),
+            new OpenLayers.Geometry.Point(5,5)
+            
+        ]);
+        var ls2 = new OpenLayers.Geometry.LineString([
+            new OpenLayers.Geometry.Point(0,0),
+            new OpenLayers.Geometry.Point(1,2.1),
+            new OpenLayers.Geometry.Point(1.8,3.8),
+            new OpenLayers.Geometry.Point(2,4),
+            new OpenLayers.Geometry.Point(3,4),
+            new OpenLayers.Geometry.Point(4,4.5),
+            new OpenLayers.Geometry.Point(5,5),
+            new OpenLayers.Geometry.Point(0,0)
+            
+        ]);
+        var ls3 = new OpenLayers.Geometry.LineString([
+            new OpenLayers.Geometry.Point(0,0),
+            new OpenLayers.Geometry.Point(1,1)
+        ]);
+        var ls5 = new OpenLayers.Geometry.LineString([
+            new OpenLayers.Geometry.Point(0,0),
+            new OpenLayers.Geometry.Point(1,1),
+            new OpenLayers.Geometry.Point(2,2),
+            new OpenLayers.Geometry.Point(3,3),
+            new OpenLayers.Geometry.Point(4,4),
+            new OpenLayers.Geometry.Point(5,5)
+            
+        ]);
+        var ls6 = new OpenLayers.Geometry.LineString([
+            new OpenLayers.Geometry.Point(0,0),
+            new OpenLayers.Geometry.Point(1,1),
+            new OpenLayers.Geometry.Point(1,1),
+            new OpenLayers.Geometry.Point(3,2)
+        ]);
+        
+        t.ok(ls1 instanceof OpenLayers.Geometry.LineString, 'LineString is instance of OpenLayers.Geometry.LineString');
+        var simplified1 = ls1.simplify(0.5);
+        t.ok(simplified1 instanceof OpenLayers.Geometry.LineString, 'Simplified LineString is instance of OpenLayers.Geometry.LineString');
+        t.ok(simplified1.getVertices().length <= ls1.getVertices().length, 'Simplified LineString has less or equal number of vertices');
+        // The simplified version is derived from PostGIS function ST_SIMPLIFY()
+        t.ok(simplified1.toString() === 'LINESTRING(0 0,1.8 3.8,5 5)', 'LineString 1 was simplified correctly');
+        var simplified2 = ls2.simplify(0.5);
+        // The simplified version is derived from PostGIS function ST_SIMPLIFY()
+        t.ok(simplified2.toString() === 'LINESTRING(0 0,1.8 3.8,5 5,0 0)', 'LineString 2 was simplified correctly');
+        var simplified3 = ls3.simplify(0.5);
+        t.ok(simplified3.toString() === ls3.toString(), 'LineString with 2 vertices is left untouched');
+        var simplified5 = ls5.simplify(0.0);
+        t.ok(simplified5.toString() === 'LINESTRING(0 0,5 5)', 'A tolerance of 0 returns the optimized version needless vertices');
+        var simplified6 = ls6.simplify(0.0);
+        t.ok(simplified6.toString() === 'LINESTRING(0 0,1 1,3 2)', 'A tolerance of 0 returns the optimized version without doubled vertices');
+    }
 
   </script>
 </head>
diff --git a/tests/Geometry/LinearRing.html b/tests/Geometry/LinearRing.html
index e4d6696..5cacd89 100644
--- a/tests/Geometry/LinearRing.html
+++ b/tests/Geometry/LinearRing.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var line;
     var components = [new OpenLayers.Geometry.Point(10,10), 
@@ -58,7 +58,7 @@
     }
     
     function test_LinearRing_removeComponent(t) {
-        t.plan(11);
+        t.plan(10);
         
         var components = [new OpenLayers.Geometry.Point(0,0), 
                     new OpenLayers.Geometry.Point(0,10),
@@ -71,7 +71,7 @@
         t.eq(ring.components.length, 4, "removing from linear ring with 5 points: length ok");
         t.ok(ring.components[0].equals(components[0]), "point one correct");
         t.ok(ring.components[1].equals(components[1]), "point two correct");
-        t.ok(ring.components[2].equals(components[3]), "point one correct");
+        t.ok(ring.components[2].equals(components[3]), "point three correct");
         t.ok(ring.components[0] === ring.components[ring.components.length - 1],
              "first and last point are the same");
  
@@ -80,10 +80,10 @@
         t.ok(ringBounds.equals(testBounds), "bounds correctly recalculated");
         
         ring.removeComponent( ring.components[2] );
-        t.eq(ring.components.length, 4, "cant remove from linear ring with only 4 points. new length ok (unchanged)");
+        ring.removeComponent( ring.components[1] );
+        t.eq(ring.components.length, 3, "cant remove from linear ring with only 3 points. new length ok");
         t.ok(ring.components[0].equals(components[0]), "point one correct");
         t.ok(ring.components[1].equals(components[1]), "point two correct");
-        t.ok(ring.components[2].equals(components[3]), "point one correct");
         t.ok(ring.components[0] === ring.components[ring.components.length - 1],
              "first and last point are the same");
         
diff --git a/tests/Geometry/MultiLineString.html b/tests/Geometry/MultiLineString.html
index 0d049de..34a6e65 100644
--- a/tests/Geometry/MultiLineString.html
+++ b/tests/Geometry/MultiLineString.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var line;
         
diff --git a/tests/Geometry/MultiPoint.html b/tests/Geometry/MultiPoint.html
index 1fa0696..47ce430 100644
--- a/tests/Geometry/MultiPoint.html
+++ b/tests/Geometry/MultiPoint.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var point = new OpenLayers.Geometry.Point(10, 15);
      
diff --git a/tests/Geometry/MultiPolygon.html b/tests/Geometry/MultiPolygon.html
index 6b6e355..f44de93 100644
--- a/tests/Geometry/MultiPolygon.html
+++ b/tests/Geometry/MultiPolygon.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var polygon;
     var components = [new OpenLayers.Geometry.Point(10,10), new OpenLayers.Geometry.Point(0,0)];
diff --git a/tests/Geometry/Point.html b/tests/Geometry/Point.html
index 8932ee2..9baaf5c 100644
--- a/tests/Geometry/Point.html
+++ b/tests/Geometry/Point.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var point; 
         
diff --git a/tests/Geometry/Polygon.html b/tests/Geometry/Polygon.html
index 2a5fb36..598b688 100644
--- a/tests/Geometry/Polygon.html
+++ b/tests/Geometry/Polygon.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var polygon;
     var components = [new OpenLayers.Geometry.Point(10,14), new OpenLayers.Geometry.Point(5,3)];
diff --git a/tests/Geometry/Rectangle.html b/tests/Geometry/Rectangle.html
index 87e04d7..41dc95a 100644
--- a/tests/Geometry/Rectangle.html
+++ b/tests/Geometry/Rectangle.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_Rectangle_constructor (t) {
diff --git a/tests/Geometry/Surface.html b/tests/Geometry/Surface.html
index 25e1705..5efc5c2 100644
--- a/tests/Geometry/Surface.html
+++ b/tests/Geometry/Surface.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_Surface_constructor (t) {
diff --git a/tests/Handler.html b/tests/Handler.html
index 1650065..a20ffbb 100644
--- a/tests/Handler.html
+++ b/tests/Handler.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_constructor(t) {
         t.plan(4);
diff --git a/tests/Handler/Box.html b/tests/Handler/Box.html
new file mode 100644
index 0000000..edb20d0
--- /dev/null
+++ b/tests/Handler/Box.html
@@ -0,0 +1,106 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+    function test_Handler_Box_constructor(t) {
+        t.plan(5);
+        var control = new OpenLayers.Control();
+        control.id = Math.random();
+        var callbacks = {start: "foo", done: "bar"};
+        var options = {bar: "foo"};
+        
+        var handler = new OpenLayers.Handler.Box(control, callbacks, options);
+
+        t.eq(handler.control.id, control.id, "handler created with the correct control");
+        t.eq(handler.callbacks.start, "foo", "handler created with the correct start callback");
+        t.eq(handler.callbacks.done, "bar", "handler created with the correct done callback");
+        t.eq(handler.bar, "foo", "handler created with the correct options");
+        t.ok(handler.dragHandler instanceof OpenLayers.Handler.Drag, "drag handler created");
+    }
+
+    function test_Handler_Box_draw(t) {
+
+        var map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Box(control, {
+            start: function(e) {
+                t.ok(true, "start callback called");
+            },
+            done: function(e) {
+                t.ok(e.equals(new OpenLayers.Bounds(5, 11, 11, 5)), "box result correct");
+            }
+        });
+        handler.activate();
+
+        // determine whether we can test the box position, the hidden frame
+        // our tests run in causes us problem here in FF and IE:
+        // IE8: left is NaN
+        // FF3: left is NaN
+        // FF4; left is NaN
+        // Chromium 10: left is 0
+        var testdiv = OpenLayers.Util.createDiv('testdiv', new OpenLayers.Pixel(5, 5));
+        map.div.appendChild(testdiv);
+        var left = parseInt(OpenLayers.Element.getStyle(testdiv, 'border-left-width'));
+        map.div.removeChild(testdiv);
+        var testAll = !isNaN(left);
+
+        t.plan(testAll ? 11 : 3);
+
+        // we change NaN values to 0 values in the handler's
+        // boxOffsets object, this is to prevent "invalid
+        // "argument" errors in IE
+        if(!testAll) {
+            var offset = handler.getBoxOffsets();
+            offset.left = 0;
+            offset.right = 0;
+            offset.top = 0;
+            offset.bottom = 0;
+            offset.width = 0;
+            offset.height = 0;
+        }
+
+
+        handler.dragHandler.start = {x: 5, y: 5};
+        handler.startBox();
+        offset = handler.getBoxOffsets();
+        handler.moveBox({x: 10, y: 10});
+        if (testAll) {
+            t.eq(parseInt(handler.zoomBox.style.left), 5 - offset.left, "x position of box correct");
+            t.eq(parseInt(handler.zoomBox.style.top), 5 - offset.top, "y position of box correct");
+            t.eq(parseInt(handler.zoomBox.style.width), 5 + offset.width + 1, "x dimension of box correct");
+            t.eq(parseInt(handler.zoomBox.style.height), 5 + offset.height + 1, "y dimension of box correct");
+        }
+        handler.moveBox({x: 0, y: 0});
+        if (testAll) {
+            t.eq(parseInt(handler.zoomBox.style.left), 0 - offset.left, "new x position of box correct");
+            t.eq(parseInt(handler.zoomBox.style.top), 0 - offset.top, "new y position of box correct");
+            t.eq(parseInt(handler.zoomBox.style.width), 5 + offset.width + 1, "x dimension of box still correct");
+            t.eq(parseInt(handler.zoomBox.style.height), 5 + offset.height + 1, "y dimension of box still correct");
+        }
+        handler.endBox({x: 11, y: 11});
+        t.eq(handler.zoomBox, null, "box removed after endBox");
+    }
+    
+    function test_Handler_Box_destroy(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Box(control);
+        handler.activate();
+        try {
+            handler.destroy();
+            t.ok(true, "destroying the box handler should not raise any error");
+        } catch(err) {
+            t.fail("destroying the box handler causes trouble: " + err);
+        }
+        map.destroy();
+    }
+
+  </script>
+</head>
+<body>
+    <div id="map" style="width: 300px; height: 150px;"></div>
+</body>
+</html>
diff --git a/tests/Handler/Click.html b/tests/Handler/Click.html
index 0ffa6ff..41172cd 100644
--- a/tests/Handler/Click.html
+++ b/tests/Handler/Click.html
@@ -1,7 +1,12 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
+  
+    function px(x, y) {
+        return new OpenLayers.Pixel(x, y);
+    }
+  
     function test_Handler_Click_constructor(t) {
         t.plan(3);
         var control = new OpenLayers.Control();
@@ -43,14 +48,15 @@
     }
     
     function test_Handler_Click_events(t) {
-        t.plan(50);
+        t.plan(80);
         
         var map = new OpenLayers.Map('map');
         var control = {
             map: map
         };
         map.events.registerPriority = function(type, obj, func) {
-            var r = func();
+            var f = OpenLayers.Function.bind(func, obj)
+            var r = f({xy:null});
             if(typeof r == "string") {
                 // this is one of the mock handler methods
                 t.eq(OpenLayers.Util.indexOf(nonevents, type), -1,
@@ -72,7 +78,7 @@
 
         // list below events that should be handled (events) and those
         // that should not be handled (nonevents) by the handler
-        var events = ["click", "dblclick", "mousedown", "mouseup", "rightclick"];
+        var events = ["click", "dblclick", "mousedown", "mouseup", "rightclick", "touchstart", "touchmove", "touchend"];
         var nonevents = ["mousemove", "resize", "focus", "blur"];
         var handler = new OpenLayers.Handler.Click(control);
         // set browser event like properties on the handler
@@ -82,7 +88,7 @@
         handler.activate();
 
         // different listeners registered for pixelTolerance option
-        var events = ["click", "dblclick", "mousedown", "mouseup", "rightclick"];
+        var events = ["click", "dblclick", "mousedown", "mouseup", "rightclick", "touchstart", "touchmove", "touchend"];
         var nonevents = ["mousemove", "resize", "focus", "blur"];
         var handler = new OpenLayers.Handler.Click(control, {}, {
             pixelTolerance: 2
@@ -93,144 +99,318 @@
         handler.activate();
 
     }
+    
+    var callbackMap;
+    function callbackSetup(log, options) {
+        callbackMap = new OpenLayers.Map({
+            div: "map",
+            controls: [], // no controls here because these tests use a custom setTimeout and we only want setTimeout calls from a single handler 
+            layers: [new OpenLayers.Layer(null, {isBaseLayer: true})],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 1
+        });
+        var control = new OpenLayers.Control();
+        callbackMap.addControl(control);
 
-    function test_Handler_Click_callbacks(t) {
-        t.plan(13);
-        
-        var map = new OpenLayers.Map('map', {controls: []});
-
-        var control = {
-            map: map
+        var callbacks = {
+            "click": function(evt) {
+                log.push({callback: "click", evt: evt});
+            },
+            "dblclick": function(evt) {
+                log.push({callback: "dblclick", evt: evt});
+            }
         };
-
-        var handler = new OpenLayers.Handler.Click(control, {});
+        var handler = new OpenLayers.Handler.Click(control, callbacks, options);
         handler.activate();
         
         
-        // set up for single click - three tests here
         var timers = {};
-        var sto = window.setTimeout;
+        window._setTimeout = window.setTimeout;
         window.setTimeout = function(func, delay) {
-            var key = Math.random();
+            log.push({method: "setTimeout", func: func, delay: delay});
+            var key = (new Date).getTime() + "-" + Math.random();
             timers[key] = true;
-            t.ok(typeof func == "function",
-                 "setTimeout called with a function");
-            t.eq(delay, handler.delay,
-                 "setTimeout called with proper delay");
             // execute function that is supposed to be delayed
             func();
             return key;
         }
-        var cto = window.clearTimeout;
+        window._clearTimeout = window.clearTimeout;
         window.clearTimeout = function(key) {
-            if(timers[key] === true) {
-                delete timers[key];
-            } else {
-                t.fail("clearTimeout called with non-existent timerId");
-            }
+            log.push({
+                method: "clearTimeout",
+                keyExists: (key in timers)
+            });
+            delete timers[key];
         }
+        return handler;    
+    }
+    
+    function callbackTeardown() {
+        window.setTimeout = window._setTimeout;
+        window.clearTimeout = window._clearTimeout;
+        callbackMap.destroy();
+        callbackMap = null;
+    }
+
+    function test_callbacks_click_default(t) {
+        t.plan(6);
+
+        var log = [];
+        var handler = callbackSetup(log);
+        
+        // set up for single click - three tests here
         var testEvt = {id: Math.random()};
-        handler.callbacks = {
-            "click": function(evt) {
-                t.eq(evt.id, testEvt.id,
-                     "(click w/ single true) click callback called with correct evt");
-            },
-            "dblclick": function(evt) {
-                t.fail("(click w/ single true) dblclick should not be called here");
-            }
-        };
-        map.events.triggerEvent("click", testEvt);
+        handler.map.events.triggerEvent("click", testEvt);
+        t.eq(log.length, 2, "(click w/ single true) two items logged");
+
+        // first item logged is setTimeout call
+        t.eq(log[0].method, "setTimeout", "setTimeout called");
+        t.eq(typeof log[0].func, "function", "setTimeout called with a function");
+        t.eq(log[0].delay, handler.delay, "setTimeout called with proper delay");
         
-        // set up for double click with double false - no tests here (only failures)
-        handler.callbacks = {
-            "click": function(evt) {
-                t.fail("(dblclick w/ double false) click should not be called here");
-            },
-            "dblclick": function(evt) {
-                t.fail("(dblclick w/ double false) dblclick should not be called here");
-            }
-        };
-        testEvt = Math.random();
-        map.events.triggerEvent("dblclick", testEvt);
+        // second item logged is from click callback
+        t.eq(log[1].callback, "click", "click callback called");
+        t.eq(log[1].evt.id, testEvt.id, "got correct event");
+        
+        callbackTeardown();
+    }
+    
+    function test_callbacks_dblclick_default(t) {
+        t.plan(1);
 
-        // set up for double click with double true - one test here
-        handler.double = true;
-        handler.callbacks = {
-            "click": function(evt) {
-                t.fail("(dblclick w/ double true) click should not be called here");
-            },
-            "dblclick": function(evt) {
-                t.eq(evt, testEvt,
-                     "(dblclick w/ double true) dblclick called with correct evt");
-            }
+        var log = [];
+        var handler = callbackSetup(log);
+        var testEvt = {id: Math.random()};
+        handler.map.events.triggerEvent("dblclick", testEvt);
+        
+        t.eq(log.length, 0, "nothing happens by default with dblclick (double is false)");
+        
+        callbackTeardown();
+        
+    }
+
+    function test_callbacks_dblclick_double(t) {
+        t.plan(3);
+
+        var log = [];
+        var handler = callbackSetup(log, {"double": true});
+        var testEvt = {id: Math.random()};
+        handler.map.events.triggerEvent("dblclick", testEvt);
+        
+        t.eq(log.length, 1, "one item logged");
+        t.eq(log[0].callback, "dblclick", "dblclick callback called")
+        t.eq(log[0].evt.id, testEvt.id, "dblclick callback called with event");
+        
+        callbackTeardown();
+        
+    }
+
+    function test_callbacks_dblclick_sequence(t) {
+        t.plan(8);
+
+        var log = [];
+        var handler = callbackSetup(log, {"double": true});
+        var testEvt = {id: Math.random()};
+
+        // first click - set timer for next
+        handler.map.events.triggerEvent("click", testEvt);
+        t.ok(handler.timerId != null, "timer is set");
+        log.pop(); // because the test setTimeout is synchronous we get the click callback immediately
+        t.eq(log.length, 1, "one item logged (after pop due to synchronous setTimeout call in our tests");
+        t.eq(log[0].method, "setTimeout", "setTimeout called first");
+
+        // second click - timer cleared
+        handler.map.events.triggerEvent("click", testEvt);
+        t.ok(handler.timerId == null, "timer is cleared");
+        t.eq(log.length, 2, "two items logged after second click");
+        t.eq(log[1].method, "clearTimeout", "clearTimeout called second");
+
+        // dblclick event - callback called
+        handler.map.events.triggerEvent("dblclick", testEvt);        
+        t.eq(log.length, 3, "three items logged");
+        t.eq(log[2].callback, "dblclick", "dblclick callback called third");
+        
+        callbackTeardown();
+        
+    }
+
+    function test_callbacks_within_pixelTolerance(t) {
+        t.plan(1);
+
+        var log = [];
+        var handler = callbackSetup(log, {"double": true, pixelTolerance: 2});
+
+        var down = {
+            xy: px(0, 0)
+        };
+        var up = {
+            xy: px(0, 1)
         };
-        testEvt = Math.random();
-        map.events.triggerEvent("dblclick", testEvt);
+
+        handler.map.events.triggerEvent("mousedown", down);
+        handler.map.events.triggerEvent("mouseup", up);
+        handler.map.events.triggerEvent("click", up);
         
-        // set up for two clicks with double true - 6 tests here (with timeout ones from above)
-        handler.double = true;
-        handler.callbacks = {
-            "click": function(evt) {
-                t.ok(evt != null, "(two clicks w/ double true) click will not be called here if next three tests pass");
-            },
-            "dblclick": function(evt) {
-                t.eq(evt, testEvt,
-                     "(two clicks w/ double true) dblclick called with correct evt");
-            }
+        t.eq(log[log.length-1].callback, "click", "click callback called");
+        
+        callbackTeardown();
+        
+    }
+
+    function test_callbacks_outside_pixelTolerance(t) {
+        t.plan(2);
+
+        var log = [];
+        var handler = callbackSetup(log, {pixelTolerance: 2});
+
+        var down = {
+            xy: px(0, 0)
         };
-        testEvt = Math.random();
-        map.events.triggerEvent("click", testEvt);
-        t.ok(handler.timerId != null,
-             "(two clicks w/ double true) timer is set to call click");
-        map.events.triggerEvent("click", testEvt);
-        t.ok(handler.timerId == null,
-             "(two clicks w/ double true) timer is cleared to call click");
-        map.events.triggerEvent("dblclick", testEvt);
-        handler.destroy();
-        
-        // set up to tests pixelTolerance - three tests here (2 from setTimeout above)
-        handler = new OpenLayers.Handler.Click(control, {}, {
-            pixelTolerance: 2
-        });
-        handler.activate();
-        var downEvt = {
-            xy: new OpenLayers.Pixel(0, 0)
+        var up = {
+            xy: px(2, 3)
         };
-        map.events.triggerEvent("mousedown", downEvt);
-        var clickEvt = {
-            xy: new OpenLayers.Pixel(0, 1)
+
+        handler.map.events.triggerEvent("mousedown", down);
+        t.ok(handler.down && handler.down.xy.equals(down.xy), "down position set");
+
+        handler.map.events.triggerEvent("mouseup", up);
+        handler.map.events.triggerEvent("click", up);
+        t.eq(log.length, 0, "nothing logged - event outside tolerance");
+        
+        callbackTeardown();
+        
+    }
+
+    function test_callbacks_within_dblclickTolerance(t) {
+        t.plan(6);
+
+        var log = [];
+        var handler = callbackSetup(log, {single: false, "double": true, dblclickTolerance: 8});
+
+        var first = {
+            xy: px(0, 0)
         };
-        // mouse moves one pixel, click should be called
-        handler.callbacks = {
-            "click": function(evt) {
-                t.ok(evt.xy == clickEvt.xy, "(pixelTolerance met) click called");
-            }
+        var second = {
+            xy: px(0, 5)
         };
-        map.events.triggerEvent("click", clickEvt);
-        handler.clearTimer();
+
+        handler.map.events.triggerEvent("mousedown", first);
+        handler.map.events.triggerEvent("mouseup", first);
+        handler.map.events.triggerEvent("click", first);
+        t.eq(log.length, 1, "one item logged");
+        t.eq(log[0] && log[0].method, "setTimeout", "setTimeout called");
+        
+        handler.map.events.triggerEvent("mousedown", second);
+        handler.map.events.triggerEvent("mouseup", second);
+        handler.map.events.triggerEvent("click", second);
+        t.eq(log.length, 2, "two events logged");
+        t.eq(log[1] && log[1].method, "clearTimeout", "clearTimeout called");
+        
+        handler.map.events.triggerEvent("dblclick", second);
+        t.eq(log.length, 3, "three items logged");
+        t.eq(log[2] && log[2].callback, "dblclick", "dblclick callback called");
         
-        // mouse moves 3x3 pixels, click should not be called
-        map.events.triggerEvent("mousedown", downEvt);
-        var clickEvt = {
-            xy: new OpenLayers.Pixel(3, 3)
+        callbackTeardown();        
+    }
+
+    function test_callbacks_outside_dblclickTolerance(t) {
+        t.plan(5);
+
+        var log = [];
+        // default dblclickTolerance is 13
+        var handler = callbackSetup(log, {single: false, "double": true});
+
+        var first = {
+            xy: px(0, 0)
         };
-        // mouse moves one pixel, click should be called
-        handler.callbacks = {
-            "click": function(evt) {
-                t.fail("(pixelTolerance not met) click should not be called");
+        var second = {
+            xy: px(13.5, 0)
+        };
+
+        handler.map.events.triggerEvent("mousedown", first);
+        handler.map.events.triggerEvent("mouseup", first);
+        handler.map.events.triggerEvent("click", first);
+        t.eq(log.length, 1, "one item logged");
+        t.eq(log[0] && log[0].method, "setTimeout", "setTimeout called");
+
+        handler.map.events.triggerEvent("mousedown", second);
+        handler.map.events.triggerEvent("mouseup", second);
+        handler.map.events.triggerEvent("click", second);
+        t.eq(log.length, 2, "two items logged");
+        t.eq(log[1] && log[1].method, "clearTimeout", "clearTimeout called");
+
+        handler.map.events.triggerEvent("dblclick", second);
+        t.eq(log.length, 2, "still two items logged - dblclick callback is not called");
+        
+        callbackTeardown();
+    }
+
+    function test_callbacks_multitouch_single(t) {
+
+        t.plan(2);
+
+        var log = [];
+
+        var callbacks = {
+            click: function(evt) {
+                log.push({callback: "click", type: evt.type});
+            },
+            dblclick: function(evt) {
+                log.push({callback: "dblclick", type: evt.type});
             }
         };
-        map.events.triggerEvent("click", clickEvt); // no test run
-        handler.clearTimer();
+
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer(null, {isBaseLayer: true});
+        map.addLayer(layer);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 1);
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Click(
+            control, callbacks,
+            {"double": true, single: true, pixelTolerance: 2}
+        );
+
+        // we override here so we don't have to wait for the timeout
+        handler.queuePotentialClick = function(evt) {
+            log.push({potential: true, evt: evt});
+            OpenLayers.Handler.Click.prototype.queuePotentialClick.call(this, evt);
+        }
         
-        window.setTimeout = sto;
-        window.clearTimeout = cto;
+        handler.activate();
         
+        function handle(o) {
+            var touches = [];
+            if (("x0" in o) && ("y0" in o)) {
+                touches.push({
+                    clientX: o.x0, clientY: o.y0
+                });
+            }
+            if (("x1" in o) && ("y1" in o)) {
+                touches.push({
+                    clientX: o.x1, clientY: o.y1
+                });
+            }
+            handler.map.events.handleBrowserEvent({
+                type: o.type, touches: touches
+            });
+        }
 
+        // a typical multitouch sequence goes like this:
+        // touchstart, touchstart, touchend, touchend
+        handle({type: "touchstart", x0: 10, y0: 10});
+        handle({type: "touchstart", x0: 10, y0: 10, x1: 30, y1: 15});
+        handle({type: "touchend"});
+        handle({type: "touchend"});
+        
+        t.eq(log.length, 1, "one item logged");
+        t.eq(log[0] && log[0].potential, true, "click in queue - no dblclick called");
+        
+        map.destroy();
     }
 
     function test_Handler_Click_deactivate(t) {
-        t.plan(4);
+        t.plan(6);
         var control = {
             map: new OpenLayers.Map('map')
         };
@@ -242,6 +422,8 @@
         handler.active = true;
         handler.down = true;
         handler.timerId = true;
+        handler.touch = true;
+        handler.last = true;
         deactivated = handler.deactivate();
         t.ok(deactivated,
              "deactivate returns true if the handler was active already");
@@ -249,47 +431,243 @@
              "deactivate sets down to null");
         t.eq(handler.timerId, null,
              "deactivate sets timerId to null");
+        t.eq(handler.touch, false,
+             "deactivate sets touch to false");
+        t.eq(handler.last, null,
+            "deactivate sets last to null");
+
     }
 
     function test_Handler_Click_mouseup(t) {
-        t.plan(4);
-        g_Propagate = {};
-        g_evt = {};
-                
-      //no modifiers, no handlerightclicks, no isrightclick        
+        t.plan(11);
+
+        var map = new OpenLayers.Map("map");
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Click(control);
+
+        var testEvent = {id: Math.random()};
+        var propagate = true;
+        var log, got, modMatch, rightClick;
+
+        // override methods to log what is called
         var temp = OpenLayers.Event.isRightClick;
         OpenLayers.Event.isRightClick = function(e) { 
-            t.ok(e == g_evt, 'correct event passed in to checkModifiers');
-            return false; 
+            log.push({method: "isRightClick", evt: e});
+            return rightClick; 
+        };
+        handler.checkModifiers = function(e) {
+            log.push({method: "checkModifiers", evt: e});
+            return modMatch;
+        };
+        handler.rightclick = function(e) {
+            log.push({method: "rightclick", evt: e});
+            return propagate;
         };
 
-        var h = {
-            'checkModifiers': function(e) {
-                t.ok(e == g_evt, 'correct event passed in to checkModifiers');
-                return false;
-            },
-            'control': {
-                'handleRightClicks': false
+        
+        // simulate an event with non-matching modifiers
+        log = [];
+        modMatch = false;
+        rightClick = false;
+        got = handler.mouseup(testEvent);
+        t.eq(log.length, 1, "one item logged");
+        t.eq(log[0] && log[0].method, "checkModifiers", "a) checkModifiers called first");
+        t.eq(log[0] && log[0].evt, testEvent, "a) first method called with correct event");
+
+
+        // modifiers, handlerightclicks, and isrightclick
+        log = [];
+        rightClick = true;
+        modMatch = true;
+        handler.control.handleRightClicks = true;
+        got = handler.mouseup(testEvent);
+        t.eq(log.length, 3, "three items logged");
+        t.eq(log[0] && log[0].method, "checkModifiers", "b) checkModifiers called first");
+        t.eq(log[0] && log[0].evt, testEvent, "b) first method called with correct event");
+        t.eq(log[1] && log[1].method, "isRightClick", "b) isRightClick called second");
+        t.eq(log[1] && log[1].evt, testEvent, "b) second method called with correct event");
+        t.eq(log[2] && log[2].method, "rightclick", "b) rightclick called third");
+        t.eq(log[2] && log[2].evt, testEvent, "b) third method called with correct event");
+        t.eq(got, propagate, "b) return from handler's rightclick returned from mouseup");
+
+        OpenLayers.Event.isRightClick = temp;
+        map.destroy();
+    }
+
+    function test_touch_click(t) {
+        t.plan(5);
+
+        // set up
+
+        var log;
+
+        var map = new OpenLayers.Map('map');
+        var control = {map: map};
+
+        var callbacks = {
+            'click': function(e) {
+                log = {x: e.xy.x, y: e.xy.y,
+                       lastTouches: e.lastTouches};
+            }
+        };
+
+        var handler = new OpenLayers.Handler.Click(
+                control, callbacks,
+                {'single': true, pixelTolerance: null});
+
+        // test
+
+        // the common case: a touchstart followed by a touchend
+        log = null;
+        handler.touchstart({xy: px(1, 1), touches: ["foo"]});
+        handler.touchend({touches: ["foo"]});
+
+        t.delay_call(1, function() {
+            t.ok(log != null, "click callback called");
+            if(log != null) {
+                t.eq(log.x, 1, "evt.xy.x as expected");
+                t.eq(log.y, 1, "evt.xy.y as expected");
+                t.ok(log.lastTouches, "evt.lastTouches as expected");
+            }
+
+            // now emulate a touch where touchstart doesn't propagate
+            // to the click handler, i.e. the click handler gets a
+            // touchend only
+            log = null;
+            handler.touchend({touches: ["foo"]});
+
+            t.delay_call(1, function() {
+                t.ok(log == null, "click callback not called");
+
+                // tear down
+                map.destroy();
+            });
+        });
+    }
+
+    function test_touch_within_dblclickTolerance(t) {
+        t.plan(4);
+
+        var log;
+
+        var callbacks = {
+            click: function(evt) {
+                log.push({callback: "click", type: evt.type});
             },
-            'rightclick': function(e) {
-                t.ok(e == g_evt, 'correct event passed in to checkModifiers');
-                return g_Propagate;
+            dblclick: function(evt) {
+                log.push({callback: "dblclick", type: evt.type});
             }
         };
-        var propagate = OpenLayers.Handler.Click.prototype.mouseup.apply(h, [g_evt]);
-        t.ok(propagate, "default propagate is true when no modifiers, no handlerightclicks, no isrightclick")
 
-      //modifiers, handlerightclicks, and isrightclick
-        h.checkModifiers = function() { return true; };
-        h.control.handleRightClicks = true;        
-        OpenLayers.Event.isRightClick = function(e) { return true; };
-        propagate = OpenLayers.Handler.Click.prototype.mouseup.apply(h, [g_evt]);
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer(null, {isBaseLayer: true});
+        map.addLayer(layer);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 1);
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Click(
+            control, callbacks,
+            {"double": true, single: true, pixelTolerance: 2}
+        );
+        handler.activate();
+        
+        function handle(type, x, y) {
+            map.events.handleBrowserEvent({
+                type: type,
+                touches: [
+                    {clientX: x, clientY: y}
+                ]
+            });
+        }
 
-        t.ok(propagate == g_Propagate, "return from handler's rightClick() returned from mouseup");
+        // test
+        log = [];
+        // sequence of two clicks on a touch device
+        // click 1
+        handle("touchstart", 10, 10);
+        handle("touchend", 11, 10);
+        handle("mousemove", 11, 10);
+        handle("mousedown", 10, 10);
+        handle("mouseup", 11, 10);
+        handle("click", 11, 10);
+        // click 2
+        handle("touchstart", 12, 10);
+        handle("touchend", 12, 10);
+        handle("mousedown", 12, 10);
+        handle("mouseup", 12, 10);
+        handle("click", 12, 10);
 
-        OpenLayers.Event.isRightClick = temp;
+        t.eq(log.length, 1, "one callback called");
+        t.eq(log[0] && log[0].callback, "dblclick", "click callback called");
+        t.eq(log[0] && log[0].type, "touchend", "click callback called with touchend event");
+        t.ok(!handler.timerId, "handler doesn't have a timerId waiting for click")
+
+        // tear down
+        map.destroy();
     }
 
+    function test_touch_outside_dblclickTolerance(t) {
+        t.plan(2);
+
+        var log;
+
+        var callbacks = {
+            click: function(evt) {
+                log.push({callback: "click", type: evt.type});
+            },
+            dblclick: function(evt) {
+                log.push({callback: "dblclick", type: evt.type});
+            }
+        };
+
+        var map = new OpenLayers.Map("map");
+        var layer = new OpenLayers.Layer(null, {isBaseLayer: true});
+        map.addLayer(layer);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 1);
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Click(
+            control, callbacks,
+            {"double": true, single: true, pixelTolerance: 2, dblclickTolerance: 8}
+        );
+        handler.activate();
+        
+        function handle(type, x, y) {
+            var touches = [];
+            if (x !== undefined && y !== undefined) {
+                touches.push({
+                    clientX: x, clientY: y
+                });
+            }
+            map.events.handleBrowserEvent({
+                type: type, touches: touches
+            });
+        }
+
+        // test
+        log = [];
+        // sequence of two clicks on a touch device
+        // click 1
+        handle("touchstart", 10, 10);
+        handle("touchend");
+        handle("mousemove", 11, 10);
+        handle("mousedown", 10, 10);
+        handle("mouseup", 11, 10);
+        handle("click", 11, 10);
+        // click 2
+        handle("touchstart", 20, 10);
+        handle("touchend");
+        handle("mousedown", 20, 10);
+        handle("mouseup", 20, 10);
+        handle("click", 20, 10);
+
+        t.eq(log.length, 0, "no callbacks called");
+        t.ok(!handler.timerId, "handler doesn't have a timerId waiting for click")
+
+        // tear down
+        map.destroy();
+    }
 
   </script>
 </head>
diff --git a/tests/Handler/Drag.html b/tests/Handler/Drag.html
index 581ffcc..533e1bb 100644
--- a/tests/Handler/Drag.html
+++ b/tests/Handler/Drag.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_Drag_constructor(t) {
         t.plan(3);
@@ -45,7 +45,7 @@
     }
     
     function test_Handler_Drag_events(t) {
-        t.plan(25);
+        t.plan(40);
         
         var map = new OpenLayers.Map('map');
         var control = new OpenLayers.Control();
@@ -54,7 +54,8 @@
 
         // list below events that should be handled (events) and those
         // that should not be handled (nonevents) by the handler
-        var events = ["mousedown", "mouseup", "mousemove", "mouseout", "click"];
+        var events = ["mousedown", "mouseup", "mousemove", "mouseout", "click",
+                      "touchstart", "touchmove", "touchend"];
         var nonevents = ["dblclick", "resize", "focus", "blur"];
         map.events.registerPriority = function(type, obj, func) {
             var r = func();
@@ -251,7 +252,7 @@
             t.ok(evt.xy.x == testEvents.done.xy.x &&
                  evt.xy.y == testEvents.done.xy.y,
                  "mouseout calls Util.mouseLeft with the correct event");
-            t.eq(element.id, map.div.id,
+            t.eq(element.id, map.eventsDiv.id,
                  "mouseout calls Util.mouseLeft with the correct element");
             return true;
         }
@@ -288,6 +289,64 @@
         
     }
 
+    function test_Handler_Drag_touch(t) {
+        // In this test we verify that "touchstart", "touchmove", and
+        // "touchend" events set expected states in the drag handler.
+        // We also verify that we stop event bubbling as appropriate.
+
+        t.plan(14);
+
+        // set up
+
+        var m = new OpenLayers.Map('map', {controls: []});
+        var c = new OpenLayers.Control();
+        m.addControl(c);
+        var h = new OpenLayers.Handler.Drag(c, {
+            done: function(px) { 
+                log.push(px); 
+            }
+        });
+        h.activate();
+
+        var _stop = OpenLayers.Event.stop;
+        OpenLayers.Event.stop = function(e) {
+            log.push(e);
+        };
+
+        var Px = OpenLayers.Pixel, e;
+        var log = [];
+
+        // test
+        e = {touches: [{}], xy: new Px(0, 0)};
+        m.events.triggerEvent('touchstart', e);
+        t.eq(h.started, true, '[touchstart] started is set');
+        t.eq(h.start.x, 0, '[touchstart] start.x is correct');
+        t.eq(h.start.y, 0, '[touchstart] start.y is correct');
+        t.eq(log.length, 1, '[touchstart] one item in log');
+        t.ok(log[0] === e, "touchstart", '[touchstart] event is stopped');
+
+        e = {xy: new Px(1, 1)};
+        m.events.triggerEvent('touchmove', e);
+        t.eq(h.dragging, true, '[touchmove] dragging is set');
+        t.eq(h.last.x, 1, '[touchmove] last.x is correct');
+        t.eq(h.last.y, 1, '[touchmove] last.y is correct');
+        t.eq(log.length, 1, '[touchmove] one item in log (event is not stopped)');
+
+        e = {xy: new Px(2, 2)};
+        m.events.triggerEvent('touchend', e);
+        t.eq(h.started, false, '[touchend] started is reset');
+        t.eq(h.started, false, '[touchend] started is reset');
+        // the "done" callback gets the position of the last touchmove
+        t.eq(log.length, 2, '[touchend] two items in log');
+        t.ok(log[1] instanceof Px, '[touchend] got');
+        t.ok(log[1].equals(e.xy), '[touchend] done callback got correct position');
+
+        // tear down
+
+        OpenLayers.Event.stop = _stop;
+        m.destroy();
+    }
+
     function test_Handler_Drag_submethods(t) {
         t.plan(8);
         
@@ -357,7 +416,7 @@
     }
 
     function test_Handler_Drag_deactivate(t) {
-        t.plan(6);
+        t.plan(7);
         var map = new OpenLayers.Map('map');
         var control = new OpenLayers.Control();
         map.addControl(control);
@@ -368,6 +427,7 @@
              "deactivate returns false if the handler was not already active");
         handler.active = true;
         handler.dragging = true;
+        handler.touch = true;
         deactivated = handler.deactivate();
         t.ok(deactivated,
              "deactivate returns true if the handler was active already");
@@ -378,7 +438,161 @@
         t.ok(handler.start == null,
              "deactivate sets start to null");
         t.ok(handler.last == null,
-             "deactivate sets start to null");
+             "deactivate sets last to null");
+        t.ok(!handler.touch,
+             "deactivate sets touch to false");
+    }
+
+    function test_interval_timer_after_mouseup(t) {
+        t.plan(5);
+
+        // set up
+
+        var map = new OpenLayers.Map('map');
+
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+
+        var moveCnt;
+
+        var handler = new OpenLayers.Handler.Drag(control, {}, {
+            interval: 1,
+            move: function() {
+                moveCnt++;
+            }
+        });
+        handler.activate();
+
+        handler.checkModifiers = function() { return true; };
+
+        var ilc = OpenLayers.Event.isLeftClick;
+        OpenLayers.Event.isLeftClick = function() { return true; };
+
+        // test
+
+        moveCnt = 0;
+
+        var xy1 = new OpenLayers.Pixel(1, 2);
+        handler.mousedown({xy: xy1});
+        t.ok(handler.last == xy1, "[mousedown] last is as expected");
+        var xy2 = new OpenLayers.Pixel(2, 3);
+        handler.mousemove({xy: xy2});
+        t.ok(handler.last == xy2, "[mousemove 1] last is as expected");
+        t.ok(handler.timeoutId != null, "[mousemove 1] timeoutId is set");
+        var xy3 = new OpenLayers.Pixel(3, 4);
+        handler.mousemove({xy: xy3});
+        t.ok(handler.last == xy2, "[mousemove 2] last is as expected");
+        var xy4 = new OpenLayers.Pixel(4, 5);
+        handler.mouseup({xy: xy4});
+
+        t.delay_call(3, function() {
+            // the timer should not cause a move
+            t.eq(moveCnt, 1, "move called once");
+            // tear down
+            OpenLayers.Event.isLeftClick = ilc;
+        });
+    }
+
+    function test_interval_timer_after_mousedown(t) {
+        t.plan(5);
+
+        // set up
+
+        var map = new OpenLayers.Map('map');
+
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+
+        var moveCnt;
+
+        var handler = new OpenLayers.Handler.Drag(control, {}, {
+            interval: 1,
+            move: function() {
+                moveCnt++;
+            }
+        });
+        handler.activate();
+
+        handler.checkModifiers = function() { return true; };
+
+        var ilc = OpenLayers.Event.isLeftClick;
+        OpenLayers.Event.isLeftClick = function() { return true; };
+
+        // test
+
+        moveCnt = 0;
+
+        var xy1 = new OpenLayers.Pixel(1, 2);
+        handler.mousedown({xy: xy1});
+        t.ok(handler.last == xy1, "[mousedown] last is as expected");
+        var xy2 = new OpenLayers.Pixel(2, 3);
+        handler.mousemove({xy: xy2});
+        t.ok(handler.last == xy2, "[mousemove 1] last is as expected");
+        t.ok(handler.timeoutId != null, "[mousemove 1] timeoutId is set");
+        var xy3 = new OpenLayers.Pixel(3, 4);
+        handler.mousemove({xy: xy3});
+        t.ok(handler.last == xy2, "[mousemove 2] last is as expected");
+        var xy4 = new OpenLayers.Pixel(4, 5);
+        handler.mouseup({xy: xy4});
+        var xy5 = new OpenLayers.Pixel(5, 6);
+        handler.mousedown({xy: xy4});
+
+        t.delay_call(3, function() {
+            // the timer should not cause a move
+            t.eq(moveCnt, 1, "move called once");
+            // tear down
+            OpenLayers.Event.isLeftClick = ilc;
+        });
+    }
+
+    function test_interval_timer_before_mouseup(t) {
+        t.plan(5);
+
+        // set up
+
+        var map = new OpenLayers.Map('map');
+
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+
+        var moveCnt;
+
+        var handler = new OpenLayers.Handler.Drag(control, {}, {
+            interval: 1,
+            move: function() {
+                moveCnt++;
+            }
+        });
+        handler.activate();
+
+        handler.checkModifiers = function() { return true; };
+
+        var ilc = OpenLayers.Event.isLeftClick;
+        OpenLayers.Event.isLeftClick = function() { return true; };
+
+        // test
+
+        moveCnt = 0;
+
+        var xy1 = new OpenLayers.Pixel(1, 2);
+        handler.mousedown({xy: xy1});
+        t.ok(handler.last == xy1, "[mousedown] last is as expected");
+        var xy2 = new OpenLayers.Pixel(2, 3);
+        handler.mousemove({xy: xy2});
+        t.ok(handler.last == xy2, "[mousemove 1] last is as expected");
+        t.ok(handler.timeoutId != null, "[mousemove 1] timeoutId is set");
+        var xy3 = new OpenLayers.Pixel(3, 4);
+        handler.mousemove({xy: xy3});
+        t.ok(handler.last == xy2, "[mousemove 2] last is as expected");
+
+        t.delay_call(3, function() {
+            // the timer should cause a move
+            t.eq(moveCnt, 2, "move called twice");
+            var xy4 = new OpenLayers.Pixel(4, 5);
+            handler.mouseup({xy: xy4});
+            // tear down
+            OpenLayers.Event.isLeftClick = ilc;
+        });
     }
 
 
diff --git a/tests/Handler/Feature.html b/tests/Handler/Feature.html
index 2f1e6de..7c768e1 100644
--- a/tests/Handler/Feature.html
+++ b/tests/Handler/Feature.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_initialize(t) {
         t.plan(4);
@@ -53,7 +53,7 @@
         
     }
     function test_events(t) {
-        t.plan(25);
+        t.plan(35);
         
         var map = new OpenLayers.Map('map');
         var control = new OpenLayers.Control();
@@ -64,8 +64,8 @@
  
         // list below events that should be handled (events) and those
         // that should not be handled (nonevents) by the handler
-        var events = ["mousedown", "mouseup", "mousemove", "click", "dblclick"];
-        var nonevents = ["mouseout", "resize", "focus", "blur"];
+        var events = ["mousedown", "mouseup", "mousemove", "click", "dblclick", "touchstart", "touchmove"];
+        var nonevents = ["mouseout", "resize", "focus", "blur", "touchend"];
         map.events.registerPriority = function(type, obj, func) {
             var output = func();
             // Don't listen for setEvent handlers (#902)
@@ -123,7 +123,7 @@
     }
 
     function test_callbacks(t) {
-        t.plan(9);
+        t.plan(14);
         
         var map = new OpenLayers.Map('map', {controls: []});
         var control = new OpenLayers.Control();
@@ -223,6 +223,118 @@
         callbacks['dblclick'] = getCallback('dblclick', newFeature);
         evtPx.type = "dblclick";
         map.events.triggerEvent('dblclick', evtPx);
+
+        // test touchstart on a feature
+        // 'click' callback should be called
+        handler.feature = null;
+        lastFeature = null;
+        newFeature = new OpenLayers.Feature.Vector();
+        newFeature.layer = layer;
+        callbacks['click'] = getCallback('click (touch)', newFeature);
+        callbacks['clickout'] = getCallback('clickout (touch)', lastFeature);
+        evtPx.type = "touchstart";
+        map.events.triggerEvent('touchstart', evtPx);
+
+        // test touchstart on the same feature
+        // 'click' callback should be called
+        callbacks['click'] = getCallback('click (touch)', newFeature);
+        evtPx.type = "touchstart";
+        map.events.triggerEvent('touchstart', evtPx);
+
+        // test touchstart in new feature and out of last feature
+        // both 'click' and 'clickout' callbacks should be called
+        lastFeature = newFeature;
+        newFeature = new OpenLayers.Feature.Vector();
+        newFeature.layer = layer;
+        callbacks['click'] = getCallback('click (touch)', newFeature);
+        callbacks['clickout'] = getCallback('clickout (touch)', lastFeature);
+        evtPx.type = "touchstart";
+        map.events.triggerEvent('touchstart', evtPx);
+
+        // test touchstart out of last feature
+        // only 'clickout' callback should be called
+        lastFeature = newFeature;
+        newFeature = null;
+        callbacks['click'] = getCallback('click (touch)', newFeature);
+        callbacks['clickout'] = getCallback('clickout (touch)', lastFeature);
+        evtPx.type = "touchstart";
+        map.events.triggerEvent('touchstart', evtPx);
+    }
+
+    function test_touchstart(t) {
+        // a test to verify that the touchstart function does
+        // unregister the mouse listeners when it's called the
+        // first time
+
+        t.plan(4);
+
+        // set up
+
+        var map = new OpenLayers.Map('map', {controls: []});
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var layer = new OpenLayers.Layer();
+        map.addLayer(layer);
+
+        var handler = new OpenLayers.Handler.Feature(control, layer, {});
+        handler.mousedown = function() {}; // mock mousedown
+        handler.activate();
+
+        function allRegistered() {
+            var eventTypes = ['mousedown', 'mouseup', 'mousemove', 'click', 'dblclick'],
+                eventType,
+                listeners,
+                listener,
+                flag;
+            for(var i=0, ilen=eventTypes.length; i<ilen; i++) {
+                flag =  false;
+                eventType = eventTypes[i];
+                listeners = map.events.listeners[eventType];
+                for(var j=0, jlen=listeners.length; j<jlen; j++) {
+                    listener = listeners[j];
+                    if(listener.func === handler[eventType] && listener.obj === handler) {
+                        flag = true;
+                        break;
+                    }
+                }
+                if(!flag) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        function noneRegistered() {
+            var eventTypes = ['mousedown', 'mouseup', 'mousemove', 'click', 'dblclick'],
+                eventType,
+                listeners,
+                listener;
+            for(var i=0, ilen=eventTypes.length; i<ilen; i++) {
+                eventType = eventTypes[i];
+                listeners = map.events.listeners[eventType];
+                for(var j=0, jlen=listeners.length; j<jlen; j++) {
+                    listener = listeners[j];
+                    if(listener.func === handler[eventType] && listener.obj === handler) {
+                        return false;
+                    }
+                }
+            }
+            return true;
+        }
+
+        // test
+
+        t.ok(allRegistered(), 'mouse listeners are registered');
+        handler.touchstart({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(noneRegistered(), 'mouse listeners are unregistered');
+        t.ok(handler.touch, 'handler.touch is set');
+
+        handler.deactivate();
+        t.ok(!handler.touch, 'handler.touch is not set');
+
+        // tear down
+
+        map.destroy();
     }
 
     function test_deactivate(t) {
@@ -476,6 +588,78 @@
         t.eq(clicks, 0, "click callback does not trigger when tolerance is reached");
     }
 
+    function test_multitouch_canvas(t) {
+        var supported = OpenLayers.Renderer.Canvas.prototype.supported();
+        if (!supported) { t.plan(0); return; }
+
+        t.plan(1);
+
+        // set up
+
+        var log;
+
+        var map = new OpenLayers.Map('map');
+        var layer = new OpenLayers.Layer.Vector('vectors', {
+            renderers: ['Canvas'],
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+
+        var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Feature(control, layer,
+                {click: function() { log++; }});
+        control.handler = handler;
+        map.addControl(control);
+        control.activate();
+
+        var feature = new OpenLayers.Feature.Vector(
+            new OpenLayers.Geometry.Point(0, 0));
+        layer.addFeatures(feature);
+
+        map.zoomToMaxExtent();
+
+        // test
+
+        // mock getMousePosition on the events object to make
+        // sure scrolls, offsets and leftop do not interfere
+        map.events.getMousePosition = function(evt) {
+            return new OpenLayers.Pixel(evt.clientX,
+                                        evt.clientY);
+        };
+
+        log = 0;
+        var evt = {
+            type: 'touchstart',
+            touches: [{
+                clientX: 100,
+                clientY: 75
+            }, {
+                clientX: 200,
+                clientY: 75
+            }]
+        };
+        map.events.handleBrowserEvent(evt);
+        t.eq(log, 0, "no feature selection when multi-touching");
+
+        // tear down
+
+        map.destroy();
+    }
+    
+    function test_layerorder(t) {
+        t.plan(2);
+        var map = new OpenLayers.Map("map");
+        var base = new OpenLayers.Layer(null, {isBaseLayer: true});
+        var vector = new OpenLayers.Layer.Vector();
+        map.addLayers([base, vector]);
+        map.addControl(new OpenLayers.Control.SelectFeature(vector, {autoActivate: true}));
+        map.zoomToMaxExtent();
+        t.eq(parseInt(vector.getZIndex(), 10), 725, "vector layer's zIndex correct");
+        map.events.triggerEvent("changelayer");
+        t.eq(parseInt(vector.getZIndex(), 10), 725, "vector layer's zIndex still correct after changelayer event");
+        
+    }
+
   </script>
 </head>
 <body>
diff --git a/tests/Handler/Hover.html b/tests/Handler/Hover.html
index 075aa14..150218a 100644
--- a/tests/Handler/Hover.html
+++ b/tests/Handler/Hover.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_Hover_events(t) {
         t.plan(10);
diff --git a/tests/Handler/Keyboard.html b/tests/Handler/Keyboard.html
index 0ea739c..947cd99 100644
--- a/tests/Handler/Keyboard.html
+++ b/tests/Handler/Keyboard.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_Keyboard_initialize(t) {
         t.plan(3);
diff --git a/tests/Handler/MouseWheel.html b/tests/Handler/MouseWheel.html
index d5e340b..d41c2cd 100644
--- a/tests/Handler/MouseWheel.html
+++ b/tests/Handler/MouseWheel.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_MouseWheel_constructor(t) {
         t.plan(3);
diff --git a/tests/Handler/Path.html b/tests/Handler/Path.html
index a46a055..3f3ea03 100644
--- a/tests/Handler/Path.html
+++ b/tests/Handler/Path.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_Path_constructor(t) {
         t.plan(3);
@@ -25,12 +25,23 @@
     }
 
     function test_Handler_Path_activation(t) {
-        t.plan(3);
-        var map = new OpenLayers.Map('map');
+        t.plan(5);
+        var log = [];
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
         var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Path(control, {});
+        control.handler = handler;
         map.addControl(control);
-        var handler = new OpenLayers.Handler.Path(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
         handler.active = true;
+
         var activated = handler.activate();
         t.ok(!activated,
              "activate returns false if the handler was already active");
@@ -38,39 +49,88 @@
         activated = handler.activate();
         t.ok(activated,
              "activate returns true if the handler was not already active");
+        t.ok(handler.layer instanceof OpenLayers.Layer.Vector,
+             "activate creates a vector layer");
+        t.ok(handler.layer.map == map,
+             "activate adds the vector layer to the map");
         activated = handler.deactivate();
         t.ok(activated,
              "deactivate returns true if the handler was active already");
-        map.destroy();     
+
+        map.destroy();
     }
 
-    function test_Handler_Path_bounds(t) {
-        t.plan(2);
+    // See: http://trac.osgeo.org/openlayers/ticket/3179
+    function test_activate_before_map_is_centered(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map('map', {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Path(control, {});
+        control.handler = handler;
+        map.addControl(control);
+
+        var error;
+        try {
+            handler.activate();
+            error = false;
+        } catch(err) {
+            error = true;
+        }
+        t.ok(!error, "no error on activate");
+    }
+
+    function test_bounds(t) {
+        t.plan(4);
+        var geometry;
         var map = new OpenLayers.Map('map');
         map.addLayer(new OpenLayers.Layer.WMS("", "", {}));
         map.zoomToMaxExtent();
         var control = new OpenLayers.Control();
         map.addControl(control);
-        var handler = new OpenLayers.Handler.Path(control, {});
+        var handler = new OpenLayers.Handler.Path(control, {},
+            {stopDown: true, stopUp: true});
         var activated = handler.activate();
+        // click on (150, 75)
         var evt = {xy: new OpenLayers.Pixel(150, 75), which: 1};
+        handler.mousemove(evt);
         handler.mousedown(evt);
         handler.mouseup(evt);
-        var evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
+        t.eq(handler.layer.features.length, 2,
+            "There are two features in the layer after first click.");
+        // click on (175, 100)
+        evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
         handler.mousemove(evt);
         handler.mousedown(evt);
         handler.mouseup(evt);
-        t.ok(handler.line.geometry.getBounds().equals(new OpenLayers.Bounds(0,-35.15625,35.15625,0)), "Correct bounds"); 
-        var evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
+        t.eq(handler.layer.features.length, 2,
+            "There are two features in the layer after second click.");
+        t.ok(handler.line.geometry.getBounds().equals(
+                    new OpenLayers.Bounds(0,-35.15625,35.15625,0)),
+             "Correct bounds");
+        // mousedown on (175, 100)
+        evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
         handler.mousedown(evt);
-        var evt = {xy: new OpenLayers.Pixel(125, 100), which: 1};
+        // mousemove to (125, 100)
+        evt = {xy: new OpenLayers.Pixel(125, 100), which: 1};
         handler.mousemove(evt);
-        t.ok(!handler.line.geometry.getBounds().equals(new OpenLayers.Bounds(0,-35.15625,35.15625,0)), "Correct bounds after dragging without letting go. (Came out as "+handler.line.geometry.getBounds().toBBOX() + ".)"); 
+        // test that the bounds have changed
+        t.ok(!handler.line.geometry.getBounds().equals(
+                 new OpenLayers.Bounds(0,-35.15625,35.15625,0)),
+             "Correct bounds after dragging without letting go. " +
+             "(Came out as " + handler.line.geometry.getBounds().toBBOX() +
+             ".)");
         map.destroy();     
     }     
 
     function test_callbacks(t) {
-        t.plan(15);
+        t.plan(39);
         var map = new OpenLayers.Map("map", {
             resolutions: [1]
         });
@@ -79,73 +139,334 @@
             isBaseLayer: true
         });
         map.addLayer(layer);
-        var control = new OpenLayers.Control({
-        });
-        var log = {};
+        var control = new OpenLayers.Control({});
+        var logs = [], log;
         var handler = new OpenLayers.Handler.Path(control, {
             create: function() {
-                log.type = "create",
-                log.args = arguments
+                logs.push({type: "create", args: arguments});
+            },
+            point: function() {
+                logs.push({type: "point", args: arguments});
             },
             modify: function() {
-                log.type = "modify",
-                log.args = arguments
+                logs.push({type: "modify", args: arguments});
             },
             done: function() {
-                log.type = "done",
-                log.args = arguments
+                logs.push({type: "done", args: arguments});
             },
             cancel: function() {
-                log.type = "cancel",
-                log.args = arguments
+                logs.push({type: "cancel", args: arguments});
             }
+        },
+        {
+            pixelTolerance: 0
         });
         control.handler = handler;
         map.addControl(control);
         map.setCenter(new OpenLayers.LonLat(0, 0), 0);
         
-        // mock up feature drawing
         handler.activate();
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
-        t.eq(log.type, "create", "[mousedown] create called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75), "[mousedown] correct vertex");
-        t.ok(log.args[1] === handler.line, "[mousedown] correct sketch feature");
+
+        // mouse move
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 2, "[mousemove] called back twice");
+        log = logs.shift();
+        t.eq(log.type, "create", "[mousemove] create called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.line,
+             "[mousemove] correct feature");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousemove] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.line,
+             "[mousemove] correct feature");
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 1, "[mousedown] called back");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousedown] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousedown] correct point");
+        t.ok(log.args[1] === handler.line,
+             "[mousedown] correct feature");
+        // mouse up
         handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 2, "[mouseup] called back twice");
+        log = logs.shift();
+        t.eq(log.type, "point", "[mouseup] point called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mouseup] correct point");
+        t.geom_eq(log.args[1],
+                  new OpenLayers.Geometry.LineString([
+                      new OpenLayers.Geometry.Point(-150, 75),
+                      new OpenLayers.Geometry.Point(-150, 75)
+                  ]), "[mouseup] correct line");
+        log = logs.shift();
         t.eq(log.type, "modify", "[mouseup] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75), "[mouseup] correct vertex");
-        t.ok(log.args[1] === handler.line, "[mouseup] correct sketch feature");
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mouseup] correct point");
+        t.ok(log.args[1] == handler.line,
+             "[mouseup] correct feature");
+        // mouse move
+        handler.mousemove({type: "mousemove",
+                           xy: new OpenLayers.Pixel(1, 1)});
+        t.eq(logs.length, 1, "[mousemove] called back");
+        log = logs.shift();
         t.eq(log.type, "modify", "[mousemove] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-149, 74), "[mousemove] correct vertex");
-        t.ok(log.args[1] === handler.line, "[mousemove] correct sketch feature");
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-149, 74),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.line,
+             "[mousemove] correct feature");
+        // mouse move
+        handler.mousemove({type: "mousemove",
+                           xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 1, "[mousemove] called back");
+        log = logs.shift();
         t.eq(log.type, "modify", "[mousemove] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-140, 65), "[mousemove] correct vertex");
-        t.ok(log.args[1] === handler.line, "[mousemove] correct sketch feature");
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
-        handler.dblclick({type: "dblclick", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-140, 65),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.line,
+             "[mousemove] correct feature");
+        // mouse down
+        handler.mousedown({type: "mousedown",
+                           xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 1, "[mousedown] called back");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousedown] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-140, 65),
+                  "[mousedown] correct point");
+        t.ok(log.args[1] === handler.line,
+             "[mousedown] correct feature");
+        // mouse up ("point", "modify")
+        handler.mouseup({type: "mouseup",
+                         xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 2, "[mouseup] called back twice");
+        log = logs.shift();
+        log = logs.shift();
+        // mouse down
+        handler.mousedown({type: "mousedown",
+                           xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 0, "[mousedown] called back");
+        // mouse up
+        handler.mouseup({type: "mouseup",
+                         xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 0, "[mouseup] not called back");
+        // double click
+        handler.dblclick({type: "dblclick",
+                          xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 1, "[dblclick] called back");
+        log = logs.shift();
         t.eq(log.type, "done", "[dblclick] done called");
-        t.geom_eq(
-            log.args[0],
+        t.geom_eq(log.args[0],
             new OpenLayers.Geometry.LineString([
                 new OpenLayers.Geometry.Point(-150, 75),
                 new OpenLayers.Geometry.Point(-140, 65)
             ]),
             "[dblclick] correct linestring"
         );
-        
-        // mock up sketch cancel
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
-        handler.deactivate();
-        t.eq(log.type, "cancel", "[deactivate while drawing] cancel called");
-        
+        // cancel
+        handler.cancel();
+        t.eq(logs.length, 1, "[cancel] called back");
+        log = logs.shift();
+        t.eq(log.type, "cancel", "[cancel] canced called");
+        t.eq(log.args[0], null, "[cancel] got null"
+        );
+ 
+        map.destroy();
+    }
+
+    function test_toggle_freehand(t) {
+        t.plan(2);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {
+            done: function(g) {
+                log++;
+            }
+        }, {persist: true});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        log = 0;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.eq(log, 1, "feature drawn when shift pressed on mousedown");
+
+        log = 0;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: false});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.eq(log, 0, "feature not drawn when shift not pressed on mousedown");
+    }
+
+    function test_persist(t) {
+        t.plan(4);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        handler.persist = false;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature1 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(1, 1)});
+        t.ok(feature1.layer == null, "a) feature1 destroyed");
+
+        handler.persist = true;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature2 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(1, 1)});
+        t.ok(feature2.layer != null, "b) feature2 not destroyed");
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature3 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(1, 1)});
+        t.ok(feature3.layer != null, "c) feature3 not destroyed");
+        t.ok(feature2.layer == null, "c) feature2 destroyed");
+
+        map.destroy();
+    }
+
+    function test_persist_freehand(t) {
+        t.plan(6);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        handler.persist = false;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature1 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.ok(feature1.layer == null, "a) feature1 destroyed");
+
+        handler.persist = true;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        feature2 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.ok(feature2.layer != null, "b) feature2 not destroyed");
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        feature3 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.ok(feature3.layer != null, "c) feature3 not destroyed");
+        t.ok(feature2.layer == null, "c) feature2 destroyed");
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        feature4 = handler.line;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: false});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.ok(feature4.layer != null, "d) feature4 not destroyed");
+        t.ok(feature3.layer == null, "c) feature3 destroyed");
+
         map.destroy();
-    }        
+    }
 
     function test_Handler_Path_destroy(t) {
         t.plan(6);
@@ -175,9 +496,811 @@
              "handler.line is null after destroy");
         map.destroy();     
     }
-    
 
+    function test_maxVertices(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var log = {};
+        var doneCallback = function(evt) {
+            t.ok(evt, 'When maxVertices is reached, the geometry is finalized automatically');
+        };
+        var handler = new OpenLayers.Handler.Path(control, {'done': doneCallback}, {maxVertices: 2});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        // mock up feature drawing
+        handler.activate();
+        var evt = {xy: new OpenLayers.Pixel(0, 0)};
+        handler.mousemove(evt);
+        handler.mousedown(evt);
+        handler.mouseup(evt);
+        evt = {xy: new OpenLayers.Pixel(20, 20)};
+        handler.mousemove(evt);
+        handler.mousedown(evt);
+        handler.mouseup(evt);
+        evt = {xy: new OpenLayers.Pixel(40, 40)};
+        handler.mousemove(evt);
+        handler.mousedown(evt);
+        handler.mouseup(evt);
+        map.destroy();
+    }
 
+    /**
+     * Helper functions for editing method tests
+     */ 
+    function editingMethodsSetup() {
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control.DrawFeature(
+            layer, OpenLayers.Handler.Path
+        );
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        control.activate();
+        return {
+            handler: control.handler,
+            map: map
+        }
+    }
+    function userClick(handler, x, y) {
+        var px = new OpenLayers.Pixel(x, y);
+        handler.mousemove({type: "mousemove", xy: px});
+        handler.mousedown({type: "mousedown", xy: px});
+        handler.mouseup({type: "mouseup", xy: px});
+    }
+
+    /**
+     * Editing method tests: insertXY, insertDeltaXY, insertDirectionXY,
+     * insertDeflectionXY, undo, and redo
+     */
+    function test_insertXY(t) {
+        t.plan(3);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+
+        // add points at px(0, 0) and px(10, 10)
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+
+        t.eq(handler.line.geometry.components.length, 3, "line has three points after two clicks");
+        
+        // programmatically add a point
+        handler.insertXY(5, 6);
+        t.eq(handler.line.geometry.components.length, 4, "line has four points after insertXY");
+        t.geom_eq(
+            handler.line.geometry.components[2],
+            new OpenLayers.Geometry.Point(5, 6),
+            "third point comes from insertXY"
+        );
+        
+        map.destroy();
+        
+    }
+
+    function test_insertDeltaXY(t) {
+        t.plan(3);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+        
+        // add points at px(0, 0) and px(10, 10)
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+
+        t.eq(handler.line.geometry.components.length, 3, "line has three points after two clicks");
+        
+        // programmatically add a point
+        handler.insertDeltaXY(1, 2);
+        t.eq(handler.line.geometry.components.length, 4, "line has four points after insert");
+        // expect a point that is offset from previous point
+        var exp = handler.line.geometry.components[1].clone();
+        exp.move(1, 2);
+        t.geom_eq(
+            handler.line.geometry.components[2], exp,
+            "third point is offset by dx,dy from second point"
+        );
+        
+        map.destroy();
+    }
+
+    function test_insertDirectionLength(t) {
+        t.plan(4);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+        
+        // add points at px(0, 0) and px(10, 10)
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+
+        t.eq(handler.line.geometry.components.length, 3, "line has three points after two clicks");
+        
+        // programmatically add a point
+        handler.insertDirectionLength(45, 2);
+        t.eq(handler.line.geometry.components.length, 4, "line has four points after insert");
+        var p1 = handler.line.geometry.components[1];
+        var p2 = handler.line.geometry.components[2];
+        
+        var direction = Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180 / Math.PI;
+        t.eq(direction.toFixed(4), (45).toFixed(4), "inserted point offset with correct direction");
+        var length = Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
+        t.eq(length.toFixed(4), (2).toFixed(4), "inserted point offset with correct length");
+        
+        map.destroy();
+    }
+
+    function test_insertDeflectionLength(t) {
+        t.plan(4);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+
+        // add points at px(0, 0) and px(10, 10)
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+
+        t.eq(handler.line.geometry.components.length, 3, "line has three points after two clicks");
+        var p0 = handler.line.geometry.components[0];
+        var p1 = handler.line.geometry.components[1];
+        // angle of first segment
+        var dir0 = Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;
+        
+        // programmatically add a point
+        handler.insertDeflectionLength(-30, 5);
+        t.eq(handler.line.geometry.components.length, 4, "line has four points after insert");
+        var p2 = handler.line.geometry.components[2];
+        // angle of second segment
+        var dir1 = Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180 / Math.PI;
+        
+        var deflection = dir1 - dir0;
+        t.eq(deflection.toFixed(4), (-30).toFixed(4), "inserted point offset with correct deflection");
+
+        var length = Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
+        t.eq(length.toFixed(4), (5).toFixed(4), "inserted point offset with correct length");
+        
+        map.destroy();
+    }
+
+    function test_undoredo1(t) {
+        t.plan(4);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+        
+        // add points and move mouse
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        userClick(handler, 50, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+        var original = handler.line.geometry.clone();
+        var len = original.components.length;
+        t.eq(len, 4, "original has four points after three clicks");
+        
+        // one undo
+        handler.undo();
+        var currentLen = handler.line.geometry.components.length;
+        t.eq(currentLen, len-1, "one point removed on undo");
+        t.geom_eq(
+            handler.line.geometry.components[currentLen-1],
+            original.components[len-1],
+            "current point (mouse position) remains the same after undo"
+        );
+        // one redo
+        handler.redo();
+        t.geom_eq(original, handler.line.geometry, "one redo undoes one undo");
+        
+        // cleanup
+        map.destroy();
+    }
+
+    function test_undoredo2(t) {
+        t.plan(8);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+        
+        // add points and move mouse
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        userClick(handler, 50, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+        var original = handler.line.geometry.clone();
+        var len = original.components.length;
+        t.eq(len, 4, "original has four points after three clicks");
+
+        // two undos
+        handler.undo();
+        handler.undo();
+        var currentLen = handler.line.geometry.components.length;
+        t.eq(currentLen, len-2, "two points removed on two undos");
+        t.geom_eq(
+            handler.line.geometry.components[currentLen-1],
+            original.components[len-1],
+            "current point (mouse position) remains the same after two undos"
+        );
+        // first redo
+        handler.redo();
+        currentLen = handler.line.geometry.components.length;
+        t.eq(currentLen, len-1, "point added in first redo");
+        t.geom_eq(
+            handler.line.geometry.components[currentLen-2],
+            original.components[len-3],
+            "correct point restored in first redo"
+        );
+
+        // second redo
+        handler.redo();
+        currentLen = handler.line.geometry.components.length;
+        t.eq(currentLen, len, "point added in second redo");
+        t.geom_eq(
+            handler.line.geometry.components[currentLen-2],
+            original.components[len-2],
+            "correct point restored in second redo"
+        );
+        t.geom_eq(handler.line.geometry, original, "correct geometry");
+
+        // cleanup
+        map.destroy();
+    }
+
+    function test_undoredo3(t) {
+        t.plan(3);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+        
+        // add points and move mouse
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        userClick(handler, 50, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+        var original = handler.line.geometry.clone();
+        var len = original.components.length;
+        t.eq(len, 4, "original has four points after three clicks");
+
+        // gratuitous redos 
+        var trouble = false;
+        try {
+            handler.undo();
+            handler.undo();
+            handler.redo();
+            handler.redo();
+            handler.redo();
+            handler.redo();
+            handler.redo();
+        } catch (err) {
+            trouble = true;
+        }
+        t.ok(!trouble, "extra redos cause no ill effects");
+        t.geom_eq(handler.line.geometry, original, "correct geometry");
+        
+        // cleanup
+        map.destroy();
+    }
+        
+    function test_undoredo4(t) {
+        t.plan(3);
+        var obj = editingMethodsSetup();
+        var map = obj.map;
+        var handler = obj.handler;
+        
+        // add points and move mouse
+        userClick(handler, 0, 0);
+        userClick(handler, 10, 10);
+        userClick(handler, 50, 10);
+        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(50, 50)});
+        var original = handler.line.geometry.clone();
+        var len = original.components.length;
+        t.eq(len, 4, "original has four points after three clicks");
+
+        // gratuitous undos
+        var trouble = false;
+        try {
+            handler.undo();
+            handler.undo();
+            handler.undo();
+            handler.undo();
+            handler.undo();
+            handler.undo();
+            handler.undo();
+        } catch (err) {
+            trouble = true;
+        }
+        t.ok(!trouble, "extra undos cause no ill effects");
+        t.eq(handler.line.geometry.components.length, 2, "still left with two points after many undos")
+
+        // cleanup
+        map.destroy();
+    }
+
+    //
+    // Sequence tests
+    // 
+    // Sequence tests basically involve executing a sequence of events
+    // and testing the resulting geometry.
+    //
+    // Below are tests for various drawing sequences. Tests can be
+    // added here each a non-working sequence is found.
+    //
+
+    // stopDown:true, stopUp:true, pixelTolerance:1
+    // a) click on (0, 0)
+    // b) mousedown on (1, 1)
+    // c) mouseup on (2, 2)
+    // d) dblclick on (10, 10)
+    function test_sequence1(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control,
+            {done: function(g) { log.geometry = g; }},
+            {stopDown: true, stopUp: true, pixelTolerance: 1}
+        );
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+        log = {};
+
+        // a) click on (0, 0)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        // b) mousedown on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        // c) mouseup on (2, 2)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 2)});
+        // d) dblclick on (10, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+            ]), "geometry is correct");
+    }
+
+    // stopDown:false, stopUp:false, pixelTolerance:1
+    // a) click on (0, 0)
+    // b) mousedown on (1, 1)
+    // c) mouseup on (2, 2)
+    // d) dblclick on (10, 10)
+    function test_sequence2(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control,
+            {done: function(g) { log.geometry = g; }},
+            {stopDown: false, stopUp: false, pixelTolerance: 1}
+        );
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+        log = {};
+
+        // a) click on (0, 0)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        // b) mousedown on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        // c) mouseup on (2, 2)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 2)});
+        // d) dblclick on (10, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+            ]), "geometry is correct");
+    }
+
+    // a) click
+    // b) dblclick
+    // c) mousedown holding shift key
+    // d) mousemove holding shift key
+    function test_sequence3(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {},
+        {
+            pixelTolerance: 0
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        // a) click on (0, 0)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        // b) click on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        // c) click on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        // d) mousemove to (10, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10), shiftKey: true});
+        t.geom_eq(handler.line.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                new OpenLayers.Geometry.Point(-149, 74), // (1, 1)
+                new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+            ]), "geometry is correct after mousemove");
+    }
+
+    // a) click
+    // b) dblclick
+    // c) mousedown holding shift key
+    // d) mousemove holding shift key
+    function test_sequence4(t) {
+        t.plan(2);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control,
+            {done: function(g) { log.geometry = g; }},
+            {stopDown: false, stopUp: false}
+        );
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+        log = {};
+
+        // a) click on (0, 0)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        // b) dblclick on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(1, 1)});
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                new OpenLayers.Geometry.Point(-149, 74)  // (1, 1)
+            ]), "geometry is correct after dblclick");
+        // c) mousedown holding shift key on (1, 1)
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        // d) mousemove holding shift key to (10, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10), shiftKey: true});
+        t.geom_eq(handler.line.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-149, 74),  // (1, 1)
+                new OpenLayers.Geometry.Point(-140, 65)   // (10, 10)
+            ]), "geometry is correct after mousemove");
+    }
+
+ 
+    // a) tap
+    // c) doubletap
+    function test_touch_sequence1(t) {
+        t.plan(19);
+
+        // set up
+
+        var log;
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {
+            done: function(g, f) {
+                log = {type: 'done', geometry: g, feature: f};
+            },
+            modify: function(g, f) {
+                log = {type: 'modify', geometry: g, feature: f};
+            }
+        }, {
+            doubleTouchTolerance: 2
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        // test
+
+        var ret;
+
+        // tap on (1, 0)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(1, 0)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-149, 75),
+                  "[touchend] correct point");
+
+        // doubletap on (10, 10)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(9, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(10, 10)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-140, 65),
+                  "[touchend] correct point");
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(11, 10)});
+        t.ok(!ret, '[touchstart] event does not propagate');
+        t.eq(log.type, 'done', '[touchend] feature finalized');
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-149, 75),  // (1, 0)
+                new OpenLayers.Geometry.Point(-140, 65)   // (10, 10)
+            ]), "[touchstart] final geometry is correct");
+        log = null;
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] feature not finalized or modified');
+
+        // tear down
+
+        map.destroy();
+    }
+
+    // a) tap
+    // b) tap-move
+    // c) doubletap
+    function test_touch_sequence2(t) {
+        t.plan(25);
+
+        // set up
+
+        var log;
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {
+            done: function(g, f) {
+                log = {type: 'done', geometry: g, feature: f};
+            },
+            modify: function(g, f) {
+                log = {type: 'modify', geometry: g, feature: f};
+            }
+        }, {
+            doubleTouchTolerance: 2
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        // test
+
+        var ret;
+
+        // tap on (1, 0)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(1, 0)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-149, 75),
+                  "[touchend] correct point");
+
+        // tap-move
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(9, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(20, 20)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] feature not finalized or modified');
+
+        // doubletap on (10, 10)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(9, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(10, 10)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-140, 65),
+                  "[touchend] correct point");
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(11, 10)});
+        t.ok(!ret, '[touchstart] event does not propagate');
+        t.eq(log.type, 'done', '[touchend] feature finalized');
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.LineString([
+                new OpenLayers.Geometry.Point(-149, 75),  // (1, 0)
+                new OpenLayers.Geometry.Point(-140, 65)   // (10, 10)
+            ]), "[touchstart] final geometry is correct");
+        log = null;
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] feature not finalized or modified');
+
+        // tear down
+
+        map.destroy();
+    }
+
+    function test_persist_one_click_freehand(t) {
+        t.plan(3);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Path(control, {}, {persist: true});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        var feature1 = handler.line;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        t.ok(feature1.layer != null, "a) feature1 not destroyed");
+
+        // one click freehand
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        var feature2 = handler.line;
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        t.ok(feature2.layer != null, "b) feature2 not destroyed");
+        t.ok(feature1.layer == null, "b) feature1 destroyed");
+        
+        map.destroy();
+    }
   </script>
 </head>
 <body>
diff --git a/tests/Handler/Pinch.html b/tests/Handler/Pinch.html
new file mode 100644
index 0000000..2924e22
--- /dev/null
+++ b/tests/Handler/Pinch.html
@@ -0,0 +1,264 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+    function test_constructor(t) {
+        t.plan(3);
+        var control = new OpenLayers.Control();
+        control.id = Math.random();
+        var callbacks = {foo: "bar"};
+        var options = {bar: "foo"};
+
+        var oldInit = OpenLayers.Handler.prototype.initialize;
+
+        OpenLayers.Handler.prototype.initialize = function(con, call, opt) {
+            t.eq(con.id, control.id,
+                 "constructor calls parent with the correct control");
+            t.eq(call, callbacks,
+                 "constructor calls parent with the correct callbacks");
+            t.eq(opt, options,
+                 "constructor calls parent with the correct options");
+        };
+        var handler = new OpenLayers.Handler.Pinch(control, callbacks, options);
+
+        OpenLayers.Handler.prototype.initialize = oldInit;
+    }
+
+    function test_activate(t) {
+        t.plan(3);
+        var map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Pinch(control);
+        handler.active = true;
+        var activated = handler.activate();
+        t.ok(!activated,
+             "activate returns false if the handler was already active");
+        handler.active = false;
+        handler.pinching = true;
+        activated = handler.activate();
+        t.ok(activated,
+             "activate returns true if the handler was not already active");
+        t.ok(!handler.pinching,
+             "activate sets pinching to false");
+
+    }
+
+    function test_events(t) {
+        // each handled event should be activated twice when handler is
+        // activated, so:
+        // 27 = 4tests * 2*3events + 1tests * 3events
+        t.plan(27);
+
+        var map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Pinch(control);
+
+        // list below events that should be handled (events) and those
+        // that should not be handled (nonevents) by the handler
+        var events = ["touchend", "touchmove", "touchstart"];
+        var nonevents = ["mousedown", "mouseup", "mousemove", "mouseout",
+        "click", "dblclick", "resize", "focus", "blur"];
+        map.events.registerPriority = function(type, obj, func) {
+                // this is one of the mock handler methods
+                t.eq(OpenLayers.Util.indexOf(nonevents, type), -1,
+                     "registered method is not one of the events " +
+                     "that should not be handled: " + type);
+                t.ok(OpenLayers.Util.indexOf(events, type) > -1,
+                     "activate calls registerPriority with browser event: " + type);
+                t.eq(typeof func, "function",
+                     "activate calls registerPriority with a function");
+                t.eq(obj["CLASS_NAME"], "OpenLayers.Handler.Pinch",
+                     "activate calls registerPriority with the handler");
+        };
+        handler.activate();
+        handler.deactivate();
+
+        // set browser event like properties on the handler
+        for(var i=0; i<events.length; ++i) {
+            setMethod(events[i]);
+        }
+        function setMethod(key) {
+            handler[key] = function() {return key;};
+        }
+
+        map.events.registerPriority = function(type, obj, func) {
+            var r = func();
+            if(typeof r == "string") {
+                t.eq(r, type,
+                     "activate calls registerPriority with the correct method");
+            }
+        }
+        handler.activate();
+
+    }
+
+    function test_callbacks(t) {
+        t.plan(23);
+
+        var map = new OpenLayers.Map('map', {controls: []});
+
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+
+        // set fake values for touches
+        var testEvents = {
+            start: {
+                type: 'start',
+                touches: [{
+                    clientX: 100,
+                    clientY: 0
+                }, {
+                    clientX: 0,
+                    clientY: 0
+                }]
+            },
+            move: {
+                type: 'move',
+                touches: [{
+                    clientX: 100,
+                    clientY: 0
+                }, {
+                    clientX: 20,
+                    clientY: 0
+                }]
+            },
+            done: {
+                type: 'done',
+                touches: []
+            }
+        };
+        
+        // set callback methods
+        var customCb = OpenLayers.Function.False;
+        var cb = function(evt) {
+            var tch = testEvents[evt.type].touches;
+            t.ok(evt.touches[0].clientX == tch[0].clientX &&
+                evt.touches[0].clientY == tch[0].clientY,
+                "touchstart sets first touch position correctly in evt");
+            t.ok(evt.touches[1].clientX == tch[1].clientX &&
+                evt.touches[1].clientY == tch[1].clientY,
+                "touchstart sets second touch position correctly in evt");
+            t.eq(handler.start.distance, 100, "start distance is " +
+                "always the same");
+            customCb.apply(this, arguments);
+        }
+        var callbacks = {
+            start: cb,
+            move: cb,
+            done: customCb
+        };
+
+        var handler = new OpenLayers.Handler.Pinch(control, callbacks);
+        handler.activate();
+
+        var old_isMultiTouch = OpenLayers.Event.isMultiTouch;
+        var old_stop = OpenLayers.Event.stop;
+        
+        // test single touch
+        OpenLayers.Event.isMultiTouch = function() {
+            return false;
+        }
+        handler.started = true;
+        handler.start = {
+            distance: 100,
+            delta: 0,
+            scale: 1
+        };
+        handler.last = {
+            distance: 150,
+            delta: 10,
+            scale: 1.5
+        };
+        map.events.triggerEvent("touchstart", testEvents.start);
+        t.ok(!handler.started, "1) touchstart (singletouch) sets started to false");
+        t.eq(handler.start, null, "1) touchstart (singletouch) sets start to null");
+        t.eq(handler.last, null, "1) touchstart (singletouch) sets last to null");
+
+        OpenLayers.Event.stop = function(evt, allowDefault) {
+            if(allowDefault) {
+                t.fail(
+                    "touchstart is prevented from falling to other elements");
+            }
+        }
+        OpenLayers.Event.isMultiTouch = function(evt) {
+            var res = old_isMultiTouch(evt);
+            t.ok(res, "fake event is a mutitouch touch event");
+            return res;
+        }
+        customCb = function(evt, pinchdata) {
+            t.eq(pinchdata.distance, 100, "2) calculated distance is correct");
+            t.eq(pinchdata.delta, 0, "2) calculated delta is correct");
+            t.eq(pinchdata.scale, 1, "2) calculated scale is correct");
+        }
+        map.events.triggerEvent("touchstart", testEvents.start);
+        t.ok(handler.started, "2) touchstart sets the started flag to true");
+        t.ok(!handler.pinching, "2) touchstart sets the pinching flag to false");
+
+        customCb = function(evt, pinchdata) {
+            t.eq(pinchdata.distance, 80, "3) calculated distance is correct");
+            t.eq(pinchdata.delta, 20, "3) calculated delta is correct");
+            t.eq(pinchdata.scale, 0.8, "3) calculated scale is correct");
+        }
+        map.events.triggerEvent("touchmove", testEvents.move);
+        t.ok(handler.started, "3) started flag still set to true");
+        t.ok(handler.pinching, "3) touchmove sets the pinching flag to true");
+
+
+        customCb = function(evt, first, last) {
+            t.eq(first.distance, 100, "4) calculated distance is correct");
+            t.eq(first.delta, 0, "4) calculated delta is correct");
+            t.eq(first.scale, 1, "4) calculated scale is correct");
+            t.eq(last.distance, 80, "4) calculated distance is correct");
+            t.eq(last.delta, 20, "4) calculated delta is correct");
+            t.eq(last.scale, 0.8, "4) calculated scale is correct");
+        }
+        map.events.triggerEvent("touchend", testEvents.done);
+        t.ok(!handler.started, "4) started flag is set to false");
+        t.ok(!handler.pinching, "4) touchdone sets the pinching flag to false");
+
+        OpenLayers.Event.stop = old_stop;
+        OpenLayers.Event.isMultiTouch = old_isMultiTouch;
+
+        // test move or done before start
+        customCb = function(evt) {
+            t.fail("should not pass here")
+        }
+        map.events.triggerEvent("touchmove", testEvents.move);
+        map.events.triggerEvent("touchend", testEvents.end);
+
+    }
+
+    function test_deactivate(t) {
+        t.plan(6);
+        var map = new OpenLayers.Map('map');
+        var control = new OpenLayers.Control();
+        map.addControl(control);
+        var handler = new OpenLayers.Handler.Pinch(control);
+        handler.active = false;
+        var deactivated = handler.deactivate();
+        t.ok(!deactivated,
+             "deactivate returns false if the handler was not already active");
+        handler.active = true;
+        handler.pinching = true;
+        deactivated = handler.deactivate();
+        t.ok(deactivated,
+             "deactivate returns true if the handler was active already");
+        t.ok(!handler.started,
+             "deactivate sets started to false");
+        t.ok(!handler.pinching,
+             "deactivate sets pinching to false");
+        t.ok(handler.start == null,
+             "deactivate sets start to null");
+        t.ok(handler.last == null,
+             "deactivate sets start to null");
+    }
+
+
+  </script>
+</head>
+<body>
+    <div id="map" style="width: 300px; height: 150px;"/>
+</body>
+</html>
diff --git a/tests/Handler/Point.html b/tests/Handler/Point.html
index fb10edf..4214478 100644
--- a/tests/Handler/Point.html
+++ b/tests/Handler/Point.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_Point_constructor(t) {
         t.plan(3);
@@ -25,11 +25,21 @@
     }
 
     function test_Handler_Point_activation(t) {
-        t.plan(3);
-        var map = new OpenLayers.Map('map');
+        t.plan(6);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
         var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Point(control, {});
+        control.handler = handler;
         map.addControl(control);
-        var handler = new OpenLayers.Handler.Point(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
         handler.active = true;
         var activated = handler.activate();
         t.ok(!activated,
@@ -38,24 +48,76 @@
         activated = handler.activate();
         t.ok(activated,
              "activate returns true if the handler was not already active");
+        t.ok(handler.layer instanceof OpenLayers.Layer.Vector,
+             "activate creates a vector layer");
+        t.ok(handler.layer.map == map,
+             "activate adds the vector layer to the map");
         activated = handler.deactivate();
         t.ok(activated,
              "deactivate returns true if the handler was active already");
+        var failed = false;
+        try {
+            handler.finalize();
+            msg = "finalizing after deactivation does not throw an error";
+        } catch (err) {
+            failed = true;
+            msg = "finalizing after deactivation throws an error";
+        }
+        t.ok(!failed, msg);
+        map.destroy();
+    }
+
+    // http://trac.osgeo.org/openlayers/ticket/3179
+    function test_activate_before_map_is_centered(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map('map', {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Point(control, {});
+        control.handler = handler;
+        map.addControl(control);
+
+        var error;
+        try {
+            handler.activate();
+            error = false;
+        } catch(err) {
+            error = true;
+        }
+        t.ok(!error, "no error on activate");
     }
 
     function test_Handler_Point_events(t) {
-        t.plan(29);
-        
-        var map = new OpenLayers.Map('map');
-        var control = {
-            map: map
-        };
-        var handler = new OpenLayers.Handler.Point(control);
+        t.plan(49);
+        var log = [];
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Point(control, {
+            "create": function(g, f) {
+                log.push({geometry: g, feature: f});
+            }
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
 
         // list below events that should be handled (events) and those
         // that should not be handled (nonevents) by the handler
-        var events = ["click", "dblclick", "mousedown", "mouseup", "mousemove"];
-        var nonevents = ["mouseout", "resize", "focus", "blur"];
+        var events = ["click", "dblclick", "mousedown", "mouseup", "mousemove", "mouseout", "touchstart", "touchmove", "touchend"];
+        var nonevents = ["resize", "focus", "blur"];
         map.events.registerPriority = function(type, obj, func) {
             var r = func();
             if(typeof r == "string") {
@@ -99,7 +161,7 @@
     }
     
     function test_callbacks(t) {
-        t.plan(10);
+        t.plan(24);
         var map = new OpenLayers.Map("map", {
             resolutions: [1]
         });
@@ -108,68 +170,187 @@
             isBaseLayer: true
         });
         map.addLayer(layer);
-        var control = new OpenLayers.Control({
-        });
-        var log = {};
+        var control = new OpenLayers.Control({});
+        var logs = [], log;
         var handler = new OpenLayers.Handler.Point(control, {
             create: function() {
-                log.type = "create",
-                log.args = arguments
+                logs.push({type: "create", args: arguments});
             },
             modify: function() {
-                log.type = "modify",
-                log.args = arguments
+                logs.push({type: "modify", args: arguments});
             },
             done: function() {
-                log.type = "done",
-                log.args = arguments
+                logs.push({type: "done", args: arguments});
             },
             cancel: function() {
-                log.type = "cancel",
-                log.args = arguments
+                logs.push({type: "cancel", args: arguments});
             }
+        },
+        {
+            pixelTolerance: 0,
+            dblclickTolerance: 0
         });
         control.handler = handler;
         map.addControl(control);
         map.setCenter(new OpenLayers.LonLat(0, 0), 0);
         
-        // mock up feature drawing
         handler.activate();
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 2, "[mousedown] called back twice");
+        log = logs.shift();
         t.eq(log.type, "create", "[mousedown] create called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75), "[mousedown] correct point");
-        t.geom_eq(log.args[1].geometry, new OpenLayers.Geometry.Point(-150, 75), "[mousedown] correct sketch feature");
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(1, 0)});
-        t.eq(log.type, "modify", "[mousemove] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-149, 75), "[mousemove] correct point");
-        t.geom_eq(log.args[1].geometry, new OpenLayers.Geometry.Point(-149, 75), "[mousemove] correct sketch feature");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousedown] correct point");
+        t.geom_eq(log.args[1].geometry,
+                  new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousedown] correct feature");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousedown] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousedown] correct point");
+        t.geom_eq(log.args[1].geometry,
+                  new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousedown] correct feature");
+        // mouse move
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 0)});
+        t.eq(logs.length, 0, "[mousemove] not called back");
+        // mouse up (no finalize - we moved)
         handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(1, 0)});
+        t.eq(logs.length, 0, "[mouseup] not called back");
+        // mouse move
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 0)});
+        t.eq(logs.length, 1, "[mousemove] called back");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousemove] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-148, 75),
+                  "[mousemove] correct point");
+        t.geom_eq(log.args[1].geometry,
+                  new OpenLayers.Geometry.Point(-148, 75),
+                  "[mousemove] correct feature");
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(2, 0)});
+        t.eq(logs.length, 1, "[mousedown] called back");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousedown] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-148, 75),
+                  "[mousedown] correct point");
+        t.geom_eq(log.args[1].geometry,
+                  new OpenLayers.Geometry.Point(-148, 75),
+                  "[mousedown] correct feature");
+        // mouse up
+        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(2, 0)});
+        t.eq(logs.length, 1, "[mouseup] called back");
+        log = logs.shift();
         t.eq(log.type, "done", "[mouseup] done called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-149, 75), "[mouseup] correct point");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-148, 75),
+                  "[mouseup] correct point");
+        // mouse up on same pixel
+        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(2, 0)});
+        t.eq(logs.length, 0, "[mouseup] not called back");
+        // cancel
+        handler.cancel();
+        t.eq(logs.length, 1, "[cancel] called back");
+        log = logs.shift();
+        t.eq(log.type, "cancel", "[cancel] cancel called");
+        t.eq(log.args[0], null, "[cancel] got null");
 
-        // mock up feature drawing with a cancel
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
-        handler.deactivate();
-        t.eq(log.type, "cancel", "[deactivate while drawing] cancel called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75), "[deactivate while drawing] correct point");
+        map.destroy();
+    }
+
+    function test_persist(t) {
+        t.plan(3);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Point(control, {});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
         
+        handler.activate();
+
+        handler.persist = false;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(handler.layer.features.length, 0,
+             "feature destroyed on mouseup when persist is false");
+
+        handler.persist = true;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 0)});
+        t.eq(handler.layer.features.length, 1,
+             "feature not destroyed on mouseup when persist is true");
+        var feature = handler.layer.features[0];
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(2, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 0)});
+        t.ok(handler.layer.features[0] !== feature,
+             "persisted feature destroyed on next mouseup");
+
         map.destroy();
     }
 
 
     function test_Handler_Point_deactivation(t) {
-        t.plan(1);
-        var map = new OpenLayers.Map('map');
+        t.plan(5);
+        var log = [];
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
         var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Point(control, {
+            "cancel": function(g) {
+                log.push({geometry: g});
+            }
+        });
+        control.handler = handler;
         map.addControl(control);
-             
-        var handler = new OpenLayers.Handler.Point(control, {foo: 'bar'});
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+        handler.mousemove({xy: new OpenLayers.Pixel(0, 0)});
+        var _layer = handler.layer;
+        var _geometry = handler.point.geometry;
+        handler.deactivate();
+        t.eq(_layer.map, null,
+             "deactivates removes the layer from the map");
+        t.eq(handler.layer, null,
+             "deactivates sets its \"layer\" property to null");
+        t.eq(log.length, 1,
+             "deactivates calls \"cancel\" once");
+        t.ok(log[0].geometry.equals(_geometry),
+             "\"cancel\" called with expected geometry");
+
         handler.activate();
         handler.layer.destroy();
         handler.deactivate();
         t.eq(handler.layer, null,
              "deactivate doesn't throw an error if layer was" +
              " previously destroyed");
+
+        map.destroy();
     }
 
     function test_Handler_Point_bounds(t) {
@@ -183,7 +364,7 @@
         var activated = handler.activate();
         var px = new OpenLayers.Pixel(150, 75);
         var evt = {xy: px, which: 1};
-        handler.mousedown(evt);
+        handler.mousemove(evt);
         var lonlat = map.getLonLatFromPixel(px);
         t.eq(handler.point.geometry.x, lonlat.lon, "X is correct"); 
         t.eq(handler.point.geometry.y, lonlat.lat, "Y is correct"); 
@@ -203,8 +384,7 @@
         var handler = new OpenLayers.Handler.Point(control, {foo: 'bar'});
 
         handler.activate();
-        var evt = {xy: new OpenLayers.Pixel(150, 75), which: 1};
-        handler.mousedown(evt);
+        handler.mousemove({xy: new OpenLayers.Pixel(150, 75)});
 
         t.ok(handler.layer,
              "handler has a layer prior to destroy");
@@ -216,8 +396,200 @@
         t.eq(handler.point, null,
              "handler.point is null after destroy");
     }
-    
 
+    function test_touchstart(t) {
+        // a test to verify that the touchstart function does
+        // unregister the mouse listeners when it's called the
+        // first time
+
+        t.plan(4);
+
+        // set up
+
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Point(control, {});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        function allRegistered() {
+            var eventTypes = ['mousedown', 'mouseup', 'mousemove', 'click', 'dblclick'],
+                eventType,
+                listeners,
+                listener,
+                flag;
+            for(var i=0, ilen=eventTypes.length; i<ilen; i++) {
+                flag =  false;
+                eventType = eventTypes[i];
+                listeners = map.events.listeners[eventType];
+                for(var j=0, jlen=listeners.length; j<jlen; j++) {
+                    listener = listeners[j];
+                    if(listener.func === handler[eventType] && listener.obj === handler) {
+                        flag = true;
+                        break;
+                    }
+                }
+                if(!flag) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        function noneRegistered() {
+            var eventTypes = ['mousedown', 'mouseup', 'mousemove', 'click', 'dblclick'],
+                eventType,
+                listeners,
+                listener;
+            for(var i=0, ilen=eventTypes.length; i<ilen; i++) {
+                eventType = eventTypes[i];
+                listeners = map.events.listeners[eventType];
+                for(var j=0, jlen=listeners.length; j<jlen; j++) {
+                    listener = listeners[j];
+                    if(listener.func === handler[eventType] && listener.obj === handler) {
+                        return false;
+                    }
+                }
+            }
+            return true;
+        }
+
+        // test
+
+        t.ok(allRegistered(), 'mouse listeners are registered');
+        handler.touchstart({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(noneRegistered(), 'mouse listeners are unregistered');
+        t.ok(handler.touch, 'handler.touch is set');
+
+        handler.deactivate();
+        t.ok(!handler.touch, 'handler.touch is not set');
+
+        // tear down
+
+        map.destroy();
+    }
+
+
+    //
+    // Sequence tests
+    // 
+    // Sequence tests basically involve executing a sequence of events
+    // and testing the resulting geometry.
+    //
+    // Below are tests for various drawing sequences. Tests can be
+    // added here each a non-working sequence is found.
+    //
+
+    // tap
+    function test_touch_sequence1(t) {
+        t.plan(8);
+
+        // set up
+
+        var log;
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Point(control, {
+            done: function(g, f) {
+                log = {geometry: g, feature: f};
+            }
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        // test
+
+        var ret;
+
+        // tap on (1, 0)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] no finalization');
+        t.eq(handler.point, null, '[touchstart] feature not modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(1, 0)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] no finalization');
+        t.eq(handler.point, null, '[touchmove] feature not modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-149, 75),
+                  "[touchend] correct point");
+        // tear down
+
+        map.destroy();
+    }
+
+    // tap-move
+    function test_touch_sequence2(t) {
+        t.plan(9);
+
+        // set up
+
+        var log;
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Point(control, {
+            done: function(g, f) {
+                log = {geometry: g, feature: f};
+            }
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        // test
+
+        var ret;
+
+        // tap-move (0, 0) -> (9, 0)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] no finalization');
+        t.eq(handler.point, null, null,
+             '[touchstart] feature not modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(9, 0)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] no finalization');
+        t.eq(handler.point, null,
+             '[touchmove] feature not modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] no finalization');
+        t.eq(handler.point, null,
+             '[touchend] feature not modified');
+
+        // tear down
+
+        map.destroy();
+    }
 
   </script>
 </head>
diff --git a/tests/Handler/Polygon.html b/tests/Handler/Polygon.html
index dba05cb..94e8feb 100644
--- a/tests/Handler/Polygon.html
+++ b/tests/Handler/Polygon.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_Polygon_constructor(t) {
         t.plan(3);
@@ -25,12 +25,23 @@
     }
 
     function test_Handler_Polygon_activation(t) {
-        t.plan(3);
-        var map = new OpenLayers.Map('map');
+        t.plan(5);
+        var log = [];
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
         var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Polygon(control, {});
+        control.handler = handler;
         map.addControl(control);
-        var handler = new OpenLayers.Handler.Polygon(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
         handler.active = true;
+
         var activated = handler.activate();
         t.ok(!activated,
              "activate returns false if the handler was already active");
@@ -38,41 +49,78 @@
         activated = handler.activate();
         t.ok(activated,
              "activate returns true if the handler was not already active");
+        t.ok(handler.layer instanceof OpenLayers.Layer.Vector,
+             "activate creates a vector layer");
+        t.ok(handler.layer.map == map,
+             "activate adds the vector layer to the map");
         activated = handler.deactivate();
         t.ok(activated,
              "deactivate returns true if the handler was active already");
-        map.destroy();     
+
+        map.destroy();
+    }
+
+    // See: http://trac.osgeo.org/openlayers/ticket/3179
+    function test_activate_before_map_is_centered(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map('map', {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control();
+        var handler = new OpenLayers.Handler.Polygon(control, {});
+        control.handler = handler;
+        map.addControl(control);
+
+        var error;
+        try {
+            handler.activate();
+            error = false;
+        } catch(err) {
+            error = true;
+        }
+        t.ok(!error, "no error on activate");
     }
 
-    function test_Handler_Polygon_bounds(t) {
+    function test_bounds_stopDown_true(t) {
         t.plan(2);
         var map = new OpenLayers.Map('map');
         map.addLayer(new OpenLayers.Layer.WMS("", "", {}));
         map.zoomToMaxExtent();
         var control = new OpenLayers.Control();
         map.addControl(control);
-        var handler = new OpenLayers.Handler.Polygon(control, {});
+        var handler = new OpenLayers.Handler.Polygon(control, {},
+                {stopDown: true, stopUp: true});
         var activated = handler.activate();
-
+        // click on (150, 75)
         var evt = {xy: new OpenLayers.Pixel(150, 75), which: 1};
+        handler.mousemove(evt);
         handler.mousedown(evt);
         handler.mouseup(evt);
-        var evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
+        // click on (175, 100)
+        evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
         handler.mousemove(evt);
         handler.mousedown(evt);
         handler.mouseup(evt);
         t.ok(handler.line.geometry.getBounds().equals(new OpenLayers.Bounds(0,-35.15625,35.15625,0)), "Correct bounds");
-        var evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
+        // mousedown on (175, 100)
+        evt = {xy: new OpenLayers.Pixel(175, 100), which: 1};
         handler.mousedown(evt);
-        var evt = {xy: new OpenLayers.Pixel(125, 100), which: 1};
+        // mousemove to (125, 100)
+        evt = {xy: new OpenLayers.Pixel(125, 100), which: 1};
         handler.mousemove(evt);
+        // test that the bounds have changed
         t.ok(!handler.polygon.geometry.getBounds().equals(new OpenLayers.Bounds(0,-35.15625,35.15625,0)),
              "Correct bounds after dragging without letting go. (Came out as "+handler.line.geometry.getBounds().toBBOX() + ".)");
         map.destroy();     
     }
 
     function test_callbacks(t) {
-        t.plan(15);
+        t.plan(39);
         var map = new OpenLayers.Map("map", {
             resolutions: [1]
         });
@@ -83,57 +131,143 @@
         map.addLayer(layer);
         var control = new OpenLayers.Control({
         });
-        var log = {};
+        var logs = [], log;
         var handler = new OpenLayers.Handler.Polygon(control, {
             create: function() {
-                log.type = "create",
-                log.args = arguments
+                logs.push({type: "create", args: arguments});
+            },
+            point: function() {
+                logs.push({type: "point", args: arguments});
             },
             modify: function() {
-                log.type = "modify",
-                log.args = arguments
+                logs.push({type: "modify", args: arguments});
             },
             done: function() {
-                log.type = "done",
-                log.args = arguments
+                logs.push({type: "done", args: arguments});
             },
             cancel: function() {
-                log.type = "cancel",
-                log.args = arguments
+                logs.push({type: "cancel", args: arguments});
             }
+        },
+        {
+            pixelTolerance: 0
         });
         control.handler = handler;
         map.addControl(control);
         map.setCenter(new OpenLayers.LonLat(0, 0), 0);
         
-        // mock up feature drawing
+        // create polygon
         handler.activate();
-        // click at 0, 0
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
-        t.eq(log.type, "create", "[mousedown] create called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75), "[mousedown] correct vertex");
-        t.ok(log.args[1] === handler.polygon, "[mousedown] correct sketch feature");
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 2, "[mousemove] called back");
+        log = logs.shift();
+        t.eq(log.type, "create", "[activate] create called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] == handler.polygon,
+             "[mousemove] correct feature");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousemove] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.polygon,
+             "[mousemove] correct feature");
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 1, "[mousedown] called back");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousedown] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mousedown] correct point");
+        t.ok(log.args[1] === handler.polygon,
+             "[mousedown] correct feature");
+        // mouse up
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        t.eq(logs.length, 2, "[mouseup] called back twice");
+        log = logs.shift();
+        t.eq(log.type, "point", "[mouseup] point called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mouseup] correct point");
+        var geom = new OpenLayers.Geometry.Polygon([
+            new OpenLayers.Geometry.LinearRing([
+                new OpenLayers.Geometry.Point(-150, 75)
+            ])
+        ]);
+        geom.components[0].addComponent(
+            new OpenLayers.Geometry.Point(-150, 75),
+            geom.components[0].components.length
+        );
+        t.geom_eq(log.args[1], geom, "[mouseup] correct polygon");
+        log = logs.shift();
         t.eq(log.type, "modify", "[mouseup] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75), "[mouseup] correct vertex");
-        t.ok(log.args[1] === handler.polygon, "[mouseup] correct sketch feature");
-        // move to 10, 10 and click
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 75),
+                  "[mouseup] correct point");
+        t.ok(log.args[1] == handler.polygon,
+             "[mouseup] correct feature");
+        // mouse move
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 1, "[mousemove] called back");
+        log = logs.shift();
         t.eq(log.type, "modify", "[mousemove] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-140, 65), "[mousemove] correct vertex");
-        t.ok(log.args[1] === handler.polygon, "[mouseup] correct sketch feature");
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-140, 65),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.polygon,
+             "[mousemove] correct feature");
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
+        t.eq(logs.length, 1, "[mousedown] called back");
+        log = logs.shift();
+        t.eq(log.type, "modify", "[mousedown] modify called");
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-140, 65),
+                  "[mousedown] correct point");
+        t.ok(log.args[1] === handler.polygon,
+             "[mousedown] correct feature");
+        // mouse up
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
+        log = logs.shift();
+        log = logs.shift();
         // move to 0, 10 and double click
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(0, 10)});
+        // mouse move
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 10)});
+        t.eq(logs.length, 1, "[mousemove] called back");
+        log = logs.shift();
         t.eq(log.type, "modify", "[mousemove] modify called");
-        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 65), "[mousemove] correct vertex");
-        t.ok(log.args[1] === handler.polygon, "[mouseup] correct sketch feature");
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 10)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(0, 10)});
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 10)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(0, 10)});
-        handler.dblclick({type: "dblclick", xy: new OpenLayers.Pixel(0, 10)});
+        t.geom_eq(log.args[0], new OpenLayers.Geometry.Point(-150, 65),
+                  "[mousemove] correct point");
+        t.ok(log.args[1] === handler.polygon,
+             "[mousemove] correct feature");
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 10)});
+        t.eq(logs.length, 1, "[mousedown] not called back");
+        log = logs.shift();
+        // mouse up
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 10)});
+        t.eq(logs.length, 2, "[mouseup] called back");
+        log = logs.shift();
+        log = logs.shift();
+        // mouse down
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 10)});
+        t.eq(logs.length, 0, "[mousedown] not called back");
+        // mouse up
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 10)});
+        t.eq(logs.length, 0, "[mouseup] not called back");
+        // dblclick
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(0, 10)});
+        t.eq(logs.length, 1, "[dblclick] called back");
+        log = logs.shift();
         t.eq(log.type, "done", "[dblclick] done called");
         t.geom_eq(
             log.args[0],
@@ -147,13 +281,405 @@
             ]),
             "[dblclick] correct polygon"
         );
+        // cancel
+        handler.cancel();
+        t.eq(logs.length, 1, "[cancel] called back");
+        log = logs.shift();
+        t.eq(log.type, "cancel", "[cancel] canced called");
+
+        map.destroy();
+    }        
+
+    function test_toggle_freehand(t) {
+        t.plan(2);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control, {
+            done: function(g) {
+                log++;
+            }
+        }, {persist: true});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        log = 0;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.eq(log, 1, "feature drawn when shift pressed on mousedown");
+
+        log = 0;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: false});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.eq(log, 0, "feature not drawn when shift not pressed on mousedown");
+    }
+
+    function test_persist(t) {
+        t.plan(4);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control, {});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        handler.persist = false;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature1 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(2, 2)});
+        t.ok(feature1.layer == null, "a) feature1 destroyed");
+
+        handler.persist = true;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature2 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(2, 2)});
+        t.ok(feature2.layer != null, "b) feature2 not destroyed");
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature3 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(2, 2)});
+        t.ok(feature3.layer != null, "c) feature3 not destroyed");
+        t.ok(feature2.layer == null, "c) feature2 destroyed");
+
+        map.destroy();
+    }
+
+    function test_persist_freehand(t) {
+        t.plan(6);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control, {});
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+
+        handler.persist = false;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature1 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        t.ok(feature1.layer == null, "a) feature1 destroyed");
+
+        handler.persist = true;
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature2 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        t.ok(feature2.layer != null, "b) feature2 not destroyed");
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        var feature3 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        t.ok(feature3.layer != null, "c) feature3 not destroyed");
+        t.ok(feature2.layer == null, "c) feature2 destroyed");
+
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        feature4 = handler.polygon;
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0), shiftKey: false});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1), shiftKey: true});
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(2, 2), shiftKey: true});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0), shiftKey: true});
+        t.ok(feature4.layer != null, "d) feature4 not destroyed");
+        t.ok(feature3.layer == null, "c) feature3 destroyed");
+
+        map.destroy();
+    }
+
+    function test_rings(t) {
+        t.plan(12);
+
+        var log = [];
+        var map = new OpenLayers.Map({
+            div: "map",
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            layers: [
+                new OpenLayers.Layer.Vector(null, {
+                    isBaseLayer: true,
+                    eventListeners: {
+                        featureadded: function(event) {
+                            log.push(event);
+                        },
+                        sketchmodified: function(event) {
+                            log.push(event);
+                        },
+                        sketchcomplete: function(event) {
+                            log.push(event);
+                        }
+                    }
+                })
+            ],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        // create control for drawing polygons with holes
+        var draw = new OpenLayers.Control.DrawFeature(
+            map.layers[0],
+            OpenLayers.Handler.Polygon,
+            {handlerOptions: {
+                holeModifier: "altKey",
+                pixelTolerance: 0
+            }}
+        );
+        map.addControl(draw);
+        draw.activate();
+        
+        var event;
+        function trigger(type, event) {
+            map.events.triggerEvent(type, OpenLayers.Util.extend({}, event));
+        }
+        
+        // a) draw a polygon
+        log = [];
+        // start at -9, 9
+        event = {xy: new OpenLayers.Pixel(-9, 9)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -1, 9
+        event = {xy: new OpenLayers.Pixel(-1, 9)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -1, 1
+        event = {xy: new OpenLayers.Pixel(-1, 1)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -9, 1
+        event = {xy: new OpenLayers.Pixel(-9, 1)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // finish
+        event = {xy: new OpenLayers.Pixel(-9, 1)};
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        trigger("dblclick", event);
+        
+        // make assertions
+        t.eq(log.length, 14, "a) correct number of events");
+        t.eq(log[log.length-1].type, "featureadded", "a) featureadded event last");
+        t.eq(log[log.length-1].feature.geometry.getArea(), 64, "a) correct polygon area");
+
+        // b) draw a hole
+        log = [];
+        // start at -6, 6
+        event = {xy: new OpenLayers.Pixel(-6, 6), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -3, 6
+        event = {xy: new OpenLayers.Pixel(-3, 6), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -3, 3
+        event = {xy: new OpenLayers.Pixel(-3, 3), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -6, 3
+        event = {xy: new OpenLayers.Pixel(-6, 3), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // finish
+        event = {xy: new OpenLayers.Pixel(-6, 3), altKey: true};
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        trigger("dblclick", event);
+        
+        // make assertions
+        t.eq(log.length, 13, "b) correct number of events");
+        t.eq(log[log.length-1].type, "sketchcomplete", "b) sketchcomplete event last");
+        t.eq(log[log.length-1].feature.geometry.getArea(), 55, "b) correct polygon area");
+        
+
+        // c) draw a polygon that overlaps the first
+        log = [];
+        // start at -2, 2
+        event = {xy: new OpenLayers.Pixel(-2, 2)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to 2, 2
+        event = {xy: new OpenLayers.Pixel(2, 2)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to 2, -2
+        event = {xy: new OpenLayers.Pixel(2, -2)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -2, -2
+        event = {xy: new OpenLayers.Pixel(-2, -2)};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // finish
+        event = {xy: new OpenLayers.Pixel(-2, -2)};
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        trigger("dblclick", event);
+        
+        // make assertions
+        t.eq(log.length, 14, "c) correct number of events");
+        t.eq(log[log.length-1].type, "featureadded", "c) featureadded event last");
+        t.eq(log[log.length-1].feature.geometry.getArea(), 16, "c) correct polygon area");
+
+        // d) draw a hole that tries to go outside the exterior ring
+        log = [];
+        // start at -1, 1
+        event = {xy: new OpenLayers.Pixel(-1, 1), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to 1, 1
+        event = {xy: new OpenLayers.Pixel(1, 1), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // try to draw to -8, 8 (ouside active polygon)
+        event = {xy: new OpenLayers.Pixel(-8, 8), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to 1, -1
+        event = {xy: new OpenLayers.Pixel(1, -1), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // draw to -1, -1
+        event = {xy: new OpenLayers.Pixel(-1, -1), altKey: true};
+        trigger("mousemove", event);
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        // finish
+        event = {xy: new OpenLayers.Pixel(-1, 1), altKey: true};
+        trigger("mousedown", event);
+        trigger("mouseup", event);
+        trigger("dblclick", event);
+        
+        // make assertions
+        t.eq(log.length, 18, "d) correct number of events");
+        t.eq(log[log.length-1].type, "sketchcomplete", "d) sketchcomplete event last");
+        t.eq(log[log.length-1].feature.geometry.getArea(), 12, "d) correct polygon area");
         
-        // mock up sketch cancel
-        handler.mousedown({type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
-        handler.mouseup({type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
-        handler.mousemove({type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
-        handler.deactivate();
-        t.eq(log.type, "cancel", "[deactivate while drawing] cancel called");
         
         map.destroy();
     }        
@@ -191,7 +717,416 @@
         map.destroy();     
     }
 
+    function test_insertXY(t) {
+        t.plan(3);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control.DrawFeature(
+            layer, OpenLayers.Handler.Polygon
+        );
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        control.activate();
+        var handler = control.handler;
+        
+        function userClick(x, y) {
+            var px = new OpenLayers.Pixel(x, y);
+            handler.mousemove({type: "mousemove", xy: px});
+            handler.mousedown({type: "mousedown", xy: px});
+            handler.mouseup({type: "mouseup", xy: px});
+        }
+
+        // add points at px(0, 0) and px(10, 10)
+        userClick(0, 0);
+        userClick(10, 10);
+        t.eq(handler.line.geometry.components.length, 4, "ring has four points after two clicks");
+        
+        // programmatically add a point
+        handler.insertXY(5, 6);
+        t.eq(handler.line.geometry.components.length, 5, "ring has five points after insertXY");
+        t.geom_eq(
+            handler.line.geometry.components[2],
+            new OpenLayers.Geometry.Point(5, 6),
+            "third point comes from insertXY"
+        );
+        
+        map.destroy();
+        
+    }
+
+    //
+    // Sequence tests
+    // 
+    // Sequence tests basically involve executing a sequence of events
+    // and testing the resulting geometry.
+    //
+    // Below are tests for various drawing sequences. Tests can be
+    // added here each a non-working sequence is found.
+    //
+
+    // stopDown:true, stopUp:true
+    // a) click on (0, 0)
+    // b) mousedown on (0.5, 0.5)
+    // c) mouseup on (1, 1)
+    // d) click on (0, 10)
+    // e) dblclick on (10, 10)
+    function test_sequence1(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control,
+            {done: function(g) { log.geometry = g; }},
+            {stopDown: true, stopUp: true,
+            pixelTolerance: 0}
+        );
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+        log = {};
+
+        // a) click on (0, 0)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        // b) mousedown on (0.5, 0.5)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0.5, 0.5)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0.5, 0.5)});
+        // c) mouseup on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        // d) click on (0, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 10)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 10)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 10)});
+        // e) dblclick on (10, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.Polygon([
+                new OpenLayers.Geometry.LinearRing([
+                    new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                    new OpenLayers.Geometry.Point(-150, 65), // (0, 10)
+                    new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+                ])
+            ]), "geometry is correct");
+    }
+
+    // stopDown:false, stopUp:false
+    // a) click on (0, 0)
+    // b) mousedown on (0.5, 0.5)
+    // c) mouseup on (1, 1)
+    // d) click on (0, 10)
+    // e) dblclick on (10, 10)
+    function test_sequence2(t) {
+        t.plan(1);
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control,
+            {done: function(g) { log.geometry = g; }},
+            {stopDown: false, stopUp: false,
+            pixelTolerance: 0}
+        );
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+
+        handler.activate();
+        log = {};
+
+        // a) click on (0, 0)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
+        // b) mousedown on (0.5, 0.5)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0.5, 0.5)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0.5, 0.5)});
+        // c) mouseup on (1, 1)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+        // d) click on (0, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(0, 10)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(0, 10)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(0, 10)});
+        // e) dblclick on (10, 10)
+        handler.mousemove(
+            {type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mousedown(
+            {type: "mousedown", xy: new OpenLayers.Pixel(10, 10)});
+        handler.mouseup(
+            {type: "mouseup", xy: new OpenLayers.Pixel(10, 10)});
+        handler.dblclick(
+            {type: "dblclick", xy: new OpenLayers.Pixel(10, 10)});
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.Polygon([
+                new OpenLayers.Geometry.LinearRing([
+                    new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                    new OpenLayers.Geometry.Point(-150, 65), // (0, 10)
+                    new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+                ])
+            ]), "geometry is correct");
+    }
+
+    // a) tap
+    // b) tap
+    // c) doubletap
+    function test_touch_sequence1(t) {
+        t.plan(26);
+
+        // set up
+
+        var log;
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control, {
+            done: function(g, f) {
+                log = {type: 'done', geometry: g, feature: f};
+            },
+            modify: function(g, f) {
+                log = {type: 'modify', geometry: g, feature: f};
+            }
+        }, {
+            doubleTouchTolerance: 2
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        // test
+
+        var ret;
+
+        // tap on (0, 0)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(1, 0)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-150, 75),
+                  "[touchend] correct point");
+
+        // tap on (0, 10)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(1, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(0, 10)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-150, 65),
+                  "[touchend] correct point");
+
+        // doubletap on (10, 10)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(9, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(10, 10)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-140, 65),
+                  "[touchend] correct point");
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(11, 10)});
+        t.ok(!ret, '[touchstart] event does not propagate');
+        t.eq(log.type, 'done', '[touchend] feature finalized');
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.Polygon([
+                new OpenLayers.Geometry.LinearRing([
+                    new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                    new OpenLayers.Geometry.Point(-150, 65), // (0, 10)
+                    new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+                ])
+            ]), "[touchstart] geometry is correct");
+        log = null;
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] feature not finalized or modified');
+
+        // tear down
+
+        map.destroy();
+    }
+
+    // a) tap
+    // b) tap-move
+    // c) tap
+    // d) doubletap
+    function test_touch_sequence2(t) {
+        t.plan(32);
+
+        // set up
 
+        var log;
+        var map = new OpenLayers.Map("map", {
+            resolutions: [1]
+        });
+        var layer = new OpenLayers.Layer.Vector("foo", {
+            maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            isBaseLayer: true
+        });
+        map.addLayer(layer);
+        var control = new OpenLayers.Control({});
+        var handler = new OpenLayers.Handler.Polygon(control, {
+            done: function(g, f) {
+                log = {type: 'done', geometry: g, feature: f};
+            },
+            modify: function(g, f) {
+                log = {type: 'modify', geometry: g, feature: f};
+            }
+        }, {
+            doubleTouchTolerance: 2
+        });
+        control.handler = handler;
+        map.addControl(control);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        handler.activate();
+
+        // test
+
+        var ret;
+
+        // tap on (0, 0)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(1, 0)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(0, 0)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-150, 75),
+                  "[touchend] correct point");
+
+        // tap-move
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(1, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(20, 20)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] feature not finalized or modified');
+
+        // tap on (0, 10)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(1, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(0, 10)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-150, 65),
+                  "[touchend] correct point");
+
+        // doubletap on (10, 10)
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(9, 10)});
+        t.ok(ret, '[touchstart] event propagates');
+        t.eq(log, null, '[touchstart] feature not finalized or modified');
+        ret = handler.touchmove({xy: new OpenLayers.Pixel(10, 10)});
+        t.ok(ret, '[touchmove] event propagates');
+        t.eq(log, null, '[touchmove] feature not finalized or modified');
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log.type, 'modify', '[touchend] feature modified');
+        t.geom_eq(log.geometry, new OpenLayers.Geometry.Point(-140, 65),
+                  "[touchend] correct point");
+        log = null;
+        ret = handler.touchstart({xy: new OpenLayers.Pixel(11, 10)});
+        t.ok(!ret, '[touchstart] event does not propagate');
+        t.eq(log.type, 'done', '[touchend] feature finalized');
+        t.geom_eq(log.geometry,
+            new OpenLayers.Geometry.Polygon([
+                new OpenLayers.Geometry.LinearRing([
+                    new OpenLayers.Geometry.Point(-150, 75), // (0, 0)
+                    new OpenLayers.Geometry.Point(-150, 65), // (0, 10)
+                    new OpenLayers.Geometry.Point(-140, 65)  // (10, 10)
+                ])
+            ]), "[touchstart] geometry is correct");
+        log = null;
+        ret = handler.touchend({});
+        t.ok(ret, '[touchend] event propagates');
+        t.eq(log, null, '[touchend] feature not finalized or modified');
+
+        // tear down
+
+        map.destroy();
+    }
 
   </script>
 </head>
diff --git a/tests/Handler/RegularPolygon.html b/tests/Handler/RegularPolygon.html
index 21e6c36..3ce9e78 100644
--- a/tests/Handler/RegularPolygon.html
+++ b/tests/Handler/RegularPolygon.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     function test_Handler_RegularPolygon_constructor(t) {
         t.plan(3);
diff --git a/tests/Icon.html b/tests/Icon.html
index 09f09b8..ac542d2 100644
--- a/tests/Icon.html
+++ b/tests/Icon.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     var icon; 
     
diff --git a/tests/Kinetic.html b/tests/Kinetic.html
new file mode 100644
index 0000000..6ef01ce
--- /dev/null
+++ b/tests/Kinetic.html
@@ -0,0 +1,130 @@
+<html>
+<head>
+  <script src="OLLoader.js"></script>
+  <script type="text/javascript">
+
+    function test_Kinetic (t) {
+        t.plan(17);
+        var finish = false;
+        var results = {
+            110: {x: -2.7, y: -3.6, end: false},
+            120: {x: -2.1, y: -2.8, end: false},
+            130: {x: -1.5, y: -2.0, end: false},
+            140: {x: -0.9, y: -1.2, end: false},
+            150: {x: -0.3, y: -0.4, end: true}
+        };
+
+        var originalGetTime = Date.prototype.getTime;
+        Date.prototype.getTime = function() { return 0 };
+
+        var originalSetInterval = window.setInterval;
+        window.setInterval = function(callback, interval) {
+            while (!finish) {
+                var time = new Date().getTime();
+                Date.prototype.getTime = function() { return time+interval };
+                callback();
+            }
+        };
+
+        var kinetic = new OpenLayers.Kinetic({
+            deceleration: 0.01
+        });
+        kinetic.begin();
+        kinetic.update({x:0, y:0});
+        
+        Date.prototype.getTime = function() { return 100 };
+        var measure = kinetic.end({x:30, y:40});
+
+        t.eq(measure.speed, 0.5, "correct speed");
+        t.eq(measure.theta, Math.PI - Math.atan(40/30), "correct angle");
+
+        // fake timer id    
+        kinetic.timerId = 0;
+        kinetic.move(measure, function(x, y, end) {
+            var result = results[new Date().getTime()];
+            t.eq(Math.round(x * 1000) / 1000, result.x, "correct x");
+            t.eq(Math.round(y * 1000) / 1000, result.y, "correct y");
+            t.eq(end, result.end, "correct end");
+            finish = end;
+        });
+        
+        Date.prototype.getTime = originalGetTime;
+        window.setInterval = originalSetInterval;
+    }
+
+    function test_Angle (t) {
+        t.plan(8);
+        var results = [
+            {speed: 0.5, theta: Math.round((Math.PI - Math.atan(40/30)) * 1000000) / 1000000},
+            {speed: 0.5, theta: Math.round((Math.PI + Math.atan(40/30)) * 1000000) / 1000000},
+            {speed: 0.5, theta: Math.round((- Math.atan(40/30)) * 1000000) / 1000000},
+            {speed: 0.5, theta: Math.round((Math.atan(40/30)) * 1000000) / 1000000}
+        ];
+
+        var originalGetTime = Date.prototype.getTime;
+        Date.prototype.getTime = function() { return 0 };
+
+        var kinetic = new OpenLayers.Kinetic();
+        kinetic.begin();
+        kinetic.update({x:0, y:0});
+        
+        Date.prototype.getTime = function() { return 100 };
+        var measure = kinetic.end({x:30, y:40});
+
+        t.eq(measure.speed, results[0].speed, "correct speed");
+        t.eq(Math.round(measure.theta * 1000000) / 1000000,
+                results[0].theta, "correct angle");
+
+
+        var originalGetTime = Date.prototype.getTime;
+        Date.prototype.getTime = function() { return 0 };
+
+        var kinetic = new OpenLayers.Kinetic();
+        kinetic.begin();
+        kinetic.update({x:0, y:0});
+        
+        Date.prototype.getTime = function() { return 100 };
+        var measure = kinetic.end({x:30, y:-40});
+
+        t.eq(measure.speed, results[1].speed, "correct speed");
+        t.eq(Math.round(measure.theta * 1000000) / 1000000,
+                results[1].theta, "correct angle");
+
+
+        var originalGetTime = Date.prototype.getTime;
+        Date.prototype.getTime = function() { return 0 };
+
+        var kinetic = new OpenLayers.Kinetic();
+        kinetic.begin();
+        kinetic.update({x:0, y:0});
+        
+        Date.prototype.getTime = function() { return 100 };
+        var measure = kinetic.end({x:-30, y:-40});
+
+        t.eq(measure.speed, results[2].speed, "correct speed");
+        t.eq(Math.round(measure.theta * 1000000) / 1000000,
+                results[2].theta, "correct angle");
+
+        var originalGetTime = Date.prototype.getTime;
+        Date.prototype.getTime = function() { return 0 };
+
+        var kinetic = new OpenLayers.Kinetic();
+        kinetic.begin();
+        kinetic.update({x:0, y:0});
+        
+        Date.prototype.getTime = function() { return 100 };
+        var measure = kinetic.end({x:-30, y:40});
+
+        t.eq(measure.speed, results[3].speed, "correct speed");
+        t.eq(Math.round(measure.theta * 1000000) / 1000000,
+                results[3].theta, "correct angle");
+
+        Date.prototype.getTime = originalGetTime;
+    }
+  </script>
+</head>
+<body>
+    <div id="map" style="width: 600px; height: 300px;"/>
+    <div style="display: none;"><div id="invisimap"></div></div>
+</body>
+</html>
diff --git a/tests/Lang.html b/tests/Lang.html
index 3251e34..9f4fa9b 100644
--- a/tests/Lang.html
+++ b/tests/Lang.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../lib/OpenLayers.js"></script>
+    <script src="OLLoader.js"></script>
     <script src="../lib/OpenLayers/Lang/en-CA.js" type="text/javascript"></script>
     <script src="../lib/OpenLayers/Lang/fr.js" type="text/javascript"></script>
     <script type="text/javascript">
@@ -70,19 +70,19 @@
         var keys = ['test1', 'test3', 'noKey'];
         var codes = ['en', 'en-CA', 'fr', 'fr-CA', 'sw'];
         var result = {
-            'en': {'overlays':'Overlays', 
+            'en': {'Overlays':'Overlays', 
                    'unhandledRequest':'Unhandled request return foo', 
                    'noKey':'noKey'},
-            'en-CA': {'overlays':'Overlays',
+            'en-CA': {'Overlays':'Overlays',
                    'unhandledRequest':'Unhandled request return foo', 
                       'noKey':'noKey'},
-            'fr': {'overlays':'Calques', 
+            'fr': {'Overlays':'Calques', 
                    'unhandledRequest':'Requête non gérée, retournant foo',
                   'noKey':'noKey'},
-            'fr-CA': {'overlays':'Calques', //this should result in 'fr'
+            'fr-CA': {'Overlays':'Calques', //this should result in 'fr'
                    'unhandledRequest':'Requête non gérée, retournant foo',
                   'noKey':'noKey'},
-            'sw': {'overlays':'Overlays', //this should result in 'en'
+            'sw': {'Overlays':'Overlays', //this should result in 'en'
                    'unhandledRequest':'Unhandled request return foo', 
                   'noKey':'noKey'}
         };
@@ -92,7 +92,7 @@
         for (var i=0; i<codes.length; ++i) {
             var code = codes[i];
             OpenLayers.Lang.setCode(code);
-            t.eq(OpenLayers.Lang.translate('overlays'), result[code]['overlays'], "simple key lookup in "+code);
+            t.eq(OpenLayers.Lang.translate('Overlays'), result[code]['Overlays'], "simple key lookup in "+code);
             t.eq(OpenLayers.Lang.translate('unhandledRequest',{'statusText':'foo'}), 
                         result[code]['unhandledRequest'], "lookup with argument substitution in "+code);
             t.eq(OpenLayers.Lang.translate('noKey'), result[code]['noKey'], "invalid key returns the key in "+code);
diff --git a/tests/Layer.html b/tests/Layer.html
index 9938ac7..92976c6 100644
--- a/tests/Layer.html
+++ b/tests/Layer.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
@@ -82,9 +82,9 @@
 
     function test_Layer_addOptions (t) {
         
-        t.plan( 19 );
+        t.plan( 20 );
 
-        var map = new OpenLayers.Map("map");
+        var map = new OpenLayers.Map("map", {allOverlays: true});
         var options = { chicken: 151, foo: "bar" };
         var layer = new OpenLayers.Layer('Test Layer', options);
         map.addLayer(layer);
@@ -156,6 +156,17 @@
         layer.addOptions({projection: "EPSG:900913"});
         t.ok(layer.projection instanceof OpenLayers.Projection,
              "addOptions creates a Projection object when given a projection string");
+        
+        log = null;
+        // adding a 2nd layer to see if it gets reinitialized properly
+        var layer2 = new OpenLayers.Layer(null, {
+            moveTo: function(bounds) {
+                log = bounds;
+            }
+        });
+        map.addLayer(layer2);
+        layer.addOptions({maxResolution: 0.00034332275390625}, true);
+        t.eq(log.toBBOX(), map.getExtent().toBBOX(), "when reinitialize is set to true, changing base layer's resolution property reinitializes all layers.");
 
         map.removeLayer(layer);
         log = 0;
@@ -584,7 +595,6 @@
              "(fractionalZoom) doesn't return zoom below zero");
         t.eq(layer.getZoomForResolution(1).toPrecision(6), (layer.resolutions.length - 1).toPrecision(6),
              "(fractionalZoom) doesn't return zoom above highest index");
-
     }
     
     function test_Layer_redraw(t) {
@@ -751,16 +761,27 @@
     
     function test_afterAdd(t) {
         
-        t.plan(1);
+        t.plan(4);
         
+        var log = [];
         var map = new OpenLayers.Map("map");
-        var layer = new OpenLayers.Layer(null, {isBaseLayer: true});
+        var layer = new OpenLayers.Layer(null, {
+            isBaseLayer: true,
+            eventListeners: {
+                "added": function(evt) {
+                    log.push(evt);
+                }
+            }
+        });
         var hasBase = false;
         layer.afterAdd = function() {
             hasBase = !!(layer.map && layer.map.baseLayer);
         }
         map.addLayer(layer);
         t.eq(hasBase, true, "when afterAdd is called, map has a base layer");
+        t.eq(log.length, 1, "added event triggered");
+        t.eq(log[0].map.id, map.id, "added listener argument with correct map");
+        t.eq(log[0].layer.id, layer.id, "added listener argument with correct layer");
         
     }
     
@@ -806,11 +827,18 @@
 
 
     function test_Layer_destroy (t) {
-        t.plan( 5 );    
+        t.plan( 8 );    
 
+        var log = [];
         var map = new OpenLayers.Map('map');
         
-        layer = new OpenLayers.Layer('Test Layer');
+        layer = new OpenLayers.Layer('Test Layer', {
+            eventListeners: {
+                "removed": function(evt) {
+                    log.push(evt);
+                }
+            }
+        });
 
         map.addLayer(layer);
 
@@ -822,6 +850,9 @@
         t.eq( layer.options, null, "layer.options is null after destroy" );
 
         t.eq(map.layers.length, 0, "layer removed from map");
+        t.eq(log.length, 1, "removed event triggered");
+        t.eq(log[0].map.id, map.id, "removed listener argument with correct map");
+        t.eq(log[0].layer.id, layer.id, "removed listener argument with correct layer");
         
         map.destroy();
 
diff --git a/tests/Layer/ArcGIS93Rest.html b/tests/Layer/ArcGIS93Rest.html
index de37de4..a8ff410 100644
--- a/tests/Layer/ArcGIS93Rest.html
+++ b/tests/Layer/ArcGIS93Rest.html
@@ -2,7 +2,7 @@
 <head>
     <script type="text/javascript">var oldAlert = window.alert, gMess; window.alert = function(message) {gMess = message; return true;};</script>
     <script type="text/javascript">window.alert = oldAlert;</script>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -94,7 +94,7 @@
         var params = {layers: "show:0,2"};
         t.plan( 2 );
         var map = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.ArcGIS93Rest(name, url, params);
+        layer = new OpenLayers.Layer.ArcGIS93Rest(name, url, params, {buffer: 2});
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0),5);
         t.eq( layer.grid.length, 7, "Grid rows is correct." );
diff --git a/tests/Layer/ArcGISCache.html b/tests/Layer/ArcGISCache.html
new file mode 100644
index 0000000..d1ae00e
--- /dev/null
+++ b/tests/Layer/ArcGISCache.html
@@ -0,0 +1,253 @@
+<html>
+<head>
+  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../../lib/OpenLayers/Layer/ArcGISCache.js" type="text/javascript"></script>
+  <script src="ArcGISCache.json" type="text/javascript"></script>
+  <script type="text/javascript">
+    var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
+    var layer; 
+
+    var name = 'Test Layer';
+    var url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer";
+    var options = { }; 
+
+    function test_Layer_ARCGISCACHE_constructor (t) {
+        t.plan( 1 );
+                       
+        var layer = new OpenLayers.Layer.ArcGISCache(name, url, options);
+        t.ok( layer instanceof OpenLayers.Layer.ArcGISCache, "returns OpenLayers.Layer.ArcGISCache object" );
+    }
+    
+    function test_Layer_ARCGISCACHE_autoConfigure (t) {
+        t.plan( 5 );
+        var layerInfo = capabilitiesObject;
+        
+        //initialize the layer using the JSON object from an arcgis server
+        //SEE: ArcGISCache.json
+        var layer = new OpenLayers.Layer.ArcGISCache(name, url, {
+            layerInfo: layerInfo
+        });
+        t.ok( layer instanceof OpenLayers.Layer.ArcGISCache, "returns OpenLayers.Layer.ArcGISCache object" );        
+        t.ok( layer.projection = 'EPSG:' + layerInfo.spatialReference.wkid, "projection is set correctly");
+        t.ok( layer.units = 'm', "map units are set correctly");
+        t.ok( layer.resolutions && layer.resolutions.length == 20, "resolutions are initialized from LOD objects properly");
+        
+        if (layerInfo.tileInfo) {
+            if (layerInfo.tileInfo.width && layerInfo.tileInfo.height) {
+                var tileSize = new OpenLayers.Size(layerInfo.tileInfo.width, layerInfo.tileInfo.height);
+                t.ok((layer.tileSize.width == tileSize.width) && (layer.tileSize.height == tileSize.height), "tile size is set properly");
+            }
+            else {
+                var tileSize = new OpenLayers.Size(layerInfo.tileInfo.cols, layerInfo.tileInfo.rows);
+                t.ok((layer.tileSize.width == tileSize.width) && (layer.tileSize.height == tileSize.height), "tile size is set properly");
+            }
+        }        
+    }
+    
+    /**
+     * lets make sure we're getting the correct urls back with a basic auto-configure setup 
+     */
+    function test_Layer_ARCGISCACHE_autoConfigure_URLS(t) {
+        var layerInfo = capabilitiesObject;
+        
+        //initialize the layer using the JSON object from an arcgis server
+        //SEE: ArcGISCache.json
+        var layer = new OpenLayers.Layer.ArcGISCache(name, url, {
+            layerInfo: layerInfo
+        });
+        var map = new OpenLayers.Map('map', { 
+            maxExtent: layer.maxExtent,
+            units: layer.units,
+            resolutions: layer.resolutions,
+            numZoomLevels: layer.numZoomLevels,
+            tileSize: layer.tileSize,
+            projection: layer.displayProjection,
+            StartBounds: layer.initialExtent    
+        });
+        map.addLayers([layer]);
+    
+        //this set represents a few edge cases, and some more specific cases, it is by no means exhaustive,
+        var urlSets = [
+            { 
+                bounds: new OpenLayers.Bounds(-36787612.973083,-22463925.368666, 43362420.398053,17611091.316902),
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/0/0/0" 
+            },            
+            { 
+                bounds: new OpenLayers.Bounds(-31793889.951914,4589319.785415, 8281126.733654,24626828.128199),
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/1/0/0"
+            },            
+            { 
+                bounds: new OpenLayers.Bounds(-24639873.181971,12676071.933457, -4602364.839187,22694826.104849),
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/2/0/0" 
+            },
+            { 
+                bounds: new OpenLayers.Bounds(-15521241.455665,11580270.695961, 4516266.887119,21599024.867353),
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/2/0/1" 
+            },                    
+            { 
+                bounds: new OpenLayers.Bounds(-9265879.5435993,2870892.9335638, -8639707.4078873,3183979.0014198) ,
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/7/54/35" 
+            },
+            { 
+                bounds: new OpenLayers.Bounds(-10741909.131798,4684560.1640365, -10585366.09787,4762831.6810005),
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/9/195/119" 
+            },
+            { 
+                bounds: new OpenLayers.Bounds(-13668958.106938,4456961.2611504, -13512415.07301,4535232.7781144),
+                url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/9/198/82" 
+            }
+        ];
+        
+        t.plan( urlSets.length );        
+        for(var i=0;i<urlSets.length;i++) 
+        {
+            var o = urlSets[i];            
+            map.zoomToExtent(o.bounds, true);
+            
+            var resultUrl = layer.getURL(o.bounds);            
+            t.ok( resultUrl == o.url, "correct tile returned for " + o.bounds);        
+        }
+    }    
+    
+    /**
+     * Test the formatting for the 'direct' urls, especially when not auto-configuring the layer
+     */
+    function test_Layer_ARCGISCACHE_direct(t) {
+        var roadsUrl = 'http://serverx.esri.com/arcgiscache/DG_County_roads_yesA_backgroundDark/Layers/_alllayers';
+        var urlSets = [
+            { 
+                bounds: new OpenLayers.Bounds(289244.67443386,4317153.7421985, 306178.04163392,4325620.4257985),
+                url: roadsUrl + "/L00/R0000029e/C0000027f.png" 
+            },            
+            { 
+                bounds: new OpenLayers.Bounds(308658.51534463,4303230.0164352, 325591.88254469,4311696.7000352),
+                url: roadsUrl + "/L00/R000002a0/C00000282.png"
+            },            
+            { 
+                bounds: new OpenLayers.Bounds(311136.39626998,4318933.8711555, 311678.26402038,4319204.8050307) ,
+                url: roadsUrl + "/L05/R000051e0/C00004e52.png" 
+            }
+        ];
+        t.plan( urlSets.length );
+    
+    
+        //perform the exact setup from the arcgiscache_direct example
+            
+        // First 4 variables extracted from conf.xml file        
+        // Tile layers & map MUST have same projection 
+        var proj='EPSG:26915';
+            
+        // Layer can also accept serverResolutions array
+        // to deal with situation in which layer resolution array & map resolution
+        // array are out of sync
+        var mapResolutions = [33.0729828126323,16.9333672000677,8.46668360003387,4.23334180001693,2.11667090000847,1.05833545000423];
+
+        // For this example this next line is not really needed, 256x256 is default.
+        // However, you would need to change this if your layer had different tile sizes 
+        var tileSize = new OpenLayers.Size(256,256);
+        
+        // Tile Origin is required unless it is the same as the implicit map origin
+        // which can be effected by several variables including maxExtent for map or base layer 
+        var agsTileOrigin = new OpenLayers.LonLat(-5120900,9998100);
+        
+        // This can really be any valid bounds that the map would reasonably be within 
+        var mapExtent = new OpenLayers.Bounds(289310.8204,4300021.937,314710.8712,4325421.988);
+        
+
+        var map = new OpenLayers.Map('map', {
+            maxExtent:mapExtent,
+            controls: [
+                new OpenLayers.Control.Navigation(),
+                new OpenLayers.Control.LayerSwitcher(), 
+                new OpenLayers.Control.PanZoomBar(),
+                new OpenLayers.Control.MousePosition()]
+        });
+
+        var layer = new OpenLayers.Layer.ArcGISCache('Roads', roadsUrl, {
+            tileOrigin: agsTileOrigin,
+            resolutions: mapResolutions,
+            sphericalMercator: true,
+            maxExtent: mapExtent,
+            useArcGISServer: false,
+            isBaseLayer: true,
+            projection: proj
+        });
+        
+        map.addLayers([layer]);
+        map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
+
+        for(var i=0;i<urlSets.length;i++) 
+        {
+            var o = urlSets[i];            
+            map.zoomToExtent(o.bounds, true);
+            var resultUrl = layer.getURL(o.bounds);
+            t.ok( resultUrl == o.url, "correct tile returned for " + o.bounds);        
+        }
+    }
+        
+    /**
+     * Check our utility function for generating tile indexes against a file cache
+     */
+    function test_Layer_ARCGISCACHE_zeroPad(t) {
+        t.plan(4);
+    
+        var layer = new OpenLayers.Layer.ArcGISCache('test', null, { });
+
+        //some tile examples
+        t.ok('00000001' == layer.zeroPad(1, 8, 16), 'zeroPad should generate tile indexes properly ');
+        t.ok('00000020' == layer.zeroPad(32, 8, 16), 'zeroPad should generate tile indexes properly ');
+        t.ok('00000100' == layer.zeroPad(256, 8, 16), 'zeroPad should generate tile indexes properly ');
+        t.ok('00001000' == layer.zeroPad(4096, 8, 16), 'zeroPad should generate tile indexes properly ');        
+    }
+    
+    /**
+     * Check to ensure our LOD calculation will correctly avoid returning tile indexes less than zero
+     * (see http://trac.osgeo.org/openlayers/ticket/3169)
+     */
+    function test_Layer_ARCGISCACHE_tileBounds(t) {
+        t.plan(1);
+    
+        var layer = new OpenLayers.Layer.ArcGISCache('test', null, { });
+        var res = 264.583862501058;
+        layer.tileOrigin = new OpenLayers.LonLat(0.0, 650000.0);
+        layer.tileSize = new OpenLayers.Size(512, 512);
+        
+        // pick a point off the left of our tile origin  (would be a negative tile index)
+        var point = new OpenLayers.Geometry.Point(-123308.94829, 393128.85817);
+        
+        var tile = layer.getContainingTileCoords(point, res);
+        t.ok((tile.x >= 0 && tile.y >= 0), 'layer should not generate negative tile ranges for level of detail');
+    }
+
+   /*  
+    * Test that messing up the Array.prototype does not mess up the lods of the layer. 
+    * This messes up zooming when resolutions are very small/scales are very large/zoomed way in. 
+    */ 
+    function test_Layer_ARCGISCACHE_lods (t) { 
+        t.plan( 2 ); 
+        var layerInfo = capabilitiesObject; 
+
+        lods = layerInfo.tileInfo.lods.length; 
+
+        // mess up the Array prototype
+        Array.prototype.foo = function() { };
+
+        t.ok( lods == layerInfo.tileInfo.lods.length, 'proper number of "Levels of Detail" before initialization' ); 
+
+        // initialize the layer using the JSON object from an arcgis server 
+        // see: ArcGISCache.json 
+        var layer = new OpenLayers.Layer.ArcGISCache(name, url, { 
+            layerInfo: layerInfo 
+        }); 
+
+        t.ok( lods == layer.lods.length, 'proper number of "Levels of Detail" after initialization.' );         
+        // restore the Array prototype
+        delete Array.prototype.foo;
+    } 
+
+  </script>
+</head>
+<body>
+<div id="map" style="width:500px;height:550px;"></div>
+</body>
+</html>
diff --git a/tests/Layer/ArcGISCache.json b/tests/Layer/ArcGISCache.json
new file mode 100644
index 0000000..79dffa8
--- /dev/null
+++ b/tests/Layer/ArcGISCache.json
@@ -0,0 +1,334 @@
+var capabilitiesObject = {
+  "currentVersion" : 10.01, 
+  "serviceDescription" : "This map is designed to be used as a base map by GIS professionals and as a reference map by anyone.  The base map includes administrative boundaries, cities, water features, physiographic features, parks, landmarks, highways, roads, railways, airports, and buildings overlaid on land cover and shaded relief imagery for added context. The map was compiled from a variety of best available sources from several data providers, including the U.S. Geological Survey, F [...]
+  "mapName" : "Layers", 
+  "description" : "This map is designed to be used as a base map by GIS professionals and as a reference map by anyone.  The base map includes administrative boundaries, cities, water features, physiographic features, parks, landmarks, highways, roads, railways, airports, and buildings overlaid on land cover and shaded relief imagery for added context. The map was compiled from a variety of best available sources from several data providers, including the U.S. Geological Survey, Food and [...]
+  "copyrightText" : "Sources: USGS, FAO, NPS, EPA, ESRI, DeLorme, TANA, other suppliers", 
+  "layers" : [
+    {
+      "id" : 0, 
+      "name" : "Topographic Info", 
+      "parentLayerId" : -1, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : [1, 2, 3, 4], 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 1, 
+      "name" : "Elevation (m)", 
+      "parentLayerId" : 0, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 2, 
+      "name" : "Elevation (ft)", 
+      "parentLayerId" : 0, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 3, 
+      "name" : "Slope", 
+      "parentLayerId" : 0, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 4, 
+      "name" : "Aspect", 
+      "parentLayerId" : 0, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 5, 
+      "name" : "Places Info", 
+      "parentLayerId" : -1, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : [6, 7, 8, 9], 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 6, 
+      "name" : "Place Names (Country Level)", 
+      "parentLayerId" : 5, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 80000000
+    }, 
+    {
+      "id" : 7, 
+      "name" : "Place Names (State Level)", 
+      "parentLayerId" : 5, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 80000001, 
+      "maxScale" : 1500000
+    }, 
+    {
+      "id" : 8, 
+      "name" : "Place Names (County Level)", 
+      "parentLayerId" : 5, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 1500001, 
+      "maxScale" : 400000
+    }, 
+    {
+      "id" : 9, 
+      "name" : "Place Names (City Level)", 
+      "parentLayerId" : 5, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 399999, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 10, 
+      "name" : "Scale Descriptions", 
+      "parentLayerId" : -1, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }, 
+    {
+      "id" : 11, 
+      "name" : "Level 15  ~1:18K", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 25000, 
+      "maxScale" : 15001
+    }, 
+    {
+      "id" : 12, 
+      "name" : "Level 14  ~1:36K", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 50000, 
+      "maxScale" : 25001
+    }, 
+    {
+      "id" : 13, 
+      "name" : "Level 13  ~1:72K", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 100000, 
+      "maxScale" : 50001
+    }, 
+    {
+      "id" : 14, 
+      "name" : "Level 12  ~1:144K", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 288000, 
+      "maxScale" : 100000
+    }, 
+    {
+      "id" : 15, 
+      "name" : "Level 11  ~1:288K", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 575000, 
+      "maxScale" : 288000
+    }, 
+    {
+      "id" : 16, 
+      "name" : "Level 10  ~1:577K", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 1150000, 
+      "maxScale" : 575000
+    }, 
+    {
+      "id" : 17, 
+      "name" : "Level 9    ~1:1.15M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 2200000, 
+      "maxScale" : 1150000
+    }, 
+    {
+      "id" : 18, 
+      "name" : "Level 8    ~1:2.3M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 4500000, 
+      "maxScale" : 2200000
+    }, 
+    {
+      "id" : 19, 
+      "name" : "Level 7    ~1:4.5M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 9000000, 
+      "maxScale" : 4500000
+    }, 
+    {
+      "id" : 20, 
+      "name" : "Level 6    ~1:9.2M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 18000000, 
+      "maxScale" : 9000000
+    }, 
+    {
+      "id" : 21, 
+      "name" : "Level 5    ~1:18M ", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 36000000, 
+      "maxScale" : 18000000
+    }, 
+    {
+      "id" : 22, 
+      "name" : "Level 4    ~1:36M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 72000000, 
+      "maxScale" : 36000000
+    }, 
+    {
+      "id" : 23, 
+      "name" : "Level 3    ~1:72M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 75500000, 
+      "maxScale" : 70000000
+    }, 
+    {
+      "id" : 24, 
+      "name" : "Level 2    ~1:147M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 290000000, 
+      "maxScale" : 147000000
+    }, 
+    {
+      "id" : 25, 
+      "name" : "Level 1    ~1:292M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 295000000, 
+      "maxScale" : 150000000
+    }, 
+    {
+      "id" : 26, 
+      "name" : "Level 0     ~1:584M", 
+      "parentLayerId" : 10, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 295000000
+    }, 
+    {
+      "id" : 27, 
+      "name" : "Citations", 
+      "parentLayerId" : -1, 
+      "defaultVisibility" : true, 
+      "subLayerIds" : null, 
+      "minScale" : 0, 
+      "maxScale" : 0
+    }
+  ], 
+  "tables" : [
+    
+  ], 
+  "spatialReference" : {
+    "wkid" : 102100
+  }, 
+  "singleFusedMapCache" : true, 
+  "tileInfo" : {
+    "rows" : 256, 
+    "cols" : 256, 
+    "dpi" : 96, 
+    "format" : "JPEG", 
+    "compressionQuality" : 90, 
+    "origin" : {
+      "x" : -20037508.342787, 
+      "y" : 20037508.342787
+    }, 
+    "spatialReference" : {
+      "wkid" : 102100
+    }, 
+    "lods" : [
+      {"level" : 0, "resolution" : 156543.033928, "scale" : 591657527.591555}, 
+      {"level" : 1, "resolution" : 78271.5169639999, "scale" : 295828763.795777}, 
+      {"level" : 2, "resolution" : 39135.7584820001, "scale" : 147914381.897889}, 
+      {"level" : 3, "resolution" : 19567.8792409999, "scale" : 73957190.948944}, 
+      {"level" : 4, "resolution" : 9783.93962049996, "scale" : 36978595.474472}, 
+      {"level" : 5, "resolution" : 4891.96981024998, "scale" : 18489297.737236}, 
+      {"level" : 6, "resolution" : 2445.98490512499, "scale" : 9244648.868618}, 
+      {"level" : 7, "resolution" : 1222.99245256249, "scale" : 4622324.434309}, 
+      {"level" : 8, "resolution" : 611.49622628138, "scale" : 2311162.217155}, 
+      {"level" : 9, "resolution" : 305.748113140558, "scale" : 1155581.108577}, 
+      {"level" : 10, "resolution" : 152.874056570411, "scale" : 577790.554289}, 
+      {"level" : 11, "resolution" : 76.4370282850732, "scale" : 288895.277144}, 
+      {"level" : 12, "resolution" : 38.2185141425366, "scale" : 144447.638572}, 
+      {"level" : 13, "resolution" : 19.1092570712683, "scale" : 72223.819286}, 
+      {"level" : 14, "resolution" : 9.55462853563415, "scale" : 36111.909643}, 
+      {"level" : 15, "resolution" : 4.77731426794937, "scale" : 18055.954822}, 
+      {"level" : 16, "resolution" : 2.38865713397468, "scale" : 9027.977411}, 
+      {"level" : 17, "resolution" : 1.19432856685505, "scale" : 4513.988705}, 
+      {"level" : 18, "resolution" : 0.597164283559817, "scale" : 2256.994353}, 
+      {"level" : 19, "resolution" : 0.298582141647617, "scale" : 1128.497176}
+    ]
+  }, 
+  "initialExtent" : {
+    "xmin" : -45223792.233066, 
+    "ymin" : -22882589.2065154, 
+    "xmax" : 45223792.233066, 
+    "ymax" : 22882589.2065155, 
+    "spatialReference" : {
+      "wkid" : 102100
+    }
+  }, 
+  "fullExtent" : {
+    "xmin" : -20037507.0671618, 
+    "ymin" : -19971868.8804086, 
+    "xmax" : 20037507.0671618, 
+    "ymax" : 19971868.8804086, 
+    "spatialReference" : {
+      "wkid" : 102100
+    }
+  }, 
+  "units" : "esriMeters", 
+  "supportedImageFormatTypes" : "PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,AI,BMP", 
+  "documentInfo" : {
+    "Title" : "World Topo Map", 
+    "Author" : "ESRI", 
+    "Comments" : "", 
+    "Subject" : "", 
+    "Category" : "", 
+    "Keywords" : "", 
+    "Credits" : ""
+  }, 
+  "capabilities" : "Map,Query,Data"
+};
\ No newline at end of file
diff --git a/tests/Layer/ArcIMS.html b/tests/Layer/ArcIMS.html
index 48cf309..4f86227 100644
--- a/tests/Layer/ArcIMS.html
+++ b/tests/Layer/ArcIMS.html
@@ -1,6 +1,6 @@
 <html>
   <head>
-    <script type="text/javascript" src="../../lib/OpenLayers.js"></script>
+    <script type="text/javascript" src="../OLLoader.js"></script>
     <script type="text/javascript">
     
       // use an arcims map service against Avencia Inc.'s global sample map services
diff --git a/tests/Layer/Bing.html b/tests/Layer/Bing.html
new file mode 100644
index 0000000..5e616f5
--- /dev/null
+++ b/tests/Layer/Bing.html
@@ -0,0 +1,117 @@
+<html>
+<head>
+  <script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+    var map, layer; 
+
+    var layerType = 'Aerial';
+    var key = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
+    
+    var options = {
+        type: layerType,
+        key: key
+    };
+
+    function test_constructor(t) {
+        t.plan(3);
+                       
+        var origProcessMetadata = OpenLayers.Layer.Bing.processMetadata;
+        var log = [];
+        OpenLayers.Layer.Bing.processMetadata = function(metadata) {
+            var script = document.getElementById(this._callbackId);
+            log.push(script.src);
+            origProcessMetadata.apply(this, arguments);
+        };
+        layer = new OpenLayers.Layer.Bing(OpenLayers.Util.extend({
+            metadataParams: {foo: "bar"}
+        }, options));
+        t.ok(layer instanceof OpenLayers.Layer.Bing, "returns OpenLayers.Layer.Bing object" );
+        t.delay_call(5, function() {
+            t.eq(log.length, 1, "processMetadata called");
+            t.eq(OpenLayers.Util.getParameters(log[0]).foo, "bar", "metadataParams passed to url correctly.");
+            OpenLayers.Layer.Bing.processMetadata = origProcessMetadata;
+            layer.destroy();
+        });
+    }
+    
+    function test_initLayer(t) {
+        t.plan(2);
+
+        var meta = [];
+        var origProcessMetadata = OpenLayers.Layer.Bing.processMetadata;
+        OpenLayers.Layer.Bing.processMetadata = function(metadata) {
+            meta.push(metadata);
+        }
+        map = new OpenLayers.Map("map");
+        layer = new OpenLayers.Layer.Bing(options);
+        var extent;
+        map.addLayers([layer, new OpenLayers.Layer(null, {
+            moveTo: function(bounds, changed) {
+                extent = bounds;
+            }
+        })]);
+        map.zoomToMaxExtent();
+        
+        var map2 = new OpenLayers.Map("map");
+        var layer2 = new OpenLayers.Layer.Bing(OpenLayers.Util.extend({
+            initLayer: function() {
+                // pretend we have a zoomMin of 2
+                this.metadata.resourceSets[0].resources[0].zoomMin = 2;
+                OpenLayers.Layer.Bing.prototype.initLayer.apply(this, arguments);
+            }
+        }, options));
+        var extent2;
+        map2.addLayers([layer2, new OpenLayers.Layer(null, {
+            moveTo: function(bounds, changed) {
+                extent2 = bounds;
+            }
+        })]);
+        map2.zoomToMaxExtent();
+        
+        t.delay_call(5, function() {
+            origProcessMetadata.call(layer, meta[0]);
+            t.eq(extent.toBBOX(), map.getExtent().toBBOX(), "layer extent correct for base layer with zoomMin == 1.");
+            map.destroy();
+        });
+
+        t.delay_call(6, function() {
+            origProcessMetadata.call(layer2, meta[1]);
+            t.eq(extent2.toBBOX(), map2.getExtent().toBBOX(), "layer extent correct for base layer with zoomMin == 2.");
+            map2.destroy();
+            OpenLayers.Layer.Bing.processMetadata = origProcessMetadata;
+        });
+    }
+    
+    function test_attribution(t) {
+        t.plan(3);
+        
+        var log = [];
+        var map = new OpenLayers.Map("map");
+        layer = new OpenLayers.Layer.Bing(options);
+        map.addLayer(layer);
+        map.zoomToMaxExtent();
+        
+        t.delay_call(2, function() {
+            t.ok(layer.attribution.indexOf('olBingAttribution aerial') !== -1, "Attribution has the correct css class");
+            t.ok(layer.attribution.indexOf('<img src="">') == -1, "Attribution contains a logo");
+            t.ok(layer.attribution.indexOf('</img></div></a><a style=') == -1 , "Attribution contains a copyright");
+            map.destroy();
+        });
+    }
+
+    function test_clone(t) {
+        t.plan(1);
+        
+        var clone;
+        
+        layer = new OpenLayers.Layer.Bing(options);
+        clone = layer.clone();
+        t.ok(clone instanceof OpenLayers.Layer.Bing, "clone is a Layer.Bing instance");
+    }
+
+  </script>
+</head>
+<body>
+<div id="map" style="width:500px;height:550px"></div>
+</body>
+</html>
diff --git a/tests/Layer/EventPane.html b/tests/Layer/EventPane.html
index ccf12d7..f846614 100644
--- a/tests/Layer/EventPane.html
+++ b/tests/Layer/EventPane.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
@@ -57,12 +57,12 @@
 // MOUSEMOVE test does not seem to work... 
 //         t.plan( 2 );    
 
-        if (OpenLayers.Util.getBrowserName() != "firefox" && OpenLayers.Util.getBrowserName() != "mozilla") {
-          t.plan(4);
+        if (OpenLayers.BROWSER_NAME != "firefox" && OpenLayers.BROWSER_NAME != "mozilla") {
+            t.plan(4);
         } else {
-          t.plan(0);
-          t.debug_print("Firefox gives different results for different browsers on setMap on EventPane, so just don't run it for now.") 
-          return;
+            t.plan(0);
+            t.debug_print("Firefox gives different results for different browsers on setMap on EventPane, so just don't run it for now.") 
+            return;
         }
         var map = new OpenLayers.Map('map');
         
@@ -84,19 +84,23 @@
         layer2.getWarningHTML = function() { this.warning = true; return ""; }
 
         map.addLayer(layer2);
-        t.ok( !layer2.warning, "warning not registered on mapObject load" );
+        t.ok(!layer2.warning, "warning not registered on mapObject load");
 
-        map.events.register("mousemove", map, function () {
-            t.ok(true, "got mouse move");
+        var log = [];
+        map.events.register("mousemove", map, function(event) {
+            log.push(event);
         });
         
-        if( document.createEvent ) { // Mozilla
-          var evObj = document.createEvent('MouseEvents');
-          evObj.initEvent( 'mousemove', true, false );
-          layer.pane.dispatchEvent(evObj);
-        } else if( document.createEventObject ) { // IE
-          layer.pane.fireEvent('onmousemove');
+        if (document.createEvent) { // Mozilla
+            var evObj = document.createEvent('MouseEvents');
+            evObj.initEvent('mousemove', true, false);
+            map.eventsDiv.dispatchEvent(evObj);
+        } else if(document.createEventObject) { // IE
+            map.eventsDiv.fireEvent('onmousemove');
         }
+        
+        t.eq(log.length, 1, "got one event");
+        
     }
 
     function test_Layer_EventPane_setVisibility (t) {
diff --git a/tests/Layer/FixedZoomLevels.html b/tests/Layer/FixedZoomLevels.html
index 9e00cb6..133571b 100644
--- a/tests/Layer/FixedZoomLevels.html
+++ b/tests/Layer/FixedZoomLevels.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
@@ -82,6 +82,34 @@
             t.eq( layer.resolutions[i], resolutions[i + minZoomLevel], "resolutions array at index " + i + " ok");
         }
     }
+    
+    function test_getMapObjectZoomFromOLZoom(t) {
+        t.plan(4);
+        
+        var map = new OpenLayers.Map("map", {allOverlays: true});
+        var xyz = new OpenLayers.Layer.XYZ("xyz", "${x}${y}${z}", {
+            sphericalMercator: true,
+            resolutions: [39135.7584765625, 19567.87923828125, 9783.939619140625]
+        });
+        var fixed = new (OpenLayers.Class(OpenLayers.Layer, OpenLayers.Layer.FixedZoomLevels, {
+             initialize: function() {
+                OpenLayers.Layer.prototype.initialize.apply(this, arguments);
+            }
+        }))("fixed", {
+            resolutions: [156543.03390625, 78271.516953125, 39135.7584765625, 19567.87923828125, 9783.939619140625],
+            minZoomLevel: 1
+        });
+        map.addLayers([xyz, fixed]);
+        map.setCenter(new OpenLayers.LonLat(0, 0), 2);
+        // map.getZoom() returns 2
+        t.eq(fixed.getMapObjectZoomFromOLZoom(map.getZoom()), 4, "correct return value from getMapObjectZoomFromOLZoom");
+        t.eq(fixed.getOLZoomFromMapObjectZoom(4), map.getZoom() - fixed.minZoomLevel, "correct return value from getOLZoomFromMapObjectZoom");
+
+        map.setBaseLayer(fixed);
+        // map.getZoom() returns 4 now
+        t.eq(fixed.getMapObjectZoomFromOLZoom(map.getZoom()), 5, "correct return value from getMapObjectZoomFromOLZoom");
+        t.eq(fixed.getOLZoomFromMapObjectZoom(5), map.getZoom(), "correct return value from getOLZoomFromMapObjectZoom");
+    }
 
     function p_createLayer(layer, mapOptions, layerOptions) {
 
@@ -104,6 +132,6 @@
   </script>
 </head>
 <body>
-  <div id="map"></div>
+  <div id="map" style="width:256px;height:256px"></div>
 </body>
 </html>
diff --git a/tests/Layer/GML.html b/tests/Layer/GML.html
index 8e01e94..3a4b2d9 100644
--- a/tests/Layer/GML.html
+++ b/tests/Layer/GML.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var name = "GML Layer";
@@ -37,8 +37,8 @@
         var map = new OpenLayers.Map("map");
         map.addLayer(layer);
         map.zoomToMaxExtent();
-        t.delay_call(1, function() { 
-            t.ok(true, "waited for 1s"); 
+        t.delay_call(3, function() { 
+            t.ok(true, "waited for 3s"); 
         });
 
     }
diff --git a/tests/Layer/GeoRSS.html b/tests/Layer/GeoRSS.html
index 7d33ad3..a942e83 100644
--- a/tests/Layer/GeoRSS.html
+++ b/tests/Layer/GeoRSS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var isMSIE    = (navigator.userAgent.indexOf("MSIE") > -1);
@@ -172,7 +172,7 @@
         });
     }
     function test_Layer_GeoRSS_loadend_Event(t) {
-        var browserCode = OpenLayers.Util.getBrowserName();
+        var browserCode = OpenLayers.BROWSER_NAME;
         if (browserCode == "msie") {
             t.plan(1);
             t.ok(true, "IE fails the GeoRSS test. This could probably be fixed by someone with enough energy to fix it.");
diff --git a/tests/Layer/Google.html b/tests/Layer/Google.html
index 2f20526..c826ef4 100644
--- a/tests/Layer/Google.html
+++ b/tests/Layer/Google.html
@@ -4,7 +4,7 @@
     <!-- this gmaps key generated for http://openlayers.org/dev/ -->
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA9XNhd8q0UdwNC7YSO4YZghSPUCi5aRYVveCcVYxzezM4iaj_gxQ9t-UajFL70jfcpquH5l1IJ-Zyyw'></script>
     <script type="text/javascript">window.alert = oldAlert;</script>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     var layer; 
     var validkey = (window.location.protocol == "file:") ||
diff --git a/tests/Layer/Google/v3.html b/tests/Layer/Google/v3.html
index 6d5df4e..f2dcbe3 100644
--- a/tests/Layer/Google/v3.html
+++ b/tests/Layer/Google/v3.html
@@ -1,8 +1,9 @@
 <html>
 <head>
     <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
+
     var layer; 
                    
     function test_Layer_Google_constructor (t) {
@@ -265,6 +266,12 @@
 
          t.plan(8);
 
+         var origPrecision = OpenLayers.Util.DEFAULT_PRECISION;
+         // GMaps v3 seems to use a default precision of 13, which is lower
+         // than what we use in OpenLayers.
+         // See http://trac.osgeo.org/openlayers/ticket/3059
+         OpenLayers.Util.DEFAULT_PRECISION = 13;
+
          var map = new OpenLayers.Map('map', {allOverlays: true});
 
          var gmap = new OpenLayers.Layer.Google("Google Streets");
@@ -275,16 +282,18 @@
          map.setCenter(origin, 4);
          var resolution = map.getResolution();
          
-         var dx, dy, center, expectedX, expectedY;
+         var dx, dy, center, expected;
 
          // confirm that panning works with Google visible
          dx = 100, dy = -100;
          map.pan(dx, dy, {animate: false});
          center = map.getCenter();
-         expectedX = origin.lon + (resolution * dx);
-         expectedY = origin.lat - (resolution * dy);
-         t.eq(center.lon, expectedX, "x panning with Google visible " + dx + ", " + dy);
-         t.eq(center.lat, expectedY, "y panning with Google visible " + dx + ", " + dy);
+         expected = new OpenLayers.LonLat(
+             origin.lon + (resolution * dx),
+             origin.lat - (resolution * dy)
+         );
+         t.eq(center.lon, expected.lon, "x panning with Google visible " + dx + ", " + dy);
+         t.eq(center.lat, expected.lat, "y panning with Google visible " + dx + ", " + dy);
          map.pan(-dx, -dy, {animate: false});
          center = map.getCenter();
          t.eq(center.lon, origin.lon, "x panning with Google visible " + (-dx) + ", " + (-dy));
@@ -295,22 +304,30 @@
          dx = 100, dy = -100;
          map.pan(dx, dy, {animate: false});
          center = map.getCenter();
-         expectedX = origin.lon + (resolution * dx);
-         expectedY = origin.lat - (resolution * dy);
-         t.eq(center.lon, expectedX, "x panning with Google invisible " + dx + ", " + dy);
-         t.eq(center.lat, expectedY, "y panning with Google invisible " + dx + ", " + dy);
+         expected = new OpenLayers.LonLat(
+             origin.lon + (resolution * dx),
+             origin.lat - (resolution * dy)
+         );
+         t.eq(center.lon, expected.lon, "x panning with Google invisible " + dx + ", " + dy);
+         t.eq(center.lat, expected.lat, "y panning with Google invisible " + dx + ", " + dy);
          map.pan(-dx, -dy, {animate: false});
          center = map.getCenter();
          t.eq(center.lon, origin.lon, "x panning with Google invisible " + (-dx) + ", " + (-dy));
          t.eq(center.lat, origin.lat, "y panning with Google invisible " + (-dx) + ", " + (-dy));
-         
-         map.destroy();
 
+         map.destroy();
+         OpenLayers.Util.DEFAULT_PRECISION = origPrecision;
      }
      
      function test_wrapDateLine(t) {
          t.plan(2);
 
+         var origPrecision = OpenLayers.Util.DEFAULT_PRECISION;
+         // GMaps v3 seems to use a default precision of 13, which is lower
+         // than what we use in OpenLayers.
+         // See http://trac.osgeo.org/openlayers/ticket/3059
+         OpenLayers.Util.DEFAULT_PRECISION = 13;
+
          var map = new OpenLayers.Map("map");
 
          var gmap = new OpenLayers.Layer.Google("Google Streets");
@@ -322,14 +339,15 @@
          // pan to the edge of the world
          map.pan(256, 0, {animate: false});
          center = map.getCenter();
-         t.eq(center.lon, 20037508.3392, "edge of the world");
+         t.eq(center.lon, 20037508.34, "edge of the world");
          // pan off the edge of the world
          map.pan(100, 0, {animate: false});
          center = map.getCenter();
-         t.eq(center.lon, -12210356.6442, "magically back in the western hemisphere");
+         var expect = OpenLayers.Util.toFloat(100 * map.getResolution() - 20037508.34);
+         t.eq(center.lon, expect, "magically back in the western hemisphere");
          
          map.destroy();
-         
+         OpenLayers.Util.DEFAULT_PRECISION = origPrecision;         
      }
 
      function test_respectDateLine(t) {
@@ -346,16 +364,16 @@
          // pan to the edge of the world
          map.pan(256, 0, {animate: false});
          center = map.getCenter();
-         t.eq(center.lon, 20037508.3392, "edge of the world");
+         t.eq(center.lon, 20037508.34, "edge of the world");
          // pan off the edge of the world
          map.pan(100, 0, {animate: false});
          center = map.getCenter();
-         t.eq(center.lon, 20037508.3392, "whew, still on the edge");
+         t.eq(center.lon, 20037508.34, "whew, still on the edge");
          
          map.destroy();
          
      }
-
+     
   </script>
 </head>
 <body>
diff --git a/tests/Layer/Grid.html b/tests/Layer/Grid.html
index e5c1ed5..a4dbcee 100644
--- a/tests/Layer/Grid.html
+++ b/tests/Layer/Grid.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -27,7 +27,7 @@
                        
         layer = new OpenLayers.Layer.Grid(name, url, params, null);
         t.ok( layer instanceof OpenLayers.Layer.Grid, "returns OpenLayers.Layer.Grid object" );
-        t.eq( layer.buffer, 2, "buffer default is 2");
+        t.eq( layer.buffer, 0, "buffer default is 0");
         t.eq( layer.ratio, 1.5, "ratio default is 1.5");
         t.eq( layer.numLoadingTiles, 0, "numLoadingTiles starts at 0");
         t.ok( layer.events.listeners["tileloaded"] != null, "'tileloaded' event added to layer's event types");
@@ -47,7 +47,7 @@
     function test_Layer_Grid_inittiles (t) {
         t.plan( 2 );
         var map = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS(name, url, params);
+        layer = new OpenLayers.Layer.WMS(name, url, params, {buffer:2});
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0),5);
         t.eq( layer.grid.length, 7, "Grid rows is correct." );
@@ -169,7 +169,7 @@
     
     function test_Layer_Grid_moveTo(t) {
 
-    t.plan(13);
+    t.plan(14);
 
         var map = new OpenLayers.Map('map');
         layer = new OpenLayers.Layer.WMS(name, url, params);
@@ -193,9 +193,9 @@
             g_WhichFunc = "InitGridded";
             g_Bounds = bounds;
         };
-        layer.moveGriddedTiles = function(bounds) {
+        layer._moveGriddedTiles = function() {
             g_WhichFunc = "MoveGridded";
-            g_Bounds = bounds;
+            g_Bounds = layer.map.getExtent();
         };
         var clearTestBounds = function() {
             g_WhichFunc = null;
@@ -243,13 +243,7 @@
         clearTestBounds();
         layer.singleTile = true;
         layer.moveTo(null, zoomChanged);
-        t.ok(g_Bounds.equals(b), "if layer has grid but zoomChanged is called, initSingleTile called");
-
-
-        layer.getTilesBounds = function() {
-            return tilesBounds;
-        }
-        
+        t.ok(g_Bounds.equals(b), "if layer has grid but zoomChanged is called, initSingleTile called");        
         
 
 //NO FORCE
@@ -305,9 +299,13 @@
         //regular move 
         clearTestBounds();
         tilesBounds = new OpenLayers.Bounds(10,10,120,120);
+        g_WhichFunc = null;
         layer.moveTo(null, zoomChanged);
-        t.ok(g_WhichFunc == "MoveGridded", "if tiles not drastically out of bounds, we call moveGriddedTile()");
-        t.ok(g_Bounds.equals(b), "if tiles not drastically out of bounds, we call moveGriddedTile() with correct bounds");
+        t.eq(g_WhichFunc, null, "moveGriddedTiles is delayed - not called yet");
+        t.delay_call(0.2, function() {
+            t.ok(g_WhichFunc == "MoveGridded", "if tiles not drastically out of bounds, we call moveGriddedTile()");
+            t.ok(g_Bounds.equals(b), "if tiles not drastically out of bounds, we call moveGriddedTile() with correct bounds");
+        });
     }
 
     /** THIS WOULD BE WHERE THE TESTS WOULD GO FOR 
@@ -595,7 +593,7 @@
 
     function test_Layer_Grid_destroy (t) {
 
-        t.plan( 7 );
+        t.plan( 8 );
 
         var map = new OpenLayers.Map('map');
         layer = new OpenLayers.Layer.Grid(name, url, params);
@@ -610,6 +608,7 @@
         map.addLayer(layer);
 
         map.setCenter(new OpenLayers.LonLat(0,0), 10);
+        map.setCenter(new OpenLayers.LonLat(1,1));
 
          
         //grab a reference to one of the tiles
@@ -618,6 +617,7 @@
 
         layer.destroy();
         t.eq( tile.imgDiv, null, "Tile destroyed" ); 
+        t.eq( layer.timerId, null, "Tile loading timeout cleared");
         
         t.ok( layer.grid == null, "tiles appropriately destroyed")
 
diff --git a/tests/Layer/HTTPRequest.html b/tests/Layer/HTTPRequest.html
index 5c82f45..0231156 100644
--- a/tests/Layer/HTTPRequest.html
+++ b/tests/Layer/HTTPRequest.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
diff --git a/tests/Layer/Image.html b/tests/Layer/Image.html
index a519859..f0a3484 100644
--- a/tests/Layer/Image.html
+++ b/tests/Layer/Image.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
@@ -146,7 +146,7 @@
             delay = true;
         });
 
-        t.delay_call(0.4,function() {
+        t.delay_call(5, function() {
             t.eq(delay, true, "registered for loadend");
             t.eq(layer.tile.isLoading, false, "loadend triggered after tile is loaded");
             map.destroy(); //tear down
diff --git a/tests/Layer/KaMap.html b/tests/Layer/KaMap.html
index 11573b6..af2003a 100644
--- a/tests/Layer/KaMap.html
+++ b/tests/Layer/KaMap.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -65,8 +65,8 @@
         layer = new OpenLayers.Layer.KaMap(name, url, params, units);
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0),5);
-        t.eq( layer.grid.length, 8, "KaMap rows is correct." );
-        t.eq( layer.grid[0].length, 6, "KaMap cols is correct." );
+        t.eq( layer.grid.length, 4, "KaMap rows is correct." );
+        t.eq( layer.grid[0].length, 3, "KaMap cols is correct." );
         map.destroy();
         
     }
diff --git a/tests/Layer/MapGuide.html b/tests/Layer/MapGuide.html
index 43ebaa2..b1eb386 100644
--- a/tests/Layer/MapGuide.html
+++ b/tests/Layer/MapGuide.html
@@ -3,7 +3,7 @@
     <script type="text/javascript">var oldAlert = window.alert, gMess; window.alert = function(message) {gMess = message; return true;};</script>
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
     <script type="text/javascript">window.alert = oldAlert;</script>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -69,7 +69,7 @@
         layer = new OpenLayers.Layer.MapGuide(name, url, paramsTiled);
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,400000),5);
-        t.eq( layer.grid.length, 6, "Grid rows is correct." );
+        t.eq( layer.grid.length, 3, "Grid rows is correct." );
         // t.eq( layer.grid[0].length, 6, "Grid cols is correct." );
         map.destroy();
     }
diff --git a/tests/Layer/MapServer.html b/tests/Layer/MapServer.html
index 25eb1e8..1e4e52d 100644
--- a/tests/Layer/MapServer.html
+++ b/tests/Layer/MapServer.html
@@ -5,7 +5,7 @@
     <script type="text/javascript">window.alert = oldAlert;</script>
     
 
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -74,11 +74,11 @@
     function test_Layer_MapServer_inittiles (t) {
         t.plan( 2 );
         var map = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.MapServer(name, url, params);
+        layer = new OpenLayers.Layer.MapServer(name, url, params, {buffer: 0});
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0),5);
-        t.eq( layer.grid.length, 7, "Grid rows is correct." );
-        t.eq( layer.grid[0].length, 6, "Grid cols is correct." );
+        t.eq( layer.grid.length, 4, "Grid rows is correct." );
+        t.eq( layer.grid[0].length, 3, "Grid cols is correct." );
         map.destroy();
         
     }
@@ -226,7 +226,7 @@
                        (window.location.host == "localhost") ||
                        (window.location.host == "openlayers.org");
         
-        if (OpenLayers.Util.getBrowserName() == "opera" || OpenLayers.Util.getBrowserName() == "safari") {
+        if (OpenLayers.BROWSER_NAME == "opera" || OpenLayers.BROWSER_NAME == "safari") {
             t.plan(1);
             t.debug_print("Can't test google reprojection in Opera or Safari.");
         } else if(validkey) {
@@ -234,7 +234,7 @@
             var map = new OpenLayers.Map('map');
             var layer = new OpenLayers.Layer.Google("Google");
             map.addLayer(layer);
-            layer = new OpenLayers.Layer.MapServer(name, url, params, {isBaseLayer: false, reproject: true});
+            layer = new OpenLayers.Layer.MapServer(name, url, params, {isBaseLayer: false, reproject: true, buffer: 2});
             layer.isBaseLayer=false;
             map.addLayer(layer);
             map.setCenter(new OpenLayers.LonLat(0,0), 5);
@@ -251,7 +251,7 @@
         }
         
         var map = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.MapServer(name, url, params);
+        layer = new OpenLayers.Layer.MapServer(name, url, params, {buffer:2});
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0), 5);
         var tile = layer.grid[0][0];
diff --git a/tests/Layer/Markers.html b/tests/Layer/Markers.html
index 6e994f5..2db3052 100644
--- a/tests/Layer/Markers.html
+++ b/tests/Layer/Markers.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
diff --git a/tests/Layer/MultiMap.html b/tests/Layer/MultiMap.html
index 4c9a619..8ae07d2 100644
--- a/tests/Layer/MultiMap.html
+++ b/tests/Layer/MultiMap.html
@@ -2,40 +2,53 @@
 <head>
   <!-- multimap api key for http://(www.)openlayers.org -->
   <script type="text/javascript" src="http://developer.multimap.com/API/maps/1.2/OA10072915821139765"></script>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
-    var layer; 
-
+    var doTest = true;
     function test_Layer_MultiMap_constructor (t) {
+        // WebKit browsers fail when the API key is for a different url, so we
+        // do not test in this case.
+        try {
+            var map = new OpenLayers.Map("map");
+            var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
+            map.addLayer(layer);
+        }
+        catch(e) {
+            doTest = false;
+        }
+
+        if (!doTest) { t.plan(0); return; }
         t.plan( 4 );
         
         var map = new OpenLayers.Map('map');
-        var layer = new OpenLayers.Layer.MultiMap('Goog Layer');
+        var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
         map.addLayer(layer);
         
         
         t.ok( layer instanceof OpenLayers.Layer.MultiMap, "new OpenLayers.Layer.MultiMap returns object" );
         t.eq( layer.CLASS_NAME, "OpenLayers.Layer.MultiMap", "CLASS_NAME variable set correctly");
 
-        t.eq( layer.name, "Goog Layer", "layer.name is correct" );
+        t.eq( layer.name, "MultiMap Layer", "layer.name is correct" );
 
         t.ok ( layer.mapObject != null, "MultiMap Object correctly loaded");
     }
 
     function test_Layer_MultiMap_isBaseLayer (t) {
+        if (!doTest) { t.plan(0); return; }
         t.plan(1);
         
-        var layer = new OpenLayers.Layer.MultiMap('Goog Layer');
+        var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
 
-        t.ok(layer.isBaseLayer, "a default load of google layer responds as a base layer");
+        t.ok(layer.isBaseLayer, "a default load of multimap layer responds as a base layer");
     }    
 
     function test_Layer_MultiMap_Translation_lonlat (t) {
+        if (!doTest) { t.plan(0); return; }
         
         t.plan( 4 );
         
         var map = new OpenLayers.Map('map');
-        var layer = new OpenLayers.Layer.MultiMap('Goog Layer');
+        var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
         map.addLayer(layer);
 
      // these two lines specify an appropriate translation. 
@@ -56,11 +69,12 @@
     }
 
     function test_Layer_MultiMap_Translation_pixel (t) {
+        if (!doTest) { t.plan(0); return; }
         
         t.plan( 4 );
         
         var map = new OpenLayers.Map('map');
-        var layer = new OpenLayers.Layer.MultiMap('Goog Layer');
+        var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
         map.addLayer(layer);
 
      // these two lines specify an appropriate translation. 
@@ -82,6 +96,7 @@
 
 
     function test_Layer_destroy (t) {
+        if (!doTest) { t.plan(0); return; }
         t.plan( 5 );    
 
         var map = new OpenLayers.Map('map');
diff --git a/tests/Layer/PointGrid.html b/tests/Layer/PointGrid.html
new file mode 100644
index 0000000..22d85c7
--- /dev/null
+++ b/tests/Layer/PointGrid.html
@@ -0,0 +1,231 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../OLLoader.js"></script>
+<script type="text/javascript">
+
+    function test_initialize(t) {
+        t.plan(1);
+        var layer = new OpenLayers.Layer.PointGrid();
+        t.ok(layer instanceof OpenLayers.Layer.PointGrid, "instance created");
+        layer.destroy();
+    }
+    
+    function test_name(t) {
+        t.plan(1);
+        var layer = new OpenLayers.Layer.PointGrid({name: "foo"});
+        t.eq(layer.name, "foo", "name set like every other property");
+        layer.destroy();
+    }
+    
+    function test_spacing(t) {
+        t.plan(7);
+        
+        var layer = new OpenLayers.Layer.PointGrid({
+            isBaseLayer: true,
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(-100, -50, 100, 50),
+            dx: 10,
+            dy: 10,
+            ratio: 1
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        t.eq(layer.features.length, 200, "200 features");
+        
+        // set dx/dy together
+        layer.setSpacing(20);
+        t.eq(layer.dx, 20, "dx 20");
+        t.eq(layer.dy, 20, "dy 20");
+        t.eq(layer.features.length, 50, "50 features");
+        
+        // set dx/dy independently
+        layer.setSpacing(50, 25);
+        t.eq(layer.dx, 50, "dx 50");
+        t.eq(layer.dy, 25, "dy 25");
+        t.eq(layer.features.length, 16, "16 features");
+        
+        map.destroy();
+    }
+    
+    function test_ratio(t) {
+        t.plan(3);
+        
+        var layer = new OpenLayers.Layer.PointGrid({
+            isBaseLayer: true,
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(-100, -50, 100, 50),
+            dx: 25,
+            dy: 25,
+            ratio: 1
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        t.eq(layer.features.length, 32, "32 features");
+        
+        // increase ratio (1.5 -> 300 x 150)
+        layer.setRatio(1.5);
+        t.eq(layer.ratio, 1.5, "ratio 1.5");
+        t.eq(layer.features.length, 72, "72 features");
+        
+        map.destroy();
+    }
+
+    function test_maxFeatures(t) {
+        t.plan(3);
+        
+        var layer = new OpenLayers.Layer.PointGrid({
+            isBaseLayer: true,
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(-100, -50, 100, 50),
+            dx: 10,
+            dy: 10,
+            ratio: 1
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        t.eq(layer.features.length, 200, "200 features");
+        
+        // limit maxFeatures
+        layer.setMaxFeatures(150);
+        t.eq(layer.maxFeatures, 150, "maxFeatures 150");
+        t.ok(layer.features.length <= 150, "<= 150 features");
+        
+        map.destroy();
+    }
+
+    function test_rotation(t) {
+        t.plan(6);
+        
+        var layer = new OpenLayers.Layer.PointGrid({
+            isBaseLayer: true,
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(-100, -50, 100, 50),
+            dx: 10,
+            dy: 10,
+            ratio: 1
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+
+        function getRotation(layer) {
+            // grid starts at bottom left and goes up
+            var g0 = layer.features[0].geometry;
+            var g1 = layer.features[1].geometry;
+            // subtract 90 to get rotation of grid
+            return Math.atan2(g1.y - g0.y, g1.x - g0.x) * (180 / Math.PI) - 90;
+        }
+        
+        t.eq(layer.rotation, 0, "0 rotation");
+        t.eq(getRotation(layer).toFixed(3), (0).toFixed(3), "0 grid")
+        
+        // rotate grid 25 degrees counter-clockwise
+        layer.setRotation(25);
+        t.eq(layer.rotation, 25, "25 rotation");
+        t.eq(getRotation(layer).toFixed(3), (25).toFixed(3), "25 grid");
+
+        // rotate grid 45 degrees clockwise
+        layer.setRotation(-45);
+        t.eq(layer.rotation, -45, "-45 rotation");
+        t.eq(getRotation(layer).toFixed(3), (-45).toFixed(3), "-45 grid");
+        
+        map.destroy();
+    }
+
+    function test_origin(t) {
+        t.plan(7);
+        
+        var layer = new OpenLayers.Layer.PointGrid({
+            isBaseLayer: true,
+            resolutions: [1],
+            maxExtent: new OpenLayers.Bounds(-100, -50, 100, 50),
+            dx: 10,
+            dy: 10,
+            ratio: 1
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+
+        var origin = layer.getOrigin();
+        t.ok(map.getExtent().getCenterLonLat().equals(origin), "default is center of map extent");
+        
+        var g0 = layer.features[0].geometry;
+        
+        t.eq((g0.x - origin.lon) % layer.dx, 0, "a) lattice aligned with origin x");
+        t.eq((g0.y - origin.lat) % layer.dy, 0, "a) lattice aligned with origin y");
+        
+        // set origin
+        layer.setOrigin(new OpenLayers.LonLat(-5, 12));
+        origin = layer.getOrigin();
+        t.eq(origin.lon, -5, "-5 origin x");
+        t.eq(origin.lat, 12, "12 origin y");
+
+        g0 = layer.features[0].geometry;        
+        t.eq((g0.x - origin.lon) % layer.dx, 0, "b) lattice aligned with origin x");
+        t.eq((g0.y - origin.lat) % layer.dy, 0, "b) lattice aligned with origin y");
+
+        map.destroy();
+    }
+
+    function test_zoom(t) {
+        t.plan(2);
+        
+        var layer = new OpenLayers.Layer.PointGrid({
+            isBaseLayer: true,
+            resolutions: [2, 1],
+            maxExtent: new OpenLayers.Bounds(-200, -100, 200, 100),
+            dx: 20,
+            dy: 20,
+            ratio: 1
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 1
+        });
+        
+        t.eq(layer.features.length, 50, "50 features at zoom 1");
+        
+        map.zoomTo(0);
+        t.eq(layer.features.length, 200, "200 features at zoom 0")
+
+        map.destroy();
+    }
+
+
+</script>
+</head>
+<body>
+<div id="map" style="width:200px;height:100px"></div>
+</body>
+</html>
diff --git a/tests/Layer/PointTrack.html b/tests/Layer/PointTrack.html
index b8b70b8..d889db2 100644
--- a/tests/Layer/PointTrack.html
+++ b/tests/Layer/PointTrack.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
   
     var name = "PointTrack Layer";
diff --git a/tests/Layer/SphericalMercator.html b/tests/Layer/SphericalMercator.html
index 460c57e..c2bbdfc 100644
--- a/tests/Layer/SphericalMercator.html
+++ b/tests/Layer/SphericalMercator.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
     function test_SphericalMercator_forwardMercator(t) {
         t.plan(12);
@@ -69,7 +69,7 @@
          
         t.eq(strToFixed(point.toString()), 
              strToFixed("POINT(10.000000828446318 20.000000618997227)"), 
-             "point transforms from EPSG:4326 to Spherical Mercator"); 
+             "point transforms from Spherical Mercator to EPSG:4326"); 
     }
     
     function test_SphericalMercator_addTransform(t) {
@@ -88,6 +88,48 @@
              "from EPSG:900913 to EPSG:4326 correctly defined");
     }
     
+    function test_equivalence(t) {
+
+        // list of equivalent codes for web mercator
+        var codes = ["EPSG:900913", "EPSG:3857", "EPSG:102113", "EPSG:102100"];
+        var len = codes.length;
+        
+        t.plan(len + (len * len));
+
+        var ggPoint = new OpenLayers.Geometry.Point(10, 20);
+        var smPoint = new OpenLayers.Geometry.Point(1113195, 2273031);
+        
+        var gg = new OpenLayers.Projection("EPSG:4326");
+        
+        var i, proj, forward, inverse, other, j, equiv;
+        for (i=0, len=codes.length; i<len; ++i) {
+            proj = new OpenLayers.Projection(codes[i]);
+            
+            // confirm that forward/inverse work
+            forward = ggPoint.clone().transform(gg, proj);
+            t.eq(
+                strToFixed(forward.toString()), 
+                strToFixed("POINT(1113194.9077777779 2273030.9266712805)"), 
+                "transforms from EPSG:4326 to " + proj
+            );
+            inverse = smPoint.clone().transform(proj, gg);
+            t.eq(
+                strToFixed(inverse.toString()), 
+                strToFixed("POINT(10.000000828446318 20.000000618997227)"), 
+                "transforms from " + proj + " to EPSG:4326"
+            ); 
+            
+            // confirm that null transform works
+            for (j=i+1; j<len; ++j) {
+                other = new OpenLayers.Projection(codes[j]);
+                equiv = ggPoint.clone().transform(proj, other);
+                t.ok(proj.equals(other),  proj + " and " + other + " are equivalent");
+                t.ok(ggPoint.equals(equiv), "transform from " + proj + " to " + other + " preserves geometry");                
+            }
+        }
+
+    }
+    
   </script> 
 </head>
 <body>
diff --git a/tests/Layer/TMS.html b/tests/Layer/TMS.html
index e8205da..c55d02b 100644
--- a/tests/Layer/TMS.html
+++ b/tests/Layer/TMS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -134,7 +134,7 @@
         t.plan(1);
             m = new OpenLayers.Map("map", {'maxExtent':new OpenLayers.Bounds(-122.6579,37.4901,-122.0738,37.8795)});
             layer = new OpenLayers.Layer.TMS( "TMS", 
-                    "http://labs.metacarta.com/wms-c/Basic.py/", {layername: 'basic', type:'png', resolutions:[0.000634956337608418]} );
+                    "http://labs.metacarta.com/wms-c/Basic.py/", {layername: 'basic', type:'png', resolutions:[0.000634956337608418], buffer: 2} );
             m.addLayer(layer);
             m.zoomToMaxExtent();
             t.eq(layer.getURL(layer.grid[3][3].bounds), "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/0/1/1.png", "TMS tiles around rounded properly.");
diff --git a/tests/Layer/Text.html b/tests/Layer/Text.html
index a287ed1..0cf6dcf 100644
--- a/tests/Layer/Text.html
+++ b/tests/Layer/Text.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var isMSIE = (navigator.userAgent.indexOf("MSIE") > -1);
@@ -132,7 +132,7 @@
           layer.markers[1].events.triggerEvent('click', event);
           t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
           //Safari 3 separates style overflow into overflow-x and overflow-y
-          var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+          var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
           t.eq(map.popups[0].contentDiv.style[prop],"auto", "default Popup overflow correct");
         });
     }
@@ -151,12 +151,12 @@
           layer.markers[0].events.triggerEvent('click', event);
           t.eq(map.popups.length, 1, "Popup opened correctly");
           //Safari 3 separates style overflow into overflow-x and overflow-y
-          var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+          var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
           t.eq(map.popups[0].contentDiv.style[prop],"auto", "Popup overflow read from file");
           layer.markers[1].events.triggerEvent('click', event);
           t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
           //Safari 3 separates style overflow into overflow-x and overflow-y
-          var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+          var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
           t.eq(map.popups[0].contentDiv.style[prop],"hidden", "Popup overflow read from file");
         });
     }
diff --git a/tests/Layer/TileCache.html b/tests/Layer/TileCache.html
index d24a44a..6ae2bc1 100644
--- a/tests/Layer/TileCache.html
+++ b/tests/Layer/TileCache.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
 
diff --git a/tests/Layer/Vector.html b/tests/Layer/Vector.html
index 790201c..cc8c3fc 100644
--- a/tests/Layer/Vector.html
+++ b/tests/Layer/Vector.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var name = "Vector Layer";
@@ -194,6 +194,83 @@
         t.ok(layer.getFeatureBy('fid', 'some_fid_that_does_not_exist') == null,
              "OpenLayers.Layer.Vector.getFeatureBy('fid', ...) works like getFeatureByFid on non-existing feature fid");
     }
+    
+    function test_Layer_Vector_getFeaturesByAttribute(t) {
+        t.plan( 9 );
+        // setup layer
+        var layer = new OpenLayers.Layer.Vector(name);
+        
+        // feature_1
+        var geometry_1 = new OpenLayers.Geometry.Point(-28.63, 153.64);
+        var attributes_1 = {
+            humpty: 'dumpty',
+            clazz: 1
+        };
+        var feature_1 = new OpenLayers.Feature.Vector(geometry_1, attributes_1);
+        feature_1.fid = 'f_01'; // to identify later
+        
+        // feature_2
+        var geometry_2 = new OpenLayers.Geometry.Point(-27.48, 153.05);
+        var attributes_2 = {
+            // this feature has attribute humpty === undefined
+            clazz: '1'
+        };
+        var feature_2 = new OpenLayers.Feature.Vector(geometry_2, attributes_2);
+        feature_2.fid = 'f_02'; // to identify later
+        
+        // feature_3
+        var geometry_3 = new OpenLayers.Geometry.Point(-33.74, 150.3);
+        var attributes_3 = {
+            humpty: 'foobar',
+            clazz: 1
+        };
+        var feature_3 = new OpenLayers.Feature.Vector(geometry_3, attributes_3);
+        feature_3.fid = 'f_03'; // to identify later
+        
+        // Tests
+        
+        // don't find anything... no features added
+        // 1 test
+        t.ok(layer.getFeaturesByAttribute('humpty', 'dumpty').length === 0,
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns an empty array while the layer is empty");
+        
+        layer.addFeatures([feature_1, feature_2, feature_3]);
+        
+        // simple use case: find 1 feature with an attribute and matching value
+        // 2 tests
+        var dumptyResults = layer.getFeaturesByAttribute('humpty', 'dumpty');
+        t.ok(dumptyResults.length === 1,
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns an array with one feature for attribute 'humpty' with value 'dumpty'");
+        t.ok(dumptyResults[0].fid === 'f_01',
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns the correct feature with attribute 'humpty' set to 'dumpty'");
+        
+        // simple use case: find 1 feature with an attribute and matching value
+        //                  and respect data types
+        // 2 tests
+        var strOneResults = layer.getFeaturesByAttribute('clazz', '1');
+        t.ok(strOneResults.length === 1,
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns an array with one feature for attribute 'clazz' with value '1' (a string)");
+        t.ok(strOneResults[0].fid === 'f_02',
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns the correct feature with attribute 'clazz' set to the string '1'");
+        
+        // simple use case: find 2 features with an attribute and matching value
+        //                  and respect data types
+        // 2 tests    
+        var numOneResults = layer.getFeaturesByAttribute('clazz', 1);
+        t.ok(numOneResults.length === 2,
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns an array with two features for attribute 'clazz' with value 1 (a number)");
+        var bothFound = !!((numOneResults[0].fid === 'f_01' && numOneResults[1].fid === 'f_03') || (numOneResults[0].fid === 'f_03' && numOneResults[1].fid === 'f_01')); 
+        t.ok(bothFound,
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute returns the correct features with attribute 'clazz' set to the number 1");
+        
+        // advanced use case: find the 1 feature, that has an attribute not set
+        var undefined;
+        var humptyNotSet = layer.getFeaturesByAttribute('humpty', undefined);
+        t.ok(humptyNotSet.length === 1,
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute can be used to find features that have certain attributes not set");
+        t.ok(humptyNotSet[0].fid === 'f_02',
+             "OpenLayers.Layer.Vector.getFeaturesByAttribute found the correct featuren that has a certain attribute not set");
+    }
 
     function test_Layer_Vector_getDataExtent(t) {
         t.plan(1);
@@ -209,6 +286,14 @@
         t.ok(extent.toBBOX() != layer.features[0].geometry.getBounds().toBBOX(), "extent from getDataExtent doesn't clobber first feature");
     }
 
+    function test_Layer_Vector_getDataExtentEmpty(t) {
+        t.plan(1);
+        var layer = new OpenLayers.Layer.Vector(name);
+        layer.addFeatures([new OpenLayers.Feature.Vector(null), new OpenLayers.Feature.Vector(null)]);
+        var extent = layer.getDataExtent();
+        t.eq(extent, null, "We expect null to be returned if there are no features with a geometry");
+    }
+
     function test_Layer_Vector_removeFeatures(t) {
         t.plan(17);
     
@@ -381,9 +466,7 @@
         t.plan(9);
         
         var map = new OpenLayers.Map("map");
-        var layer = new OpenLayers.Layer.Vector(null, {
-            drawn: true
-        });
+        var layer = new OpenLayers.Layer.Vector();
         map.addLayer(layer);
         var feature = new OpenLayers.Feature.Vector(
             new OpenLayers.Geometry.Point(10, 10)
@@ -400,6 +483,7 @@
         };
         
         // draw feature with no state
+        layer.drawn = true;
         layer.drawFeature(feature);
         t.ok(log.feature === feature, "[no state] drawFeature called with correct feature");
         t.ok(log.style.display !== "none", "[no state] drawFeature called with style display not none");
@@ -609,9 +693,12 @@
                              "given graphicHeight and graphicWidth, both are set: width");
                 feature.style = customStyle5;
                 layer.drawFeature(feature);
-                t.eq(root.firstChild.getAttributeNS(null, 'style'),
-                             'opacity: '+customStyle5.graphicOpacity.toString()+((OpenLayers.Util.getBrowserName() == "opera" || OpenLayers.Util.getBrowserName() == "safari") ? "" : ';'),
-                             "graphicOpacity correctly set");
+                // we use startsWith here as some browsers (at least Safari 3 and FireFox 4)
+                // do not append a semi-colon to the opacity string
+                t.ok(OpenLayers.String.startsWith(
+                            root.firstChild.getAttributeNS(null, 'style'),
+                            "opacity: " + customStyle5.graphicOpacity.toString()),
+                     "graphicOpacity correctly set");
                 feature.style = customStyle6;
                 layer.drawFeature(feature);
                 var x = geometryX / renderer.getResolution() + renderer.left;
@@ -630,6 +717,54 @@
                         (-y + customStyle6.graphicYOffset).toFixed().toString(),
                         "graphicYOffset correctly set");
         }
+        if (layer.renderer.CLASS_NAME == 'OpenLayers.Renderer.SVG2') {
+                feature.style = customStyle1;
+                layer.drawFeature(feature);
+                var resolution = map.getResolution();
+                t.eq(root.firstChild.getAttributeNS(null, 'width'),
+                             (2*customStyle1.pointRadius*resolution).toString(),
+                             "given a pointRadius, width equals 2*pointRadius");
+                t.eq(root.firstChild.getAttributeNS(null, 'height'),
+                             (2*customStyle1.pointRadius*resolution).toString(),
+                             "given a pointRadius, height equals 2*pointRadius");
+                feature.style = customStyle2;
+                layer.drawFeature(feature);
+                t.eq(root.firstChild.getAttributeNS(null, 'width'),
+                             root.firstChild.getAttributeNS(null, 'height'),
+                             "given a graphicWidth, width equals height");
+                t.eq(root.firstChild.getAttributeNS(null, 'width'),
+                             (customStyle2.graphicWidth*resolution).toString(),
+                             "width is set correctly");
+                feature.style = customStyle3;
+                layer.drawFeature(feature);
+                t.eq(root.firstChild.getAttributeNS(null, 'height'),
+                             root.firstChild.getAttributeNS(null, 'width'),
+                             "given a graphicHeight, height equals width");
+                t.eq(root.firstChild.getAttributeNS(null, 'height'),
+                             (customStyle3.graphicHeight*resolution).toString(),
+                             "height is set correctly");
+                feature.style = customStyle4;
+                layer.drawFeature(feature);
+                t.eq(root.firstChild.getAttributeNS(null, 'height'),
+                             (customStyle4.graphicHeight*resolution).toString(),
+                             "given graphicHeight and graphicWidth, both are set: height");
+                t.eq(root.firstChild.getAttributeNS(null, 'width'),
+                             (customStyle4.graphicWidth*resolution).toString(),
+                             "given graphicHeight and graphicWidth, both are set: width");
+                feature.style = customStyle5;
+                layer.drawFeature(feature);
+                t.eq(root.firstChild.getAttributeNS(null, 'style'),
+                             'opacity: '+customStyle5.graphicOpacity.toString()+((OpenLayers.Util.getBrowserName() == "opera" || OpenLayers.Util.getBrowserName() == "safari") ? "" : ';'),
+                             "graphicOpacity correctly set");
+                feature.style = customStyle6;
+                layer.drawFeature(feature);
+                t.eq(root.firstChild.getAttributeNS(null, 'x'),
+                        (geometryX + customStyle6.graphicXOffset*resolution).toString(),
+                        "graphicXOffset correctly set");
+                t.eq(root.firstChild.getAttributeNS(null, 'y'),
+                        (-geometryY + customStyle6.graphicYOffset*resolution).toString(),
+                        "graphicYOffset correctly set");
+        }
         if (layer.renderer.CLASS_NAME == 'OpenLayers.Renderer.VML') {
                 feature.style = customStyle1;
                 layer.drawFeature(feature);
diff --git a/tests/Layer/Vector/RootContainer.html b/tests/Layer/Vector/RootContainer.html
index 982e492..aa92923 100644
--- a/tests/Layer/Vector/RootContainer.html
+++ b/tests/Layer/Vector/RootContainer.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../../lib/OpenLayers.js"></script>
+  <script src="../../OLLoader.js"></script>
   <script type="text/javascript">
     var layer, map; 
 
diff --git a/tests/Layer/WFS.html b/tests/Layer/WFS.html
index a74b782..42b566a 100644
--- a/tests/Layer/WFS.html
+++ b/tests/Layer/WFS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var name = "Vector Layer";
diff --git a/tests/Layer/WMS.html b/tests/Layer/WMS.html
index 50cc9ed..05b2adb 100644
--- a/tests/Layer/WMS.html
+++ b/tests/Layer/WMS.html
@@ -3,7 +3,7 @@
     <script type="text/javascript">var oldAlert = window.alert, gMess; window.alert = function(message) {gMess = message; return true;};</script>
     <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
     <script type="text/javascript">window.alert = oldAlert;</script>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer;
@@ -80,14 +80,11 @@
         var tParams = OpenLayers.Util.extend({},
                         OpenLayers.Util.upperCaseObject(params));
         tParams = OpenLayers.Util.extend(tParams, {
-            SERVICE: "WMS", VERSION: "1.1.1",
-            REQUEST: "GetMap", STYLES: "",
-            EXCEPTIONS: "application/vnd.ogc.se_inimage",
-            SRS: "EPSG:4326", BBOX: [1,2,3,4],
+            BBOX: [1,2,3,4],
             WIDTH: "256", HEIGHT: "256"
         });
         t.eq( img.src,
-             url + "?" + OpenLayers.Util.getParameterString(tParams),
+             layer.getFullRequestString(tParams),
              "image src is created correctly via addtile" );
         t.eq( tile.frame.style.top, "6px", "image top is set correctly via addtile" );
         t.eq( tile.frame.style.left, "5px", "image top is set correctly via addtile" );
@@ -98,7 +95,7 @@
         else
             t.ok( firstChild instanceof HTMLElement, "div first child is an image object" );
         t.eq( firstChild.src,
-             url + "?" + OpenLayers.Util.getParameterString(tParams),
+             layer.getFullRequestString(tParams),
              "div first child is correct image object" );
         t.eq( tile.position.toString(), "x=5,y=6", "Position of tile is set correctly." );
         map.destroy();
@@ -119,14 +116,11 @@
         var tParams = OpenLayers.Util.extend({},
                         OpenLayers.Util.upperCaseObject(params));
         tParams = OpenLayers.Util.extend(tParams, {
-            SERVICE: "WMS", VERSION: "1.1.1",
-            REQUEST: "GetMap", STYLES: "",
-            EXCEPTIONS: "application/vnd.ogc.se_inimage",
-            SRS: "EPSG:4326", BBOX: "1,2,3,4",
+            BBOX: "1,2,3,4",
             WIDTH: "256", HEIGHT: "256"
         });
         t.eq( img.src,
-             url + "?" + OpenLayers.Util.getParameterString(tParams),
+             layer.getFullRequestString(tParams),
              "image src is created correctly via addtile" );
         t.eq( tile.frame.style.top, "6px", "image top is set correctly via addtile" );
         t.eq( tile.frame.style.left, "5px", "image top is set correctly via addtile" );
@@ -137,7 +131,7 @@
         else
             t.ok( firstChild instanceof HTMLElement, "div first child is an image object" );
         t.eq( firstChild.src,
-             url + "?" + OpenLayers.Util.getParameterString(tParams),
+             layer.getFullRequestString(tParams),
              "div first child is correct image object" );
         t.eq( tile.position.toString(), "x=5,y=6", "Position of tile is set correctly." );
         map.destroy();
@@ -146,7 +140,7 @@
     function test_Layer_WMS_inittiles (t) {
         t.plan( 2 );
         var map = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS(name, url, params);
+        layer = new OpenLayers.Layer.WMS(name, url, params, {buffer:2});
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0),5);
         t.eq( layer.grid.length, 7, "Grid rows is correct." );
@@ -154,7 +148,6 @@
         map.destroy();
     }
 
-
     function test_Layer_WMS_clone (t) {
         t.plan(4);
 
@@ -230,19 +223,19 @@
     function test_Layer_WMS_getFullRequestString (t) {
 
 
-        t.plan( 2 );
+        t.plan( 4 );
         var map = new OpenLayers.Map('map');
         map.projection = "xx";
-        tUrl = "http://octo.metacarta.com/cgi-bin/mapserv";
-        tParams = { layers: 'basic',
+        var tUrl = "http://octo.metacarta.com/cgi-bin/mapserv";
+        var tParams = { layers: 'basic',
                    format: 'image/png'};
         var tLayer = new OpenLayers.Layer.WMS(name, tUrl, tParams);
         map.addLayer(tLayer);
-        str = tLayer.getFullRequestString();
+        var str = tLayer.getFullRequestString();
         var tParams = {
             LAYERS: "basic", FORMAT: "image/png", SERVICE: "WMS",
             VERSION: "1.1.1", REQUEST: "GetMap", STYLES: "",
-            EXCEPTIONS: "application/vnd.ogc.se_inimage", SRS: "xx"
+            SRS: "xx"
         };
         t.eq(str,
              tUrl + "?" + OpenLayers.Util.getParameterString(tParams),
@@ -257,6 +250,34 @@
              tUrl + "?" + OpenLayers.Util.getParameterString(tParams),
              "getFullRequestString() by default does *not* add SRS value if projection is 'none'");
         map.destroy();
+        
+        map = new OpenLayers.Map("map", {projection: "EPSG:4326"});
+        var layerProj = new OpenLayers.Projection("FOO", {
+            equals: function() {return true},
+            getCode: function() {return "FOO"}
+        });
+        tLayer = new OpenLayers.Layer.WMS(name, tUrl, tParams, {projection: layerProj});
+        map.addLayer(tLayer);
+        str = tLayer.getFullRequestString();
+        tParams.SRS = "FOO";
+        t.eq(str,
+             tUrl + "?" + OpenLayers.Util.getParameterString(tParams),
+             "getFullRequestString() uses the layer projection if it equals the map projection");
+        map.destroy();
+
+        map = new OpenLayers.Map("map", {projection: "EPSG:4326"});
+        map.addLayer(new OpenLayers.Layer(null, {isBaseLayer: true}));
+        tLayer = new OpenLayers.Layer.WMS(name, tUrl);
+        tLayer.map = map;
+        var error;
+        try {
+            tLayer.getFullRequestString();
+            error = false;
+        } catch(err) {
+            error = true;
+    }
+        t.ok(!error, "no error on getFullRequestString if layer has no projection");
+        map.destroy();
 
     }
 
@@ -289,7 +310,7 @@
         var validkey = (window.location.protocol == "file:") ||
                        (window.location.host == "localhost") ||
                        (window.location.host == "openlayers.org");
-        if (OpenLayers.Util.getBrowserName() == "opera" || OpenLayers.Util.getBrowserName() == "safari") {
+        if (OpenLayers.BROWSER_NAME == "opera" || OpenLayers.BROWSER_NAME == "safari") {
             t.plan(1);
             t.debug_print("Can't test google reprojection in Opera or Safari.");
         } else if(validkey) {
@@ -299,7 +320,7 @@
             var layer = new OpenLayers.Layer.Google("Google");
             map.addLayer(layer);
             var wmslayer = new OpenLayers.Layer.WMS(name, url, params,
-                                                    {isBaseLayer: false, reproject:true});
+                                                    {isBaseLayer: false, reproject:true, buffer: 2});
             wmslayer.isBaseLayer=false;
             map.addLayer(wmslayer);
             map.setCenter(new OpenLayers.LonLat(0,0), 5);
@@ -316,7 +337,7 @@
         }
 
         var map = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS(name, url, params);
+        layer = new OpenLayers.Layer.WMS(name, url, params, {buffer: 2});
         map.addLayer(layer);
         map.setCenter(new OpenLayers.LonLat(0,0), 5);
         var tile = layer.grid[0][0];
@@ -367,6 +388,39 @@
 
     }
 
+    function test_tileOrigin(t) {
+        t.plan(4);
+        
+        var dummy = new OpenLayers.Layer(null, {isBaseLayer: true});
+        var unconstrained = new OpenLayers.Layer.WMS(
+            null, "http://example.com/wms", 
+            {layers: "unconstrained"}, 
+            {isBaseLayer: false, buffer: 0}
+        );
+        var constrained = new OpenLayers.Layer.WMS(
+            null, "http://example.com/wms-c", 
+            {layers: "constrained"}, 
+            {buffer: 0, isBaseLayer: false, tileOrigin: new OpenLayers.LonLat(-180, -90)}
+        );
+        var map = new OpenLayers.Map({
+            div: "map",
+            maxExtent: new OpenLayers.Bounds(-185, -95, 185, 95),
+            layers: [dummy, unconstrained, constrained],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 1
+        });
+        
+        t.eq(unconstrained.grid[1][0].bounds.bottom, -95, "unconstrained bottom correct");
+        t.eq(unconstrained.grid[1][0].bounds.left, -185, "unconstrained left correct");
+        t.eq(constrained.grid[1][0].bounds.bottom, -90, "constrained bottom correct");
+        t.eq(constrained.grid[1][0].bounds.left, -180, "constrained left correct");
+        
+        map.destroy();
+        
+    }
+
+
+
     // DEPRECATED -- REMOVE IN 3.0
     function test_Layer_Untiled_WMS(t) {
         t.plan(1);
@@ -486,6 +540,28 @@
         map.destroy();
 
     }
+    
+    function test_transparent(t) {
+        t.plan(5);
+        var map = new OpenLayers.Map("map", {allOverlays: true});
+        var layer = new OpenLayers.Layer.WMS(
+            "OpenLayers WMS",
+            "http://myserver.org/wms?",
+            {layers: 'mylayer', transparent: true}
+        );
+        map.addLayer(layer);
+
+        t.eq(typeof layer.params.TRANSPARENT, "boolean", "transparent param is boolean");
+        t.ok(layer.getFullRequestString({}).indexOf("TRANSPARENT=TRUE") != -1, "Boolean transparent param value is uppercase TRUE");
+        layer.mergeNewParams({transparent: false});
+        t.ok(layer.getFullRequestString({}).indexOf("TRANSPARENT=FALSE") != -1, "Boolean transparent param value is uppercase FALSE");
+
+        layer.mergeNewParams({transparent: "true"});
+        t.eq(typeof layer.params.TRANSPARENT, "string", "transparent param is string");
+        t.ok(layer.getFullRequestString({}).indexOf("TRANSPARENT=true") != -1, "transparent param value passed as provided if String");
+        
+        map.destroy();
+    }
 
 
   </script>
diff --git a/tests/Layer/WMS/Post.html b/tests/Layer/WMS/Post.html
index 649cc23..90ff0b8 100644
--- a/tests/Layer/WMS/Post.html
+++ b/tests/Layer/WMS/Post.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var isOpera   = (navigator.userAgent.indexOf("Opera") != -1);
@@ -16,19 +16,20 @@
         t.plan( 2 );
 
         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
-        layer = new OpenLayers.Layer.WMS.Post(name, url, params);
+        var options = {unsupportedBrowsers: []};
+        layer = new OpenLayers.Layer.WMS.Post(name, url, params, options);
 
-        t.ok(
-            layer.tileClass == OpenLayers.Tile.Image.IFrame,
-            "instantiate OpenLayers.Tile.Image.IFrame tiles.");
+        t.eq(
+            layer.usePost, true,
+            "Supported browsers use IFrame tiles.");
 
         layer.destroy();
 
-        var options = { unsupportedBrowsers: [OpenLayers.Util.getBrowserName()]};
+        var options = { unsupportedBrowsers: [OpenLayers.BROWSER_NAME]};
         layer = new OpenLayers.Layer.WMS.Post(name, url, params, options);
-        t.ok(
-            layer.tileClass == OpenLayers.Tile.Image,
-            "unsupported browser instantiate Image tiles.");
+        t.eq(
+            layer.usePost, false,
+            "unsupported browsers use Image tiles.");
         layer.destroy();
     }
 
@@ -49,16 +50,15 @@
         }
         else {
             t.ok(
-                tile instanceof OpenLayers.Tile.Image.IFrame,
-                "tile is an instance of OpenLayers.Tile.Image.IFrame");
+                tile.useIFrame !== undefined,
+                "tile is created with the OpenLayers.Tile.Image.IFrame mixin");
         }
         map.destroy();
 
-        var browserName = OpenLayers.Util.getBrowserName();
-        var options = { unsupportedBrowsers: [browserName]};
-
         // test the unsupported browser
-        layer = new OpenLayers.Layer.WMS.Post(name, url, params, options);
+        layer = new OpenLayers.Layer.WMS.Post(name, url, params, {
+            unsupportedBrowsers: [OpenLayers.BROWSER_NAME]
+        });
         map   = new OpenLayers.Map('map');
         map.addLayer(layer);
         tile  = layer.addTile(bounds, pixel);
@@ -68,13 +68,14 @@
         layer.destroy();
 
         // test a supported browser
-        OpenLayers.Util.getBrowserName = function () { return 'not_' + browserName };
-        layer = new OpenLayers.Layer.WMS.Post(name, url, params, options);
+        layer = new OpenLayers.Layer.WMS.Post(name, url, params, {
+            unsupportedBrowsers: []
+        });
         map.addLayer(layer);
         var tile2 = layer.addTile(bounds, pixel);
         t.ok(
-            tile2 instanceof OpenLayers.Tile.Image.IFrame,
-            "supported browser: tile is an instance of Tile.Image.IFrame");
+            tile2.createIFrame,
+            "supported browser: tile is created with the Tile.Image.IFrame mixin");
         map.destroy();
     }
 
diff --git a/tests/Layer/WMTS.html b/tests/Layer/WMTS.html
index b733bac..aa1bed4 100644
--- a/tests/Layer/WMTS.html
+++ b/tests/Layer/WMTS.html
@@ -1,6 +1,6 @@
 <html>
     <head>
-        <script src="../../lib/OpenLayers.js"></script>
+        <script src="../OLLoader.js"></script>
         <script type="text/javascript">    
 
             function test_constructor(t) {
diff --git a/tests/Layer/WrapDateLine.html b/tests/Layer/WrapDateLine.html
index 01ed22f..2f3430e 100644
--- a/tests/Layer/WrapDateLine.html
+++ b/tests/Layer/WrapDateLine.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var layer; 
@@ -130,13 +130,13 @@
         t.plan( 3 );
 
         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
-        layer = new OpenLayers.Layer.WMS(name, url, params, {'wrapDateLine':true,encodeBBOX:true});
+        layer = new OpenLayers.Layer.WMS(name, url, params, {'wrapDateLine':true,encodeBBOX:true, buffer: 2});
         var m = new OpenLayers.Map('map');
         m.addLayer(layer);
         m.zoomToMaxExtent();
-        t.eq(layer.grid[3][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "cell [3][0] is wrapped around the world.");
-        t.eq(layer.grid[0][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "cell [0][0] is wrapped around the world lon, but not lat");
-        t.eq(layer.grid[0][3].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "cell [3][0] is not wrapped at all.");
+        t.eq(layer.grid[3][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "cell [3][0] is wrapped around the world.");
+        t.eq(layer.grid[0][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "cell [0][0] is wrapped around the world lon, but not lat");
+        t.eq(layer.grid[0][3].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "cell [3][0] is not wrapped at all.");
         m.destroy();
 
     }
@@ -146,7 +146,7 @@
         var layer = new OpenLayers.Layer.KaMap( "Blue Marble NG",
              "http://www.openlayers.org/world/index.php",
              {g: "satellite", map: "world"},
-             {wrapDateLine: true} ); 
+             {wrapDateLine: true, buffer: 2} ); 
         var m = new OpenLayers.Map('map');
         m.addLayer(layer);
         m.zoomToMaxExtent();
@@ -158,19 +158,19 @@
     function test_Layer_WrapDateLine_WMS_Overlay (t) {
         t.plan( 3 );
         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
-        baselayer = new OpenLayers.Layer.WMS(name, url, params, {'wrapDateLine':true});
+        baselayer = new OpenLayers.Layer.WMS(name, url, params, {'wrapDateLine':true, buffer: 2});
         var layer = new OpenLayers.Layer.WMS( "DM Solutions Demo",
             "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
             {layers: "bathymetry,land_fn,park,drain_fn,drainage," +
                      "prov_bound,fedlimit,rail,road,popplace",
              transparent: "true", format: "image/png"},
-            {wrapDateLine: true, reproject: false,encodeBBOX:true});
+            {wrapDateLine: true, reproject: false,encodeBBOX:true, buffer:2});
         var m = new OpenLayers.Map('map');
         m.addLayers([baselayer,layer]);
         m.zoomToMaxExtent();
-        t.eq(layer.grid[0][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "grid[0][0] wms overlay is okay");
-        t.eq(layer.grid[0][3].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "grid[0][3] wms overlay is okay");
-        t.eq(layer.grid[3][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "grid[3][0] wms overlay okay");
+        t.eq(layer.grid[0][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "grid[0][0] wms overlay is okay");
+        t.eq(layer.grid[0][3].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "grid[0][3] wms overlay is okay");
+        t.eq(layer.grid[3][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "grid[3][0] wms overlay okay");
         m.destroy();
     }
 
diff --git a/tests/Layer/XYZ.html b/tests/Layer/XYZ.html
index 364b147..a13ee84 100644
--- a/tests/Layer/XYZ.html
+++ b/tests/Layer/XYZ.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
@@ -108,7 +108,7 @@
      */
     function test_Layer_XYZ_getURL(t) {
 
-        t.plan(2);
+        t.plan(6);
         
         var map = new OpenLayers.Map('map');
         layer = new OpenLayers.Layer.XYZ(name, url);
@@ -120,13 +120,24 @@
         layer.url = ["http://tilecache1/", "http://tilecache2/", "http://tilecache3/"];
         tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
         t.eq(tileurl, "http://tilecache1/", "Tile URL is deterministic");
+
+        layer.url = url;
+        tileurl = layer.getURL(new OpenLayers.Bounds(180.515625,45,181.21875,45.703125));
+        t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/513/63.png", "Tile URL is correct");
+        tileurl = layer.getURL(new OpenLayers.Bounds(-181.515625,45,-180.21875,45.703125));
+        t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/-2/63.png", "Tile URL is correct");
+        layer.wrapDateLine = true;
+        tileurl = layer.getURL(new OpenLayers.Bounds(180.515625,45,181.21875,45.703125));
+        t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/1/63.png", "Tile URL is correct");
+        tileurl = layer.getURL(new OpenLayers.Bounds(-181.515625,45,-180.21875,45.703125));
+        t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/510/63.png", "Tile URL is correct");
         map.destroy();
     }
     function test_Layer_XYZ_Rounding(t) {
         t.plan(1);
             m = new OpenLayers.Map("map", {'maxExtent':new OpenLayers.Bounds(-122.6579,37.4901,-122.0738,37.8795)});
             layer = new OpenLayers.Layer.XYZ( "XYZ", 
-                    url, {layername: 'basic', type:'png', resolutions:[0.000634956337608418]} );
+                    url, {layername: 'basic', type:'png', resolutions:[0.000634956337608418], buffer: 2} );
             m.addLayer(layer);
             m.zoomToMaxExtent()
             t.eq(layer.getURL(layer.grid[3][3].bounds), "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/0/1/0.png", "XYZ tiles around rounded properly.");
@@ -148,6 +159,31 @@
         map.destroy();
     }
 
+    function test_Layer_XYZ_serverResolutions(t) {
+        t.plan(2);
+
+        var map = new OpenLayers.Map('map', {
+            resolutions: [13,11]
+        });
+
+        var layer = new OpenLayers.Layer.XYZ(name, url, options);
+        map.addLayer(layer);
+        map.setCenter(new OpenLayers.LonLat(0,0), 1);
+
+        var tileurl = layer.getURL(new OpenLayers.Bounds(0,0,0,0));
+        var level = parseInt(tileurl.split('/')[7]);
+        t.eq(map.getZoom(), level, "Tile zoom level is correct without serverResolutions");
+
+        layer.serverResolutions = [14,13,12,11,10];
+        tileurl = layer.getURL(new OpenLayers.Bounds(0,0,0,0));
+        level = parseInt(tileurl.split('/')[7]);
+        var res = map.getResolution();
+        var gotLevel = OpenLayers.Util.indexOf(layer.serverResolutions, res);
+        t.eq(gotLevel, level, "Tile zoom level is correct with serverResolutions");
+
+        map.destroy();
+    }
+
     function test_zoomOffset(t) {
 
         t.plan(2);
diff --git a/tests/Layer/Yahoo.html b/tests/Layer/Yahoo.html
index 9059f02..b3b8372 100755
--- a/tests/Layer/Yahoo.html
+++ b/tests/Layer/Yahoo.html
@@ -1,7 +1,7 @@
 <html>
 <head>
   <script src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers"></script>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var layer; 
 
diff --git a/tests/Map.html b/tests/Map.html
index e2a2ddd..39da192 100644
--- a/tests/Map.html
+++ b/tests/Map.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
@@ -163,8 +163,15 @@
     }
 
     function test_Map_center(t) {
-        t.plan(8);
-        map = new OpenLayers.Map('map');
+        t.plan(11);
+        var log = [];
+        map = new OpenLayers.Map('map', {
+            eventListeners: {
+                "movestart": function() {log.push("movestart");},
+                "move": function() {log.push("move");},
+                "moveend": function() {log.push("moveend");}
+            }            
+        });
         var baseLayer = new OpenLayers.Layer.WMS("Test Layer", 
             "http://octo.metacarta.com/cgi-bin/mapserv?",
             {map: "/mapdata/vmap_wms.map", layers: "basic"} );
@@ -180,7 +187,11 @@
         map.zoomOut();
         t.eq( map.getZoom(), 0, "map.zoom is correct after calling setCenter,zoom in, zoom out");
 
+        log = [];
         map.zoomTo(5);
+        t.eq(log[0], "movestart", "zoomTo fires movestart event");
+        t.eq(log[1], "move", "zoomTo fires move event");
+        t.eq(log[2], "moveend", "zoomTo fires moveend event");
         t.eq( map.getZoom(), 5, "map.zoom is correct after calling zoomTo" );
 
     /**
@@ -326,6 +337,29 @@
     }
  */
 
+    function test_Map_isValidZoomLevel(t) {
+        t.plan(4);
+        var map = new OpenLayers.Map("map");
+        map.addLayer(new OpenLayers.Layer(null, {
+            isBaseLayer: true, numZoomLevels: 19
+        }))
+        var valid;
+
+        valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [-1]);
+        t.eq(valid, false, "-1 is not a valid zoomLevel");
+
+        valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [0]);
+        t.eq(valid, true, "0 is a valid zoomLevel");
+
+        valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [18]);
+        t.eq(valid, true, "18 is a valid zoomLevel");
+
+        valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [19]);
+        t.eq(valid, false, "19 is not a valid zoomLevel");
+
+        map.destroy();
+    }
+    
     function test_Map_isValidLonLat(t) {
         t.plan( 3 );    
 
@@ -699,11 +733,12 @@
     function test_Map_removeLayer(t) {
         t.plan(1);
         var f = function() {};
+        var events = {triggerEvent: f};
         var layers = [
-            {name: "fee", removeMap: f},
-            {name: "fi", removeMap: f},
-            {name: "fo", removeMap: f},
-            {name: "fum", removeMap: f}
+            {name: "fee", removeMap: f, events: events},
+            {name: "fi", removeMap: f, events: events},
+            {name: "fo", removeMap: f, events: events},
+            {name: "fum", removeMap: f, events: events}
         ];
         var map = {
             layers: layers,
@@ -767,7 +802,40 @@
 
         map.destroy();
     }
-
+    
+	function test_Map_removeLayer_preremovelayer(t) {
+        t.plan(4);
+        map = new OpenLayers.Map('map');
+		
+        map.addLayer(new OpenLayers.Layer());
+        map.removeLayer(map.layers[0]);
+        
+        // one test: standard behaviour without listener
+        t.eq(map.layers.length, 0, "without registered preremovelayer-listener layers can be removed as usual");
+        
+        var callCnt = 0;
+        
+        map.events.register('preremovelayer', this, function(evt) {
+            callCnt++;
+            return !(evt.layer.name === 'donotremove');
+        });
+        var layer1 = new OpenLayers.Layer('donotremove');
+        var layer2 = new OpenLayers.Layer('doremove');
+		
+        map.addLayers([layer1,layer2]);
+		
+        // two tests: remove action can be canceled
+        map.removeLayer(layer1);
+        t.eq(map.layers.length, 2, "layer is not removed since preremovelayer returns false");
+        map.removeLayer(layer2);
+        t.eq(map.layers.length, 1, "layer is removed since preremovelayer returns true");
+        
+        // one test: listener was called twice
+        t.eq(callCnt, 2, "preremovelayer-listener was called exactly twice");
+        
+        map.destroy();
+	}
+    
     function test_Map_setBaseLayer_after_pan (t) {
         t.plan(1);
 
@@ -948,6 +1016,8 @@
         map.addControls(controls2, pixels2);
         t.eq(map.controls.length, 5, "three additional controls were added by map.addControls with a px-array");
         t.eq(map.controls[3].position.toString(), pixels2[1].toString(), "control 'fourthctrl' has position set to given px");
+
+        map.destroy();
     }
 
     function test_Map_getControl(t) {
@@ -1019,7 +1089,7 @@
     }
 
     function test_Map_restrictedExtent(t) {
-        t.plan(24);
+        t.plan(25);
         var extent = new OpenLayers.Bounds(-180, -90, 180, 90);
         var options = {
             maxResolution: "auto"
@@ -1114,8 +1184,28 @@
              "map extent not restricted with null restrictedExtent for se");
 
         map.destroy();
+
+        extent = new OpenLayers.Bounds(8, 44.5, 19, 50);
+        var options = {
+            restrictedExtent: extent
+        };
+        map = new OpenLayers.Map('map', options);
+
+        var wms = new OpenLayers.Layer.WMS(
+            "OpenLayers WMS", 
+            "http://vmap0.tiles.osgeo.org/wms/vmap0?",
+            {layers: 'basic'}
+        ); 
+
+        map.addLayers([wms]);
+        map.zoomToExtent(extent);
+        map.zoomIn();
+        map.setOptions({restrictedExtent: null});
+        map.pan(-250, -250);
+        t.ok((map.getExtent().bottom == 48.3486328125 && map.getExtent().left == 7.45751953125), "Expected extent when toggling restrictedExtent");
+        map.destroy();
     }
-    
+
     function test_Map_getResolutionForZoom(t) {
         t.plan(2);
         var map = new OpenLayers.Map("map");
@@ -1232,7 +1322,7 @@
         var maxExtent = OpenLayers.Map.prototype.getMaxExtent.apply(map, [options]);
         t.ok(maxExtent == map.baseLayer.maxExtent, "null options, valid baseLayer returns map.baseLayer.maxExtent");     
     }
-
+    
     function test_Map_zoomToMaxExtent(t){
         t.plan(4)
 
@@ -1269,7 +1359,7 @@
         var m = {
             'baseLayer': { 'units': {} },
             'getSize': function() { return {'w': 10, 'h': 15}; },
-            'getCenter': function() { return {'lon': -5, 'lat': -25}; },
+            'getCachedCenter': function() { return {'lon': -5, 'lat': -25}; },
             'zoomToExtent': function(extent, closest) {
                 t.ok(extent.equals(g_ExpectedExtent), "extent correctly calculated for zoomToExtent()");
                 t.ok(closest == g_Closest, "closest correctly passed on to zoomToExtent()");
@@ -1453,23 +1543,75 @@
     
     function test_panTo(t) {
         
-        t.plan(2);
+        t.plan(6);
         
-        var map = new OpenLayers.Map("map");
+        var log = [];
+        var map = new OpenLayers.Map("map", {
+            eventListeners: {
+                "movestart": function() {log.push("movestart");},
+                "move": function() {log.push("move");},
+                "moveend": function() {log.push("moveend");}
+            }            
+        });
         map.addLayer(
             new OpenLayers.Layer(null, {isBaseLayer: true})
         );
         map.setCenter(new OpenLayers.LonLat(0, 0), 0);
+        t.eq(log[log.length-1], "moveend", "moveend fired when map center is set");
+        log = [];
         
         map.panTo(new OpenLayers.LonLat(1, 0));
         t.eq(map.panTween.playing, true, "the map pan tween is playing before destroy");
         
-        map.destroy();
-        t.ok(!map.panTween || !map.panTween.playing, "the map pan tween is not playing after destroy");
+        t.delay_call(2, function() {
+            t.eq(log[0], "movestart", "panTo starts with movestart event");
+            t.eq(log[1], "move", "move events fired while panning");
+            t.eq(log[log.length-1], "moveend", "panTo finishes with moveend event");
+            map.destroy();
+            t.ok(!map.panTween || !map.panTween.playing, "the map pan tween is not playing after destroy");
+        });
+    }
+    
+    function test_pan(t) {
+        t.plan(4);
+        
+        var map = new OpenLayers.Map("map");
+        map.addLayer(
+            new OpenLayers.Layer(null, {isBaseLayer: true})
+        );
+        map.setCenter(new OpenLayers.LonLat(0, 0), 5);
+        var log = [];
+        map.events.on({
+            "movestart": function() {log.push("movestart");},
+            "move": function() {log.push("move");},
+            "moveend": function() {log.push("moveend");}
+        });
+        
+        // simulate the drag sequence of the DragPan control;
+        map.pan(5,5, {animate: false, dragging: true});
+        map.pan(1,1, {animate: false, dragging: false});
+        
+        t.eq(log[0], "movestart", "pan sequence starts with movestart");
+        t.eq(log[1], "move", "followed by move,");
+        t.eq(log[log.length-2], "move", "move again before we stop panning,");
+        t.eq(log[log.length-1], "moveend", "and moveend when we're done.");
+        
     }
 
+    // test if we can call updateSize before document.body is ready. updateOk
+    // is tested in the test_updateSize function below
+    var earlyMap = new OpenLayers.Map();
+    var updateOk;
+    try {
+      earlyMap.updateSize();
+      updateOk = true;
+    } catch(e) {}
+    earlyMap.destroy();
     function test_updateSize(t) {
-        t.plan(2);
+        t.plan(3);
+
+        // checking updateSize from outside this test function (see above)
+        t.ok(updateOk, "updateSize works before document.body is ready");
 
         var map, moveToCnt, size;
 
@@ -1500,7 +1642,7 @@
         map.updateSize();
         t.eq(moveToCnt, 1, "updateSize move the map if it has a center");
 
-        map.destroy();
+        map.destroy();        
     }
     
     function test_invisible_map(t) {
@@ -1548,11 +1690,13 @@
         
         t.eq(map.layers.length, 2, "multiple layers added from options");
         t.ok(map.baseLayer, "map has a base layer");
+
+        map.destroy();
         
     }
     
     function test_center_option(t) {
-        t.plan(6);
+        t.plan(7);
         
         var map, msg;
         
@@ -1575,6 +1719,12 @@
             map.destroy();
         }
         
+        var log = [];
+        var meth = OpenLayers.Layer.prototype.moveTo;
+        OpenLayers.Layer.prototype.moveTo = function() {
+            log.push(arguments);
+            meth.apply(this, arguments);
+        };
         
         // set center without zoom
         var center = new OpenLayers.LonLat(1, 2);
@@ -1585,8 +1735,10 @@
         });
         
         t.ok(center.equals(map.getCenter()), "map center set without zoom");
+        t.eq(log.length, 1, "moveTo called once");
         
         map.destroy();
+        OpenLayers.Layer.prototype.moveTo = meth;
         
         // set center and zoom
         var zoom = 3;
@@ -1617,6 +1769,120 @@
         map.destroy();
         
     }
+    function test_pixel_lonlat(t) {
+        
+        t.plan(4);
+
+        var map = new OpenLayers.Map({
+            div: "map",
+            layers: [
+                new OpenLayers.Layer("name", {isBaseLayer:true})
+            ]
+        });
+        map.zoomToMaxExtent();
+        var px = map.getPixelFromLonLat(map.getLonLatFromPixel(new OpenLayers.Pixel(100, 100)));
+        t.eq(px.x, 100, "x is the same in and ot");
+        t.eq(px.y, 100, "y is the same in and out");
+        var ll = map.getLonLatFromPixel(map.getPixelFromLonLat(new OpenLayers.LonLat(100, 100)));
+        t.ok((ll.lon > (100 -map.getResolution()) && (ll.lon < (100 + map.getResolution()))), "lon is the same in and ot");
+        t.ok((ll.lat > (100 -map.getResolution()) && (ll.lat < (100 + map.getResolution()))), "lat is the same in and ot");
+        map.destroy();
+    }    
+
+    function test_moveByPx(t) {
+        t.plan(16);
+
+        var moved;
+        var Layer = OpenLayers.Class(OpenLayers.Layer, {
+            moveByPx: function(dx, dy) {
+                moved[this.name] = true;
+            }
+        });
+
+        var map = new OpenLayers.Map({
+            div: 'map',
+            maxExtent: new OpenLayers.Bounds(-50, -50, 50, 50),
+            restrictedExtent: new OpenLayers.Bounds(-10, -10, 10, 10),
+            layers: [
+                new Layer('base',
+                    {isBaseLayer: true}),
+                new Layer('outofrange',
+                    {isBaseLayer: false, minResolution:2})
+            ]
+        });
+
+        moved = {};
+        map.zoomToExtent(new OpenLayers.Bounds(-1, -1, 1, 1));
+
+        // check initial state
+        t.eq(map.layerContainerDiv.style.left, '0px',
+             '[initial state] layer container left correct');
+        t.eq(map.layerContainerDiv.style.top, '0px',
+             '[initial state] layer container top correct');
+        t.eq(moved['base'], undefined,
+             '[initial state] base layer not moved');
+        t.eq(moved['outofrange'], undefined,
+             '[initial state] out-of-range layer not moved');
+
+        // move to a valid position
+        moved = {};
+        map.moveByPx(-455, 455);
+        t.eq(map.layerContainerDiv.style.left, '455px',
+             '[valid position] layer container left correct');
+        t.eq(map.layerContainerDiv.style.top, '-455px',
+             '[valid position] layer container top correct');
+        t.eq(moved['base'], true,
+             '[valid position] base layer moved');
+        t.eq(moved['outofrange'], undefined,
+             '[valid position] out-of-range layer not moved');
+
+        // move outside the max extent
+        moved = {};
+        map.moveByPx(-4500, 4500);
+        t.eq(map.layerContainerDiv.style.left, '455px',
+             '[outside max extent] layer container left correct');
+        t.eq(map.layerContainerDiv.style.top, '-455px',
+             '[outside max extent] layer container top correct');
+        t.eq(moved['base'], undefined,
+             '[outside max extent] base layer not moved');
+        t.eq(moved['outofrange'], undefined,
+             '[outside max extent] out-of-range layer not moved');
+
+        // move outside the restricted extent
+        moved = {};
+        map.moveByPx(-500, 500);
+        t.eq(map.layerContainerDiv.style.left, '455px',
+             '[outside restricted extent] layer container left correct');
+        t.eq(map.layerContainerDiv.style.top, '-455px',
+             '[outside restricted extent] layer container top correct');
+        t.eq(moved['base'], undefined,
+             '[outside restricted extent] base layer not moved');
+        t.eq(moved['outofrange'], undefined,
+             '[outside restricted extent] out-of-range layer not moved');
+
+
+        map.destroy();
+    }
+
+    // test for http://trac.osgeo.org/openlayers/ticket/3388
+    function test_moveByPx_restrictedExtent(t) {
+        t.plan(2);
+
+        var map = new OpenLayers.Map({
+            div: 'map',
+            restrictedExtent: new OpenLayers.Bounds(-22.5,-11.25,22.5,11.25),
+            layers: [
+                new OpenLayers.Layer('name', {isBaseLayer: true})
+            ]
+        });
+
+        map.zoomToExtent(new OpenLayers.Bounds(-11.25, 0, 11.25, 11.25));
+
+        map.moveByPx(-10, -10);
+        t.eq(map.layerContainerDiv.style.left, '10px', 'layer container left correct');
+        t.eq(map.layerContainerDiv.style.top, '0px', 'layer container top correct');
+    }
+
 
   </script>
 </head>
diff --git a/tests/Marker.html b/tests/Marker.html
index 69b9a81..77abc31 100644
--- a/tests/Marker.html
+++ b/tests/Marker.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     var marker;
diff --git a/tests/Marker/Box.html b/tests/Marker/Box.html
index d8d5306..806336e 100644
--- a/tests/Marker/Box.html
+++ b/tests/Marker/Box.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var box; 
     
@@ -26,7 +26,7 @@
         t.ok( box.bounds.equals(bounds), "bounds object correctly set");
         t.ok( box.div != null, "div created");
         //Safari 3 separates style overflow into overflow-x and overflow-y
-        var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+        var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq( box.div.style[prop], "hidden", "div style overflow hidden");
         t.ok( box.events != null, "events object created");
         t.eq( g_Color, borderColor, "setBorder called with correct border color");        
diff --git a/tests/OLLoader.js b/tests/OLLoader.js
new file mode 100644
index 0000000..a2311c7
--- /dev/null
+++ b/tests/OLLoader.js
@@ -0,0 +1,26 @@
+// Adding a mode parameter with "build" as value in the run-tests.html will 
+// make usage of the build version of the library.
+// get the OLLoader.js script location
+(function() {
+    var r = new RegExp("(^|(.*?\\/))(" + "OLLoader.js" + ")(\\?|$)"),
+        s = document.getElementsByTagName('script'),
+        src, m, l = "";
+    for(var i=0, len=s.length; i<len; i++) {
+        src = s[i].getAttribute('src');
+        if(src) {
+            var m = src.match(r);
+            if(m) {
+                l = m[1];
+                break;
+            }
+        }
+    }
+
+    var regex = new RegExp( "[\\?&]mode=([^&#]*)" );
+    var href = window.parent.location.href;
+    var results = regex.exec( href );
+    l += (results && results[1] == 'build') ? 
+        "../build/OpenLayers.js" : "../lib/OpenLayers.js"; 
+    scriptTag = "<script src='" + l + "'></script>"; 
+    document.write(scriptTag);
+})();
diff --git a/tests/OpenLayers.html b/tests/OpenLayers.html
deleted file mode 100644
index 2f62610..0000000
--- a/tests/OpenLayers.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<head>
-    <script src="bogus/1/OpenLayers.js-foo"></script>
-    <script src="bogus/2/foo-OpenLayers.js"></script>
-    <script id="script" src="../lib/OpenLayers.js"></script>
-    <script type="text/javascript">
-        function test_OpenLayers(t) {
-            t.plan(3);
-
-            var script = document.getElementById("script");
-
-            t.eq(OpenLayers._getScriptLocation(), "../", "Script location correctly detected.");
-            
-            // create a clone of OpenLayers._getScriptLocation
-            eval("var getScriptLocation = " + OpenLayers._getScriptLocation.toString());
-            var scriptLocation;
-            
-            script.setAttribute("src", "../lib/OpenLayers.js?foo");
-            t.eq(getScriptLocation(), "../", "Script location with search string correctly detected.");
-            scriptLocation = null;
-
-            // now pretend we're using a built script
-            OpenLayers._scriptName = "OpenLayers.js";
-            t.eq(getScriptLocation(), "../lib/", "not fooled by bogus paths");
-            
-        }
-    </script>
-</head>
-<body>
-</body>
-</html>
diff --git a/tests/OpenLayers1.html b/tests/OpenLayers1.html
new file mode 100644
index 0000000..ea574ef
--- /dev/null
+++ b/tests/OpenLayers1.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+    <script src="../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        function test_OpenLayers(t) {
+            t.plan(1);
+
+            var script = document.getElementById("script");
+
+            t.eq(OpenLayers._getScriptLocation(), "../", "Script location correctly detected.");
+        }
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/OpenLayers2.html b/tests/OpenLayers2.html
new file mode 100644
index 0000000..fbdb043
--- /dev/null
+++ b/tests/OpenLayers2.html
@@ -0,0 +1,19 @@
+<html>
+<head>
+    <script src="bogus/1/OpenLayers.js-foo"></script>
+    <script src="bogus/2/foo-OpenLayers.js"></script>
+    <script src="../lib/OpenLayers.js?foo"></script>
+    <script src="bogus/3/after-OpenLayers.js"></script>
+    <script type="text/javascript">
+        function test_OpenLayers(t) {
+            t.plan(1);
+
+            var script = document.getElementById("script");
+
+            t.eq(OpenLayers._getScriptLocation(), "../", "Script location with search string correctly detected, and not fooled by other scripts.");
+        }
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/OpenLayers3.html b/tests/OpenLayers3.html
new file mode 100644
index 0000000..c4cbb80
--- /dev/null
+++ b/tests/OpenLayers3.html
@@ -0,0 +1,19 @@
+<html>
+<head>
+    <script>
+    var OpenLayers = {singleFile: true};
+    </script>
+    <script src="../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        function test_OpenLayers(t) {
+            t.plan(1);
+
+            var script = document.getElementById("script");
+
+            t.eq(OpenLayers._getScriptLocation(), "../lib/", "Script location for single file build correctly detected.");
+        }
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/OpenLayers4.html b/tests/OpenLayers4.html
new file mode 100644
index 0000000..7c9012c
--- /dev/null
+++ b/tests/OpenLayers4.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+    <script type="text/javascript">
+        OpenLayers = {singleFile: true}; // just to make the test run faster
+        document.write('<scr'+'ipt src="../lib/OpenLayers.js"></scr'+'ipt>');
+        document.write('<scr'+'ipt src="bogus/foo-/OpenLayers.js"></scr'+'ipt>');
+    </script>
+    <script type="text/javascript">
+        function test_OpenLayers(t) {
+            t.plan(1);
+            t.eq(OpenLayers._getScriptLocation(), "../lib/",
+                 "Script location correctly detected, and not fooled by other scripts.");
+        }
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/OpenLayersJsFiles.html b/tests/OpenLayersJsFiles.html
new file mode 100644
index 0000000..8dff0ec
--- /dev/null
+++ b/tests/OpenLayersJsFiles.html
@@ -0,0 +1,27 @@
+<html>
+<head>
+    <script type="text/javascript">
+        window.OpenLayers = new Array(
+            "OpenLayers/Util.js",
+            "OpenLayers/BaseTypes.js"
+        );
+    </script>
+    <script src="../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        function test_OpenLayers(t) {
+            t.plan(1);
+            var s = document.getElementsByTagName("script");
+            var src, count = 0;
+            for(var i=0, len=s.length; i<len; i++) {
+                src = s[i].getAttribute('src');
+                if(src) {
+                    count++;
+                }
+            }
+            t.eq(count, 3, "Three OpenLayers scripts loaded.");
+        }
+    </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Popup.html b/tests/Popup.html
index f7f8384..10245a0 100644
--- a/tests/Popup.html
+++ b/tests/Popup.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     var popup;
@@ -29,7 +29,7 @@
     }
     
     function test_Popup_constructor (t) {
-        t.plan( 8 );
+        t.plan(9);
 
         var id = "chicken";
         var w = 500;
@@ -63,11 +63,17 @@
         for (var i = 0; i < OpenLayers.Event.observers[cacheID].length; i++) {
             var observer = OpenLayers.Event.observers[cacheID][i];
             if (observer.element == closeImgDiv) {
-                t.ok(true, "An event was registered for the close box element");
-                t.eq(observer.name, "click", "A click event was registered for the close box element");
-                //call the registered observer to make sure it's the right one
-                observer.observer();
-                break;
+                if (observer.name == "click") {
+                    t.ok(true, "A click event was registered for the close box element");
+                    //call the registered observer to make sure it's the right one
+                    observer.observer();
+                } else if (observer.name == "touchend") {
+                    t.ok(true, "A touchend event was registered for the close box element");
+                    //call the registered observer to make sure it's the right one
+                    observer.observer();
+                } else {
+                    t.fail("A " + observer.name + " event was registered for the close box element");
+                }
             }
         }
     }
@@ -88,8 +94,8 @@
     }
     function test_Popup_keepInMap(t) {
         
-        var gb = OpenLayers.Util.getBrowserName;
-        OpenLayers.Util.getBrowserName = function() { return "mock"; }
+        var bn = OpenLayers.BROWSER_NAME;
+        OpenLayers.BROWSER_NAME = "mock";
         t.plan(3);
         var map = new OpenLayers.Map("map");
         map.addLayer(new OpenLayers.Layer("", {isBaseLayer: true}));
@@ -120,7 +126,7 @@
         t.ok(safeSizePan.equals(safeSizePanKeep), "Panning means that all sizes are equal");
         t.ok(safeSize.w < safeSizePan.w, "Width of non-panning is less");    
         t.ok(safeSize.h < safeSizePan.h, "Height of non-panning is less");    
-        OpenLayers.Util.getBrowserName = gb; 
+        OpenLayers.BROWSER_NAME = bn;
     }    
     function test_Popup_draw(t) {
         t.plan( 15 );
@@ -155,7 +161,7 @@
         t.eq(contentDiv.id, "chicken_contentDiv", "correct content div id");
         t.eq(contentDiv.style.position, "relative", "correct content div position");
         //Safari 3 separates style overflow into overflow-x and overflow-y
-        var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+        var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq(contentDiv.style[prop], "", "correct content div overflow");
         t.eq(contentDiv.innerHTML, content, "correct content div content");
 
@@ -169,7 +175,7 @@
             t.eq(popup.div.style.filter, "alpha(opacity=" + opacity*100 + ")", "good default popup.opacity");
         }
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           var s = border.split(' ');
           t.ok(popup.div.style.borderTopWidth == s[0] && popup.div.style.borderTopStyle == s[1], "good default popup.border")
         } else {
diff --git a/tests/Popup/Anchored.html b/tests/Popup/Anchored.html
index be22abc..f53546b 100644
--- a/tests/Popup/Anchored.html
+++ b/tests/Popup/Anchored.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var popup;
@@ -11,7 +11,7 @@
         popup = new OpenLayers.Popup.Anchored();
 
         t.ok( popup instanceof OpenLayers.Popup.Anchored, "new OpenLayers.Popup.Anchored returns Popup.Anchored object" );
-        t.ok(popup.id.startsWith("OpenLayers.Popup.Anchored"), "valid default popupid");
+        t.ok(OpenLayers.String.startsWith(popup.id, "OpenLayers.Popup.Anchored"), "valid default popupid");
         var firstID = popup.id;
         t.eq(popup.contentHTML, null, "good default popup.contentHTML");
 
diff --git a/tests/Popup/AnchoredBubble.html b/tests/Popup/AnchoredBubble.html
index a3ba599..bd2d812 100644
--- a/tests/Popup/AnchoredBubble.html
+++ b/tests/Popup/AnchoredBubble.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
    function test_Popup_Anchored_setOpacity(t) { 
diff --git a/tests/Popup/FramedCloud.html b/tests/Popup/FramedCloud.html
index b7f3325..7da86e3 100644
--- a/tests/Popup/FramedCloud.html
+++ b/tests/Popup/FramedCloud.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
    function test_Popup_FramedCloud_setHTML(t) { 
diff --git a/tests/Projection.html b/tests/Projection.html
index 2c6d72c..6ef317d 100644
--- a/tests/Projection.html
+++ b/tests/Projection.html
@@ -1,6 +1,6 @@
 <html> 
   <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript"> 
      function test_Projection_constructor(t) { 
          t.plan(9); 
@@ -21,7 +21,47 @@
 
          t.eq(projection.equals(null), false, "equals on null projection returns false");
          t.eq(projection.equals({}), false, "equals on null projection object returns false (doesn't call getCode)");
-     } 
+     }
+     
+     function test_Projection_equals(t) {
+         t.plan(8);
+         var origTransforms = OpenLayers.Util.extend({}, OpenLayers.Projection.transforms);
+         OpenLayers.Projection.addTransform("EPSG:4326", "FOO", OpenLayers.Projection.nullTransform);
+         OpenLayers.Projection.addTransform("FOO", "EPSG:4326", OpenLayers.Projection.nullTransform);
+         var projection = new OpenLayers.Projection("FOO");
+         t.eq(projection.equals(new OpenLayers.Projection("EPSG:4326")), true, "EPSG:4326 and FOO are equal without proj4js");
+         t.eq(projection.equals(new OpenLayers.Projection("EPSG:900913")), false, "EPSG:900913 and FOO are not equal without proj4js");
+         t.eq(new OpenLayers.Projection("EPSG:4326").equals(new OpenLayers.Projection("EPSG:4326")), true, "EPSG:4326 and EPSG:4326 are equal without proj4js");
+         t.eq(new OpenLayers.Projection("BAR").equals(new OpenLayers.Projection("EPSG:4326")), false, "Projection.equals() returns false for unknown projections withoug proj4js");
+         OpenLayers.Projection.transforms = origTransforms;
+         
+         var proj1 = new OpenLayers.Projection("EPSG:4326");
+         var proj2 = new OpenLayers.Projection("FOO");
+         var proj3 = new OpenLayers.Projection("EPSG:900913");
+         var proj4 = new OpenLayers.Projection("EPSG:4326");
+         var proj5 = new OpenLayers.Projection("BAR");
+
+         // conditionally mock up proj4js
+         var hasProj = !!window.Proj4js;
+         if (!hasProj) {
+             window.Proj4js = true;
+         }
+         proj1.proj = {defData: "+title= WGS84 +foo=bar +x=0"};
+         proj2.proj = {defData: "+title=FOO +foo=bar +x=0", srsCode: "FOO"};
+         proj3.proj = {defData: "+title=Web Mercator +foo=bar +x=0 +I=am-different"};
+         proj4.proj = proj1.proj;
+         proj5.proj = {srsCode: "BAR"};
+
+         t.eq(proj2.equals(proj1), true, "EPSG:4326 and FOO are equal with proj4js");
+         t.eq(proj2.equals(proj3), false, "EPSG:900913 and FOO are not equal with proj4js");
+         t.eq(proj1.equals(proj4), true, "EPSG:4326 and EPSG:4326 are equal with proj4js");
+         t.eq(proj2.equals(proj5), false, "Projection.equals() returns false for unknown projections with proj4js");
+         
+         if (!hasProj) {
+             window.Proj4js = undefined;
+         }
+         
+     }
        
     </script> 
   </head> 
diff --git a/tests/Protocol.html b/tests/Protocol.html
index 2cca760..7432b86 100644
--- a/tests/Protocol.html
+++ b/tests/Protocol.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Protocol/HTTP.html b/tests/Protocol/HTTP.html
index 16f6da2..fac460b 100644
--- a/tests/Protocol/HTTP.html
+++ b/tests/Protocol/HTTP.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_constructor(t) {
@@ -199,11 +199,7 @@
     }
 
     function test_read_bbox(t) {
-        t.plan(1);
-        var protocol = new OpenLayers.Protocol.HTTP();
-
-        // fake XHR request object
-        var request = {'status': 200};
+        t.plan(6);
 
         var _get = OpenLayers.Request.GET;
 
@@ -211,16 +207,34 @@
         var filter = new OpenLayers.Filter.Spatial({
             type: OpenLayers.Filter.Spatial.BBOX,
             value: bounds,
-            projection: "foo"
+            projection: new OpenLayers.Projection("foo")
         });
         
+        // log requests
+        var log, exp;
         OpenLayers.Request.GET = function(options) {
-            t.eq(options.params['bbox'].toString(), bounds.toArray().toString(),
-                'GET called with bbox filter in params');
-            return request;
+            log.push(options.params.bbox);
+            return {status: 200};
         };
 
-        var resp = protocol.read({filter: filter});
+        // 1) issue request with default protocol
+        log = [];
+        new OpenLayers.Protocol.HTTP().read({filter: filter});
+
+        t.eq(log.length, 1, "1) GET called once");
+        t.ok(log[0] instanceof Array, "1) bbox param is array");
+        exp = bounds.toArray();
+        t.eq(log[0], exp, "1) bbox param doesn't include SRS id by default");
+        
+        // 2) issue request with default protocol
+        log = [];
+        new OpenLayers.Protocol.HTTP({srsInBBOX: true}).read({filter: filter});
+
+        t.eq(log.length, 1, "2) GET called once");
+        t.ok(log[0] instanceof Array, "2) bbox param is array");
+        exp = bounds.toArray();
+        exp.push("foo");
+        t.eq(log[0], exp, "2) bbox param includes SRS id if srsInBBOX is true");
 
         OpenLayers.Request.GET = _get;        
     }
@@ -273,291 +287,6 @@
         t.eq(ret, null, 'parseFeatures returns expected value');
     }
 
-    function test_filterToParams(t) {
-        t.plan(30);
-
-        // setup
-
-        var protocol, filter, params;
-
-        protocol = new OpenLayers.Protocol.HTTP();
-
-        // 1 test
-        var filter = new OpenLayers.Filter.Spatial({
-            type: OpenLayers.Filter.Spatial.BBOX,
-            value: new OpenLayers.Bounds(0, 1, 2, 3)
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.bbox, [0, 1, 2, 3],
-             "filterToParams sets correct bbox param if passed a BBOX filter");
-
-        // 3 tests
-        var lon = 100, lat = 200, tolerance = 10;
-        filter = new OpenLayers.Filter.Spatial({
-            type: OpenLayers.Filter.Spatial.DWITHIN,
-            value: new OpenLayers.Geometry.Point(lon, lat),
-            distance: tolerance
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.lon, lon,
-             "filterToParams sets correct lon param if passed a DWITHIN filter");
-        t.eq(params.lat, lat,
-             "filterToParams sets correct lat param if passed a DWITHIN filter");
-        t.eq(params.tolerance, tolerance,
-             "filterToParams sets correct tolerance param if passed a DWITHIN filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Spatial({
-            type: OpenLayers.Filter.Spatial.WITHIN,
-            value: new OpenLayers.Geometry.Point(lon, lat)
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.lon, lon,
-             "filterToParams sets correct lon param if passed a WITHIN filter");
-        t.eq(params.lat, lat,
-             "filterToParams sets correct lat param if passed a WITHIN filter");
-
-        // Some bbox filters used in the next tests.
-
-        var bboxFilter1 = new OpenLayers.Filter.Spatial({
-            type: OpenLayers.Filter.Spatial.BBOX,
-            value:  new OpenLayers.Bounds(0, 0, 10, 10)
-        });
-
-        var bboxFilter2 = new OpenLayers.Filter.Spatial({
-            type: OpenLayers.Filter.Spatial.BBOX,
-            value:  new OpenLayers.Bounds(0, 0, 20, 20)
-        });
-
-        // 1 test
-        filter = new OpenLayers.Filter.Logical({
-            type: OpenLayers.Filter.Logical.AND,
-            filters: []
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params, {},
-             "filterToParams returns empty object if given empty AND Logical filter");
-
-        // 1 test
-        filter = new OpenLayers.Filter.Logical({
-            type: OpenLayers.Filter.Logical.OR,
-            filters: [
-                bboxFilter1
-            ]
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params, {},
-             "filterToParams does not support OR Logical filter");
-
-        // 1 test
-        filter = new OpenLayers.Filter.Logical({
-            type: OpenLayers.Filter.Logical.AND,
-            filters: [
-                bboxFilter1
-            ]
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.bbox, [0, 0, 10, 10],
-             "filterToParams sets correct bbox param if passed " +
-             "a Logical filter containing a BBOX");
-
-        // 1 test
-        filter = new OpenLayers.Filter.Logical({
-            type: OpenLayers.Filter.Logical.AND,
-            filters: [
-                bboxFilter1, bboxFilter2
-            ]
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.bbox, [0, 0, 20, 20],
-             "filterToParams sets correct bbox param if passed " +
-             "multiple BBOX filter in a Logical filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.EQUAL_TO,
-            property: "foo",
-            value: "bar"
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an EQUAL_TO filter");
-        t.eq(params["foo__eq"], "bar",
-             "filterToParams sets correct param key and value if passed an EQUAL_TO filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
-            property: "foo",
-            value: "bar"
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an NOT_EQUAL_TO filter");
-        t.eq(params["foo__ne"], "bar",
-             "filterToParams sets correct param key and value if passed an NOT_EQUAL_TO filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.LESS_THAN,
-            property: "foo",
-            value: "bar"
-        });
-        var params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an LESS_THAN filter");
-        t.eq(params["foo__lt"], "bar",
-             "filterToParams sets correct param key and value if passed an LESS_THAN filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
-            property: "foo",
-            value: "bar"
-        });
-        var params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an LESS_THAN_OR_EQUAL_TO filter");
-        t.eq(params["foo__lte"], "bar",
-             "filterToParams sets correct param key and value if passed an LESS_THAN_OR_EQUAL_TO filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.GREATER_THAN,
-            property: "foo",
-            value: "bar"
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an GREATER_THAN filter");
-        t.eq(params["foo__gt"], "bar",
-             "filterToParams sets correct param key and value if passed an GREATER_THAN filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
-            property: "foo",
-            value: "bar"
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an GREATER_THAN_OR_EQUAL_TO filter");
-        t.eq(params["foo__gte"], "bar",
-             "filterToParams sets correct param key and value if passed an GREATER_THAN_OR_EQUAL_TO filter");
-
-        // 2 tests
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.LIKE,
-            property: "foo",
-            value: "bar"
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed a LIKE filter");
-        t.eq(params["foo__ilike"], "bar",
-             "filterToParams sets correct param key and value if passed an LIKE filter");
-
-        // 4 tests
-        filter = new OpenLayers.Filter.Logical({
-            type: OpenLayers.Filter.Logical.AND,
-            filters: [
-                new OpenLayers.Filter.Comparison({
-                    type: OpenLayers.Filter.Comparison.EQUAL_TO,
-                    property: "foo",
-                    value: "bar"
-                }),
-                new OpenLayers.Filter.Comparison({
-                    type: OpenLayers.Filter.Comparison.LESS_THAN,
-                    property: "foo2",
-                    value: "baz"
-                })
-            ]
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed an EQUAL_TO filter within a AND filter");
-        t.eq(params["foo__eq"], "bar",
-             "filterToParams sets correct param key and value if passed an EQUAL_TO filter within a AND filter");
-        t.eq(params.queryable[1], "foo2",
-             "filterToParams sets correct queryable param if passed a LESS_THAN filter within a AND filter");
-        t.eq(params["foo2__lt"], "baz",
-             "filterToParams sets correct param key and value if passed a LESS_THAN filter within a AND filter");
-
-        // 2 tests
-        protocol = new OpenLayers.Protocol.HTTP({wildcarded: true});
-        filter = new OpenLayers.Filter.Comparison({
-            type: OpenLayers.Filter.Comparison.LIKE,
-            property: "foo",
-            value: "bar"
-        });
-        params = protocol.filterToParams(filter);
-        t.eq(params.queryable[0], "foo",
-             "filterToParams sets correct queryable param if passed a LIKE filter (wildcarded true)");
-        t.eq(params["foo__ilike"], "%bar%",
-             "filterToParams sets correct param key and value if passed an LIKE filter (wildcarded true)");
-    }
-
-    function test_regex2value(t) {
-        t.plan(16);
-
-        // setup
-
-        var protocol = new OpenLayers.Protocol.HTTP();
-        var value;
-
-        // test
-
-        value = protocol.regex2value("foo");
-        t.eq(value, "foo", 'regex2value converts "foo" to "foo"');
-
-        value = protocol.regex2value("foo%");
-        t.eq(value, "foo\\%", 'regex2value converts "foo%" to "foo\\%"');
-
-        value = protocol.regex2value("foo.*");
-        t.eq(value, "foo%", 'regex2value converts "foo.*" to "foo%"');
-
-        value = protocol.regex2value("f.*oo.*");
-        t.eq(value, "f%oo%", 'regex2value converts "f.*oo.*" to "f%oo%"');
-
-        value = protocol.regex2value("foo.");
-        t.eq(value, "foo_", 'regex2value converts "foo." to "foo_"');
-
-        value = protocol.regex2value("f.oo.");
-        t.eq(value, "f_oo_", 'regex2value converts "f.oo." to "f_oo_"');
-
-        value = protocol.regex2value("f.oo.*");
-        t.eq(value, "f_oo%", 'regex2value converts "f.oo.*" to "f_oo%"');
-
-        value = protocol.regex2value("foo\\\\");
-        t.eq(value, "foo\\\\", 'regex2value converts "foo\\\\" to "foo\\\\"');
-
-        value = protocol.regex2value("foo\\.");
-        t.eq(value, "foo.", 'regex2value converts "foo\\." to "foo."');
-
-        value = protocol.regex2value("foo\\\\.");
-        t.eq(value, "foo\\\\_", 'regex2value converts "foo\\\\." to "foo\\\\_"');
-
-        value = protocol.regex2value("foo\\*");
-        t.eq(value, "foo*", 'regex2value converts "foo\\*" to "foo*"');
-
-        value = protocol.regex2value("foo\\\\*");
-        t.eq(value, "foo\\\\*", 'regex2value converts "foo\\\\*" to "foo\\\\*"');
-
-        value = protocol.regex2value("foo\\\\.*");
-        t.eq(value, "foo\\\\%", 'regex2value converts "foo\\\\.*" to "foo\\\\%"');
-
-        value = protocol.regex2value("fo\\.o.*");
-        t.eq(value, "fo.o%", 'regex2value converts from "fo\\.o.*" to "fo.o%"');
-
-        value = protocol.regex2value("fo.*o\\.");
-        t.eq(value, "fo%o.", 'regex2value converts from "fo.*o\\." to "to%o."');
-
-        value = protocol.regex2value("\\*\\..*.\\\\.*\\\\.%");
-        t.eq(value, "*.%_\\\\%\\\\_\\%",
-             'regex2value converts from "\\*\\..*.\\\\.*\\\\.%" ' +
-             'to "*.%_\\\\%\\\\_\\%"');
-   }
-
     function test_create(t) {
         t.plan(10);
         var protocol = new OpenLayers.Protocol.HTTP({
@@ -1050,7 +779,7 @@
         });        
         protocol.read();
         
-        t.delay_call(1, function() {
+        t.delay_call(2, function() {
             t.eq(log1.callbackCalled, true, "[read] callback called");
             t.eq(log1.callbackScope, scope, "[read] correct scope");
             t.ok(log1.request instanceof OpenLayers.Request.XMLHttpRequest, "[read] correct priv type");
@@ -1072,11 +801,37 @@
             {state: OpenLayers.State.DELETE, url: "./3"},
             {state: OpenLayers.State.DELETE, url: "./4"}
         ]);
-        t.delay_call(1, function() {
+        t.delay_call(2, function() {
             t.eq(log2.called, 1, "[commit] Callback called once.");
             t.eq(log2.scope, scope, "[commit] Correct scope.");
         });
+    }
+
+    function test_read_global_options(t) {
 
+        // test that calling read doesn't write params into the protocol's
+        // options object, see ticket #3237
+
+        t.plan(2);
+
+        var protocol = new OpenLayers.Protocol.HTTP({
+            url: '.',
+            callback: function() {},
+            params: {'a': 'a'}
+        });
+
+        // check initial state first
+        t.eq(protocol.options.params, {'a': 'a'},
+             'protocol params are ok at initial state');
+
+        var filter = new OpenLayers.Filter.Comparison({
+            type: OpenLayers.Filter.Comparison.EQUAL_TO,
+            property: 'b',
+            value: 'b'
+        });
+        protocol.read({filter: filter});
+        t.eq(protocol.options.params, {'a': 'a'},
+             "protocol params are ok after read");
     }
 
 
diff --git a/tests/Protocol/SOS.html b/tests/Protocol/SOS.html
index 4e4277b..58e6607 100644
--- a/tests/Protocol/SOS.html
+++ b/tests/Protocol/SOS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_constructor(t) {
diff --git a/tests/Protocol/SQL.html b/tests/Protocol/SQL.html
index 01377e0..f02a5e8 100644
--- a/tests/Protocol/SQL.html
+++ b/tests/Protocol/SQL.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Protocol/SQL/Gears.html b/tests/Protocol/SQL/Gears.html
index 6f97f1a..c206e5a 100644
--- a/tests/Protocol/SQL/Gears.html
+++ b/tests/Protocol/SQL/Gears.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../../lib/OpenLayers.js"></script>
+  <script src="../../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Protocol/Script.html b/tests/Protocol/Script.html
new file mode 100644
index 0000000..a676e61
--- /dev/null
+++ b/tests/Protocol/Script.html
@@ -0,0 +1,271 @@
+<html>
+<head>
+  <script src="../../lib/OpenLayers.js"></script>
+  <script type="text/javascript">
+
+    function test_constructor(t) {
+        t.plan(11);
+        var a = new OpenLayers.Protocol.Script({
+            url: "foo"
+        });
+
+        // 7 tests
+        t.eq(a.url, "foo", "constructor sets url");
+        t.eq(a.options.url, a.url, "constructor copies url to options.url");
+        t.eq(a.params, {}, "constructor sets params");
+        t.eq(a.options.params, undefined, "constructor does not copy params to options.params");
+        t.ok(a.format instanceof OpenLayers.Format.GeoJSON,
+                "constructor sets a GeoJSON format by default");
+        t.eq(a.callbackKey, 'callback',
+                "callbackKey is set to 'callback' by default");
+        t.eq(a.callbackPrefix, '',
+                "callbackPrefix is set to '' by default");
+
+        var params = {hello: "world"};
+        var b = new OpenLayers.Protocol.Script({
+            url: "bar",
+            params: params,
+            callbackKey: 'cb_key',
+            callbackPrefix: 'cb_prefix'
+        });
+
+        // 6 tests
+        t.eq(b.params, params, "constructor sets params");
+        t.eq(b.options.params, b.params, "constructor copies params to options.params");
+        t.eq(b.callbackKey, 'cb_key',
+                "callbackKey is set to 'cb_key'");
+        t.eq(b.callbackPrefix, 'cb_prefix',
+                "callbackPrefix is set to 'cb_prefix'");
+    }
+
+    function test_destroy(t) {
+        t.plan(3);
+        var aborted = false;
+        var protocol = new OpenLayers.Protocol.Script({
+            url: "bar",
+            params: {hello: "world"},
+            abort: function() {
+                aborted = true;
+            }
+        });
+        protocol.destroy();
+        t.ok(aborted, "destroy aborts request");
+        t.eq(protocol.params, null, "destroy nullifies params");
+        t.eq(protocol.format, null, "destroy nullifies format");
+    }
+
+    function test_read(t) {
+        t.plan(5);
+        var protocol = new OpenLayers.Protocol.Script({
+            'url': 'foo_url',
+            'params': {'k': 'foo_param'}
+        });
+
+        // fake XHR request object
+        var request = {'status': 200};
+
+        // options to pass to read
+        var readOptions = {
+            'url': 'bar_url',
+            'params': {'k': 'bar_param'}
+        };
+
+        var response;
+
+        protocol.createRequest = function(url, params, callback) {
+            // 4 tests
+            t.ok(this == protocol,
+                'createRequest called with correct scope');
+            t.ok(url == readOptions.url,
+                'createRequest called with correct url');
+            t.ok(params == readOptions.params,
+                'createRequest called with correct params');
+            t.ok(callback instanceof Function,
+                'createRequest called with a function as callback');
+
+            return 'foo_request';
+       };
+
+        var resp = protocol.read(readOptions);
+
+        t.eq(resp.priv, 'foo_request',
+            'response priv property set to what the createRequest method returns');
+    }
+
+    function test_read_bbox(t) {
+        t.plan(6);
+
+        var _createRequest = OpenLayers.Protocol.Script.prototype.createRequest;
+
+        var bounds = new OpenLayers.Bounds(1, 2, 3, 4);
+        var filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.BBOX,
+            value: bounds,
+            projection: new OpenLayers.Projection("foo")
+        });
+
+        // log requests
+        var log, exp;
+        OpenLayers.Protocol.Script.prototype.createRequest = function(url, params,
+                                                               callback) {
+            log.push(params.bbox);
+            return null;
+        };
+
+        // 1) issue request with default protocol
+        log = [];
+        new OpenLayers.Protocol.Script().read({filter: filter});
+
+        t.eq(log.length, 1, "1) createRequest called once");
+        t.ok(log[0] instanceof Array, "1) bbox param is array");
+        exp = bounds.toArray();
+        t.eq(log[0], exp, "1) bbox param doesn't include SRS id by default");
+
+        // 2) issue request with default protocol
+        log = [];
+        new OpenLayers.Protocol.Script({srsInBBOX: true}).read({filter: filter});
+
+        t.eq(log.length, 1, "2) createRequest called once");
+        t.ok(log[0] instanceof Array, "2) bbox param is array");
+        exp = bounds.toArray();
+        exp.push("foo");
+        t.eq(log[0], exp, "2) bbox param includes SRS id if srsInBBOX is true");
+
+        OpenLayers.Protocol.Script.prototype.createRequest = _createRequest;
+    }
+
+    function test_createRequest(t) {
+        t.plan(3);
+        var protocol = new OpenLayers.Protocol.Script({
+            callbackKey: 'cb_key',
+            callbackPrefix: 'cb_prefix:'
+        });
+
+        var _register = OpenLayers.Protocol.Script.register;
+        OpenLayers.Protocol.Script.register = function() {
+            return 'bar';
+        };
+
+        var script = protocol.createRequest('http://bar_url/', {'k': 'bar_param'}, 'bar_callback');
+
+        t.eq(script.type, 'text/javascript',
+            'created script has a correct type');
+        t.eq(script.src, 'http://bar_url/?k=bar_param&cb_key=cb_prefix%3AOpenLayers.Protocol.Script.registry%5Bbar%5D',
+            'created script has a correct url');
+        t.eq(script.id, 'OpenLayers_Protocol_Script_bar',
+            'created script has a correct id');
+
+        OpenLayers.Protocol.Script.register = _register;
+    }
+
+    function test_destroyRequest(t) {
+        t.plan(2);
+
+        var protocol = new OpenLayers.Protocol.Script({});
+
+        var _unregister = OpenLayers.Protocol.Script.unregister;
+        OpenLayers.Protocol.Script.unregister = function(id) {
+            t.eq(id, 'foo', "destroyRequest calls unregister with correct id");
+        };
+        var script = {
+            id: 'script_foo'
+        };
+        protocol.destroyRequest(script);
+        t.eq(protocol.pendingRequests[script.id], null, 
+            "destroyRequest nullifies the pending request");
+
+        OpenLayers.Protocol.Script.unregister = _unregister;
+    }
+
+    function test_handleResponse(t) {
+        t.plan(8);
+
+        var protocol = new OpenLayers.Protocol.Script();
+
+        // 2 tests (should be called only twive)
+        protocol.destroyRequest = function(priv) {
+            t.eq(priv, 'foo_priv', 'destroyRequest called with correct argument');
+        }
+
+        // 1 test (should be called only once)
+        protocol.parseFeatures = function(data) {
+            t.eq(data, 'foo_data', 'parseFeatures called with correct argument');
+            return 'foo_features';
+        }
+
+        var response = {
+            priv: 'foo_priv',
+            data: 'foo_data'
+        }
+        var options = {
+            // 2 tests (should be called twice)
+            scope: 'foo_scope',
+            callback: function(resp) {
+                t.eq(this, 'foo_scope', 'callback called with correct scope');
+            }
+        }
+        protocol.handleResponse(response, options);
+        // 2 tests
+        t.eq(response.code, OpenLayers.Protocol.Response.SUCCESS,
+                'response code correctly set');
+        t.eq(response.features, 'foo_features', 
+                'response features takes a correct value');
+
+        response = {
+            priv: 'foo_priv'
+        }
+        protocol.handleResponse(response, options);
+        // 1 test
+        t.eq(response.code, OpenLayers.Protocol.Response.FAILURE,
+                'response code correctly set');
+    }
+
+    function test_parseFeatures(t) {
+        t.plan(1);
+
+        var protocol = new OpenLayers.Protocol.Script();
+
+        protocol.format = {
+            'read': function(data) {
+                t.ok(true, 'format.read called');
+            }
+        };
+
+        var ret = protocol.parseFeatures({foo: 'bar'});
+    }
+
+    function test_abort(t) {
+        t.plan(2);
+
+        var protocol = new OpenLayers.Protocol.Script();
+
+        // 1 test
+        protocol.destroyRequest = function(priv) {
+            t.eq(priv, 'foo_priv', 'destroyRequest called with correct argument');
+        }
+
+        var response = {
+            priv: 'foo_priv'
+        }
+
+        protocol.abort(response);
+
+        var calls = [];
+        protocol.pendingRequests = {
+            'foo': 'foo_request',
+            'bar': 'bar_request'
+        }
+        protocol.destroyRequest = function(priv) {
+            calls.push(priv);
+        }
+        protocol.abort();
+        // 1 test
+        t.eq(calls, ['foo_request', 'bar_request'],
+                'destroyRequest called for each pending requests');
+    }
+
+  </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/Protocol/WFS.html b/tests/Protocol/WFS.html
index 0eb40fe..cc56e45 100644
--- a/tests/Protocol/WFS.html
+++ b/tests/Protocol/WFS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -24,15 +24,49 @@
              "initialize returns instance of custom versioned protocol")
     }
 
+    function test_setGeometryName(t) {
+        t.plan(4);
+        var protocol = new OpenLayers.Protocol.WFS({
+            url: "http://some.url.org",
+            featureNS: "http://namespace.org",
+            featureType: "type",
+            geometryName: "geom"
+        });
+        t.eq(protocol.geometryName, "geom", "geometryName set correctly by constructor");
+        t.eq(protocol.format.geometryName, "geom", "geometryName correctly set on format by constructor");
+        // change the geometryName on the fly
+        protocol.setGeometryName("SHAPE");
+        t.eq(protocol.geometryName, "SHAPE", "geometryName changed correctly by setGeometryName");
+        t.eq(protocol.format.geometryName, "SHAPE", "geometryName correctly changed on format by setGeometryName");
+        protocol.destroy();
+    }
+
+    function test_setFeatureType(t) {
+        t.plan(4);
+        var protocol = new OpenLayers.Protocol.WFS({
+            url: "http://some.url.org",
+            featureNS: "http://namespace.org",
+            featureType: "type"
+        });
+        t.eq(protocol.featureType, "type", "featureType set correctly by constructor");
+        t.eq(protocol.format.featureType, "type", "featureType correctly set on format by constructor");
+        // change the feature type on the fly
+        protocol.setFeatureType("foo");
+        t.eq(protocol.featureType, "foo", "featureType changed correctly by setFeatureType");
+        t.eq(protocol.format.featureType, "foo", "featureType correctly changed on format by setFeatureType");
+        protocol.destroy();
+    }
+
     function test_read(t) {
-        t.plan(6);
+        t.plan(7);
 
         var protocol = new OpenLayers.Protocol.WFS({
             url: "http://some.url.org",
             featureNS: "http://namespace.org",
             featureType: "type",
-            parseFeatures: function(request) {
-                t.eq(request.responseText, "foo", "parseFeatures called properly");
+            parseResponse: function(request, options) {
+                t.eq(request.responseText, "foo", "parseResponse called properly");
+                t.eq(options, {foo: "bar"}, "parseResponse receives readOptions");
                 return "foo";
             }
         });
@@ -44,14 +78,13 @@
             t.xml_eq(new OpenLayers.Format.XML().read(obj.data).documentElement, expected, "GetFeature request is correct");
             obj.status = status;
             obj.responseText = "foo";
-            obj.options = {};
             t.delay_call(0.1, function() {obj.callback.call(this)});
             return obj;
         };
 
         expected = readXML("GetFeature_1");
         status = 200;
-        var response = protocol.read({callback: function(response) {
+        var response = protocol.read({readOptions: {foo: "bar"}, callback: function(response) {
             t.eq(response.features, "foo", "user callback properly called with features");
             t.eq(response.code, OpenLayers.Protocol.Response.SUCCESS, "success reported properly");
         }});
@@ -71,9 +104,86 @@
 
         OpenLayers.Request.POST = _POST;
     }
+    
+    function test_parseResponse_poorconfig(t) {
+        t.plan(2);
+
+        var protocol = new OpenLayers.Protocol.WFS({
+            url: "http://some.url.org",
+            featurePrefix: "topp",
+            featureType: "tasmania_roads",
+            geometryName: null
+        });
+
+        protocol.parseResponse({responseText: document.getElementById("query_response").firstChild.nodeValue});
+        t.eq(protocol.geometryName, "geom", "geometryName configured correctly");
+        t.eq(protocol.featureNS, "http://www.openplans.org/topp", "featureNS configured correctly");
+    }
+
+    function test_exception(t) {
+        t.plan(8);
+        var url = "http://some.url.org";
+        var protocol = new OpenLayers.Protocol.WFS({
+            url: url,
+            version: "1.1.0",
+            featureNS: "http://namespace.org",
+            featureType: "type"
+        });
+        // mock up a response
+        var response = {
+            priv: {
+                status: 200,
+                responseText: '<?xml version="1.0" encoding="UTF-8"?><ows:ExceptionReport language="en" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows"><ows:Exception locator="foo" exceptionCode="InvalidParameterValue"><ows:ExceptionText>Update error: Error occurred updating features</ows:ExceptionText><ows:ExceptionText> [...]
+            }
+        };
+        var log, entry, expected;
+        
+        // test GetFeature
+        log = [];
+        protocol.handleRead(OpenLayers.Util.extend({}, response), {
+            callback: function(resp) {
+                log.push(resp);
+            }
+        });
+        expected = {
+            exceptionReport: {
+                version: "1.0.0",
+                language: "en",
+                exceptions: [{
+                    code: "InvalidParameterValue",
+                    locator: "foo",
+                    texts: [
+                        "Update error: Error occurred updating features",
+                        "Second exception line"
+                    ]
+                }]
+            },
+            success: false
+        };
+
+        t.eq(log.length, 1, "GetFeature handled");
+        entry = log[0];
+        t.eq(entry.code, OpenLayers.Protocol.Response.FAILURE, "GetFeature failure reported");
+        t.ok(!!entry.error, "GetFeature got error");
+        t.eq(entry.error, expected, "GetFeature error matches expected");
+
+        // test a commit
+        log = [];
+        protocol.handleCommit(response, {
+            callback: function(resp) {
+                log.push(resp);
+            }
+        });
+        t.eq(log.length, 1, "commit handled");
+        entry = log[0];
+        t.eq(entry.code, OpenLayers.Protocol.Response.FAILURE, "commit failure reported");
+        t.ok(!!entry.error, "commit got error");
+        t.eq(entry.error, expected, "GetFeature error matches expected");
+
+    }
 
     function test_commit(t){
-        t.plan(4);
+        t.plan(5);
 
         var url = "http://some.url.org";
         var protocol = new OpenLayers.Protocol.WFS({
@@ -94,8 +204,8 @@
         var expected;
         OpenLayers.Request.POST = function(obj) {
             t.xml_eq(new OpenLayers.Format.XML().read(obj.data).documentElement, expected, "Transaction XML with Insert, Update and Delete created correctly");
+            t.eq(obj.headers, {foo: 'bar'}, "HTTP headers passed from commit to Request.POST");
             obj.responseText = "foo";
-            obj.options = {};
             t.delay_call(0.1, function() {obj.callback.call(this)});
             return obj;
         };
@@ -119,6 +229,7 @@
         options = {
             featureNS: "http://some.namespace.org",
             featureType: "type",
+            headers: {foo: 'bar'},
             callback: function(response) {
                 t.eq(response.insertIds.length, 3, "correct response passed to user callback");
                 t.eq(response.code, OpenLayers.Protocol.Response.SUCCESS, "success properly reported to user callback");
@@ -189,7 +300,7 @@
     }
 
     function test_fromWMSLayer(t) {
-        t.plan(8);
+        t.plan(9);
         var map = new OpenLayers.Map("map", {
             projection: "EPSG:1234"
         });
@@ -203,6 +314,7 @@
         t.eq(protocol.featureType, "states", "typeName correctly extracted");
         t.eq(protocol.srsName, "EPSG:1234", "srsName set correctly");
         t.eq(protocol.version, "1.1.0", "version set correctly");
+        t.eq(protocol.format.geometryName, null, "format's geometryName set to null");
 
         layer.params["LAYERS"] = ["topp:street_centerline", "topp:states"];
         layer.projection = new OpenLayers.Projection("EPSG:900913");
@@ -225,10 +337,64 @@
 
         var request = {};
         request.responseText = '{"type":"FeatureCollection","features":[{"type":"Feature","id":"V_HECTOPUNTEN.108411","geometry":{"type":"MultiPoint","coordinates":[[190659.467,349576.19]]},"geometry_name":"ORA_GEOMETRY","properties":{"WEGNUMMER":"002","HECTOMTRNG_ORG":2200,"HECTOMTRNG":"220.00","bbox":[190659.467,349576.19,190659.467,349576.19]}}]}';
-        var features = protocol.parseFeatures(request);
+        var features = protocol.parseResponse(request);
         t.eq(features.length, 1, "the right format is used to read the request (GeoJSON)");
  	}
 
+    function test_outputFormat(t) {
+        t.plan(2);
+
+        var protocol = new OpenLayers.Protocol.WFS({
+            version: "1.1.0",
+            url: "http://some.url.org",
+            featureNS: "http://namespace.org",
+            featureType: "type",
+            outputFormat: 'json'
+        });
+
+        t.ok(protocol.readFormat instanceof OpenLayers.Format.GeoJSON, "the correct readFormat is used for outputFormat JSON");
+
+        protocol = new OpenLayers.Protocol.WFS({
+            version: "1.1.0",
+            url: "http://some.url.org",
+            featureNS: "http://namespace.org",
+            featureType: "type",
+            outputFormat: 'GML2'
+        });
+
+        t.ok(protocol.readFormat instanceof OpenLayers.Format.GML.v2, "the correct readFormat is used for outputFormat GML2");
+ 	}
+
+    function test_readOptions(t) {
+        t.plan(1);
+
+        var protocol = new OpenLayers.Protocol.WFS({
+            url: "http://some.url.org",
+            version: "1.1.0",
+            featureNS: "http://namespace.org",
+            featureType: "type",
+            readOptions: {'output': 'object'},
+            parseResponse: function(request, options) {
+                t.eq(options.output, "object", "Options object correctly set to pass on to Format's read");
+            }
+        });
+
+        var _POST = OpenLayers.Request.POST;
+
+        OpenLayers.Request.POST = function(obj) {
+            obj.status = 200;
+            obj.responseText = "foo";
+            t.delay_call(0.1, function() {obj.callback.call(this)});
+            return obj;
+        };
+
+        protocol.read({
+            callback: function() {}
+        });
+
+        OpenLayers.Request.POST = _POST;
+    }
+
     function readXML(id) {
         var xml = document.getElementById(id).firstChild.nodeValue;
         return new OpenLayers.Format.XML().read(xml).documentElement;
@@ -289,7 +455,6 @@
     <wfs:Delete typeName="feature:type" xmlns:feature="http://namespace.org">
         <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
             <ogc:BBOX>
-                <ogc:PropertyName/>
                 <gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
                     <gml:coordinates decimal="." cs="," ts=" ">-5,-5 5,5</gml:coordinates>
                 </gml:Box>
@@ -298,5 +463,9 @@
     </wfs:Delete>
 </wfs:Transaction>
 --></div>
+<div id="query_response"><!--
+<?xml version="1.0" encoding="UTF-8"?>
+<wfs:FeatureCollection xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink"><gml:boundedBy><gml:Envelope srsDimension="2" srsName="urn:x-ogc:def:crs:EPSG:4326"><gml:lowerCorner>5450000.0 500000.0</gml:lowerCorner><gml:upperCorner>5450000.0 540000.0< [...]
+--></div>
 </body>
 </html>
diff --git a/tests/Renderer.html b/tests/Renderer.html
index c3d0092..a149d63 100644
--- a/tests/Renderer.html
+++ b/tests/Renderer.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../lib/OpenLayers.js"></script>
+<script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_Renderer_constructor(t) {
diff --git a/tests/Renderer/Canvas.html b/tests/Renderer/Canvas.html
index d9a1810..c4bef12 100644
--- a/tests/Renderer/Canvas.html
+++ b/tests/Renderer/Canvas.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var supported = OpenLayers.Renderer.Canvas.prototype.supported();
     function test_Renderer_Canvas_constructor(t) {
@@ -12,6 +12,7 @@
         
         t.ok(r instanceof OpenLayers.Renderer.Canvas, "new OpenLayers.Renderer.Canvas returns Renderer.Canvas object" );
         t.ok(r.container == el, "renderer container is correctly set");
+        r.destroy();
     }
     
     function test_Renderer_Canvas_setextent(t) {
@@ -23,9 +24,10 @@
         
         var extent = new OpenLayers.Bounds(1,2,3,4);
         r.resolution = 1;
-        r.setExtent(extent);
+        r.setExtent(extent, true);
         t.ok(r.extent.equals(extent), "extent is correctly set");
         t.eq(r.resolution, null, "resolution nullified");
+        r.destroy();
     }
     
     function test_Renderer_Canvas_setsize(t) {
@@ -40,6 +42,7 @@
         r.setSize(size);
         t.ok(r.size.equals(size), "size is correctly set");
         t.eq(r.resolution, null, "resolution nullified");
+        r.destroy();
     }
     
     function test_Renderer_Canvas_getresolution(t) {
@@ -54,8 +57,44 @@
         var resolution = r.getResolution();
         t.eq(resolution, map.getResolution(), "resolution matches the map resolution");
         t.eq(r.resolution, resolution, "resolution is correctly set");
+        map.destroy();
+    }
+
+    function test_featureIdToHex(t) {
+        if (!supported) {
+            t.plan(0); 
+            return;
+        }
+        t.plan(2);
+        var el = document.body;
+        el.id = "foo";
+        var renderer = new OpenLayers.Renderer.Canvas(el.id);
+        
+        var cases = [{
+            id: "foo_0", hex: "#000001"
+        }, {
+            id: "foo_10", hex: "#00000b"
+        }, {
+            id: "foo_100", hex: "#000065"
+        }, {
+            id: "foo_1000000", hex: "#0f4241"
+        }, {
+            id: "foo_16777214", hex: "#ffffff"
+        }, {
+            id: "foo_16777215", hex: "#000001"
+        }];
+        t.plan(cases.length);
+        
+        var c;
+        for (var i=0; i<cases.length; ++i) {
+            c = cases[i];
+            t.eq(renderer.featureIdToHex(c.id), c.hex, c.id);
+        }
+        
+        renderer.destroy();
     }
 
+
     function test_Renderer_Canvas_destroy(t) {
         if (!supported) { t.plan(0); return; }
         t.plan(5);
@@ -78,6 +117,350 @@
         t.eq(r.map, null, "map nullified");
     }
 
+    function test_drawFeature(t) {
+        if (!supported) {
+            t.plan(0); 
+            return; 
+        }
+        
+        t.plan(10);
+        var layer = new OpenLayers.Layer.Vector(null, {
+            isBaseLayer: true,
+            renderers: ["Canvas"]
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [],
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        var renderer = layer.renderer;
+        var count = 0;
+        var redraw = layer.renderer.redraw;
+        renderer.redraw = function() {
+            ++count;
+            redraw.apply(this, arguments);
+        }
+        var exp;
+        
+        // a) draw a point feature
+        count = 0;
+        exp = renderer.drawFeature(
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0, 0)), {}
+        );
+        t.eq(exp, true, "a) drawFeature returns true");
+        t.eq(count, 1, "a) redraw called once after drawing a point feature");
+        renderer.clear();
+        
+        // b) draw one feature with no geometry
+        count = 0;
+        exp = renderer.drawFeature(
+            new OpenLayers.Feature.Vector(), {}
+        );
+        t.eq(exp, undefined, "b) drawFeature returns undefined");
+        t.eq(count, 0, "b) redraw is not called when drawing a feature with no geometry");
+        renderer.clear();
+        
+        // c) draw a point feature with display "none"
+        count = 0;
+        exp = renderer.drawFeature(
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1, 0)),
+            {display: "none"}
+        );
+        t.eq(exp, false, "c) drawFeature returns false");
+        t.eq(count, 1, "c) redraw is called when drawing a feature with display 'none'");
+        renderer.clear();
+
+        // d) draw a point feature outside renderer extent
+        count = 0;
+        exp = renderer.drawFeature(
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-1000, 0)), {}
+        );
+        t.eq(exp, false, "d) drawFeature returns false");
+        t.eq(count, 1, "d) redraw is called when drawing a feature outside renderer extent");
+        renderer.clear();
+        
+        // e) draw a polygon feature without bounds
+        count = 0;
+        exp = renderer.drawFeature(
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon()), {}
+        );
+        t.eq(exp, false, "d) drawFeature returns false");
+        t.eq(count, 1, "d) redraw is called when drawing a feature without bounds");
+        renderer.clear();
+
+        map.destroy();
+    }
+
+
+    function test_pendingRedraw(t) {
+        if (!supported) {
+            t.plan(0); 
+            return; 
+        }
+        
+        t.plan(4);
+        var layer = new OpenLayers.Layer.Vector(null, {
+            isBaseLayer: true,
+            renderers: ["Canvas"]
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [],
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        var count = 0;
+        var redraw = layer.renderer.redraw;
+        layer.renderer.redraw = function() {
+            ++count;
+            redraw.apply(this, arguments);
+        }
+        
+        // add one point feature and confirm redraw is called once
+        count = 0;
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0, 0))
+        ]);
+        t.eq(count, 1, "redraw called once after adding one point feature");
+        
+        // add one feature with no geometry and confirm redraw is not called
+        count = 0;
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector()
+        ]);
+        t.eq(count, 0, "redraw is not called when adding a feature with no geometry");
+        
+        // add one point feature, one feature with no geom, and one point feature and confirm redraw is called once
+        count = 0;
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1, 0)),
+            new OpenLayers.Feature.Vector(),
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0, 1))
+        ]);
+        t.eq(count, 1, "redraw called once after adding three features where middle one has no geometry");
+
+        // add two point features and one feature with no geom, and confirm redraw is called once
+        count = 0;
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1, 0)),
+            new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0, 1)),
+            new OpenLayers.Feature.Vector()
+        ]);
+        t.eq(count, 1, "redraw called once after adding three features where last one has no geometry");
+        
+        map.destroy();
+    }
+    
+    function test_hitDetection(t) {
+        if (!supported) {
+            t.plan(0); 
+            return; 
+        }
+        
+        var layer = new OpenLayers.Layer.Vector(null, {
+            isBaseLayer: true,
+            resolutions: [1],
+            styleMap: new OpenLayers.StyleMap({
+                pointRadius: 5,
+                strokeWidth: 3,
+                fillColor: "red",
+                fillOpacity: 0.5,
+                strokeColor: "blue",
+                strokeOpacity: 0.75
+            }),
+            renderers: ["Canvas"]
+        });
+        
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [],
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+        
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector(
+                new OpenLayers.Geometry.Point(-100, 0)
+            ),
+            new OpenLayers.Feature.Vector(
+                OpenLayers.Geometry.fromWKT("LINESTRING(-50 0, 50 0)")
+            ),
+            new OpenLayers.Feature.Vector(
+                OpenLayers.Geometry.fromWKT("POLYGON((100 -25, 150 -25, 150 25, 100 25, 100 -25), (120 -5, 130 -5, 130 5, 120 5, 120 -5))")
+            )
+        ]);
+        
+        var cases = [{
+            msg: "center of point", x: -100, y: 0, id: layer.features[0].id
+        }, {
+            msg: "edge of point", x: -103, y: 3, id: layer.features[0].id
+        }, {
+            msg: "outside point", x: -110, y: 3, id: null
+        }, {
+            msg: "center of line", x: 0, y: 0, id: layer.features[1].id
+        }, {
+            msg: "edge of line", x: 0, y: 1, id: layer.features[1].id
+        }, {
+            msg: "outside line", x: 0, y: 5, id: null
+        }, {
+            msg: "inside polygon", x: 110, y: 0, id: layer.features[2].id
+        }, {
+            msg: "edge of polygon", x: 99, y: 0, id: layer.features[2].id
+        }, {
+            msg: "inside polygon hole", x: 125, y: 0, id: null
+        }, {
+            msg: "outside polygon", x: 155, y: 0, id: null
+        }];
+
+        function px(x, y) {
+            return map.getPixelFromLonLat(
+                new OpenLayers.LonLat(x, y)
+            );
+        }        
+        
+        var num = cases.length;
+        t.plan(num);
+        var c, feature;
+        for (var i=0; i<num; ++i) {
+            c = cases[i];
+            feature = layer.renderer.getFeatureIdFromEvent({xy: px(c.x, c.y)});
+            t.eq(feature && feature.id, c.id, c.msg);
+        }
+        
+        map.destroy();
+        
+    }
+
+    // see http://trac.osgeo.org/openlayers/ticket/3264
+    function test_externalGraphic_destroyFeatures(t) {
+        if (!supported) {
+            t.plan(0);
+            return;
+        }
+
+        t.plan(1);
+
+        // set up
+
+        var layer = new OpenLayers.Layer.Vector(null, {
+            isBaseLayer: true,
+            renderers: ["Canvas"]
+        });
+
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [],
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+
+        layer.addFeatures([
+            new OpenLayers.Feature.Vector(
+                new OpenLayers.Geometry.Point(0, 0),
+                null,
+                {
+                    externalGraphic: '../../img/marker.png',
+                    graphicHeight: 20,
+                    graphicWidth: 20
+                }
+            )
+        ]);
+
+        var called = false;
+        layer.renderer.canvas.drawImage = function(img, x, y, w, h) {
+            called = true;
+        };
+
+        // test
+
+        // schedule a canvas.drawImage
+        layer.renderer.redraw();
+
+        // destroy the feature before drawImage gets called
+        layer.destroyFeatures();
+
+        t.delay_call(0.1, function() {
+            t.ok(!called,
+                 'canvas.drawImage not called if feature is destroyed');
+
+            // tear down
+            map.destroy();
+        });
+    }
+
+    // see http://trac.osgeo.org/openlayers/ticket/3264
+    function test_externalGraphic_moveTo(t) {
+        if (!supported) {
+            t.plan(0);
+            return;
+        }
+
+        t.plan(2);
+
+        // set up
+
+        var layer = new OpenLayers.Layer.Vector(null, {
+            isBaseLayer: true,
+            renderers: ["Canvas"]
+        });
+
+        var map = new OpenLayers.Map({
+            div: "map",
+            controls: [],
+            layers: [layer],
+            center: new OpenLayers.LonLat(0, 0),
+            zoom: 0
+        });
+
+        var feature = new OpenLayers.Feature.Vector(
+            new OpenLayers.Geometry.Point(0, 0),
+            null,
+            {
+                externalGraphic: '../../img/marker.png',
+                graphicHeight: 20,
+                graphicWidth: 20,
+                graphicXOffset: 0,
+                graphicYOffset: 0
+            }
+        );
+
+        layer.addFeatures([feature]);
+
+        // test
+
+        // delay_call to let the first drawImage (the one
+        // resulting from addFeatures) run
+        t.delay_call(0.1, function() {
+
+            var log = [];
+            layer.renderer.canvas.drawImage = function(img, x, y, w, h) {
+                log.push({x: x, y: y});
+            };
+
+            layer.renderer.redraw();
+            map.setCenter(new OpenLayers.LonLat(45, 0), 0);
+
+            t.delay_call(0.1, function() {
+                t.eq(log.length, 2,
+                     "canvas.drawImage called twice");
+                t.ok(log[0].x == log[1].x && log[0].y == log[1].y,
+                     "image drawn at the same location");
+
+                // tear down
+                map.destroy();
+            });
+        });
+    }
+
   </script>
 </head>
 <body>
diff --git a/tests/Renderer/Elements.html b/tests/Renderer/Elements.html
index 2111a59..48db70a 100644
--- a/tests/Renderer/Elements.html
+++ b/tests/Renderer/Elements.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function setUp() {
@@ -561,6 +561,61 @@
         tearDown();        
     }
 
+    function test_Elements_drawGeometry_3(t) {
+        t.plan(2);
+
+        setUp();
+
+        var r = create_renderer();
+        
+        var element = document.createElement("div");
+        r.vectorRoot = element;
+
+        r.nodeFactory = function(id, type) {
+            return document.createElement("div");
+        };
+        var g_Node = null;
+        var b_Node = null;
+        r.drawGeometryNode = function(node, geometry, style) {
+            g_Node = node;
+            return {node: node, complete: true};
+        };
+        r.redrawBackgroundNode = function(id, geometry, style, featureId) {
+            b_Node = r.nodeFactory();
+            b_Node.id = "foo_background";
+            element.appendChild(b_Node);
+        };
+
+        r.getNodeType = function(geometry, style) {
+            return "div";
+        };
+        var geometry = {
+            id: 'foo',
+            CLASS_NAME: 'bar',
+            getBounds: function() {return {bottom: 0}}
+        };
+        var style = {'backgroundGraphic': 'foo'};
+        var featureId = 'dude';
+        r.drawGeometry(geometry, style, featureId);
+        t.ok(b_Node.parentNode == element, "redrawBackgroundNode appended background node");
+
+        var returnNode = function(id) {
+        	return id == "foo_background" ? b_Node : g_Node;
+        }
+       	
+        var _getElement = document.getElementById;
+        document.getElementById = returnNode;
+        OpenLayers.Util.getElement = returnNode;
+
+        style = {};
+        r.drawGeometry(geometry, style, featureId);
+        t.ok(b_Node.parentNode != element, "background node correctly removed")
+            
+        document.getElementById = _getElement;
+
+        tearDown();
+    }
+
 
 
   </script>
diff --git a/tests/Renderer/SVG.html b/tests/Renderer/SVG.html
index 141a3ff..fd82093 100644
--- a/tests/Renderer/SVG.html
+++ b/tests/Renderer/SVG.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var geometry = null, node = null;
@@ -378,22 +378,6 @@
         var string = r.getShortString(point);
         t.eq(string, "2,-4", "returned string is correct");
     }
-    
-    function test_svg_getnodetype(t) {
-        if (!OpenLayers.Renderer.SVG.prototype.supported()) {
-            t.plan(0);
-            return;
-        }
-
-        t.plan(1);
-        
-        var r = new OpenLayers.Renderer.SVG(document.body);
-
-        var g = {CLASS_NAME: "OpenLayers.Geometry.Point"}
-        var s = {graphicName: "square"};
-        
-        t.eq(r.getNodeType(g, s), r.supportUse ? "use" : "svg", "Correct node type for well known symbols");
-    }
         
     function test_svg_importsymbol(t) {
         if (!OpenLayers.Renderer.SVG.prototype.supported()) {
diff --git a/tests/Renderer/SVG2.html b/tests/Renderer/SVG2.html
new file mode 100644
index 0000000..8e92a71
--- /dev/null
+++ b/tests/Renderer/SVG2.html
@@ -0,0 +1,426 @@
+<html>
+<head>
+<script src="../OLLoader.js"></script>
+  <script type="text/javascript">
+
+    var geometry = null, node = null;
+    
+    function test_SVG_constructor(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(1);
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        t.ok(r instanceof OpenLayers.Renderer.SVG2, "new OpenLayers.Renderer.SVG2 returns SVG object" );
+    }
+    
+    function test_SVG_destroy(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(1);
+        
+        var g_Destroy = false;
+        
+        OpenLayers.Renderer.Elements.prototype._destroy = 
+            OpenLayers.Renderer.Elements.prototype.destroy;
+            
+        OpenLayers.Renderer.prototype.destroy = function() {
+            g_Destroy = true;
+        }
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        r.destroy();
+        
+        t.eq(g_Destroy, true, "OpenLayers.Renderer.Elements.destroy() called");
+        
+        OpenLayers.Renderer.prototype.destroy = 
+            OpenLayers.Renderer.prototype._destroy;
+    }
+    
+    function test_SVG_updateDimensions(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(7);
+        
+        OpenLayers.Renderer.SVG2.prototype._setExtent =
+            OpenLayers.Renderer.SVG2.prototype.setExtent;
+        
+        var g_SetExtent = false;
+        OpenLayers.Renderer.SVG2.prototype.setExtent = function() {
+            g_SetExtent = true;
+            OpenLayers.Renderer.SVG2.prototype._setExtent.apply(this, arguments);
+        }
+                
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        var extent = new OpenLayers.Bounds(1,2,3,4);
+        r.map = {
+            getResolution: function() {
+                return 0.5;
+            },
+            getExtent: function() {
+                return extent;
+            },
+            getMaxExtent: function() {
+                return extent;
+            }
+        }
+        r.updateDimensions();
+        
+        t.eq(g_SetExtent, true, "Elements.setExtent() called");
+        
+        t.eq(r.extent.toString(), extent.scale(3).toString(), "renderer's extent is correct");
+        t.eq(r.rendererRoot.getAttributeNS(null, "width"), "12", "width is correct");
+        t.eq(r.rendererRoot.getAttributeNS(null, "height"), "12", "height is correct");
+        t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "-1 -6 6 6", "rendererRoot viewBox is correct");
+        
+        // test extent changes
+        extent = new OpenLayers.Bounds(2,3,5,6);
+        r.updateDimensions();
+        t.eq(r.extent.toString(), extent.scale(3).toString(), "renderer's extent changed after updateDimensions");
+        t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "-1 -9 9 9", "rendererRoot viewBox is correct after a new setExtent");
+
+        OpenLayers.Renderer.SVG2.prototype.setExtent =
+            OpenLayers.Renderer.SVG2.prototype._setExtent;
+    }
+    
+    function test_SVG_drawpoint(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+    
+        t.plan(1);
+
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        
+        var properDraw = false;
+        var g_Radius = null;
+        r.drawCircle = function(n, g, r) {
+            properDraw = true;
+            g_Radius = 1;
+        }
+        r.drawPoint();
+        
+        t.ok(properDraw && g_Radius == 1, "drawPoint called drawCircle with radius set to 1");
+    }
+    
+    function test_SVG_drawcircle(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(5);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        r.resolution = 0.5;
+        r.left = 0;
+        r.top = 0;
+        
+        var node = document.createElement('div');
+        
+        var geometry = {
+            x: 1,
+            y: 2
+        }
+        
+        r.drawCircle(node, geometry, 3);
+        
+        t.eq(node.getAttributeNS(null, 'cx'), '1', "cx is correct");
+        t.eq(node.getAttributeNS(null, 'cy'), '-2', "cy is correct");
+        t.eq(node._radius, 3, "radius preset is correct");
+       
+        // #1274: out of bound node fails when first added
+        var geometry = {
+            x: 10000000,
+            y: 200000000,
+            CLASS_NAME: "OpenLayers.Geometry.Point",
+            id: "foo",
+            getBounds: function() {return {bottom: 0}}
+        }
+        node.id = geometry.id;
+        r.root.appendChild(node);
+
+        var drawCircleCalled = false;
+        r.drawCircle = function() {
+            drawCircleCalled = true;
+            return OpenLayers.Renderer.SVG2.prototype.drawCircle.apply(r, arguments);
+        }
+        
+        r.drawGeometry(geometry, {pointRadius: 3}, "blah_4000");
+        t.eq(drawCircleCalled, true, "drawCircle called on drawGeometry for a point geometry.")
+        t.ok(node.parentNode != r.root, "circle will not be drawn when coordinates are outside the valid range");
+    }
+    
+    function test_SVG_drawlinestring(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(2);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        
+        var node = document.createElement('div');
+        
+        var geometry = {
+            components: "foo"
+        }
+        g_GetString = false;
+        g_Components = null;
+        r.getComponentsString = function(c) {
+            g_GetString = true;
+            g_Components = c;
+            return "bar";
+        }
+        
+        r.drawLineString(node, geometry);
+        
+        t.ok(g_GetString && g_Components == "foo", "getComponentString is called with valid arguments");
+        t.eq(node.getAttributeNS(null, "points"), "bar", "points attribute is correct");
+    }
+    
+    function test_SVG_drawlinearring(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(2);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        
+        var node = document.createElement('div');
+        
+        var geometry = {
+            components: "foo"
+        }
+        g_GetString = false;
+        g_Components = null;
+        r.getComponentsString = function(c) {
+            g_GetString = true;
+            g_Components = c;
+            return "bar";
+        }
+        
+        r.drawLinearRing(node, geometry);
+        
+        t.ok(g_GetString, "getComponentString is called with valid arguments");
+        t.eq(node.getAttributeNS(null, "points"), "bar", "points attribute is correct");
+    }
+
+    function test_SVG_drawpolygon(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(3);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        
+        var node = document.createElement('div');
+        
+        var linearRings = [{
+            components: ["foo"]
+        },{
+            components: ["bar"]
+        }]
+        
+        var geometry = {
+            components: linearRings
+        }
+        g_GetString = false;
+        r.getShortString = function(c) {
+            g_GetString = true;
+            return c;
+        }
+        
+        r.drawPolygon(node, geometry);
+        
+        t.ok(g_GetString, "getShortString is called");
+        t.eq(node.getAttributeNS(null, "d"), "M foo M bar z", "d attribute is correctly set");
+        t.eq(node.getAttributeNS(null, "fill-rule"), "evenodd", "fill-rule attribute is correctly set");
+    }
+
+    function test_SVG_drawrectangle(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(4);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        r.resolution = 0.5;
+        r.left = 0;
+        r.top = 0;
+        
+        var node = document.createElement('div');
+        
+        var geometry = {
+            x: 1,
+            y: 2,
+            width: 3,
+            height: 4
+        }
+        
+        r.drawRectangle(node, geometry);
+        
+        t.eq(node.getAttributeNS(null, "x"), "1", "x attribute is correctly set");
+        t.eq(node.getAttributeNS(null, "y"), "-2", "y attribute is correctly set");
+        t.eq(node.getAttributeNS(null, "width"), "3", "width attribute is correctly set");
+        t.eq(node.getAttributeNS(null, "height"), "4", "height attribute is correctly set");
+    }
+    
+    function test_SVG_drawsurface(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(2);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        
+        var node = document.createElement('div');
+        
+        var geometry = {
+            components: ['foo', 'bar', 'dude']
+        }
+        g_GetString = false;
+        r.getShortString = function(c) {
+            g_GetString = true;
+            return c;
+        }
+        
+        r.drawSurface(node, geometry);
+        
+        t.ok(g_GetString, "getShortString is called");
+        
+        t.eq(node.getAttributeNS(null, "d"), "M foo C bar dude Z", "d attribute is correctly set");
+    }
+    
+    function test_SVG_getcomponentsstring(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(1);
+        
+        var components = ['foo', 'bar'];
+        
+        OpenLayers.Renderer.SVG2.prototype._getShortString = 
+            OpenLayers.Renderer.SVG2.prototype.getShortString;
+            
+        OpenLayers.Renderer.SVG2.prototype.getShortString = function(p) {
+            return p;
+        };
+        
+        var string = OpenLayers.Renderer.SVG2.prototype.getComponentsString(components);
+        t.eq(string, "foo,bar", "returned string is correct");
+        
+        OpenLayers.Renderer.SVG2.prototype.getShortString = 
+            OpenLayers.Renderer.SVG2.prototype._getShortString;
+    }
+    
+    
+    
+    function test_SVG_getshortstring(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+        
+        t.plan(1);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+        r.resolution = 0.5;
+        r.left = 0;
+        r.top = 0;
+        
+        var point = {
+            x: 1,
+            y: 2
+        };
+        
+        var string = r.getShortString(point);
+        t.eq(string, "1,-2", "returned string is correct");
+    }
+    
+    function test_svg_getnodetype(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+
+        t.plan(1);
+         
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+
+        var g = {CLASS_NAME: "OpenLayers.Geometry.Point"}
+        var s = {graphicName: "square"};
+        
+        t.eq(r.getNodeType(g, s), "svg", "Correct node type for well known symbols");
+    }
+        
+    function test_svg_importsymbol(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+
+        t.plan(2);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+
+        r.importSymbol("square");
+
+        var polygon = document.getElementById(r.container.id + "_defs").firstChild.firstChild;
+        
+        var pass = false;
+        for (var i = 0; i < polygon.points.numberOfItems; i++) {
+            var p = polygon.points.getItem(i);
+            pass = p.x === OpenLayers.Renderer.symbol.square[2*i] && 
+                   p.y === OpenLayers.Renderer.symbol.square[2*i+1];
+            if (!pass) {
+                break;
+            }
+        }
+        t.ok(pass, "Square symbol rendered correctly");
+        t.ok(r.symbolMetrics["-square"], "Symbol metrics cached correctly.");
+    }
+        
+    function test_svg_dashstyle(t) {
+        if (!OpenLayers.Renderer.SVG2.prototype.supported()) {
+            t.plan(0);
+            return;
+        }
+
+        t.plan(5);
+        
+        var r = new OpenLayers.Renderer.SVG2(document.body);
+
+        t.eq(r.dashStyle({strokeWidth: 1, strokeDashstyle: "dot"}, 1), "1,4", "dot dasharray created correctly");
+        t.eq(r.dashStyle({strokeWidth: 1, strokeDashstyle: "dash"}, 1), "4,4", "dash dasharray created correctly");
+        t.eq(r.dashStyle({strokeWidth: 1, strokeDashstyle: "longdash"}, 1), "8,4", "longdash dasharray created correctly");
+        t.eq(r.dashStyle({strokeWidth: 1, strokeDashstyle: "dashdot"}, 1), "4,4,1,4", "dashdot dasharray created correctly");
+        t.eq(r.dashStyle({strokeWidth: 1, strokeDashstyle: "longdashdot"}, 1), "8,4,1,4", "dashdot dasharray created correctly");
+    }
+
+  </script>
+</head>
+<body>
+<div id="map" style="width:500px;height:550px"></div>
+</body>
+</html>
diff --git a/tests/Renderer/VML.html b/tests/Renderer/VML.html
index 96da8f9..f383848 100644
--- a/tests/Renderer/VML.html
+++ b/tests/Renderer/VML.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var geometry = null, node = null;
@@ -305,7 +305,7 @@
             return;
         }
         
-        t.plan(2);
+        t.plan(3);
         
         var r = new OpenLayers.Renderer.VML(document.body);
         r.offset = {x: 0, y: 0};
@@ -318,30 +318,16 @@
         
         var node = document.createElement('div');
         
-        var linearRing = {
-            components: [{
-                x: 1,
-                y: 2
-            },{
-                x: 3,
-                y: 4
-            }]
-        };
-        var linearRing2 = {
-            components: [{
-                x: 5,
-                y: 6
-            },{
-                x: 7,
-                y: 8
-            }]
-        };
-        var geometry = {
-            components: [linearRing, linearRing2]
-        };
+        var geometry = OpenLayers.Geometry.fromWKT(
+            "POLYGON((1 2, 3 4), (5 6, 7 8))"
+        );
         r.drawPolygon(node, geometry, true);
         t.ok(g_SetNodeDimension, "setNodeDimension is called");
-        t.eq(node.path, "m 2,4 l 6,8 x m 10,12 l 14,16 x e", "path attribute is correct");
+        t.eq(node.path, "m 2,4 l 6,8 2,4 x m 10,12 l 14,16 10,12 e", "path attribute is correct - inner ring has no area and is not closed");
+
+        geometry.components[1].addComponent(new OpenLayers.Geometry.Point(8, 7));
+        r.drawPolygon(node, geometry, true);
+        t.eq(node.path, "m 2,4 l 6,8 2,4 x m 10,12 l 14,16 16,14 10,12 x e", "path attribute is correct - inner ring has an area and is closed");        
     }
     
     function test_VML_drawrectangle(t) {
diff --git a/tests/Request.html b/tests/Request.html
index 6fac6ef..52643e4 100644
--- a/tests/Request.html
+++ b/tests/Request.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../lib/OpenLayers.js"></script>
+    <script src="OLLoader.js"></script>
     <script type="text/javascript">
     function setup() {
         window._xhr = OpenLayers.Request.XMLHttpRequest;
@@ -20,7 +20,7 @@
     function test_issue(t) {
         setup();
 
-        t.plan(21);
+        t.plan(22);
         var request, config;
         var proto = OpenLayers.Request.XMLHttpRequest.prototype;
         var issue = OpenLayers.Function.bind(OpenLayers.Request.issue,
@@ -81,7 +81,18 @@
             t.eq(url, config.url + "&foo=bar", "existing query string gets extended with &");
         }
         request = issue(config);
-
+        
+        // test that query string doesn't get ? followed by &
+        config = {
+            method: "GET",
+            url: "http://example.com/service?",
+            params: {"foo": "bar"}
+        };
+        proto.open = function(method, url, async, user, password) {
+            t.eq(url, config.url + "foo=bar", "existing query string ending with ? gets extended without &");
+        }
+        request = issue(config);
+        
         // reset open method
         proto.open = _open;
         
@@ -319,7 +330,7 @@
     }
 
     function test_ProxyHost(t) {
-        t.plan(4);
+        t.plan(5);
 
         /*
          * Setup
@@ -334,6 +345,7 @@
         var proto = OpenLayers.Request.XMLHttpRequest.prototype;
         var _open = proto.open;
         var log = [];
+        var port;
         proto.open = function(method, url, async, user, password) {
             log.push(url);
         };
@@ -349,9 +361,17 @@
         OpenLayers.Request.GET({url: "http://bar?k1=v1&k2=v2"});
         t.eq(log.length, 1, "[1] XHR.open called once");
         t.eq(log[0], expectedURL, "[1] the URL used for XHR is correct (" + log[0] + ")");
-
+        
+        // 1 test
+        log = [];
+        OpenLayers.ProxyHost = "http://fooproxy/?url=";
+        port = window.location.port ? ':'+window.location.port : '';
+        expectedURL = window.location.protocol+"//"+window.location.hostname+port+"/service";
+        OpenLayers.Request.GET({url: expectedURL});
+        t.eq(log[0], expectedURL, "[2] proxy is not used when requesting the same server");
+        
         // 2 tests
-        log = []
+        log = [];
         OpenLayers.ProxyHost = function(url) {
             var p = OpenLayers.Util.getParameters(url);
             var p = OpenLayers.Util.getParameterString(p);
@@ -359,8 +379,8 @@
         };
         expectedURL = "http://barproxy/?k1=v1&k2=v2";
         OpenLayers.Request.GET({url: "http://bar?k1=v1&k2=v2"});
-        t.eq(log.length, 1, "[2] XHR.open called once");
-        t.eq(log[0], expectedURL, "[2] the URL used for XHR is correct (" + log[0] + ")");
+        t.eq(log.length, 1, "[3] XHR.open called once");
+        t.eq(log[0], expectedURL, "[3] the URL used for XHR is correct (" + log[0] + ")");
 
         /*
          * Teardown
@@ -372,6 +392,44 @@
     }
 
     function test_abort(t) {
+
+        t.plan(0);
+
+        var sendCalled;
+
+        // set up
+
+        var _open = OpenLayers.Request.XMLHttpRequest.prototype.open;
+        OpenLayers.Request.XMLHttpRequest.prototype.open = function() {
+            this.readyState = OpenLayers.Request.XMLHttpRequest.OPENED;
+        };
+
+        var _setRequestHeader = OpenLayers.Request.XMLHttpRequest.prototype.setRequestHeader;
+        OpenLayers.Request.XMLHttpRequest.prototype.setRequestHeader = function() {};
+
+        var _send = OpenLayers.Request.XMLHttpRequest.prototype.send;
+        OpenLayers.Request.XMLHttpRequest.prototype.send = function() {
+            sendCalled = true;
+        };
+
+        // test
+
+        sendCalled = false;
+        OpenLayers.Request.issue().abort();
+
+        t.delay_call(0.5, function() {
+            if (sendCalled) {
+                t.fail("Send should not be called because request is aborted");
+            }
+
+            // tear down
+            OpenLayers.Request.XMLHttpRequest.prototype.open = _open;
+            OpenLayers.Request.XMLHttpRequest.prototype.setRequestHeader = _setRequestHeader;
+            OpenLayers.Request.XMLHttpRequest.prototype.send = _send;
+        });
+    }
+
+    function test_abort2(t) {
         t.plan(0);
         var fail = false;
         OpenLayers.Request.XMLHttpRequest.onsend = function(args) {
@@ -383,10 +441,9 @@
             }
             OpenLayers.Request.XMLHttpRequest.onsend = null;
         });
-        var protocol = new OpenLayers.Protocol.HTTP();
-        protocol.abort(protocol.read());
+        var req = OpenLayers.Request.GET();
+        req.abort();
     }
-
     </script>
 </head>
 <body>
diff --git a/tests/Request/XMLHttpRequest.html b/tests/Request/XMLHttpRequest.html
index be7a7e8..fa62807 100644
--- a/tests/Request/XMLHttpRequest.html
+++ b/tests/Request/XMLHttpRequest.html
@@ -1,12 +1,57 @@
 <html>
 <head>
-    <script src="../../lib/OpenLayers.js"></script>
+    <script src="../OLLoader.js"></script>
     <script type="text/javascript">
         function test_constructor(t) {
             t.plan(1);
             t.ok(new OpenLayers.Request.XMLHttpRequest(),
                  "constructor didn't fail and we trust the code is well tested in OpenLayers.Request methods");
         }
+        function test_readyState(t) {
+        // Verify compliance of the standard (a part) See: http://www.w3.org/TR/XMLHttpRequest/
+        t.plan(9);
+        // Case 1: Request-A: open & abort
+            var requestA = new OpenLayers.Request.XMLHttpRequest();
+            //requestA.onreadystatechange = function() {};
+            t.eq(requestA.readyState, 0, "Request-A: readyState after new is 0-UNSENT");
+            requestA.open("GET", ".", true);
+            t.eq(requestA.readyState, 1, "Request-A: readyState after open is 1-OPENED");
+            requestA.abort();
+            t.eq(requestA.readyState, 0, "Request-A: readyState after abort is 0-UNSENT");
+
+        // Case 2: Request-B: open & send
+            var requestB = new OpenLayers.Request.XMLHttpRequest();
+            requestB.onreadystatechange = function() {
+                if (requestB.readyState == 4) {
+                    t.ok(true, "Request-B: triggered the event onreadystatechange when 4-DONE");
+                }
+            };
+            t.eq(requestB.readyState, 0, "Request-B: readyState after new is 0-UNSENT");
+            requestB.open("GET", ".", true);
+            t.eq(requestB.readyState, 1, "Request-B: readyState after open is 1-OPENED");
+            requestB.send();
+
+        // Case 3: Request-C: open, send & abort
+            var requestC = new OpenLayers.Request.XMLHttpRequest();
+            requestC.onreadystatechange = function() {
+                if (requestC.readyState == 4) {
+                    t.fail("Request-C: triggered the event onreadystatechange when 4-DONE after abort");
+                }
+            };
+            t.eq(requestC.readyState, 0, "Request-C: readyState after new is 0-UNSENT");
+            requestC.open("GET", ".", true);
+            t.eq(requestC.readyState, 1, "Request-C: readyState after open is 1-OPENED");
+            requestC.send();
+            requestC.abort();
+            t.eq(requestC.readyState, 0, "Request-C: readyState after abort is 0-UNSENT");
+
+        // delay destroy
+            t.delay_call( 
+                2, function() {
+                    // to await the end of requestB and requestC
+                }
+            );
+        }
     </script>
 </head>
 <body>
diff --git a/tests/Rule.html b/tests/Rule.html
index 00ef26b..56e3483 100644
--- a/tests/Rule.html
+++ b/tests/Rule.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_Rule_constructor(t) { 
diff --git a/tests/Strategy.html b/tests/Strategy.html
index 99521f6..5ecdef6 100644
--- a/tests/Strategy.html
+++ b/tests/Strategy.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
diff --git a/tests/Strategy/BBOX.html b/tests/Strategy/BBOX.html
index f03dd65..026a13d 100644
--- a/tests/Strategy/BBOX.html
+++ b/tests/Strategy/BBOX.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_initialize(t) {
@@ -87,7 +87,7 @@
     
     function test_events(t) {
         
-        t.plan(2);
+        t.plan(3);
         var log = {
             loadstart: 0,
             loadend: 0
@@ -117,6 +117,14 @@
         t.eq(log.loadstart, 1, "loadstart triggered");
         t.eq(log.loadend, 1, "loadend triggered");
         
+        log = {};
+        layer.protocol.read = function(obj) {
+            log.obj = obj;
+        }
+        layer.refresh({force: true, whee: 'chicken'});
+
+        t.eq(log.obj && log.obj.whee, "chicken", "properties passed to read on refresh correctly.");
+
         map.destroy();
         
     }
@@ -270,6 +278,47 @@
         
     }
 
+    // Test fix for Ticket #3142
+    function test_layerLoadedAfterBeingAdded(t) {
+        t.plan(2);
+
+        var dummy = new OpenLayers.Layer(null, {isBaseLayer: true});
+
+        var strategy = new OpenLayers.Strategy.BBOX({
+            ratio: 1 // makes for easier comparison to map bounds
+        });
+        var layer = new OpenLayers.Layer.Vector(null, {
+            protocol: new OpenLayers.Protocol(),
+            strategies: [strategy]
+        });
+
+        // Make sure to test the case of a vector layer needing to be 
+        // reprojected while the map is not yet centered
+        var layerReproject = new OpenLayers.Layer.Vector(null, {
+            protocol: new OpenLayers.Protocol(),
+            strategies: [new OpenLayers.Strategy.BBOX()],
+            projection: 'EPSG:900913'
+        });
+
+        // Make sure that layers that are not in range don't request data
+        var layerOutOfRange = new OpenLayers.Layer.Vector(null, {
+            maxResolution: 1,
+            protocol: new OpenLayers.Protocol(),
+            strategies: [new OpenLayers.Strategy.BBOX()]
+        });
+
+        var map = new OpenLayers.Map("map");
+        map.addLayer(dummy);
+        map.addLayer(layerReproject);
+        map.setCenter(new OpenLayers.LonLat(0, 0));
+        map.addLayer(layer);
+        map.addLayer(layerOutOfRange);
+        // test that the strategy bounds were set
+        t.ok(map.getExtent().equals(strategy.bounds), "[set center] bounds set to map extent");
+        t.eq(layerOutOfRange.strategies[0].bounds, null, "Data not requested if layer is out of range");
+        map.destroy();
+    }
+
   </script>
 </head>
 <body>
diff --git a/tests/Strategy/Cluster.html b/tests/Strategy/Cluster.html
index 18e5a6f..38cc116 100644
--- a/tests/Strategy/Cluster.html
+++ b/tests/Strategy/Cluster.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_activate(t) {
diff --git a/tests/Strategy/Filter.html b/tests/Strategy/Filter.html
index 46a93ec..7889d1e 100644
--- a/tests/Strategy/Filter.html
+++ b/tests/Strategy/Filter.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script src="../../lib/OpenLayers.js"></script>
+<script src="../OLLoader.js"></script>
 <script>
 
 var features = [];
@@ -21,7 +21,7 @@ var filter = new OpenLayers.Filter.Comparison({
 
 function test_initialize(t) {
     
-    t.plan(3);
+    t.plan(4);
     
     var strategy = new OpenLayers.Strategy.Filter({filter: filter});
 
@@ -31,6 +31,14 @@ function test_initialize(t) {
     t.ok(strategy.filter === filter, "has filter");
     
     strategy.destroy();
+    
+    try {
+        strategy = new OpenLayers.Strategy.Filter();
+        t.ok(true, "strategy without filter works");
+    } catch (err) {
+        t.fail("strategy without filter should not throw");
+    }
+    
 
 }
 
@@ -62,7 +70,7 @@ function test_autoActivate(t) {
 
 function test_setFilter(t) {
     
-    t.plan(7);
+    t.plan(13);
 
     var strategy = new OpenLayers.Strategy.Filter({filter: filter});
     var layer = new OpenLayers.Layer.Vector(null, {
@@ -76,24 +84,43 @@ function test_setFilter(t) {
         center: new OpenLayers.LonLat(0, 0),
         zoom: 1
     });
-
-    // add all features
+    
+    var log = [];
+    layer.events.on({
+        beforefeaturesadded:  function(event) {
+            log.push(event.type);
+        },
+        beforefeaturesremoved: function(event) {
+            log.push(event.type);
+        }
+    })
+
+    // a) add all features
+    log = [];
     layer.addFeatures(features);
-    t.eq(features.length, 20, "collection of 20 features")
-    t.eq(layer.features.length, 10, "layer got 10 with filter 'index < 10'");
-    t.eq(strategy.cache.length, 10, "strategy cached 10 with filter 'index < 10'");
-
-    // update filter
+    t.eq(features.length, 20, "a) collection of 20 features")
+    t.eq(layer.features.length, 10, "a) layer got 10 with filter 'index < 10'");
+    t.eq(strategy.cache.length, 10, "a) strategy cached 10 with filter 'index < 10'");
+    t.eq(log.length, 1, "a) one event logged");
+    t.eq(log[0], "beforefeaturesadded", "a) beforefeaturesadded fired");
+
+    // b) update filter
+    log = [];
     filter.value = 5;
     strategy.setFilter(filter);
-    t.eq(layer.features.length, 5, "layer got 5 with filter 'index < 5'");
-    t.eq(strategy.cache.length, 15, "strategy cached 15 with filter 'index < 5'");
+    t.eq(layer.features.length, 5, "b) layer got 5 with filter 'index < 5'");
+    t.eq(strategy.cache.length, 15, "b) strategy cached 15 with filter 'index < 5'");
+    t.eq(log.length, 1, "b) one event logged");
+    t.eq(log[0], "beforefeaturesremoved", "b) beforefeaturesremoved fired");
 
-    // update filter
+    // c) update filter
+    log = [];
     filter.value = 15;
     strategy.setFilter(filter);
-    t.eq(layer.features.length, 15, "layer got 15 with filter 'index < 15'");
-    t.eq(strategy.cache.length, 5, "strategy cached 5 with filter 'index < 15'");
+    t.eq(layer.features.length, 15, "c) layer got 15 with filter 'index < 15'");
+    t.eq(strategy.cache.length, 5, "c) strategy cached 5 with filter 'index < 15'");
+    t.eq(log.length, 1, "c) one event logged");
+    t.eq(log[0], "beforefeaturesadded", "c) beforefeaturesadded fired");
     
     map.destroy();
     
diff --git a/tests/Strategy/Fixed.html b/tests/Strategy/Fixed.html
index 120786f..209d8da 100644
--- a/tests/Strategy/Fixed.html
+++ b/tests/Strategy/Fixed.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_activate(t) {
@@ -153,7 +153,7 @@
         ];
 
         // call merge with a mocked up response
-        strategy.merge({features: features});
+        strategy.merge(new OpenLayers.Projection("EPSG:900913"), {features: features});
         
         // confirm that the original features were destroyed
         t.eq(layer.features.length, 2, "old features destroyed");
@@ -177,7 +177,7 @@
         ];
         
         // call merge again with mocked up response
-        strategy.merge({features: features});
+        strategy.merge(new OpenLayers.Projection("EPSG:900913"), {features: features});
 
         // test that feature geometries have not been transformed
         t.geom_eq(layer.features[0].geometry, features[0].geometry, "[same proj] feature 0 geometry not transformed");
@@ -185,6 +185,56 @@
         
     }
 
+    function test_load(t) {
+        t.plan(4);
+
+        // set up
+
+        var log;
+
+        var map = new OpenLayers.Map({
+            div: "map",
+            projection: new OpenLayers.Projection("EPSG:900913"),
+            layers: [new OpenLayers.Layer("", {isBaseLayer: true})]
+        });
+
+        var response = new OpenLayers.Protocol.Response();
+
+        var strategy = new OpenLayers.Strategy.Fixed({
+            merge: function(p, r) {
+                log = {scope: this, projection: p, response: r};
+            }
+        });
+
+        var layer = new OpenLayers.Layer.Vector("vector", {
+            strategies: [strategy],
+            protocol: {
+                read: function(o) {
+                    o.callback.call(o.scope, response);
+                }
+            }
+        });
+
+        map.addLayer(layer);
+
+        // test
+
+        strategy.load();
+
+        // verify that the callback is correctly bound
+        t.ok(log !== undefined,
+             "merge was called");
+        t.ok(log.scope == strategy,
+             "merge called with expected scope");
+        t.eq(log.projection.getCode(), map.getProjectionObject().getCode(),
+             "merge called the map projection as the first arg");
+        t.ok(log.response == response,
+             "merge called with response as the first arg");
+
+        // tear down
+
+        map.destroy();
+    }
   </script>
 </head>
 <body>
diff --git a/tests/Strategy/Paging.html b/tests/Strategy/Paging.html
index 221cd5c..a85167e 100644
--- a/tests/Strategy/Paging.html
+++ b/tests/Strategy/Paging.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     function test_activate(t) {
diff --git a/tests/Strategy/Refresh.html b/tests/Strategy/Refresh.html
index d04b55a..f8fb451 100644
--- a/tests/Strategy/Refresh.html
+++ b/tests/Strategy/Refresh.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
 
     var interval = 5000;
diff --git a/tests/Strategy/Save.html b/tests/Strategy/Save.html
index bbab07f..1290485 100644
--- a/tests/Strategy/Save.html
+++ b/tests/Strategy/Save.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
   
     function test_initialize(t) {
diff --git a/tests/Style.html b/tests/Style.html
index 392c2f0..2c3a18b 100644
--- a/tests/Style.html
+++ b/tests/Style.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_Style_constructor(t) { 
@@ -127,28 +127,59 @@
     }
     
     function test_Style_createSymbolizer(t) {
-        t.plan(2);
+        t.plan(5);
         var style = new OpenLayers.Style();
+
+        // override applySymbolizer to log arguments
+        var log = [];
+        style.applySymbolizer = function(r) {
+            log.push(r);
+            OpenLayers.Style.prototype.applySymbolizer.apply(this, arguments);
+        };
+
+        // rules for the style
         var rule = new OpenLayers.Rule({
-            id: Math.random()
+            filter: new OpenLayers.Filter.Comparison({
+                type: OpenLayers.Filter.Comparison.EQUAL_TO,
+                property: "foo",
+                value: "bar"
+            }),
+            symbolizer: {
+                label: "${labelValue}"
+            }
         });
+        rule.id = "foo=bar rule";
         var elseRule = new OpenLayers.Rule({
-            id: Math.random(),
-            elseFilter: true
+            elseFilter: true,
+            symbolizer: {
+                label: "${labelValue}"
+            }
         });
+        elseRule.id = "else rule";
         style.addRules([rule, elseRule]);
+        
+        // a) test that applySymbolizer is only called with rule
+        log = [];
+        style.createSymbolizer(
+            new OpenLayers.Feature.Vector(null, {foo: "bar"})
+        );
+        t.eq(log.length, 1, "a) applySymbolizer called once");
+        t.eq(log[0] && log[0].id, rule.id, "a) applySymbolizer called with correct rule");
 
-        // test that applySymbolizer is only called with rule
-        style.applySymbolizer = function(r) {
-            t.eq(r.id, rule.id, "(plain) applySymbolizer called with correct rule");
-        }
-        style.createSymbolizer(new OpenLayers.Feature.Vector());
+        // b) test that applySymbolizer is only called with elseRule
+        log = [];
+        style.createSymbolizer(
+            new OpenLayers.Feature.Vector(null, {foo: "baz"})
+        );
+        t.eq(log.length, 1, "b) applySymbolizer called once");
+        t.eq(log[0] && log[0].id, elseRule.id, "b) applySymbolizer called with correct rule");
+        
+        // c) test that label in returned symbolizer is a string even if property value is a number
+        var symbolizer = style.createSymbolizer(
+            new OpenLayers.Feature.Vector(null, {foo: "bar", labelValue: 10})
+        );
+        t.eq(symbolizer.label, "10", "c) feature property cast to string when used as symbolizer label");
 
-        rule.evaluate = function() {return false;};
-        style.applySymbolizer = function(r) {
-            t.eq(r.id, elseRule.id, "(else) applySymbolizer called with correct rule");
-        };
-        style.createSymbolizer(new OpenLayers.Feature.Vector());
     }
     
     function test_Style_applySymbolizer(t) {
diff --git a/tests/Style2.html b/tests/Style2.html
index 9127f33..87ab584 100644
--- a/tests/Style2.html
+++ b/tests/Style2.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
diff --git a/tests/StyleMap.html b/tests/StyleMap.html
index 2213352..6c633c3 100644
--- a/tests/StyleMap.html
+++ b/tests/StyleMap.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_StyleMap_constructor(t) { 
diff --git a/tests/Symbolizer.html b/tests/Symbolizer.html
index 5f51e91..be24e9c 100644
--- a/tests/Symbolizer.html
+++ b/tests/Symbolizer.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
diff --git a/tests/Symbolizer/Line.html b/tests/Symbolizer/Line.html
index ed321f1..5396f3b 100644
--- a/tests/Symbolizer/Line.html
+++ b/tests/Symbolizer/Line.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
@@ -24,6 +24,16 @@
         t.eq(clone.foo, "bar", "clone copies properties");
         
     }
+    
+    function test_defaults(t) {
+        t.plan(5);
+        var symbolizer = new OpenLayers.Symbolizer.Line();
+        t.ok(symbolizer.strokeColor === undefined, "no default strokeColor");
+        t.ok(symbolizer.strokeOpacity === undefined, "no default strokeOpacity");
+        t.ok(symbolizer.strokeWidth === undefined, "no default strokeWidth");
+        t.ok(symbolizer.strokeLinecap === undefined, "no default strokeLinecap");
+        t.ok(symbolizer.strokeDashstyle === undefined, "no default strokeDashstyle");
+    }
 
 
     </script> 
diff --git a/tests/Symbolizer/Point.html b/tests/Symbolizer/Point.html
index e308191..b1311c0 100644
--- a/tests/Symbolizer/Point.html
+++ b/tests/Symbolizer/Point.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
@@ -25,6 +25,26 @@
         
     }
 
+    function test_defaults(t) {
+        t.plan(16);
+        var symbolizer = new OpenLayers.Symbolizer.Point();
+        t.ok(symbolizer.strokeColor === undefined, "no default strokeColor");
+        t.ok(symbolizer.strokeOpacity === undefined, "no default strokeOpacity");
+        t.ok(symbolizer.strokeWidth === undefined, "no default strokeWidth");
+        t.ok(symbolizer.strokeLinecap === undefined, "no default strokeLinecap");
+        t.ok(symbolizer.strokeDashstyle === undefined, "no default strokeDashstyle");
+        t.ok(symbolizer.fillColor === undefined, "no default fillColor");
+        t.ok(symbolizer.fillOpacity === undefined, "no default fillOpacity");
+        t.ok(symbolizer.pointRadius === undefined, "no default pointRadius");
+        t.ok(symbolizer.externalGraphic === undefined, "no default externalGraphic");
+        t.ok(symbolizer.graphicWidth === undefined, "no default graphicWidth");
+        t.ok(symbolizer.graphicHeight === undefined, "no default graphicHeight");
+        t.ok(symbolizer.graphicOpacity === undefined, "no default graphicOpacity");
+        t.ok(symbolizer.graphicXOffset === undefined, "no default graphicXOffset");
+        t.ok(symbolizer.graphicYOffset === undefined, "no default graphicYOffset");
+        t.ok(symbolizer.rotation === undefined, "no default rotation");
+        t.ok(symbolizer.graphicName === undefined, "no default graphicName");
+    }
 
     </script> 
 </head>
diff --git a/tests/Symbolizer/Polygon.html b/tests/Symbolizer/Polygon.html
index 84dc03a..ebea5ea 100644
--- a/tests/Symbolizer/Polygon.html
+++ b/tests/Symbolizer/Polygon.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
@@ -25,6 +25,18 @@
         
     }
 
+    function test_defaults(t) {
+        t.plan(7);
+        var symbolizer = new OpenLayers.Symbolizer.Polygon();
+        t.ok(symbolizer.strokeColor === undefined, "no default strokeColor");
+        t.ok(symbolizer.strokeOpacity === undefined, "no default strokeOpacity");
+        t.ok(symbolizer.strokeWidth === undefined, "no default strokeWidth");
+        t.ok(symbolizer.strokeLinecap === undefined, "no default strokeLinecap");
+        t.ok(symbolizer.strokeDashstyle === undefined, "no default strokeDashstyle");
+        t.ok(symbolizer.fillColor === undefined, "no default fillColor");
+        t.ok(symbolizer.fillOpacity === undefined, "no default fillOpacity");
+    }
+
 
     </script> 
 </head>
diff --git a/tests/Symbolizer/Raster.html b/tests/Symbolizer/Raster.html
index ff4bb04..8dd9cb9 100644
--- a/tests/Symbolizer/Raster.html
+++ b/tests/Symbolizer/Raster.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
diff --git a/tests/Symbolizer/Text.html b/tests/Symbolizer/Text.html
index 482afb5..a849f20 100644
--- a/tests/Symbolizer/Text.html
+++ b/tests/Symbolizer/Text.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../../lib/OpenLayers.js"></script> 
+    <script src="../OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_constructor(t) { 
@@ -25,6 +25,16 @@
         
     }
 
+    function test_defaults(t) {
+        t.plan(5);
+        var symbolizer = new OpenLayers.Symbolizer.Point();
+        t.ok(symbolizer.label === undefined, "no default label");
+        t.ok(symbolizer.fontFamily === undefined, "no default fontFamily");
+        t.ok(symbolizer.fontSize === undefined, "no default fontSize");
+        t.ok(symbolizer.fontWeight === undefined, "no default fontWeight");
+        t.ok(symbolizer.fontStyle === undefined, "no default fontStyle");
+    }
+
 
     </script> 
 </head>
diff --git a/tests/Tile.html b/tests/Tile.html
index 930f2e6..b199f03 100644
--- a/tests/Tile.html
+++ b/tests/Tile.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     var tile; 
     
diff --git a/tests/Tile/Image.html b/tests/Tile/Image.html
index f5f327b..f12bb19 100644
--- a/tests/Tile/Image.html
+++ b/tests/Tile/Image.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var tile; 
@@ -87,6 +87,29 @@
         t.ok( clone.imgDiv == null, "clone's imgDiv was not copied");
     }
     
+    function test_Tile_Image_IFrame_viewRequestID (t) {
+        t.plan( 2 );
+        var map   = new OpenLayers.Map('map');
+        var layer = new OpenLayers.Layer.WMS(
+            "Name",
+            "http://labs.metacarta.com/TESTURL?",
+            {layers: 'basic'}
+        ); 
+        map.addLayer(layer);
+
+        var position = new OpenLayers.Pixel(20,30);
+        var bounds = new OpenLayers.Bounds(1,2,3,4);
+        tile = layer.addTile(bounds, position);
+        tile.renderTile();
+        t.eq(tile.imgDiv.viewRequestID, map.viewRequestID, "viewRequestID correct after renderTile");
+        map.viewRequestID++;
+        tile.renderTile();
+        t.eq(tile.imgDiv.viewRequestID, map.viewRequestID, "viewRequestID correct after subsequent renderTile");
+        tile.destroy();
+        layer.destroy();
+        map.destroy();
+    }
+
     function test_Tile_Image_draw (t) {
         t.plan( 7 );
 
@@ -126,7 +149,7 @@
         var tParams = {
             SERVICE: "WMS", VERSION: "1.1.1",
             REQUEST: "GetMap", STYLES: "",
-            EXCEPTIONS: "application/vnd.ogc.se_inimage", FORMAT: "image/jpeg",
+            FORMAT: "image/jpeg",
             SRS: "EPSG:4326", BBOX: [1,2,3,4],
             WIDTH: String(size.w), HEIGHT: String(size.h)
         };
@@ -159,7 +182,7 @@
         var tParams = {
             LAYERS: "basic", SERVICE: "WMS", VERSION: "1.1.1",
             REQUEST: "GetMap", STYLES: "",
-            EXCEPTIONS: "application/vnd.ogc.se_inimage", FORMAT: "image/jpeg",
+            FORMAT: "image/jpeg",
             SRS: "EPSG:4326", BBOX: "-181,-91,180,90",
             WIDTH: "256", HEIGHT: "256"
         };
diff --git a/tests/Tile/Image/IFrame.html b/tests/Tile/Image/IFrame.html
index 5a3da99..e1fa549 100644
--- a/tests/Tile/Image/IFrame.html
+++ b/tests/Tile/Image/IFrame.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script src="../../../lib/OpenLayers.js"></script>
+    <script src="../../OLLoader.js"></script>
     <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var isOpera   = (navigator.userAgent.indexOf("Opera") != -1);
@@ -14,66 +14,48 @@
     var name     = "OpenaLayers WMS";
     var wmsUrl   = "http://labs.metacarta.com/wms/vmap0?";
     
-    function test_Tile_Image_IFrame_constructor (t) {
-        t.plan( 2 );
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
-        var tile = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, url, size);
-        
-        t.ok( tile instanceof OpenLayers.Tile.Image.IFrame, "new OpenLayers.Tile.Image.IFrame returns Tile object" );
-        t.eq( tile.layerAlphaHack, false, "layerAlphaHack is set to false.");
-    
-        layer.destroy();
-    }
-
-    function test_Tile_Image_IFrame_destroy (t) {
-        t.plan( 2 );
+    function test_Tile_Image_IFrame_create (t) {
+        t.plan( 3 );
         map   = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
+        var bar = new Array(205).join("1234567890");
+        layer = new OpenLayers.Layer.WMS(name, wmsUrl, {layers: 'basic', foo: bar}, {tileOptions: {maxGetUrlLength: 2048}}); 
         map.addLayer(layer);
 
-        var tile = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, null, size);
+        var tile = layer.addTile(bounds, position);
         tile.renderTile();
         tile.positionImage();
+        t.eq(tile.imgDiv.firstChild.nodeName.toLowerCase(), "iframe", "IFrame used for long URL");
+        
+        layer.mergeNewParams({foo: null});
+        tile.renderTile();
+        tile.positionImage();
+        t.eq(tile.imgDiv.nodeName.toLowerCase(), "img", "IMG used for short URL");
+        
+        tile.maxGetUrlLength = 0;
+        tile.renderTile();
+        tile.positionImage();
+        t.eq(tile.imgDiv.firstChild.nodeName.toLowerCase(), "iframe", "IFrame used when maxGetUrlLength is 0");
         
         tile.destroy();
-        t.eq( tile.imgDiv, null, "IFrame successfully removed from DOM");
-        t.eq( tile.frame, null, "Event div successfully removed from DOM");
-
+        layer.destroy();
         map.destroy();
     }
 
-    function test_Tile_Image_IFrame_clone (t) {
-        t.plan( 9 );
-        
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
-        tile  = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, url, size);
-        tile.iFrame = {};
-        var clone = tile.clone();
-        
-        t.ok( clone instanceof OpenLayers.Tile.Image.IFrame, "clone is a Tile.Image.IFrame object" );
-        t.ok( clone.layer == layer, "clone.layer is set correctly");
-        t.ok( clone.position.equals(position), "clone.position is set correctly");
-        t.ok( clone.bounds.equals(bounds), "clone.bounds is set correctly");
-        t.eq( clone.url, url, "clone.url is set correctly");
-        t.ok( clone.size.equals(size), "clone.size is set correctly");
-        t.ok( clone.frame, "clone has a frame");
-        t.ok( clone.frame != tile.frame, "clone's frame is a new one");
-        t.ok( clone.imgDiv == null, "clone's imgDiv was not copied");
-    }
-    
     function test_Tile_Image_IFrame_clear (t) {
         t.plan( 1 );
         
         map   = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
+        layer = new OpenLayers.Layer.WMS(name, wmsUrl, {layers: 'basic'}, {tileOptions: {maxGetUrlLength: 0}}); 
         map.addLayer(layer);  
-        tile = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, url, size);
+        tile = layer.addTile(bounds, position);
         tile.draw();
         tile.clear();
 
-        t.ok(
-            tile.imgDiv.firstChild.nodeName != "IFRAME",
+        t.eq(
+            tile.imgDiv.firstChild.nodeName.toLowerCase(), "div",
             "IFrame successfully removed from DOM");
+        tile.destroy();
+        layer.destroy();
         map.destroy();
     }
 
@@ -81,9 +63,10 @@
         t.plan( 4 );
 
         map   = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
+        layer = new OpenLayers.Layer.WMS(name, wmsUrl, {layers: 'basic'}, {tileOptions: {maxGetUrlLength: 0}}); 
         map.addLayer(layer);  
-        tile = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, url, size);
+        tile = layer.addTile(bounds, position);
+        tile.url = layer.getURL(bounds);
         tile.initImgDiv();
 
         if(isMozilla) {
@@ -103,9 +86,9 @@
         t.plan( 3 );
 
         map   = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
+        layer = new OpenLayers.Layer.WMS(name, wmsUrl, {layers: 'basic'}, {tileOptions: {maxGetUrlLength: 0}}); 
         map.addLayer(layer);  
-        var tile = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, url, size);
+        var tile = layer.addTile(bounds, position);
         tile.renderTile();
         var imgDiv = tile.imgDiv;
         var iFrame    = imgDiv.firstChild;
@@ -128,9 +111,9 @@
         t.plan( 8 );
         
         map   = new OpenLayers.Map('map');
-        layer = new OpenLayers.Layer.WMS.Post(name, wmsUrl, {layers: 'basic'}); 
+        layer = new OpenLayers.Layer.WMS(name, wmsUrl, {layers: 'basic'}, {tileOptions: {maxGetUrlLength: 0}}); 
         map.addLayer(layer);  
-        var tile = new OpenLayers.Tile.Image.IFrame(layer, position, bounds, url, size);
+        var tile = layer.addTile(bounds, position);
         var iFrame = tile.createIFrame();
 
         var id = tile.id+'_iFrame';
@@ -157,19 +140,21 @@
         var tParams = {
             SERVICE: "WMS", VERSION: "1.1.1",
             REQUEST: "GetMap", STYLES: "",
-            EXCEPTIONS: "application/vnd.ogc.se_inimage", FORMAT: "image/jpeg",
+            FORMAT: "image/jpeg",
             SRS: "EPSG:4326", BBOX: [1,2,3,4],
             WIDTH: String(size.w), HEIGHT: String(size.h)
         };
-        var newLayer = new OpenLayers.Layer.WMS.Post("Name",
-                                         "http://labs.metacarta.com/TESTURL",
-                                         tParams,
-                                         {tileSize: size});  
+        var newLayer = new OpenLayers.Layer.WMS("Name",
+                     "http://labs.metacarta.com/TESTURL",
+                     tParams,
+                     {tileSize: size, tileOptions: {maxGetUrlLength: 0}});  
         map = new OpenLayers.Map('map'); 
         map.addLayer(newLayer);  
-        tile = new OpenLayers.Tile.Image.IFrame(newLayer, position, bounds, url, size);
+        tile = newLayer.addTile(bounds, position);
+        tile.url = newLayer.getURL(bounds);
         tile.initImgDiv();
 
+        tile.url = newLayer.getURL(bounds);
         var form = tile.createRequestForm();
         if(isMozilla) {
             t.ok( form instanceof HTMLElement, "created html form successfully.");
@@ -187,25 +172,13 @@
         t.eq( form.target, tile.id+'_iFrame', "form target correctly set.");
         t.eq( form.action, url, "form action correctly set.");
 
-        var contain  = true;
+        var formParams = {};
         var children = form.childNodes;
-        for(var par in newLayer.params) {
-            var test = false;
-            
-            for(var i=0; i<children.length; i++) {
-                if(children.item(i).name == par && children.item(i).value == newLayer.params[par]) {
-                    test = true;
-                    break;
-                }
-            }
-
-            if(test == false) {
-                contain = false;
-                break;
-            }
-
+        for(var i=0; i<form.childNodes.length; i++) {
+            formParams[children[i].name] = children[i].value
         }
-        t.eq( contain, true, "html form elements equal layer's parameters.");
+        newLayer.params.BBOX = newLayer.params.BBOX.join(",");
+        t.eq(newLayer.params, formParams, "html form elements equal layer's parameters.");
 
         tile.draw();
         tile.clear();
@@ -214,7 +187,9 @@
             tile.imgDiv.firstChild.nodeName == "IFRAME",
             "Iframe has been reinserted properly"
         );
-
+        
+        tile.destroy();
+        newLayer.destroy();
         map.destroy();
     }
 </script>
diff --git a/tests/Tile/WFS.html b/tests/Tile/WFS.html
index c0b57c9..ae996ce 100644
--- a/tests/Tile/WFS.html
+++ b/tests/Tile/WFS.html
@@ -1,6 +1,6 @@
 <html>
 <head>
-  <script src="../../lib/OpenLayers.js"></script>
+  <script src="../OLLoader.js"></script>
   <script type="text/javascript">
     var tile; 
     
diff --git a/tests/Tween.html b/tests/Tween.html
index be159a7..f185bee 100644
--- a/tests/Tween.html
+++ b/tests/Tween.html
@@ -1,6 +1,6 @@
 <html> 
 <head> 
-    <script src="../lib/OpenLayers.js"></script> 
+    <script src="OLLoader.js"></script> 
     <script type="text/javascript">
 
     function test_Tween_constructor(t) { 
diff --git a/tests/Util.html b/tests/Util.html
index a79ff2e..f70cbb9 100644
--- a/tests/Util.html
+++ b/tests/Util.html
@@ -1,10 +1,24 @@
 <html>
 <head>
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
   <script>
     var custom$ = function() {};
     window.$ = custom$;
   </script>
-  <script src="../lib/OpenLayers.js"></script>
+  <script>
+    var OpenLayers = [
+        "OpenLayers/BaseTypes/Class.js",
+        "OpenLayers/Util.js",
+        "OpenLayers/BaseTypes.js",
+        "OpenLayers/BaseTypes/Element.js",
+        "OpenLayers/BaseTypes/LonLat.js",
+        "OpenLayers/BaseTypes/Pixel.js",
+        "OpenLayers/BaseTypes/Size.js",
+        "OpenLayers/Lang.js",
+        "OpenLayers/Console.js"
+    ];
+  </script>
+  <script src="OLLoader.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var map; 
@@ -27,6 +41,42 @@
              "isElement reports that object returned by getElement is an Element");
     }
     
+    function test_isArray(t) {
+        t.plan(5);
+        
+        var a;
+        
+        a = null;
+        t.eq(OpenLayers.Util.isArray(a), false, 
+             "isArray reports 'null' isn't an Array");
+        a = "Array";   
+        t.eq(OpenLayers.Util.isArray(a), false, 
+             "isArray reports \"Array\" isn't an Array");
+        a = {};
+        t.eq(OpenLayers.Util.isArray(a), false, 
+             "isArray reports {} isn't an Array");
+        a = [];
+        t.eq(OpenLayers.Util.isArray(a), true, 
+             "isArray reports [] is an Array");
+        a = new Array();
+        t.eq(OpenLayers.Util.isArray(a), true, 
+             "isArray reports new Array() is an Array");
+    }
+    
+    function test_iframe_isArray(t) {
+        t.plan(3);
+        // create an array in an iframe
+        var iframe = document.createElement("iframe");
+        document.body.appendChild(iframe);
+        frames[frames.length-1].document.write(
+            "<script>parent.testArray = [];<\/script>"
+        );
+        
+        t.ok(!!testArray, "testArray created");
+        t.ok(!(testArray instanceof Array), "instanceof check doesn't work");
+        t.eq(OpenLayers.Util.isArray(testArray), true, "isArray works");
+    }
+    
     function test_$(t) {
         t.plan(1);
         t.ok($ === custom$, "OpenLayers doesn't clobber existing definition of $.");
@@ -96,7 +146,7 @@
 
         t.eq( div.style.position, position, "div.style.positionset correctly");    
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           var s = border.split(' ');
           t.ok(div.style.borderTopWidth == s[0] && div.style.borderTopStyle == s[1], "good default popup.border")
         } else {
@@ -104,11 +154,12 @@
         }
             
         //Safari 3 separates style overflow into overflow-x and overflow-y
-        var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+        var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq( div.style[prop], overflow, "div.style.overflow set correctly");    
         t.eq( parseFloat(div.style.opacity), opacity, "element.style.opacity set correctly");    
-        //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+        //Some non-IE browsers don't return the alpha string for this value, which is okay
+        var filterString = div.style.filter.match(/^alpha/) != null ? 
+                               'alpha(opacity=' + (opacity * 100) + ')' : div.style.filter;
         t.eq( div.style.filter, filterString, "element.style.filter set correctly");
 
         //test defaults
@@ -129,13 +180,13 @@
 
         t.eq( div.style.position, "absolute", "div.style.positionset correctly");    
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           t.ok(div.style.borderTopWidth == '' && div.style.borderTopStyle == '', "good default popup.border")
         } else {
           t.eq( div.style.border, "", "div.style.border set correctly");    
         }
         //Safari 3 separates style overflow into overflow-x and overflow-y
-        var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+        var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq(div.style[prop], "", "div.style.overflow set correctly");    
         t.ok( !div.style.opacity, "element.style.opacity set correctly");    
         t.ok( !div.style.filter, "element.style.filter set correctly");
@@ -167,7 +218,7 @@
         t.eq( image.style.height, sz.h + "px", "image.style.height set correctly");    
 
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           var s = border.split(' ');
           t.ok(image.style.borderTopWidth == s[0] && image.style.borderTopStyle == s[1], "good default popup.border")
         } else {
@@ -176,8 +227,9 @@
         t.eq( image.src, img, "image.style.backgroundImage correctly");    
         t.eq( image.style.position, position, "image.style.position set correctly");    
         t.eq( parseFloat(image.style.opacity), opacity, "image.style.opacity set correctly");    
-        //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+        //Some non-IE browsers don't return the alpha string for this value, which is okay
+        var filterString = image.style.filter.match(/^alpha/) != null ? 
+                               'alpha(opacity=' + (opacity * 100) + ')' : image.style.filter;
         t.eq( image.style.filter, filterString, "element.style.filter set correctly");
 
         //test defaults
@@ -367,8 +419,9 @@
         if (OpenLayers.Util.alphaHack()) {
             filterString = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.openlayers.org/images/OpenLayers.trac.png', sizingMethod='crop') alpha(opacity=50)";
         } else {
-            //Safari 3 returns null for this value, which is okay
-            var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+            //Some non-IE browsers don't return the alpha string for this value, which is okay
+            var filterString = imageDiv.style.filter.match(/^alpha/) != null ? 
+                                   'alpha(opacity=' + (opacity * 100) + ')' : imageDiv.style.filter;
         }        
         t.eq( imageDiv.style.filter, filterString, "element.style.filter set correctly");
 
@@ -384,7 +437,7 @@
         t.eq( image.style.height, sz.h + "px", "image.style.height set correctly");    
 
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           var s = border.split(' ');
           t.ok(image.style.borderTopWidth == s[0] && image.style.borderTopStyle == s[1], "good default popup.border")
         } else {
@@ -435,8 +488,9 @@
 
         t.eq(parseFloat(element.style.opacity), opacity, 
              "element.style.opacity set correctly when opacity = " + opacity);
-        //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+        //Some non-IE browsers don't return the alpha string for this value, which is okay
+        var filterString = element.style.filter.match(/^alpha/) != null ? 
+                               'alpha(opacity=' + (opacity * 100) + ')' : element.style.filter;
         t.eq(element.style.filter, filterString, 
              "element.style.filter set correctly when opacity = " + opacity);
 
@@ -445,8 +499,9 @@
     
         t.eq(parseFloat(element.style.opacity), opacity, 
              "element.style.opacity not changed if the value is incorrect");
-        //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+        //Some non-IE browsers don't return the alpha string for this value, which is okay
+        var filterString = element.style.filter.match(/^alpha/) != null ? 
+                               'alpha(opacity=' + (opacity * 100) + ')' : element.style.filter;
         t.eq(element.style.filter, filterString, 
              "element.style.filter not changed if the value is incorrect");
 
@@ -455,8 +510,9 @@
     
         t.eq(parseFloat(element.style.opacity), opacity, 
              "element.style.opacity not changed if the value is incorrect");
-        //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+        //Some non-IE browsers don't return the alpha string for this value, which is okay
+        var filterString = element.style.filter.match(/^alpha/) != null ? 
+                               'alpha(opacity=' + (opacity * 100) + ')' : element.style.filter;
         t.eq(element.style.filter, filterString, 
              "element.style.filter not changed if the value is incorrect");
 
@@ -467,7 +523,7 @@
         t.eq(element.style.opacity, '', 
              "element.style.opacity is removed when opacity = " + opacity);
         //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : '';
+        var filterString = (OpenLayers.BROWSER_NAME == 'safari') ? null : '';
         t.eq(element.style.filter, filterString, 
              "element.style.filter is removed when opacity = " + opacity);
     }
@@ -497,18 +553,19 @@
 
         t.eq( element.style.position, position, "element.style.position set correctly");    
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           var s = border.split(' ');
           t.ok(element.style.borderTopWidth == s[0] && element.style.borderTopStyle == s[1], "good default popup.border")
         } else {
           t.ok( (element.style.border.indexOf(border) != -1), "element.style.border set correctly");
         }
         //Safari 3 separates style overflow into overflow-x and overflow-y
-        var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
+        var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq( element.style[prop], overflow, "element.style.overflow set correctly");    
         t.eq( parseFloat(element.style.opacity), opacity, "element.style.opacity set correctly");    
-        //Safari 3 returns null for this value, which is okay
-        var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+        //Some non-IE browsers don't return the alpha string for this value, which is okay
+        var filterString = element.style.filter.match(/^alpha/) != null ? 
+                               'alpha(opacity=' + (opacity * 100) + ')' : element.style.filter;
         t.eq( element.style.filter, filterString, "element.style.filter set correctly");
     }
 
@@ -551,8 +608,9 @@
             filterString = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.openlayers.org/images/OpenLayers.trac.png', sizingMethod='crop') alpha(opacity=50)";
             t.ok( true, "skipping element test outside of Mozilla");
         } else {
-            //Safari 3 returns null for this value, which is okay
-            var filterString = (OpenLayers.Util.getBrowserName() == 'safari') ? null : 'alpha(opacity=' + (opacity * 100) + ')';
+            //Some non-IE browsers don't return the alpha string for this value, which is okay
+            var filterString = imageDiv.style.filter.match(/^alpha/) != null ? 
+                                   'alpha(opacity=' + (opacity * 100) + ')' : imageDiv.style.filter;
             t.ok( image.nodeName == "IMG", "createImage creates a valid HTMLImageElement" );
         }
         t.eq( imageDiv.style.filter, filterString, "element.style.filter set correctly");
@@ -562,7 +620,7 @@
         t.eq( image.style.height, sz.h + "px", "image.style.height set correctly");    
 
         //Safari 3 separates the border style into separate entities when reading it
-        if (OpenLayers.Util.getBrowserName() == 'safari') {
+        if (OpenLayers.BROWSER_NAME == 'safari') {
           var s = border.split(' ');
           t.ok(image.style.borderTopWidth == s[0] && image.style.borderTopStyle == s[1], "good default popup.border")
         } else {
@@ -894,7 +952,16 @@
     }
 
     function test_Util_getParameters(t) {
-        t.plan(13);
+        t.plan(20);
+
+        t.eq(OpenLayers.Util.getParameters(''), {},
+                "getParameters works when the given argument is empty string");
+
+        t.eq(OpenLayers.Util.getParameters(), {},
+                "getParameters works with optional argument");
+
+        t.eq(OpenLayers.Util.getParameters(null), {},
+                "getParameters works with optional argument");
 
         t.eq(OpenLayers.Util.getParameters('http://www.example.com'), {},
              "getParameters works when args = ''");
@@ -952,6 +1019,18 @@
         };
         var str = OpenLayers.Util.getParameterString(obj);
         t.eq(OpenLayers.Util.getParameters("?" + str), obj, "round tripped parameters");
+        
+        // try some oddly encoded strings
+        var url = "http://example.com/?C%E9sar=C%E9sar+Ch%E1vez";
+        var obj = OpenLayers.Util.getParameters(url);
+        t.ok("César" in obj, "got proper key from C%E9sar");
+        t.eq(obj["César"], "César Chávez", "got proper value from C%E9sar+Ch%E1vez");
+        
+        // try some properly encoded strings
+        var url = "http://example.com/?C%C3%A9sar=C%C3%A9sar+Ch%C3%A1vez";
+        var obj = OpenLayers.Util.getParameters(url);
+        t.ok("César" in obj, "got proper key from C%C3%A9sar");
+        t.eq(obj["César"], "César Chávez", "got proper value from C%E9sar+Ch%E1vez");
 
     }
 
@@ -1075,6 +1154,14 @@
         t.eq(OpenLayers.Util.toFloat(b1), OpenLayers.Util.toFloat(b2),
             "toFloat rounds large floats correctly #2");
     }
+    function test_getFormattedLonLat(t) {
+        t.plan(3);
+        var z = 2 + (4/60) - 0.000002 ;
+        t.eq(OpenLayers.Util.getFormattedLonLat(z,"lon"), "02°04'00\"E",
+            "LonLat does not show 60 seconds.");
+        t.eq(OpenLayers.Util.getFormattedLonLat(-181, "lon"), "179°00'00\"E", "crossing dateline from the west results in correct east coordinate");
+        t.eq(OpenLayers.Util.getFormattedLonLat(181, "lon"), "179°00'00\"W", "crossing dateline from the east results in correct west coordinate");
+    }
   </script>
 </head>
 <body>
diff --git a/tests/list-tests.html b/tests/list-tests.html
index 708bd28..4983e0b 100644
--- a/tests/list-tests.html
+++ b/tests/list-tests.html
@@ -3,6 +3,7 @@
     <li>BaseTypes.html</li>
     <li>BaseTypes/Bounds.html</li>
     <li>BaseTypes/Class.html</li>
+    <li>BaseTypes/Date.html</li>
     <li>BaseTypes/Element.html</li>
     <li>BaseTypes/LonLat.html</li>
     <li>BaseTypes/Pixel.html</li>
@@ -10,10 +11,13 @@
     <li>Console.html</li>
     <li>Control.html</li>
     <li>Control/Attribution.html</li>
+    <li>Control/ArgParser.html</li>
     <li>Control/Button.html</li>
     <li>Control/DragFeature.html</li>
     <li>Control/DragPan.html</li>
     <li>Control/DrawFeature.html</li>
+    <li>Control/EditingToolbar.html</li>
+    <li>Control/Geolocate.html</li>
     <li>Control/GetFeature.html</li>
     <li>Control/Graticule.html</li>
     <li>Control/KeyboardDefaults.html</li>
@@ -30,11 +34,13 @@
     <li>Control/PanZoom.html</li>
     <li>Control/PanZoomBar.html</li>
     <li>Control/Permalink.html</li>
+    <li>Control/PinchZoom.html</li>
     <li>Control/Scale.html</li>
     <li>Control/ScaleLine.html</li>
     <li>Control/SelectFeature.html</li>
     <li>Control/Snapping.html</li>
     <li>Control/Split.html</li>
+    <li>Control/TouchNavigation.html</li>
     <li>Control/TransformFeature.html</li>
     <li>Control/WMSGetFeatureInfo.html</li>
     <li>Control/WMTSGetFeatureInfo.html</li>
@@ -52,7 +58,9 @@
     <li>Format.html</li>
     <li>Format/Atom.html</li>
     <li>Format/ArcXML.html</li>
+    <li>Format/XML/VersionedOGC.html</li>
     <li>Format/ArcXML/Features.html</li>
+    <li>Format/CQL.html</li>
     <li>Format/GeoJSON.html</li>
     <li>Format/GeoRSS.html</li>
     <li>Format/GML.html</li>
@@ -69,6 +77,7 @@
     <li>Format/Filter/v1.html</li>
     <li>Format/Filter/v1_0_0.html</li>
     <li>Format/Filter/v1_1_0.html</li>
+    <li>Format/QueryStringFilter.html</li>
     <li>Format/WFS.html</li>
     <li>Format/WFSCapabilities.html</li>
     <li>Format/WFSCapabilities/v1.html</li>
@@ -83,11 +92,15 @@
     <li>Format/WMC/v1.html</li>
     <li>Format/WMSCapabilities.html</li>
     <li>Format/WMSCapabilities/v1_1_1.html</li>
+    <li>Format/WMSCapabilities/v1_1_1_WMSC.html</li>
     <li>Format/WMSCapabilities/v1_3_0.html</li>
     <li>Format/WMSDescribeLayer.html</li>
     <li>Format/WMSGetFeatureInfo.html</li>
     <li>Format/WMTSCapabilities.html</li>
     <li>Format/WMTSCapabilities/v1_0_0.html</li>
+    <li>Format/WPSCapabilities/v1_0_0.html</li>
+    <li>Format/WPSDescribeProcess.html</li>
+    <li>Format/WPSExecute.html</li>
     <li>Format/CSWGetDomain.html</li>
     <li>Format/CSWGetDomain/v2_0_2.html</li>
     <li>Format/CSWGetRecords.html</li>
@@ -96,6 +109,11 @@
     <li>Format/SOSGetObservation.html</li>
     <li>Format/SOSGetFeatureOfInterest.html</li>
     <li>Format/OWSContext/v0_3_1.html</li>
+    <li>Format/OWSCommon/v1_0_0.html</li>
+    <li>Format/OWSCommon/v1_1_0.html</li>
+    <li>Format/OGCExceptionReport.html</li>
+    <li>Format/XLS/v1_1_0.html</li>
+    <li>Format/WCSGetCoverage.html</li>
     <li>Format/XML.html</li>
     <li>Geometry.html</li>
     <li>Geometry/Collection.html</li>
@@ -110,8 +128,10 @@
     <li>Geometry/Rectangle.html</li>
     <li>Geometry/Surface.html</li>
     <li>Handler.html</li>
+    <li>Handler/Box.html</li>
     <li>Handler/Click.html</li>
     <li>Handler/Drag.html</li>
+    <li>Handler/Pinch.html</li>
     <li>Handler/Feature.html</li>
     <li>Handler/Hover.html</li>
     <li>Handler/Keyboard.html</li>
@@ -125,6 +145,8 @@
     <li>Layer.html</li>
     <li>Layer/ArcIMS.html</li> 
     <li>Layer/ArcGIS93Rest.html</li>
+    <li>Layer/ArcGISCache.html</li>
+    <li>Layer/Bing.html</li>
     <li>Layer/EventPane.html</li>
     <li>Layer/FixedZoomLevels.html</li>
     <li>Layer/GeoRSS.html</li>
@@ -138,7 +160,8 @@
     <li>Layer/MapGuide.html</li>
     <li>Layer/MapServer.html</li>
     <li>Layer/Markers.html</li>
-    <script type="text/javascript">if(window.location.host.match(/^(www.)?openlayers.org$/)){document.write('<li>Layer/MultiMap.html</li>');}</script>
+    <li>Layer/MultiMap.html</li>
+    <li>Layer/PointGrid.html</li>
     <li>Layer/PointTrack.html</li>
     <li>Layer/SphericalMercator.html</li>
     <li>Layer/Text.html</li>
@@ -156,7 +179,11 @@
     <li>Map.html</li>
     <li>Marker.html</li>
     <li>Marker/Box.html</li>
-    <li>OpenLayers.html</li>
+    <li>OpenLayers1.html</li>
+    <li>OpenLayers2.html</li>
+    <li>OpenLayers3.html</li>
+    <li>OpenLayers4.html</li>
+    <li>OpenLayersJsFiles.html</li>
     <li>Popup.html</li>
     <li>Popup/Anchored.html</li>
     <li>Popup/AnchoredBubble.html</li>
@@ -164,6 +191,7 @@
     <li>Projection.html</li>
     <li>Protocol.html</li>
     <li>Protocol/HTTP.html</li>
+    <li>Protocol/Script.html</li>
     <li>Protocol/SQL.html</li>
     <li>Protocol/SQL/Gears.html</li>
     <li>Protocol/WFS.html</li>
@@ -172,6 +200,7 @@
     <li>Renderer/Canvas.html</li>
     <li>Renderer/Elements.html</li>
     <li>Renderer/SVG.html</li>
+    <li>Renderer/SVG2.html</li>
     <li>Renderer/VML.html</li>
     <li>Request.html</li>
     <li>Request/XMLHttpRequest.html</li>
@@ -198,5 +227,6 @@
     <li>Tile/Image/IFrame.html</li>
     <li>Tile/WFS.html</li>
     <li>Tween.html</li>
+    <li>Kinetic.html</li>
     <li>Util.html</li>
 </ul>
diff --git a/tests/manual/alloverlays-mixed.html b/tests/manual/alloverlays-mixed.html
new file mode 100644
index 0000000..4b64f11
--- /dev/null
+++ b/tests/manual/alloverlays-mixed.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <title>OpenLayers Mixed allOverlays Test</title>
+    <link rel="stylesheet" href="../../theme/default/style.css" type="text/css">
+    <link rel="stylesheet" href="../../theme/default/google.css" type="text/css">
+    <link rel="stylesheet" href="../../examples/style.css" type="text/css">
+    <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
+    <script src="../../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        var map;
+
+        function init() {
+            map = new OpenLayers.Map('map', {allOverlays: true});
+            map.addControl(new OpenLayers.Control.LayerSwitcher());
+            
+            var osm = new OpenLayers.Layer.OSM("OSM", null, {
+                visibility: false,
+                maxResolution: 78271.516953125,
+                serverResolutions: [156543.03390625, 78271.516953125, 39135.7584765625, 19567.87923828125, 9783.939619140625, 4891.9698095703125, 2445.9849047851562, 1222.9924523925781, 611.4962261962891, 305.74811309814453, 152.87405654907226, 76.43702827453613, 38.218514137268066, 19.109257068634033, 9.554628534317017, 4.777314267158508, 2.388657133579254, 1.194328566789627, 0.5971642833948135]
+            });
+            var google = new OpenLayers.Layer.Google("Google");
+            var wms = new OpenLayers.Layer.WMS("WMS",
+                "http://vmap0.tiles.osgeo.org/wms/vmap0",
+                {layers: 'basic'}, {
+                    opacity: .5,
+                    maxExtent: new OpenLayers.Bounds(
+                        -20037508.34, -20037508.34, 20037508.34, 20037508.34
+                    ),
+                    wrapDateLine: true
+                }
+            );
+
+            map.addLayers([osm, google, wms]);
+
+            map.setCenter(new OpenLayers.LonLat(0, 0), 3);
+        }
+    </script>
+  </head>
+  <body onload="init()">
+    <h1 id="title">Mixed allOverlays Test</h1>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+     <p>
+        The map image aboved should show a Google layer and an opaque WMS
+        layer. They both should align (look at the border of West Africa)
+    </p>
+    </div>
+  </body>
+</html>
diff --git a/tests/manual/box-quirks.html b/tests/manual/box-quirks.html
new file mode 100644
index 0000000..eb74bed
--- /dev/null
+++ b/tests/manual/box-quirks.html
@@ -0,0 +1,52 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>Box Handler Quirks Mode Test</title>
+    <link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
+    <link rel="stylesheet" href="../../examples/style.css" type="text/css" />
+    <style type="text/css">
+    /* simulate quirks mode (traditional box model) in browsers other than IE */
+    div {
+        box-sizing: border-box;
+        -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+        -webkit-box-sizing: border-box;
+    }
+    
+    .olHandlerBoxZoomBox {
+        border: 20px solid red;
+        border-left-width: 10px;
+        border-bottom-width: 30px;
+    }
+    </style>
+    <script src="../../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        var map, layer;
+        function init(){
+            map = new OpenLayers.Map( 'map' );
+            layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+                    "http://vmap0.tiles.osgeo.org/wms/vmap0",
+                    {layers: 'basic'} );
+            map.addLayer(layer);
+            map.zoomToMaxExtent();
+        }
+    </script>
+  </head>
+  <body onload="init()">
+    <h1 id="title">Box handler Quirks Mode Test</h1>
+
+    <div id="shortdesc">Test the correct appearance of the ZoomBox in quirks mode</div>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>For the box to be positioned correctly, we need to know the
+            width of the borders.</p>
+        <p>Shift-click on the map. A red box should be visible around the mouse
+            cursor position, with 20 pixels to the top and right, 10 pixels to
+            the left and 30 pixels to the bottom edge of the box.</p>
+        <p>Drag the box both to the top-left and the bottom-right. The cursor
+            should always be at the top-left or bottom-right inner corner of
+            the box.</p>
+    </div>
+  </body>
+</html>
diff --git a/tests/manual/box-strict.html b/tests/manual/box-strict.html
new file mode 100644
index 0000000..5b38ea5
--- /dev/null
+++ b/tests/manual/box-strict.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
+    "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <title>Box Handler Strict Mode Test</title>
+    <link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
+    <link rel="stylesheet" href="../../examples/style.css" type="text/css" />
+    <style type="text/css">
+    .olHandlerBoxZoomBox {
+        border: 20px solid red;
+        border-left-width: 10px;
+        border-bottom-width: 30px;
+    }
+    </style>
+    <script src="../../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        var map, layer;
+        function init(){
+            map = new OpenLayers.Map( 'map' );
+            layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+                    "http://vmap0.tiles.osgeo.org/wms/vmap0",
+                    {layers: 'basic'} );
+            map.addLayer(layer);
+            map.zoomToMaxExtent();
+        }
+    </script>
+  </head>
+  <body onload="init()">
+    <h1 id="title">Box Handler Strict Mode Test</h1>
+
+    <div id="shortdesc">Test the correct appearance of the ZoomBox in strict mode</div>
+
+    <div id="map" class="smallmap"></div>
+
+    <div id="docs">
+        <p>For the box to be positioned correctly, we need to know the
+            width of the borders.</p>
+        <p>Shift-click on the map. A red box should be visible around the mouse
+            cursor position, with 20 pixels to the top and right, 10 pixels to
+            the left and 30 pixels to the bottom edge of the box.</p>
+        <p>Drag the box both to the top-left and the bottom-right. The cursor
+            should always be at the top-left or bottom-right inner corner of
+            the box.</p>
+    </div>
+  </body>
+</html>
diff --git a/tests/manual/google-v3-resize.html b/tests/manual/google-v3-resize.html
new file mode 100644
index 0000000..fb6955b
--- /dev/null
+++ b/tests/manual/google-v3-resize.html
@@ -0,0 +1,54 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>Google v3 Resize Test</title>
+    <link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
+    <link rel="stylesheet" href="../../examples/style.css" type="text/css" />
+    <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
+    <script src="../../lib/OpenLayers.js"></script>
+    <script type="text/javascript">
+        var map;
+
+        function init() {
+            var mapOptions = {
+                projection: "EPSG:900913",
+                displayProjection: new OpenLayers.Projection("EPSG:4326"), //Pour afficher les coord lat long
+                units: "m",
+                maxResolution: 156543.0339,
+                maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
+                controls: [new OpenLayers.Control.Navigation(), new OpenLayers.Control.LayerSwitcher()],
+                numZoomLevels: 20
+            };
+            map = new OpenLayers.Map('map', mapOptions);
+
+            var dummy = new OpenLayers.Layer(
+                "Dummy",
+                {isBaseLayer: true}
+            );
+            var gmap = new OpenLayers.Layer.Google(
+                "Google Streets", {sphericalMercator: true}
+            );
+
+            map.addLayers([dummy, gmap]);
+
+            map.setCenter(new OpenLayers.LonLat(-7712190.388467473, 6567469.498697457), 6);
+        }
+    </script>
+  </head>
+  <body onload="init()">
+    <h1 id="title">Google Layer Resize Issue</h1>
+
+    <div id="tags"></div>
+
+    <p id="shortdesc">
+        <ol>
+            <li>Click
+                <button onclick="var m = document.getElementById('map').style; m.height = '400px'; m.width = '800px';map.updateSize(); return false;">Resize</button></li>
+            <li>Open the LayerSwitcher and switch to Google Streets</li>
+            <li>Confirm that the whole map area is populated with tiles</li>
+        </ol>
+    </p>
+
+    <div id="map" style="width: 350px; height: 200px"></div>
+
+  </body>
+</html>
diff --git a/tests/manual/page-position.html b/tests/manual/page-position.html
new file mode 100644
index 0000000..a59dfde
--- /dev/null
+++ b/tests/manual/page-position.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML>
+<html>
+    <head>
+        <title>Page Position Test</title>
+        
+        <link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
+        <link rel="stylesheet" href="../../examples/style.css" type="text/css" />
+        <style type="text/css">
+            #mapwrap {
+                border: 10px solid red;
+                width: 532px;
+                height: 276px;
+            }
+            #map {
+                position: absolute;
+                border: 10px solid #ccc;
+                width: 512px;
+                height: 256px;
+            }
+            #controlToggle li {
+                list-style: none;
+            }
+            p {
+                width: 512px;
+            }
+            #scrollspace {
+                height: 500px;
+            }
+        </style>
+        <script src="../../lib/OpenLayers.js"></script>
+        <script type="text/javascript">
+            var map, drawControls;
+            function init(){
+                map = new OpenLayers.Map('map');
+
+                var wmsLayer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
+                    "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'});
+
+                var lineLayer = new OpenLayers.Layer.Vector("Line Layer");
+
+                map.addLayers([wmsLayer, lineLayer]);
+                map.addControl(new OpenLayers.Control.LayerSwitcher());
+                map.addControl(new OpenLayers.Control.MousePosition());
+
+                drawControl = new OpenLayers.Control.DrawFeature(lineLayer,
+                                OpenLayers.Handler.Path);
+
+                map.addControl(drawControl);
+
+                map.setCenter(new OpenLayers.LonLat(0, 0), 3);
+
+                document.getElementById('noneToggle').checked = true;
+            }
+
+            function toggleControl(element) {
+                var control = drawControl;
+                if(element.value == "draw" && element.checked) {
+                    control.activate();
+                } else {
+                    control.deactivate();
+                }
+            }
+        </script>
+    </head>
+    <body onload="init()">
+        <h1 id="title">OpenLayers Page Position Test</h1>
+
+        <p id="shortdesc">
+            Test if borders and scroll position cause unwanted offsets on the
+            mouse positions reported by map events.
+        </p>
+        <div id="mapwrap">
+            <div id="map"></div>
+        </div>
+
+        <ul id="controlToggle">
+            <li>
+                <input type="radio" name="type" value="none" id="noneToggle"
+                       onclick="toggleControl(this);" checked="checked" />
+                <label for="noneToggle">navigate</label>
+            </li>
+            <li>
+                <input type="radio" name="type" value="draw" id="lineToggle" onclick="toggleControl(this);" />
+                <label for="lineToggle">draw line</label>
+            </li>
+        </ul>
+
+        <div id="docs">
+            <p>This map's div has a border and absolute positioning, wrapped
+                by a container which also has a border. The page is also
+                scrollable. Neither the borders nor scrolling the page should
+                result in unwanted offsets on pixel positions reported by map
+                events.</p>
+            <p>With the line drawing control active, click on the map to add a
+                point.  The point should be drawn at the exact mouse location.</p>
+            <p>With the navigation control active, shift-drag a zoom rectangle.
+                The rectangle's corner should align exactly with the mouse
+                cursor.</p>
+            <p>Scroll the page and repeat the above tests.</p>
+            <div id="scrollspace"><div>
+        </div>
+    </body>
+</html>
diff --git a/tests/manual/svg2-coordinaterange.html b/tests/manual/svg2-coordinaterange.html
new file mode 100644
index 0000000..b1f5c62
--- /dev/null
+++ b/tests/manual/svg2-coordinaterange.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
+<link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
+<style type="text/css">
+    #map {
+        width: 512px;
+        height: 512px;
+        border: 1px solid gray;
+    }
+</style>
+<title>SVG2 coordinate range check</title>
+<script type="text/javascript" src="../../lib/OpenLayers.js"></script>
+<script>
+
+var WGS84 = new OpenLayers.Projection("EPSG:4326");
+var Mercator = new OpenLayers.Projection("EPSG:900913");
+var wkt = new OpenLayers.Format.WKT({ internalProjection: Mercator, externalProjection: WGS84 });
+
+function init() {
+    var externalGraphic, baseURL, baseLayer, layerOptions, hidemessenger;
+
+    var map = new OpenLayers.Map('map', {
+        controls: [
+            new OpenLayers.Control.Navigation(),
+            new OpenLayers.Control.PanZoom(),
+            new OpenLayers.Control.Attribution()
+        ],
+        theme: null
+    });
+
+    baseLayer = new OpenLayers.Layer.OSM("OSM");
+
+    var viewLayer = new OpenLayers.Layer.Vector("View Layer", {renderers: ["SVG2"]});
+    map.addLayers([baseLayer, viewLayer]);
+
+    viewLayer.addFeatures([wkt.read("LINESTRING(2.4356174739332 48.816618174539, 2.4313688548536 48.826083884311)")]);
+    var lonLat = new OpenLayers.LonLat( 2.43686, 48.81742) .transform( WGS84, Mercator);
+    map.setCenter (lonLat, 16);
+}
+</script>
+
+<body onload="init()">
+<div id="map"></div>
+<p>The map should show a line on top of the OSM layer. If it does not, then
+    either the CSS or the SVG coordinate range is exceeded.</p>
+<p>This test only works on browsers that support SVG.</p>
+</body>
+</html>
diff --git a/tests/manual/vector-features-performance.html b/tests/manual/vector-features-performance.html
index 62bd197..7990379 100644
--- a/tests/manual/vector-features-performance.html
+++ b/tests/manual/vector-features-performance.html
@@ -81,9 +81,16 @@
         }
 
         function init(){
+            // allow testing of specific renderers via "?renderer=Canvas", etc
+            var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+            renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
             map = new OpenLayers.Map('map');
             
-            vectorLayer = new OpenLayers.Layer.Vector("Vector Layer", {isBaseLayer: true});
+            vectorLayer = new OpenLayers.Layer.Vector("Vector Layer", {
+                isBaseLayer: true,
+                renderers: renderer
+            });
 
             map.addLayers([vectorLayer]);
             map.addControl(new OpenLayers.Control.MousePosition());
diff --git a/tests/node.js/mockdom.js b/tests/node.js/mockdom.js
new file mode 100644
index 0000000..68c088a
--- /dev/null
+++ b/tests/node.js/mockdom.js
@@ -0,0 +1,104 @@
+XMLHttpRequest = function() { 
+    return { 
+    'open': function() {  },
+    'send': function() {  }
+    }
+};
+
+navigator = {
+  'appName': 'mockdom',
+  'userAgent': 'mockdom',
+  'appVersion': '0.1',
+  'language': 'en',
+  'userLanguage': 'en'
+}  
+
+element = function(type) {
+    type = type || "";
+
+    return {
+        'childNodes': [],
+        'className': '',
+        'tagName': type.toUpperCase(),
+        'style': {},
+        'setAttribute': function(attr, value) {
+            this[attr] = value;
+        },    
+        'appendChild': function(element) {
+            if (this.childNodes.length) {
+                this.childNodes[this.childNodes.length - 1].nextSibling = element;
+            }  else {
+                this.firstChild = element;
+            }    
+            element.parentNode = this;
+            this.childNodes.push(element);
+
+        }, 
+        'removeChild': function(element) {
+            var i = this.childNodes.indexOf(element);
+            this.childNodes.splice(i, 1);
+        },    
+        'addEventListener': function() {
+        },
+        'removeEventListener': function() {
+        },
+        'getElementsByTagName': function(name, externalList) {
+            var uc = name.toUpperCase();
+            var list = externalList || [];
+            for(var i = 0; i < this.childNodes.length; i++) {
+                if (this.childNodes[i].tagName == uc) {
+                    list.push(this.childNodes[i]);
+                }
+                this.childNodes[i].getElementsByTagName(name, list);
+            }
+            return list;
+        },
+        'getElementById': function(id) {
+            for(var i = 0; i < this.childNodes.length; i++) {
+                if (this.childNodes[i].id == id) {
+                    return this.childNodes[i];
+                } else {
+                    var elem = this.childNodes[i].getElementById(id);
+                    if (elem) { 
+                        return elem
+                    }
+                }
+            }
+        }
+    }
+};
+
+document = element();
+document.createElement = function(type) {
+     return element(type);
+};
+document.createTextNode = function(text) {
+    var e = element("Text");
+    e.innerHTML = text;
+}
+
+document.appendChild(element("head"));
+document.body = element("body");
+document.appendChild(document.body);
+
+window = {
+    'addEventListener': function() {
+    },
+    'getSelection': function() {
+        return {
+            collapseToStart: function() {}
+        }
+    },
+    document: document,
+    navigator: navigator,
+    location: {
+        href: '#',
+        port: '',
+        hostname: 'openlayers.org',
+        host: 'openlayers.org',
+        proto: 'https'
+    }    
+};
+document.location = window.location;
+
+window.Function = Function;
diff --git a/tests/node.js/node-tests.cfg b/tests/node.js/node-tests.cfg
new file mode 100644
index 0000000..bc79baa
--- /dev/null
+++ b/tests/node.js/node-tests.cfg
@@ -0,0 +1,12 @@
+# This build config is supposed to be used for the units tests with "mode=build"
+
+[first]
+mockdom.js
+[last]
+node.js
+
+[include]
+
+[exclude]
+OpenLayers.js
+Firebug/firebug.js
diff --git a/tests/node.js/node.js b/tests/node.js/node.js
new file mode 100644
index 0000000..32249d1
--- /dev/null
+++ b/tests/node.js/node.js
@@ -0,0 +1 @@
+exports.OpenLayers = OpenLayers;
diff --git a/tests/node.js/run-test.js b/tests/node.js/run-test.js
new file mode 100644
index 0000000..7b0dd8b
--- /dev/null
+++ b/tests/node.js/run-test.js
@@ -0,0 +1,26 @@
+// Requires:
+/// 0. nodejs
+//  1. jsdom installed (npm install jsdom)
+//  2. A build profile with mockdom.js included in [first], and node.js 
+//     inclded in [last], at ../../build/OpenLayers.js , like node-tests.js.
+//  3. Run with node run-tests.js
+//
+//  Missing: integration with a solid node.js testrunner.
+var jsdom = require('jsdom'); 
+jsdom.env('<html><body></body></html>', function(errors, window) { 
+    for (var i in window) { 
+        if (i == "console") {
+            continue;
+        }    
+        eval(i+"=window['"+i+"'];"); 
+    }
+    OpenLayers = require("../../build/OpenLayers.js")['OpenLayers'];
+    var map = new OpenLayers.Map(document.createElement("map"));
+    map.addLayer(new OpenLayers.Layer("", {isBaseLayer:true}));
+    map.setCenter(new OpenLayers.LonLat(-71,42), 10);
+    var px = map.getPixelFromLonLat(map.getLonLatFromPixel(new OpenLayers.Pixel(100,100)));
+    console.log(px);
+    var px = map.getLonLatFromPixel(map.getPixelFromLonLat(new OpenLayers.LonLat(10,10)));
+    console.log(px);
+    
+});
diff --git a/tests/node.js/run.sh b/tests/node.js/run.sh
new file mode 100755
index 0000000..1434dd4
--- /dev/null
+++ b/tests/node.js/run.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+cp mockdom.js node.js ../../lib
+cp node-tests.cfg ../../build
+cd ../../build
+python build.py -c none node-tests
+cd ../tests/node.js/
+
+node run-test.js
+rm ../../lib/mockdom.js
+rm ../../lib/node.js
diff --git a/tests/run-tests.html b/tests/run-tests.html
index 17040e6..d2bff43 100644
--- a/tests/run-tests.html
+++ b/tests/run-tests.html
@@ -686,7 +686,7 @@ Test.AnotherWay._test_object_t.prototype.open_window=function( url, fn, timeout_
 		timeout_seconds=4;
 	}
 	var no_close=document.getElementById( "dont_close_test_windows" );
-	var action={ action_kind: "window", wnd_url: url.toString(), wnd_wnd: null, wnd_fn: fn, wnd_timeout_milliseconds: timeout_seconds*1000, wnd_no_close: no_close.checked };
+	var action={ action_kind: "window", wnd_url: url.toString() + (window.location.search || ""), wnd_wnd: null, wnd_fn: fn, wnd_timeout_milliseconds: timeout_seconds*1000, wnd_no_close: no_close.checked };
 	this.delay_total_milliseconds_left+=Test.AnotherWay._action_estimate_milliseconds( action );
 	this.delay_actions.push( action );
 }
@@ -2410,4 +2410,10 @@ checkpoints:
 </div>
 
 </span>
+<script>
+    if (/noscroll/.test(location.href)) {
+        document.getElementById('scroller').style.height='auto';
+        document.getElementById('right_frame').style.height='auto';
+    }
+</script>
 </body></html>
diff --git a/tests/speed/vector-renderers.html b/tests/speed/vector-renderers.html
new file mode 100644
index 0000000..4d88dfc
--- /dev/null
+++ b/tests/speed/vector-renderers.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Vector Features Performance Test</title>
+    <script type="text/javascript" src="https://getfirebug.com/firebug-lite.js#startOpened=true"></script>
+    <link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
+    <link rel="stylesheet" href="../../examples/style.css" type="text/css" />
+  </head>
+  <body>
+    <h1 id="title">Vector Rendering Performance</h1>
+    <div id="map" class="smallmap"></div>
+    <p>
+    This is a benchmark for vector rendering performance. Test results are
+    written to the debug console.
+    Select a renderer here:
+    <br/>
+    <select id="renderers"></select>
+    </p><p>
+    The benchmark shows the time needed to render the features, and how long a
+    move (drag or zoom) takes. Drag and zoom around to produce move results.
+    </p>
+    <script src="../../lib/OpenLayers.js"></script>
+    <script src="vector-renderers.js"></script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/tests/speed/vector-renderers.js b/tests/speed/vector-renderers.js
new file mode 100644
index 0000000..a11b361
--- /dev/null
+++ b/tests/speed/vector-renderers.js
@@ -0,0 +1,70 @@
+var map, vectorLayer, drawFeature, features
+
+map = new OpenLayers.Map('map', {
+    eventListeners: {
+        movestart: function() {
+            console.time("move");
+        },
+        moveend: function() {
+            console.timeEnd("move");
+        }
+    }
+});
+
+// allow testing of specific renderers via "?renderer=Canvas", etc
+var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
+renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
+
+vectorLayer = new OpenLayers.Layer.Vector("Vector Layer", {
+    isBaseLayer: true,
+    renderers: renderer,
+    eventListeners: {
+        beforefeaturesadded: function() {
+            console.time("addFeatures");
+        },
+        featuresadded: function() {
+            console.timeEnd("addFeatures");
+        }
+    }
+});
+
+map.addLayers([vectorLayer]);
+map.addControl(new OpenLayers.Control.MousePosition());
+map.setCenter(new OpenLayers.LonLat(0, 0), 2);
+
+features = new Array(500);
+var x, y, points
+for (var i = 0; i < 500; i++) {
+    x = 90-Math.random()*180;
+    y = 45-Math.random()*90;
+    var pointList = [];
+    for(var p=0; p<19; ++p) {
+        var a = p * (2 * Math.PI) / 20;
+        var r = Math.random() * 3 + 1;
+        var newPoint = new OpenLayers.Geometry.Point(x + (r * Math.cos(a)),
+                                                     y + (r * Math.sin(a)));
+        pointList.push(newPoint);
+    }
+    pointList.push(pointList[0]);
+    features[i] = new OpenLayers.Feature.Vector(
+        new OpenLayers.Geometry.LinearRing(pointList));
+        
+}
+vectorLayer.addFeatures(features);
+
+var select = document.getElementById("renderers");
+var renderers = OpenLayers.Layer.Vector.prototype.renderers;
+var option;
+for (var i=0, len=renderers.length; i<len; i++) {
+    if (OpenLayers.Renderer[renderers[i]].prototype.supported()) {
+        option = document.createElement("option");
+        option.textContent = renderers[i];
+        option.value = renderers[i];
+        option.selected = renderers[i] == vectorLayer.renderer.CLASS_NAME.split(".").pop();
+        select.appendChild(option);
+    }
+}
+select.onchange = function() {
+    window.location.href = window.location.href.split("?")[0] +
+        "?renderer=" + select.options[select.selectedIndex].value;
+}
diff --git a/theme/default/google.css b/theme/default/google.css
index 3c1c187..3ee757c 100644
--- a/theme/default/google.css
+++ b/theme/default/google.css
@@ -3,8 +3,15 @@
     bottom: 2px;
     left: auto;  
 }
+.olLayerGoogleV3.olLayerGoogleCopyright {
+    bottom: 0px;
+    right: 0px !important;
+}
 .olLayerGooglePoweredBy {
     left: 2px;
     bottom: 2px;   
 }
+.olLayerGoogleV3.olLayerGooglePoweredBy {
+    bottom: 0px !important;
+}
 
diff --git a/theme/default/google.tidy.css b/theme/default/google.tidy.css
new file mode 100644
index 0000000..4ba0cd8
--- /dev/null
+++ b/theme/default/google.tidy.css
@@ -0,0 +1 @@
+.olLayerGoogleCopyright{right:3px;bottom:2px;left:auto;}.olLayerGoogleV3.olLayerGoogleCopyright{bottom:0;right:0!important;}.olLayerGooglePoweredBy{left:2px;bottom:2px;}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:0!important;}
\ No newline at end of file
diff --git a/theme/default/ie6-style.css b/theme/default/ie6-style.css
index 65f6b19..a0fd7c6 100644
--- a/theme/default/ie6-style.css
+++ b/theme/default/ie6-style.css
@@ -4,4 +4,7 @@
 .olControlPanPanel div {
     background-image: url(img/pan-panel-NOALPHA.png);
 }
+.olControlEditingToolbar {
+    width: 200px;
+}
 
diff --git a/theme/default/ie6-style.tidy.css b/theme/default/ie6-style.tidy.css
new file mode 100644
index 0000000..7a23bbc
--- /dev/null
+++ b/theme/default/ie6-style.tidy.css
@@ -0,0 +1 @@
+.olControlZoomPanel div{background-image:url(img/zoom-panel-NOALPHA.png);}.olControlPanPanel div{background-image:url(img/pan-panel-NOALPHA.png);}.olControlEditingToolbar{width:200px;}
\ No newline at end of file
diff --git a/theme/default/img/add_point_off.png b/theme/default/img/add_point_off.png
index aefd09c..26c0233 100644
Binary files a/theme/default/img/add_point_off.png and b/theme/default/img/add_point_off.png differ
diff --git a/theme/default/img/drag-rectangle-off.png b/theme/default/img/drag-rectangle-off.png
index fc6daf4..382a81d 100644
Binary files a/theme/default/img/drag-rectangle-off.png and b/theme/default/img/drag-rectangle-off.png differ
diff --git a/theme/default/img/drag-rectangle-on.png b/theme/default/img/drag-rectangle-on.png
index 7f783ce..2ed2d5b 100644
Binary files a/theme/default/img/drag-rectangle-on.png and b/theme/default/img/drag-rectangle-on.png differ
diff --git a/theme/default/img/draw_line_off.png b/theme/default/img/draw_line_off.png
index 7f15612..a4d67b3 100644
Binary files a/theme/default/img/draw_line_off.png and b/theme/default/img/draw_line_off.png differ
diff --git a/theme/default/img/draw_line_on.png b/theme/default/img/draw_line_on.png
index ba09186..90dcf3e 100644
Binary files a/theme/default/img/draw_line_on.png and b/theme/default/img/draw_line_on.png differ
diff --git a/theme/default/img/draw_point_off.png b/theme/default/img/draw_point_off.png
index fde94bd..5633407 100644
Binary files a/theme/default/img/draw_point_off.png and b/theme/default/img/draw_point_off.png differ
diff --git a/theme/default/img/draw_point_on.png b/theme/default/img/draw_point_on.png
index 8804221..fff50b7 100644
Binary files a/theme/default/img/draw_point_on.png and b/theme/default/img/draw_point_on.png differ
diff --git a/theme/default/img/draw_polygon_off.png b/theme/default/img/draw_polygon_off.png
index 53ce9d7..917af35 100644
Binary files a/theme/default/img/draw_polygon_off.png and b/theme/default/img/draw_polygon_off.png differ
diff --git a/theme/default/img/draw_polygon_on.png b/theme/default/img/draw_polygon_on.png
index 2a33376..05a2cc5 100644
Binary files a/theme/default/img/draw_polygon_on.png and b/theme/default/img/draw_polygon_on.png differ
diff --git a/theme/default/img/editing_tool_bar.png b/theme/default/img/editing_tool_bar.png
index 464340e..5977856 100644
Binary files a/theme/default/img/editing_tool_bar.png and b/theme/default/img/editing_tool_bar.png differ
diff --git a/theme/default/img/move_feature_off.png b/theme/default/img/move_feature_off.png
index 9f588db..ed4472d 100644
Binary files a/theme/default/img/move_feature_off.png and b/theme/default/img/move_feature_off.png differ
diff --git a/theme/default/img/move_feature_on.png b/theme/default/img/move_feature_on.png
index 072f066..62226a2 100644
Binary files a/theme/default/img/move_feature_on.png and b/theme/default/img/move_feature_on.png differ
diff --git a/theme/default/img/navigation_history.png b/theme/default/img/navigation_history.png
index 053d1e0..84e3489 100644
Binary files a/theme/default/img/navigation_history.png and b/theme/default/img/navigation_history.png differ
diff --git a/theme/default/img/pan-panel-NOALPHA.png b/theme/default/img/pan-panel-NOALPHA.png
index 2740d8b..6987268 100644
Binary files a/theme/default/img/pan-panel-NOALPHA.png and b/theme/default/img/pan-panel-NOALPHA.png differ
diff --git a/theme/default/img/pan-panel.png b/theme/default/img/pan-panel.png
index 9910121..dfe6748 100644
Binary files a/theme/default/img/pan-panel.png and b/theme/default/img/pan-panel.png differ
diff --git a/theme/default/img/pan_on.png b/theme/default/img/pan_on.png
index d73e7dd..e3953a8 100644
Binary files a/theme/default/img/pan_on.png and b/theme/default/img/pan_on.png differ
diff --git a/theme/default/img/panning-hand-off.png b/theme/default/img/panning-hand-off.png
index 4c912ac..d1c593e 100644
Binary files a/theme/default/img/panning-hand-off.png and b/theme/default/img/panning-hand-off.png differ
diff --git a/theme/default/img/panning-hand-on.png b/theme/default/img/panning-hand-on.png
index 6094c64..9b7e064 100644
Binary files a/theme/default/img/panning-hand-on.png and b/theme/default/img/panning-hand-on.png differ
diff --git a/theme/default/img/remove_point_on.png b/theme/default/img/remove_point_on.png
index 0ff28fc..cc8d7b2 100644
Binary files a/theme/default/img/remove_point_on.png and b/theme/default/img/remove_point_on.png differ
diff --git a/theme/default/img/save_features_off.png b/theme/default/img/save_features_off.png
index 2bf2906..3d305b6 100644
Binary files a/theme/default/img/save_features_off.png and b/theme/default/img/save_features_off.png differ
diff --git a/theme/default/img/save_features_on.png b/theme/default/img/save_features_on.png
index 93c8f08..5640ae8 100644
Binary files a/theme/default/img/save_features_on.png and b/theme/default/img/save_features_on.png differ
diff --git a/theme/default/img/view_next_off.png b/theme/default/img/view_next_off.png
index 23c5ac1..9149a24 100644
Binary files a/theme/default/img/view_next_off.png and b/theme/default/img/view_next_off.png differ
diff --git a/theme/default/img/view_previous_off.png b/theme/default/img/view_previous_off.png
index b9c230f..8a9ef21 100644
Binary files a/theme/default/img/view_previous_off.png and b/theme/default/img/view_previous_off.png differ
diff --git a/theme/default/img/zoom-panel.png b/theme/default/img/zoom-panel.png
index f2c7c51..c91a4ef 100644
Binary files a/theme/default/img/zoom-panel.png and b/theme/default/img/zoom-panel.png differ
diff --git a/theme/default/style.css b/theme/default/style.css
index 0627f0e..3aeac29 100644
--- a/theme/default/style.css
+++ b/theme/default/style.css
@@ -1,7 +1,7 @@
 div.olMap {
     z-index: 0;
-    padding: 0px!important;
-    margin: 0px!important;
+    padding: 0 !important;
+    margin: 0 !important;
     cursor: default;
 }
 
@@ -11,16 +11,23 @@ div.olMapViewport {
 
 div.olLayerDiv {
    -moz-user-select: none;
+   -khtml-user-select: none;
 }
 
 .olLayerGoogleCopyright {
     left: 2px;
-    bottom: 2px;  
+    bottom: 2px;
+}
+.olLayerGoogleV3.olLayerGoogleCopyright {
+    right: auto !important;
 }
 .olLayerGooglePoweredBy {
     left: 2px;
     bottom: 15px;   
 }
+.olLayerGoogleV3.olLayerGooglePoweredBy {
+    bottom: 15px !important;
+}
 .olControlAttribution {
     font-size: smaller; 
     right: 3px; 
@@ -73,8 +80,8 @@ div.olControlMousePosition {
 
 .olControlOverviewMapContainer {
     position: absolute;
-    bottom: 0px;
-    right: 0px;
+    bottom: 0;
+    right: 0;
 }
 
 .olControlOverviewMapElement {
@@ -84,13 +91,15 @@ div.olControlMousePosition {
 }
 
 .olControlOverviewMapMinimizeButton {
-    right: 0px;
+    right: 0;
     bottom: 80px;
+    cursor: pointer;
 }    
 
 .olControlOverviewMapMaximizeButton {
-    right: 0px;
+    right: 0;
     bottom: 80px;
+    cursor: pointer;
 }
 
 .olControlOverviewMapExtentRectangle {
@@ -128,18 +137,6 @@ div.olControlMousePosition {
     padding:5px;
     overflow: auto;
 }    
-.olControlNavToolbar { 
-    width:0px;
-    height:0px;
-}    
-.olControlNavToolbar div { 
-  display:block;
-  width:  28px;
-  height: 28px;
-  top: 300px;
-  left: 6px;
-  position: relative;
-}
 
 .olControlNavigationHistory {
    background-image: url("img/navigation_history.png");
@@ -149,82 +146,27 @@ div.olControlMousePosition {
 
 }
 .olControlNavigationHistoryPreviousItemActive { 
-  background-position: 0px 0px;
+  background-position: 0 0;
 }
 .olControlNavigationHistoryPreviousItemInactive { 
-   background-position: 0px -24px;
+   background-position: 0 -24px;
 }
 .olControlNavigationHistoryNextItemActive { 
-   background-position: -24px 0px;
+   background-position: -24px 0;
 }
 .olControlNavigationHistoryNextItemInactive { 
    background-position: -24px -24px;
 }
 
-.olControlNavToolbar .olControlNavigationItemActive { 
-  background-image: url("img/panning-hand-on.png");
-  background-repeat: no-repeat;
-}
-.olControlNavToolbar .olControlNavigationItemInactive { 
-  background-image: url("img/panning-hand-off.png");
-  background-repeat: no-repeat;
-}
-.olControlNavToolbar .olControlZoomBoxItemActive { 
-  background-image: url("img/drag-rectangle-on.png");
-  background-color: orange;
-  background-repeat: no-repeat;
-}
-.olControlNavToolbar .olControlZoomBoxItemInactive { 
-  background-image: url("img/drag-rectangle-off.png");
-  background-repeat: no-repeat;
-}
-.olControlEditingToolbar  {
-    float:right;
-    right: 0px;
-    height: 30px; 
-    width: 200px;
-}
-.olControlEditingToolbar div { 
-  background-image: url("img/editing_tool_bar.png");
-  background-repeat: no-repeat;
-  float:right;
-  width:  24px;
-  height: 24px;
-  margin: 5px;
-}
-.olControlEditingToolbar .olControlNavigationItemActive { 
-  background-position: -103px -23px; 
-}
-.olControlEditingToolbar .olControlNavigationItemInactive { 
-  background-position: -103px -0px; 
-}
-.olControlEditingToolbar .olControlDrawFeaturePointItemActive { 
-  background-position: -77px -23px; 
-}
-.olControlEditingToolbar .olControlDrawFeaturePointItemInactive { 
-  background-position: -77px -0px; 
-}
-.olControlEditingToolbar .olControlDrawFeaturePathItemInactive { 
-  background-position: -51px 0px; 
-}
-.olControlEditingToolbar .olControlDrawFeaturePathItemActive { 
-  background-position: -51px -23px; 
-}
-.olControlEditingToolbar .olControlDrawFeaturePolygonItemInactive { 
-  background-position: -26px 0px; 
-}
-.olControlEditingToolbar .olControlDrawFeaturePolygonItemActive { 
-  background-position: -26px -23px ;                                                                   
-}
 div.olControlSaveFeaturesItemActive { 
     background-image: url(img/save_features_on.png);
     background-repeat: no-repeat;
-    background-position: 0px 1px;
+    background-position: 0 1px;
 }
 div.olControlSaveFeaturesItemInactive { 
     background-image: url(img/save_features_off.png);
     background-repeat: no-repeat;
-    background-position: 0px 1px;
+    background-position: 0 1px;
 }
 
 .olHandlerBoxZoomBox {
@@ -258,20 +200,20 @@ div.olControlSaveFeaturesItemInactive {
 }
 
 .olControlPanPanel .olControlPanNorthItemInactive {
-    top: 0px;
+    top: 0;
     left: 9px;
-    background-position: 0px 0px;
+    background-position: 0 0;
 }
 .olControlPanPanel .olControlPanSouthItemInactive {
     top: 36px;
     left: 9px;
-    background-position: 18px 0px;
+    background-position: 18px 0;
 }
 .olControlPanPanel .olControlPanWestItemInactive {
     position: absolute;
     top: 18px;
-    left: 0px;
-    background-position: 0px 18px;
+    left: 0;
+    background-position: 0 18px;
 }
 .olControlPanPanel .olControlPanEastItemInactive {
     top: 18px;
@@ -293,21 +235,29 @@ div.olControlSaveFeaturesItemInactive {
 }
 
 .olControlZoomPanel .olControlZoomInItemInactive {
-    top: 0px;
-    left: 0px;
-    background-position: 0px 0px;
+    top: 0;
+    left: 0;
+    background-position: 0 0;
 }
 
 .olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
     top: 18px;
-    left: 0px;
-    background-position: 0px -18px;
+    left: 0;
+    background-position: 0 -18px;
 }
 
 .olControlZoomPanel .olControlZoomOutItemInactive {
     top: 36px;
-    left: 0px;
-    background-position: 0px 18px;
+    left: 0;
+    background-position: 0 18px;
+}
+
+/* 
+ * When a potential text is bigger than the image it move the image
+ * with some headers (closes #3154) 
+ */
+.olControlPanZoomBar div {
+    font-size: 1px;
 }
 
 .olPopupCloseBox {
@@ -322,6 +272,7 @@ div.olControlSaveFeaturesItemInactive {
 
 .olControlNoSelect {
  -moz-user-select: none;
+ -khtml-user-select: none;
 }
 
 .olImageLoadError {
@@ -356,7 +307,7 @@ div.olControlSaveFeaturesItemInactive {
 .olControlLayerSwitcher {
     position: absolute;
     top: 25px;
-    right: 0px;
+    right: 0;
     width: 20em;
     font-family: sans-serif;
     font-weight: bold;
@@ -393,5 +344,90 @@ div.olControlSaveFeaturesItemInactive {
 .olControlLayerSwitcher .maximizeDiv,
 .olControlLayerSwitcher .minimizeDiv {
     top: 5px;
-    right: 0px;
+    right: 0;
+    cursor: pointer;
+}
+
+.olBingAttribution {
+    color: #DDD;
+}
+.olBingAttribution.road {
+    color: #333;
+}
+
+.olGoogleAttribution.hybrid, .olGoogleAttribution.satellite {
+    color: #EEE;
+}
+.olGoogleAttribution {
+    color: #333;
+}
+span.olGoogleAttribution a {
+    color: #77C;
+}
+span.olGoogleAttribution.hybrid a, span.olGoogleAttribution.satellite a {
+    color: #EEE;
+}
+
+/**
+ * Editing and navigation icons.
+ * (using the editing_tool_bar.png sprint image)
+ */
+.olControlNavToolbar ,
+.olControlEditingToolbar {
+    margin: 5px 5px 0 0;
+}
+.olControlNavToolbar div,
+.olControlEditingToolbar div {
+    background-image: url("img/editing_tool_bar.png");
+    background-repeat: no-repeat;
+    margin: 0 0 5px 5px;
+    width: 24px;
+    height: 22px;
+    cursor: pointer
+}
+/* positions */
+.olControlEditingToolbar {
+    right: 0;
+    top: 0;
+}
+.olControlNavToolbar {
+    top: 295px;
+    left: 9px;
+}
+/* layouts */
+.olControlEditingToolbar div {
+    float: right;
+}
+/* individual controls */
+.olControlNavToolbar .olControlNavigationItemInactive,
+.olControlEditingToolbar .olControlNavigationItemInactive {
+    background-position: -103px -1px;
+}
+.olControlNavToolbar .olControlNavigationItemActive ,
+.olControlEditingToolbar .olControlNavigationItemActive  {
+    background-position: -103px -24px;
+}
+.olControlNavToolbar .olControlZoomBoxItemInactive {
+    background-position: -128px -1px;
+}
+.olControlNavToolbar .olControlZoomBoxItemActive  {
+    background-position: -128px -24px;
+}
+.olControlEditingToolbar .olControlDrawFeaturePointItemInactive {
+    background-position: -77px -1px;
+}
+.olControlEditingToolbar .olControlDrawFeaturePointItemActive {
+    background-position: -77px -24px;
+}
+.olControlEditingToolbar .olControlDrawFeaturePathItemInactive {
+    background-position: -51px -1px;
+}
+.olControlEditingToolbar .olControlDrawFeaturePathItemActive {
+    background-position: -51px -24px;
+}
+.olControlEditingToolbar .olControlDrawFeaturePolygonItemInactive{
+    background-position: -26px -1px;
+}
+.olControlEditingToolbar .olControlDrawFeaturePolygonItemActive {
+    background-position: -26px -24px;
 }
diff --git a/theme/default/style.tidy.css b/theme/default/style.tidy.css
new file mode 100644
index 0000000..b3a73b3
--- /dev/null
+++ b/theme/default/style.tidy.css
@@ -0,0 +1 @@
+div.olMap{z-index:0;cursor:default;margin:0!important;padding:0!important;}div.olMapViewport{text-align:left;}.olLayerGoogleCopyright{left:2px;bottom:2px;}.olLayerGoogleV3.olLayerGoogleCopyright{right:auto!important;}.olLayerGooglePoweredBy{left:2px;bottom:15px;}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:15px!important;}.olControlAttribution{font-size:smaller;right:3px;bottom:4.5em;position:absolute;display:block;}.olControlScale{right:3px;bottom:3em;display:block;position:absolute;f [...]
\ No newline at end of file
diff --git a/tools/branch.sh b/tools/branch.sh
new file mode 100755
index 0000000..ec07d02
--- /dev/null
+++ b/tools/branch.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+RELEASE=$1
+
+svn copy -m "Branching for the $RELEASE release" http://svn.openlayers.org/trunk/openlayers http://svn.openlayers.org/branches/openlayers/$RELEASE
diff --git a/tools/closure.py b/tools/closure.py
new file mode 100644
index 0000000..ab60be7
--- /dev/null
+++ b/tools/closure.py
@@ -0,0 +1,22 @@
+import sys
+import os
+import tempfile
+
+path = "../tools/closure-compiler.jar"
+if not os.path.exists(path):
+    raise Exception("No closure-compiler.jar at %s; read README.txt!" % path)
+
+def minimize(code):
+    ntf = tempfile.NamedTemporaryFile(delete=False)
+    ntf.write(code)
+    ntf.flush()
+
+    ntf2 = tempfile.NamedTemporaryFile(delete=False)
+    ntf.close()
+    ntf2.close()
+
+    os.system("java -jar %s --js %s --js_output_file %s" % (path, ntf.name, ntf2.name))
+    data = open(ntf2.name).read()
+    os.unlink(ntf.name)
+    os.unlink(ntf2.name)
+    return data
diff --git a/tools/closure_ws.py b/tools/closure_ws.py
new file mode 100644
index 0000000..3bf925a
--- /dev/null
+++ b/tools/closure_ws.py
@@ -0,0 +1,28 @@
+#!/usr/bin/python
+
+import httplib, urllib, sys
+import time
+# Define the parameters for the POST request and encode them in
+# a URL-safe format.
+
+def minimize(code):
+
+    params = urllib.urlencode([
+        ('js_code', code),
+        ('compilation_level', 'SIMPLE_OPTIMIZATIONS'),
+        ('output_format', 'text'),
+        ('output_info', 'compiled_code'),
+      ])
+    
+    t = time.time()
+    # Always use the following value for the Content-type header.
+    headers = { "Content-type": "application/x-www-form-urlencoded" }
+    conn = httplib.HTTPConnection('closure-compiler.appspot.com')
+    conn.request('POST', '/compile', params, headers)
+    response = conn.getresponse()
+    data = response.read()
+    conn.close()
+    if data.startswith("Error"):
+        raise Exception(data)
+    print "%.3f seconds to compile" % (time.time() - t) 
+    return data
diff --git a/tools/mergejs.py b/tools/mergejs.py
index 865081e..6403072 100755
--- a/tools/mergejs.py
+++ b/tools/mergejs.py
@@ -31,7 +31,7 @@
 #
 # Note: This is a very rough initial version of this code.
 #
-# -- Copyright 2005-2010 OpenLayers contributors / OpenLayers project --
+# -- Copyright 2005-2011 OpenLayers contributors / OpenLayers project --
 #
 
 # TODO: Allow files to be excluded. e.g. `Crossbrowser/DebugMode.js`?
@@ -43,7 +43,11 @@ import sys
 
 SUFFIX_JAVASCRIPT = ".js"
 
-RE_REQUIRE = "@requires:? (.*)\n" # TODO: Ensure in comment?
+RE_REQUIRE = "@requires?:? (.*)\n" # TODO: Ensure in comment?
+
+class MissingImport(Exception):
+    """Exception raised when a listed import is not found in the lib."""
+
 class SourceFile:
     """
     Represents a Javascript source code file.
@@ -94,6 +98,7 @@ class Config:
 
         [exclude]
         3rd/logger.js
+        exclude/this/dir
 
     All headings are required.
 
@@ -122,6 +127,20 @@ class Config:
         self.include =  lines[lines.index("[include]") + 1:lines.index("[exclude]")]
         self.exclude =  lines[lines.index("[exclude]") + 1:]
 
+def undesired(filepath, excludes):
+    # exclude file if listed
+    exclude = filepath in excludes
+    if not exclude:
+        # check if directory is listed
+        for excludepath in excludes:
+            if not excludepath.endswith("/"):
+                excludepath += "/"
+            if filepath.startswith(excludepath):
+                exclude = True
+                break
+    return exclude
+            
+
 def run (sourceDirectory, outputFilename = None, configFile = None):
     cfg = None
     if configFile:
@@ -138,7 +157,7 @@ def run (sourceDirectory, outputFilename = None, configFile = None):
                 if cfg and cfg.include:
                     if filepath in cfg.include or filepath in cfg.forceFirst:
                         allFiles.append(filepath)
-                elif (not cfg) or (filepath not in cfg.exclude):
+                elif (not cfg) or (not undesired(filepath, cfg.exclude)):
                     allFiles.append(filepath)
 
     ## Header inserted at the start of each file in the output
@@ -146,8 +165,6 @@ def run (sourceDirectory, outputFilename = None, configFile = None):
 
     files = {}
 
-    order = [] # List of filepaths to output, in a dependency satisfying order 
-
     ## Import file source code
     ## TODO: Do import when we walk the directories above?
     for filepath in allFiles:
@@ -164,41 +181,31 @@ def run (sourceDirectory, outputFilename = None, configFile = None):
     resolution_pass = 1
 
     while not complete:
-        order = [] # List of filepaths to output, in a dependency satisfying order 
-        nodes = []
-        routes = []
+        complete = True
+
         ## Resolve the dependencies
         print "Resolution pass %s... " % resolution_pass
         resolution_pass += 1 
 
         for filepath, info in files.items():
-            nodes.append(filepath)
-            for neededFilePath in info.requires:
-                routes.append((neededFilePath, filepath))
-
-        for dependencyLevel in toposort(nodes, routes):
-            for filepath in dependencyLevel:
-                order.append(filepath)
-                if not files.has_key(filepath):
-                    print "Importing: %s" % filepath
-                    fullpath = os.path.join(sourceDirectory, filepath).strip()
-                    content = open(fullpath, "U").read() # TODO: Ensure end of line @ EOF?
-                    files[filepath] = SourceFile(filepath, content) # TODO: Chop path?
-        
-
-
-        # Double check all dependencies have been met
-        complete = True
-        try:
-            for fp in order:
-                if max([order.index(rfp) for rfp in files[fp].requires] +
-                       [order.index(fp)]) != order.index(fp):
+            for path in info.requires:
+                if not files.has_key(path):
                     complete = False
-        except:
-            complete = False
+                    fullpath = os.path.join(sourceDirectory, path).strip()
+                    if os.path.exists(fullpath):
+                        print "Importing: %s" % path
+                        content = open(fullpath, "U").read() # TODO: Ensure end of line @ EOF?
+                        files[path] = SourceFile(path, content) # TODO: Chop path?
+                    else:
+                        raise MissingImport("File '%s' not found (required by '%s')." % (path, filepath))
         
-        print    
+    # create dictionary of dependencies
+    dependencies = {}
+    for filepath, info in files.items():
+        dependencies[filepath] = info.requires
 
+    print "Sorting..."
+    order = toposort(dependencies) #[x for x in toposort(dependencies)]
 
     ## Move forced first and last files to the required position
     if cfg:
diff --git a/tools/mkrelease.sh b/tools/mkrelease.sh
new file mode 100755
index 0000000..8680c9c
--- /dev/null
+++ b/tools/mkrelease.sh
@@ -0,0 +1,28 @@
+#!/bin/sh -x
+
+svn export http://svn.openlayers.org/tags/openlayers/release-$VERSION OpenLayers-$VERSION
+cd OpenLayers-$VERSION/build
+./build.py
+mkdir /osgeo/openlayers/docs/api/$VERSION
+cd ..
+cp build/OpenLayers.js /osgeo/openlayers/docs/api/$VERSION
+cp -a img/ /osgeo/openlayers/docs/api/$VERSION
+cp -a theme/ /osgeo/openlayers/docs/api/$VERSION
+
+
+# First remove all .pyc files from the directory.
+  rm tools/*.pyc
+  # move single file version
+  cp build/OpenLayers.js OpenLayers.js
+  rm build/OpenLayers.js
+  
+  cd ..
+  mkdir OpenLayers-$VERSION/doc/devdocs
+  naturaldocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/devdocs -p OpenLayers-$VERSION/doc_config -s Default OL
+  mkdir OpenLayers-$VERSION/doc/apidocs
+  naturaldocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/apidocs -p OpenLayers-$VERSION/apidoc_config -s Default OL
+
+  tar cvfz OpenLayers-$VERSION.tar.gz OpenLayers-$VERSION/
+  cp OpenLayers-$VERSION.tar.gz /osgeo/openlayers/docs/download
+  zip -9r OpenLayers-$VERSION.zip OpenLayers-$VERSION/
+
diff --git a/tools/rc.sh b/tools/rc.sh
new file mode 100755
index 0000000..73b1835
--- /dev/null
+++ b/tools/rc.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+RELEASE=$1
+RC=$2
+
+svn co http://svn.openlayers.org/branches/openlayers/$RELEASE
+cd $RELEASE
+sed -i -e "s/OpenLayers.VERSION_NUMBER=.*/OpenLayers.VERSION_NUMBER=\"Release $1-$2\";/" lib/OpenLayers.js 
+sed -i -e "s/VERSION_NUMBER: .*,/VERSION_NUMBER: \"Release $1-$2\",/" lib/OpenLayers/SingleFile.js
+svn diff;
+sleep 10;
+svn ci -m "Updating version numbers for $1-$2".
+svn cp -m "Tagging the $1-$2 release." http://svn.openlayers.org/branches/openlayers/$1 http://svn.openlayers.org/tags/openlayers/release-$1-$2
diff --git a/tools/release.sh b/tools/release.sh
index 6a227dd..85124e8 100755
--- a/tools/release.sh
+++ b/tools/release.sh
@@ -2,28 +2,39 @@
 
 VERSION=$1
 
+wget -c http://closure-compiler.googlecode.com/files/compiler-latest.zip
+unzip compiler-latest.zip 
+
 svn export http://svn.openlayers.org/tags/openlayers/release-$VERSION OpenLayers-$VERSION
 cd OpenLayers-$VERSION/build
-./build.py full
+mv ../../compiler.jar ../tools/closure-compiler.jar
+./build.py -c closure full
 cp OpenLayers.js ..
+rm ../tools/closure-compiler.jar
 
 cd ..
+cd tools
+python exampleparser.py
+cd ..
+for i in google ie6-style style; do
+    csstidy theme/default/$i.css --template=highest theme/default/$i.tidy.css
+done    
 
 mkdir doc/devdocs
 mkdir doc/apidocs
 rm tools/*.pyc
 
-mkdir /www/openlayers/htdocs/api/$VERSION
-cp OpenLayers.js /www/openlayers/htdocs/api/$VERSION
-cp -a img/ /www/openlayers/htdocs/api/$VERSION
-cp -a theme/ /www/openlayers/htdocs/api/$VERSION
+mkdir /osgeo/openlayers/docs/api/$VERSION
+cp OpenLayers.js /osgeo/openlayers/docs/api/$VERSION
+cp -a img/ /osgeo/openlayers/docs/api/$VERSION
+cp -a theme/ /osgeo/openlayers/docs/api/$VERSION
 
 cd ..
 
-~/nd/NaturalDocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/devdocs -p OpenLayers-$VERSION/doc_config -s Small OL
-~/nd/NaturalDocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/apidocs -p OpenLayers-$VERSION/apidoc_config -s Small OL
+naturaldocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/devdocs -p OpenLayers-$VERSION/doc_config -s Small OL
+naturaldocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/apidocs -p OpenLayers-$VERSION/apidoc_config -s Small OL
 
 tar cvfz OpenLayers-$VERSION.tar.gz OpenLayers-$VERSION/
 zip -9r OpenLayers-$VERSION.zip OpenLayers-$VERSION/
 
-cp OpenLayers-$VERSION.* /www/openlayers/htdocs/download 
+cp OpenLayers-$VERSION.* /osgeo/openlayers/docs/download 
diff --git a/tools/toposort.py b/tools/toposort.py
index c3b1be6..ba586ef 100644
--- a/tools/toposort.py
+++ b/tools/toposort.py
@@ -1,260 +1,35 @@
-#
-# According to <http://www.vrplumber.com/programming/> this file
-# is licensed under a BSD-style license. We only use the section
-# originally by Tim Peters.
-#
-# TODO: The use of this code needs to be okayed by someone.
-#
-
-class RecursionError( OverflowError, ValueError ):
-    '''Unable to calculate result because of recursive structure'''
-    
-
-def sort(nodes, routes, noRecursion=1):
-    '''Passed a list of node IDs and a list of source,dest ID routes
-    attempt to create a list of stages where each sub list
-    is one stage in a process.
-    '''
-    children, parents = _buildChildrenLists(routes)
-    # first stage is those nodes
-    # having no incoming routes...
-    stage = []
-    stages = [stage]
-    taken = []
-    for node in nodes:
-        if (not parents.get(node)):
-            stage.append (node)
-    if nodes and not stage:
-        # there is no element which does not depend on
-        # some other element!!!
-        stage.append( nodes[0])
-    taken.extend( stage )
-    nodes = filter ( lambda x, l=stage: x not in l, nodes )
-    while nodes:
-        previousStageChildren = []
-        nodelen = len(nodes)
-        # second stage are those nodes
-        # which are direct children of the first stage
-        for node in stage:
-            for child in children.get (node, []):
-                if child not in previousStageChildren and child not in taken:
-                    previousStageChildren.append(child)
-                elif child in taken and noRecursion:
-                    raise RecursionError( (child, node) )
-        # unless they are children of other direct children...
-        # TODO, actually do that...
-        stage = previousStageChildren
-        removes = []
-        for current in stage:
-            currentParents = parents.get( current, [] )
-            for parent in currentParents:
-                if parent in stage and parent != current:
-                    # might wind up removing current...
-                    if not current in parents.get(parent, []):
-                        # is not mutually dependent...
-                        removes.append( current )
-        for remove in removes:
-            while remove in stage:
-                stage.remove( remove )
-        stages.append( stage)
-        taken.extend( stage )
-        nodes = filter ( lambda x, l=stage: x not in l, nodes )
-        if nodelen == len(nodes):
-            if noRecursion:
-                raise RecursionError( nodes )
-            else:
-                stages.append( nodes[:] )
-                nodes = []
-    return stages
-
-def _buildChildrenLists (routes):
-    childrenTable = {}
-    parentTable = {}
-    for sourceID,destinationID in routes:
-        currentChildren = childrenTable.get( sourceID, [])
-        currentParents = parentTable.get( destinationID, [])
-        if not destinationID in currentChildren:
-            currentChildren.append ( destinationID)
-        if not sourceID in currentParents:
-            currentParents.append ( sourceID)
-        childrenTable[sourceID] = currentChildren
-        parentTable[destinationID] = currentParents
-    return childrenTable, parentTable
-
-
-def toposort (nodes, routes, noRecursion=1):
-    '''Topological sort from Tim Peters, fairly efficient
-    in comparison (it seems).'''
-    #first calculate the recursion depth
-    
-    dependencies = {}
-    inversedependencies = {}
-    if not nodes:
-        return []
-    if not routes:
-        return [nodes]
-    for node in nodes:
-        dependencies[ node ] = (0, node)
-        inversedependencies[ node ] = []
-    
+"""
+toposort.py
+Sorts dictionary keys based on lists of dependencies.
+"""
+
+class MissingDependency(Exception):
+    """Exception raised when a listed dependency is not in the dictionary."""
+
+class Sorter(object):
+    def __init__(self, dependencies):
+        self.dependencies = dependencies
+        self.visited = set()
+        self.sorted = ()
     
-    for depended, depends in routes:
-        # is it a null rule
-        try:
-            newdependencylevel, object = dependencies.get ( depends, (0, depends))
-        except TypeError:
-            print depends
-            raise
-        dependencies[ depends ] = (newdependencylevel + 1,  depends)
-        # "dependency (existence) of depended-on"
-        newdependencylevel,object = dependencies.get ( depended, (0, depended) )
-        dependencies[ depended ] = (newdependencylevel, depended)
-        # Inverse dependency set up
-        dependencieslist = inversedependencies.get ( depended, [])
-        dependencieslist.append (depends)
-        inversedependencies[depended] = dependencieslist
-    ### Now we do the actual sorting
-    # The first task is to create the sortable
-    # list of dependency-levels
-    sortinglist = dependencies.values()
-    sortinglist.sort ()
-    output = []
-    while sortinglist:
-        deletelist = []
-        generation = []
-        output.append( generation)
-        while sortinglist and sortinglist[0][0] == 0:
-            number, object = sortinglist[0]
-            generation.append ( object )
-            deletelist.append( object )
-            for inverse in inversedependencies.get(object, () ):
-                try:
-                    oldcount, inverse = dependencies [ inverse]
-                    if oldcount > 0:
-                        # will be dealt with on later pass
-                        dependencies [ inverse] = (oldcount-1, inverse)
-                    else:
-                        # will be dealt with on this pass,
-                        # so needs not to be in the sorting list next time
-                        deletelist.append( inverse )
-                    # just in case a loop comes through
-                    inversedependencies[object] = []
-                except KeyError:
-                    # dealing with a recursion-breaking run...
-                    pass
-            del sortinglist [0]
-        # if no elements could be deleted, then
-        # there is something which depends upon itself
-        if not deletelist:
-            if noRecursion:
-                raise RecursionError( sortinglist )
-            else:
-                # hack so that something gets deleted...
-##                import pdb
-##                pdb.set_trace()
-                dependencies[sortinglist[0][1]] = (0,sortinglist[0][1])
-        # delete the items that were dealt with
-        for item in deletelist:
-            try:
-                del dependencies [ item ]
-            except KeyError:
-                pass
-        # need to recreate the sortinglist
-        sortinglist = dependencies.values()
-        if not generation:
-            output.remove( generation )
-        sortinglist.sort ()
-    return output
-
-
-
-
-
-if __name__ == "__main__":
-
-    nodes = ['a', 'b', 'c', 'd', 'e', 'f']
-    route = [('a', 'b'), ('b', 'c'), ('b', 'd'), ('e','f')]
-
-    for x in  toposort( nodes, route):
-        for a in x:
-            print a
-
-    raise SystemExit
-
-
-
-    import pprint, traceback
-    nodes= [ 0,1,2,3,4,5 ]
-    testingValues = [
-        [ (0,1),(1,2),(2,3),(3,4),(4,5)],
-        [ (0,1),(0,2),(1,2),(3,4),(4,5)],
-        [
-        (0,1),
-        (0,2),
-        (0,2),
-                    (2,4),
-                    (2,5),
-                (3,2),
-        (0,3)],
-        [
-        (0,1), # 3-element cycle test, no orphan nodes
-        (1,2),
-        (2,0),
-                    (2,4),
-                    (2,5),
-                (3,2),
-        (0,3)],
-        [
-        (0,1),
-        (1,1),
-        (1,1),
-                (1,4),
-                (1,5),
-                (1,2),
-        (3,1),
-        (2,1),
-        (2,0)],
-        [
-            (0,1),
-            (1,0),
-            (0,2),
-            (0,3),
-        ],
-        [
-            (0,1),
-            (1,0),
-            (0,2),
-            (3,1),
-        ],
-    ]
-    print 'sort, no recursion allowed'
-    for index in range(len(testingValues)):
-##        print '    %s -- %s'%( index, testingValues[index])
-        try:
-            print '        ', sort( nodes, testingValues[index] )
-        except:
-            print 'exception raised'
-    print 'toposort, no recursion allowed'
-    for index in range(len(testingValues)):
-##        print '    %s -- %s'%( index, testingValues[index])
-        try:
-            print '        ', toposort( nodes, testingValues[index] )
-        except:
-            print 'exception raised'
-    print 'sort, recursion allowed'
-    for index in range(len(testingValues)):
-##        print '    %s -- %s'%( index, testingValues[index])
-        try:
-            print '        ', sort( nodes, testingValues[index],0 )
-        except:
-            print 'exception raised'
-    print 'toposort, recursion allowed'
-    for index in range(len(testingValues)):
-##        print '    %s -- %s'%( index, testingValues[index])
-        try:
-            print '        ', toposort( nodes, testingValues[index],0 )
-        except:
-            print 'exception raised'
-        
-        
+    def sort(self):
+        for key in self.dependencies:
+            self._visit(key)
+        return self.sorted
     
+    def _visit(self, key):
+        if key not in self.visited:
+            self.visited.add(key)
+            if not self.dependencies.has_key(key):
+                raise MissingDependency(key)
+            for depends in self.dependencies[key]:
+                self._visit(depends)
+            self.sorted += (key,)
+
+def toposort(dependencies):
+    """Returns a tuple of the dependencies dictionary keys sorted by entries
+    in the dependency lists.  Given circular dependencies, sort will impose
+    an order.  Raises MissingDependency if a key is not found.
+    """
+    s = Sorter(dependencies)
+    return s.sort()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/openlayers.git



More information about the Pkg-grass-devel mailing list